Smart Formatting
Smart Format can automatically format transcripts to improve readability.
smart_format
boolean Default: false
Try this feature out in our API Playground!
Deepgram’s Smart Format feature applies additional formatting to transcripts to optimize them for human readability.
Smart Format capabilities vary between models. When Smart Format is turned on, Deepgram will always apply the best-available formatting for your chosen combination of model, model option and language.
At minimum, Smart Format applies:
- Punctuation
- Paragraphs (for whitespace delineated languages, such as English or Spanish)
Smart Format has the broadest support for English-language models. In English, Smart Format is capable of formatting things like dates, times, currency amounts, phone numbers, emails, and URLs.
On non-English models, Smart Format will apply all available formatters for that language. This will always include punctuation and paragraphs, with numerals support also available for select languages.
Enable Feature
To enable Smart Formatting, when you call Deepgram’s API, add a smart_format
parameter in the query string and set it to true
:
smart_format=true
Smart Format enables Deepgram’s Punctuation feature. If you’ve set smart_format=true
, no need to also set punctuate=true
.
To transcribe audio from a file on your computer, run the following cURL command in a terminal or your favorite API client.
Replace YOUR_DEEPGRAM_API_KEY
with your Deepgram API Key.
Results
Once applied, results will appear in the transcript.
Streaming Finalization Behavior
When using Smart Format with streaming audio, Deepgram will attempt to format entities as they are spoken. For entities that seem like they may be incomplete, our system will:
- Wait until the speaker continues to non-entity speech, OR
- Finalize the transcript after 3 seconds of silence
- Format the entity based on the available audio at that point
This approach ensures transcripts are returned promptly while maintaining formatting precision.
For more control over finalization timing:
- Send a
Finalize
message to end transcription earlier than the 3-second threshold - Use the
no_delay
parameter (see below)
Using No Delay
Setting no_delay=true
forces immediate finalization of streaming transcripts without waiting for entity completion. NOTE: This will result in skipping formatting altogether in many cases.
To override the default waiting behavior and return results immediately, add the parameter no_delay=true
to your streaming API request:
Replace YOUR_DEEPGRAM_API_KEY
with your Deepgram API Key.
Additional Formatters
These formatters are not included in Smart Formatting but may be enabled individually.
Measurements
Read the Measurements documentation.
Dictation
Read the Dictation documentation.