Implement text analysis solutions 4.2 Implement speech solutions
A live captioning app shows Speech SDK results as people speak.
Study guide skill: Implement workflows to convert speech to text and text to speech for agentic interactions
Question B7-017
A live captioning app shows Speech SDK results as people speak. Users notice that words on screen change as a sentence goes on and that this text has no punctuation. Which explanation is correct?
Select one answer.
Answer: D
Partial results are returned with each Recognizing event, and the service reevaluates the utterance as each word is processed, so a new result can differ from the previous one. The complete, final transcription of an utterance comes with the Recognized event. Punctuation isn't available for partial results, so it can't be turned on.
Deep dive
How it works
The Speech SDK reports recognition through two events, and live captioning has to handle both:
- Recognizing events carry partial results while an utterance is still being spoken. As each word is processed, the service reevaluates the utterance in the new context and returns its best result again. A new partial result isn't guaranteed to match the previous one, which is why words on screen change.
- The Recognized event carries the complete, final transcription of the utterance.
Punctuation isn't available for partial results, so that text has none. The final result from Recognized has it.
That leaves a latency versus accuracy tradeoff:
- Show each Recognizing result right away for the lowest latency, and accept that words change.
- Show only Recognized results for better accuracy, at the cost of some delay.
- Use the middle ground, stable partial results. Set SpeechServiceResponse_StablePartialResultThreshold to the number of times a word must be recognized before the service returns a Recognizing event. You get fewer, more accurate partial results.
For prerecorded media, or anywhere latency doesn't matter, you can wait for each final result and use word offsets and durations to time the captions.
The other options, and when you'd use them
- Punctuation for partials is off by default and can be turned on: The docs say punctuation of partial results isn't available, so there's no setting to enable it.
- Recognized fires once per word: It's the reverse. Recognized delivers the final transcription of a whole utterance, and the word-by-word updates come from Recognizing.
- Partial results are final; the profanity filter causes the changes: Partial results can change as the utterance is reevaluated. The profanity filter (mask, remove or show) controls how profanity is handled, not why words change.
Exam tip
Recognizing = partial, can change, no punctuation. Recognized = final, punctuated. To reduce flicker, raise the stable partial result threshold.
References
Last reviewed: