Get a call's transcript
/v1/voice/calls/{call_id}/transcriptconst transcript = await bird.voice.calls.transcript("vcs_01krdgeqcxet5s7t44vh8rt9mg");
for (const cue of transcript.cues) {
console.log(cue.text);
}transcript = client.voice.calls.transcript("vcs_01krdgeqcxet5s7t44vh8rt9mg")
for cue in transcript.cues:
print(cue.text)transcript, err := client.Voice.Calls.Transcript(context.Background(), "vcs_01krdgeqcxet5s7t44vh8rt9mg")
if err != nil {
log.Fatal(err)
}
for _, cue := range transcript.Cues {
fmt.Println(cue.Text)
}$transcript = $bird->voice->calls->transcript('vcs_01krdgeqcxet5s7t44vh8rt9mg');
foreach ($transcript->getCues() ?? [] as $cue) {
echo $cue->getText(), PHP_EOL;
}bird voice calls transcript <call-id>curl -X GET "https://us1.platform.bird.com/v1/voice/calls/{call_id}/transcript" \
-H "Authorization: Bearer $TOKEN"{
"call_id": "vcs_01krdgeqcxet5s7t44vh8rt9mg",
"parties": [
{
"endpoint": {
"type": "pstn"
},
"address": "+14155551234"
}
],
"cues": [
{
"party": 0,
"start_at": "2026-11-01T12:00:00Z",
"end_at": "2026-11-01T12:00:01Z",
"text": "Hello."
}
],
"complete": true,
"evaluated_at": "2026-11-01T12:01:00Z"
}
Returns one transcript for the whole call: the cues of every party's
stream in spoken order, each pointing into parties at the party its
stream was captured from.
It is assembled on each read from the call's stored transcripts, one per
stream: the latest whose every cue is timed, otherwise the latest that
succeeded. When a live transcript exists, its cues take precedence; the
selected transcript adds only timed cues that do not overlap them. Timed
cues are placed by start_at. A transcript that timed
nothing has null times, and its cues are placed at the start of their
stream. A stream whose every transcription failed contributes nothing and
sets complete to false. A stream where nothing was heard, one that was
never transcribed, or one whose transcript has not arrived yet contributes
no cues and leaves complete as it is.
Transcripts leave the API 30 days after the source audio starts. A call this
workspace never placed, or whose
transcripts have all expired, answers with no cues rather than 404.
Parameter
call_idstringThe call to read. Every leg carries its call's ID as call_id.
Payload Respons
call_idpartiesEach distinct stored party heard in cues, once. A stream with no recorded party adds nothing here; its cues carry a null party.
cuesEvery cue of the call in spoken order. A cue without times sits at the start of its stream.
Tampilkan atribut turunan
cues.partyIndex into the transcript's parties of the party who spoke this cue,
the party its stream was captured from. null on a stream with no recorded
party.
cues.start_atWhen this cue began, measured on its stream. null on a transcript that timed nothing, whose cues are placed at their stream's start.
cues.end_atWhen this cue ended. null on the same terms as start_at.
cues.textWhat was transcribed for this cue.
completefalse when a stream's every transcription failed, or the read was cut
at its limit. true does not mean every stream has cues: a stream where
nothing was heard, one never transcribed, or one whose transcript has not
arrived yet contributes none and leaves this true.
evaluated_atThe instant retention was decided at. A transcript can expire after it.
Sumber daya terkait
Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini.