30 lines
613 B
Go
30 lines
613 B
Go
package seriatim
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
)
|
|
|
|
type transcript struct {
|
|
Metadata map[string]any `json:"metadata"`
|
|
Segments []segment `json:"segments"`
|
|
}
|
|
|
|
type segment struct {
|
|
ID string `json:"id"`
|
|
Start json.Number `json:"start"`
|
|
End json.Number `json:"end"`
|
|
Speaker string `json:"speaker"`
|
|
Text string `json:"text"`
|
|
}
|
|
|
|
func decodeTranscript(raw []byte) (transcript, error) {
|
|
var out transcript
|
|
decoder := json.NewDecoder(bytes.NewReader(raw))
|
|
decoder.UseNumber()
|
|
if err := decoder.Decode(&out); err != nil {
|
|
return transcript{}, err
|
|
}
|
|
return out, nil
|
|
}
|