This seems to break the assumption that an interim result will always eventually get finalized. Here's a log from my application illustrating this.
In the log, you can see that:
Line 1: we get a final transcript containing "And you could it was also, like, an event creator, so you could create " with a start time of 2550.03
Line 2: we get a interim transcript "like, " with a start time of 2554.43
Line 3: interim transcript "like, spontaneous events with" also with a start time of 2554.43. Because the start times are the same, my app knows to replace the interim transcript from Line 2 with this newer one.
The following lines are more interim results with the same start time of 2554.43, culminating in a final result on Line 6, also with a start time of 2554.43. My app sees this and knows that we can replace all the interim transcripts with start time of 2554.43 with this final one.
The interesting part is on lines 7-9.
Line 7: interim transcript "There's no" with a start time of 2558.42
Line 8: a new interim transcript "The last app I" with a start time of 2559.98 (a different start time!)
Line 9: final transcript "Yeah. I do. The last app I launched" with start time of 2559.98
As you can see, we never get a final result for the transcript from Line 7 with a start time of 2558.42!
Is this expected? Why does this happen? I would expect that one of the following should happen instead:
- BEFORE the transcript on Line 8 is received, a final transcript is sent for the transcript from Line 7, containing the start time of 2558.42
OR - the transcripts on Line 8 and Line 9 use a start time of 2558.42; that way, my app understands to replace the interim ones with newer interim transcripts accordingly, and eventually replace the interim ones with the final one.