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.

  • A Punctuation for partial results is off by default and can be turned on in the speech config
  • B The Recognized event fires once for each word, and each word is replaced when the next word arrives
  • C Partial results are final once they're returned, so the changes come from the profanity filter
  • D The app shows partial results from Recognizing events, which can change as the utterance is reevaluated and have no punctuation; the final text arrives with the Recognized event ✓ Correct 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:

  1. Show each Recognizing result right away for the lowest latency, and accept that words change.
  2. Show only Recognized results for better accuracy, at the cost of some delay.
  3. 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:

Ready to test yourself? The quiz asks this and every other AI-103 question, with instant feedback. Practice this in a quiz →

All Text analysis questions · AI-103 study guide

Thanks for your feedback!