Implementing partial and finalized transcriptions

Last updated: April 17, 2025


When using partial transcriptions, you should be subscribing to two event types:

  •  transcript.partial_data 

  •  transcript.data

The transcript.data are the finalized transcript segments and the transcript.partial_data will be the low-confidence transcripts, essentially placeholders/disposable transcripts until you receive the finalized transcript

In terms of implementation, these should be seen as temporary until you receive the finalized transcript and you can keep track of this using the transcript's start_timestamp of the partial and finalized transcripts

The high-level idea is you only need to show partial transcripts for words said after the last finalized transcript. To do this, you can reference the latest transcript.data event's start_time drop any transcript.partial_data transcript that has a start_timestamp before that

For example, let's say you receive the events in the following start_timestamp order:

  • Hello [finalized] 1s

  • my [partial] 2s

  • elles [partial] 2.1s

  • how [partial] 3s

  • are [partial] 4s

  • you [partial] 5s

  • doing [partial] 6s

  • today? [partial] 7s

Then you receive the following:

  • Miles, [finalized] 2.2s

In this case, you can drop the partials before that and you are left with the following:

  • Hello [finalized] 1s

  • Miles, [finalized] 2.2s

  • how [partial] 3s

  • are [partial] 4s

  • you [partial] 5s

  • doing [partial] 6s

  • today? [partial] 7s