Hear sync/streaming supports the published language set.
Number formatting and the English lexical cleanup flags are strongest on
English. Unsupported cleanup operations remain conservative/no-op. Async jobs
transcribe the same eight languages; the spoken language is auto-detected per
call.
Flags
numerals is independent of the others. dictation, drop_fillers, and vocabulary are not implied by smart_format.
smart_format
Opt-in. Changes case and punctuation only. Word identity is guarded. If wrapping would add or drop a word, Hear returns the unformatted final.
and. Run-on splits are conservative: they fire only with enough words before a new clause (the meeting/call/order/…, also / anyway / meanwhile, please send/call/…, or a late standalone i). Tag questions use a short closer (right, yeah, okay, isn't it, …).
smart_format does not:
- Invent emails, URLs, or street addresses
- Expand or rewrite words (
threepmstaysthreepmunless ITN already normalized it) - Remove fillers (that is
drop_fillers) - Honor spoken “period” / “comma” (that is
dictation) - Format non-English text
dictation
Separate from smart_format. Off by default. On English finals only, these spoken commands become punctuation:
period→.comma→,question mark→?new paragraph→ a paragraph break
smart_format on as well if you also want sentence capitalization.
drop_fillers
Off by default. Strips filled pauses (um, uh, umm, uhh, er) on English finals. Do not enable on legal or compliance audio by default. Those tokens can be evidence.
vocabulary
Use vocabulary only when you know distinctive names, brands, products, or
phrases that may appear in the audio. Streaming and async jobs use up to five
effective terms. They trim whitespace, preserve the first spelling and order,
deduplicate without regard to case, and ignore entries that are shorter than 4
characters, longer than 64 characters, longer than five words, or made only of
common words. Vocabulary biases recognition toward your terms; it does not
steer the output script (Hindi decodes render Devanagari regardless of how a
term is spelled in the list).
You can send vocabulary for one stream or job. You can also store an
organization list with GET and PUT /v1/hear/vocabulary using the
hear:configure scope. Stored terms remain inactive until enabled_for
includes batch or hear_stream.
When both are active, request terms come first. Stored suggestions fill any
remaining slots up to five. The resulting list is fixed when the job is created
or the stream opens. Changing organization settings does not change work that
is already running.
Organization Hear vocabulary is not used by Omni. A managed Omni Agent can use
its own explicit
vocabulary list. Hear does not automatically import names
from a CRM, dialer, or callee record.Phone numbers
NANP grouping lives undernumerals / ITN, not smart_format:
Surfaces
Examples
partial greyed and only commit speech_final / final. That is how you get live captions that snap to punctuated text instead of flickering punctuation on every hypothesis. See Stream speech-to-text.
Failure behavior
Formatting is best-effort and fail-open. A timeout, exception, or lexical-guard miss returns the previous final unchanged.dictation and drop_fillers may change word count. When word timestamps cannot be realigned, the transcript still updates and the words array is cleared. Clients should not treat missing punctuation as an API error.
Next steps
Stream speech-to-text
Partials vs finals, commit, and endpointing.
Timestamped recording jobs
Word/segment offsets, subtitles, diarization, webhooks, and retention.
Conversation intelligence
Batch jobs, diarization, and post-call analytics.