For AI agents: a documentation index is available at /llms.txt. Markdown versions of all pages can be requested by appending `.md` to the URL, or by setting the `Accept` header to `text/markdown`.
Skip to main content
Speech to TextFeatures

Entity detection

Smart formatting converts spoken values into their written form by default. Entity detection additionally exposes the structure behind each conversion: which class of entity was detected, and the individual words it was made from as spoken and as written.

Availability​

Entity detection is available with the Standard and Enhanced models for pre-recorded and streaming transcription, and with Linden 1 for agent STT. See Feature availability.

Entity metadata appears in JSON output only. SRT and TXT output are unchanged.

Enable entity detection​

Add enable_entities to your configuration:

{
"type": "transcription",
"transcription_config": {
"model": "enhanced",
"language": "en",
"enable_entities": true
}
}

By default, enable_entities is false. When it is false, the words appear individually in the output.

Entity output​

With enable_entities set to true, the JSON output includes:

  • A type field with the value entity for formatted numeric entities
  • The full written form in the content section, including any spaces or symbols
  • An entity_class field describing how the entity was formatted
  • Start and end times spanning all words in the entity
  • Two additional representations: spoken_form, the original words as spoken with individual timing and confidence, and written_form, the formatted words separated individually

This is a transcript with enable_entities set to true:

{
"results": [
{
"alternatives": [
{
"confidence": 0.99,
"content": "17th of January 2022",
"language": "en",
"speaker": "UU"
}
],
"end_time": 3.14,
"entity_class": "date",
"spoken_form": [
{
"alternatives": [
{
"confidence": 1.0,
"content": "seventeenth",
"language": "en",
"speaker": "UU"
}
],
"end_time": 1.41,
"start_time": 0.72,
"type": "word"
}
// Additional spoken words omitted for brevity
],
"start_time": 0.72,
"type": "entity",
"written_form": [
{
"alternatives": [
{
"confidence": 0.99,
"content": "17th",
"language": "en",
"speaker": "UU"
}
],
"end_time": 1.33,
"start_time": 0.72,
"type": "word"
}
// Additional written words omitted for brevity
]
}
]
}

Entity classes​

Formatting rules are applied based on the class of entity detected.

Numbers and quantities:

Entity classDescriptionSpoken exampleWritten example
cardinalWhole numbers (in English, numbers ≤10 remain as words)"nineteen"19
decimalNumbers with decimal point"eighteen point one two"18.12
fractionFractions (complex ones use n/d format)"three sixteenths"3/16
ordinalPosition numbers with suffix"forty second"42nd
moneyCurrency values with symbol"twenty dollars"$20
percentagePercentages with % symbol"two hundred percent"200%
measurementUnits with abbreviations"ten kilometers per second"10 km/s

Dates, identifiers, and contact details:

Entity classDescriptionSpoken exampleWritten example
dateCalendar dates and years"fifteenth of January twenty twenty two"15th of January 2022
timeClock times with separators"eleven forty a m"11:40 a.m.
spanRanges (x to y format)"one hundred to two hundred million pounds"100 to £200 million
alphanumAlphanumeric sequences (3+ characters)"a z triple seven five four"AZ77754
credit cardPayment card number sequences"one one one one..."1111 2222 3333 4444
telephonePhone number formatting"five five five..."(555) 429-2228
electronicEmail and web addresses"bob at speechmatics dot com"bob@speechmatics.com

Entity classes are chosen based on context, so occasionally a value might be classified differently than expected. For example, "2001" could be a cardinal number or a date.