> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corti.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Formatting

> Learn about how Corti speech to text supports formatting of dictation text output

Speech to text can be used to create a verbatim transcript of the audio; however, some content is not documented in the same manner as it is verbalized. The `formatting` features provide control over how key information should for represented in the textual output.

<Card title="Feature availability:">
  <Columns cols={3}>
    <Card icon="circle-check" horizontal href="/stt/transcribe">
      /transcribe
    </Card>

    <Card icon="circle-check" horizontal href="/stt/streams">
      /streams
    </Card>

    <Card icon="circle-check" horizontal href="/stt/transcripts">
      /transcripts
    </Card>
  </Columns>

  <br />

  <Tip>
    Notes:

    * Transcript output is formatted according to the <Icon icon="circle-check" /> default options listed below for both `transcribe` and `streams` endpoints.
    * Add formatting configuration to `transcribe` connections to change output preferences - see details [here](/api-reference/transcribe#param-formatting).
    * Formatting configuration is not supported on `streams` connections.
  </Tip>
</Card>

***

## Formatting Options

Use the following values within the `formatting` configuration object to define preferences:

| Parameter | Default option | Alternative options |
| - | - | - |
| `dates` | `locale:long` | `locale:medium`, `locale:short`, `iso`, `as_dictated` |
| `times` | `locale` | `h24`, `h12` |
| `numbers` | `numerals_above_nine` | `numerals`, `as_dictated` |
| `measurements` | `abbreviated` | `as_dictated` |
| `numericRanges` | `numerals` | `as_dictated` |
| `ordinals` | `numerals_above_nine` | `numerals`, `as_dictated` |

<Accordion title="Example formatting configuration">
  ```json theme={null}
      "formatting": {
          "dates": "locale:long",
          "times": "locale",
          "numbers": "numerals_above_nine",
          "measurements": "abbreviated",
          "numericRanges": "numerals",
          "ordinals": "numerals_above_nine"
      }
  ```
</Accordion>

<br />

<Note>
  The tables below show available options for each formatting configuration parameter:

  * The examples represent how output would be formatted given the spoken input shown for the `as_dictated` option.
  * The `Default`<Icon icon="circle-check" /> represents server default values, indicating output format when **no** value is defined for a given formatting parameter.
  * The Date and Time options indicated as `locale` will format according to local standards, dependent on the [`primaryLanguage`](/stt/languages) defined in the configuration.
</Note>

### Dates

Date formatting allows for standardization of date output when dictating the year, month, and/or day. In the table below, the examples for each option indicate how the date would be formatted for spoken form showed in the `as_dictated` option.

<Tabs>
  <Tab title="en, en-US">
    | Option | Format | Example | Default |
    | :- | :- | :- | :-: |
    | `as_dictated` | As dictated | "February third twenty twenty five"<br />"February third"<br />"February twenty twenty five" | |
    | `locale:long` | Long date | "February 3, 2025"<br />"February 3"<br />"February 2025" | <Icon icon="circle-check" /> |
    | `locale:medium` | Medium date | "Feb 3, 2025"<br />"Feb 3"<br />"Feb 2025" | |
    | `locale:short` | Short date | "2/3/2025"<br />"2/3"<br />"2/2025" | |
    | `iso` | ISO 8601 | "2025-02-03"<br />"02-03"<br />"2025-02" | |
  </Tab>

  <Tab title="en-GB">
    | Option | Format | Example | Default |
    | :- | :- | :- | :-: |
    | `as_dictated` | As dictated | "February third twenty twenty five"<br />"February third"<br />"February twenty twenty five" | |
    | `locale:long` | Long date | "3 February 2025"<br />"3 February"<br />"February 2025" | <Icon icon="circle-check" /> |
    | `locale:medium` | Medium date | "3 Feb 2025"<br />"3 Feb"<br />"Feb 2025" | |
    | `locale:short` | Short date | "03/02/2025"<br />"03/02"<br />"02/2025" | |
    | `iso` | ISO 8601 | "2025-02-03"<br />"02-03"<br />"2025-02" | |
  </Tab>

  <Tab title="da">
    | Option | Format | Example | Default |
    | :- | :- | :- | :-: |
    | `as_dictated` | As dictated | "den tredje februar tyve femogtyve"<br />"den tredje februar"<br />"februar tyve femogtyve" | |
    | `locale:long` | Long date | "3. februar 2025"<br />"3. februar"<br />"februar 2025" | <Icon icon="circle-check" /> |
    | `locale:medium` | Medium date | "3. feb 2025"<br />"3. feb"<br />"feb 2025" | |
    | `locale:short` | Short date | "03.02.2025"<br />"03.02"<br />"02.2025" | |
    | `iso` | ISO 8601 | "2025-02-03"<br />"02-03"<br />"2025-02" | |
  </Tab>

  <Tab title="de, de-CH">
    | Option | Format | Example | Default |
    | :- | :- | :- | :-: |
    | `as_dictated` | As dictated | "dritte Februar zwanzig fünfundzwanzig"<br />"dritte Februar"<br />"Februar zwanzig fünfundzwanzig" | |
    | `locale:long` | Long date | "3. Februar 2025"<br />"3. Februar"<br />"Februar 2025" | <Icon icon="circle-check" /> |
    | `locale:medium` | Medium date | "3. Feb 2025"<br />"3. Feb"<br />"Feb 2025" | |
    | `locale:short` | Short date | "03.02.2025"<br />"03.02"<br />"02.2025" | |
    | `iso` | ISO 8601 | "2025-02-03"<br />"02-03"<br />"2025-02" | |
  </Tab>

  <Tab title="fr">
    | Option | Format | Example | Default |
    | :- | :- | :- | :-: |
    | `as_dictated` | As dictated | "le trois février deux mille vingt-cinq"<br />"le trois février"<br />"février deux mille vingt-cinq" | |
    | `locale:long` | Long date | "3 février 2025"<br />"3 février"<br />"février 2025" | <Icon icon="circle-check" /> |
    | `locale:medium` | Medium date | "3 fév 2025"<br />"3 fév"<br />"fév 2025" | |
    | `locale:short` | Short date | "03/02/2025"<br />"03/02<br />"02/2025" | |
    | `iso` | ISO 8601 | "2025-02-03"<br />"02-03"<br />"2025-02" | |
  </Tab>
</Tabs>

<Accordion title="Legacy values">
  The Date parameter options defined above are the go-forward standard; however, the following legacy date formatting parameter values remain supported by the API:

  | Option | Format | Example |
  | - | - | - |
  | `as_dictated` | Preserve spoken phrasing | ”February third twenty twenty five” |
  | `long_text` | Long date | ”3 February 2025” |
  | `eu_slash` | Short date (EU) | “03/02/2025” |
  | `us_slash` | Short date (US) | “02/03/2025” |
  | `iso_compact` | ISO (basic, without separators) | “20250302” |
</Accordion>

### Times

<Tabs>
  <Tab title="en, en-US">
    | Option | Format | Example | Default |
    | :- | :- | :- | :-: |
    | `as_dictated` | As dictated | "eight o'clock"<br />"half past eight"<br />"eight thirty six PM" | |
    | `locale` | 12-hour | "8:00 AM"<br />"8:30 AM"<br />"8:36 PM" | <Icon icon="circle-check" /> |
    | `h24` | 24-hour | "08:00"<br />"08:30"<br />"20:36" | |
    | `h12` | 12-hour | "8:00 AM"<br />"8:30 AM"<br />"8:36 PM" | |
  </Tab>

  <Tab title="en-GB">
    | Option | Format | Example | Default |
    | :- | :- | :- | :-: |
    | `as_dictated` | As dictated | "eight o'clock"<br />"half past eight"<br />"eight thirty six PM" | |
    | `locale` | 24-hour | "08:00"<br />"08:30"<br />"20:36" | <Icon icon="circle-check" /> |
    | `h24` | 24-hour | "08:00"<br />"08:30"<br />"20:36" | |
    | `h12` | 12-hour | "8:00 AM"<br />"8:30 AM"<br />"8:36 PM" | |
  </Tab>

  <Tab title="da">
    | Option | Format | Example | Default |
    | :- | :- | :- | :-: |
    | `as_dictated` | As dictated | "klokken otte<br />"klokken halv ni"<br />"klokken tyve seksogtredive" | |
    | `locale` | 24-hour | "08:00"<br />"08:30"<br />"20:36" | <Icon icon="circle-check" /> |
    | `h24` | 24-hour | "08:00"<br />"08:30"<br />"20:36" | |
    | `h12` | 12-hour | "8:00 AM"<br />"8:30 AM"<br />"8:36 PM" | |
  </Tab>

  <Tab title="de, de-CH">
    | Option | Format | Example | Default |
    | :- | :- | :- | :-: |
    | `as_dictated` | As dictated | "acht Uhr"<br />"halb neun"<br />"zwanzig Uhr sechsunddreißig" | |
    | `locale` | 24-hour | "08:00"<br />"08:30"<br />"20:36" | <Icon icon="circle-check" /> |
    | `h24` | 24-hour | "08:00"<br />"08:30"<br />"20:36" | |
    | `h12` | 12-hour | "8:00 AM"<br />"8:30 AM"<br />"8:36 PM" | |
  </Tab>

  <Tab title="fr">
    | Option | Format | Example | Default |
    | :- | :- | :- | :-: |
    | `as_dictated` | As dictated | "huit heures"<br />"huit heures et demie"<br />"vingt heures trente-six" | |
    | `locale` | 24-h | "8h00"<br />"8h30"<br />"20h36" | <Icon icon="circle-check" /> |
    | `h24` | 24-hour | "08:00"<br />"08:30"<br />"20:36" | |
    | `h12` | 12-hour | "8:00 AM"<br />"8:30 AM"<br />"8:36 PM" | |
  </Tab>
</Tabs>

### Numbers

| Option | Format | Example | Default |
| :- | :- | :- | :-: |
| `as_dictated` | As dictated | "one, two... nine, ten, eleven | |
| `numerals_above_nine` | Single digit as words, multi-digit as number | "One, two... nine, 10, 11" | <Icon icon="circle-check" /> |
| `numerals` | Numbers only | "1, 2... 9, 10, 11" | |

<Info>
  Notes on numbers formatting and dictation:

  * `numerals_above_nine` applies to integers: When using this value, all whole numbers less than ten will be formatted as words, and all decimal numbers will be formatted as numerals. Use `as_dictated` for decimal numbers to be output as words instead of numerals.
  * Thousands and decimal separator style is applied automatically based on `primaryLanguage` locale. For example,
    * `en`, `en-US`, and `en-GB` use `","` thousands separator and `"."` decimal
    * `da`, `de`, and `fr` use `"."` thousands separator and `","` decimal
  * A maximum of three decimal places is supported at this time. Be sure to dictate the numbers after decimal individually. For example, `"one point two five"` (not "one point twenty-five") will return `"1.25"`.
  * Use the following words for dictation of decimals:
    * Danish: `"komma"`
    * English: `"point"`
    * French: `"virgule"` or `"point"`
    * German: `"komma"` or `"punkt"`
</Info>

### Units and Measurements

| Option | Format | Example | Default |
| :- | :- | :- | :-: |
| `as_dictated` | As dictated | "Millimeters, centimeters, inches; Blood pressure one twenty over eighty" | |
| `abbreviated` | Abbreviated | "mm, cm, in; BP 120/80" | <Icon icon="circle-check" /> |

<Accordion title="List of supported units">
  * Celsius (°C)
  * Fahrenheit (°F)
  * Kelvin (K)
  * Inch (in)
  * Meter (m)
  * Centimeter (cm)
  * Millimeter (mm)
  * Nanometer (nm)
  * Kilometer (km)
  * Square meters (m²)
  * Square centimeters (cm²)
  * Gram (g)
  * Kilogram (kg)
  * Milligram (mg)
  * Microgram (mcg)
  * Nanogram (ng)
  * Pound (lb)
  * Ounce (oz)
  * Liter (L)
  * Hectoliter (hL)
  * Deciliter (dL)
  * Centiliter (cL)
  * Milliliter (mL)
  * Picoliter (pL)
  * International unit (IU)
  * Milliequivalent (mEq)
  * Mole (mol)
  * Millimole (mmol)
</Accordion>

<Accordion title="List of supported measurements">
  * Blood pressure (systole/diastole)
  * Beats per minute (BPM)
  * Respirations per minute (RPM)
  * Body mass index (BMI)
  * Percent (%)
  * Millimeters of mercury (mmHg)
  * Centimeters of water (cmH2O)
  * Per minute (#/min)
  * Milliliters per minute (mL/min)
  * Milligram per kilogram (mg/kg)
  * Grams per deciliter (g/dL)
  * Milligram per liter (mg/L)
  * Milligram per deciliter (mg/dL)
  * Nanogram per milliliter (ng/mL)
  * Globules per deciliter (g/dL)
  * Units per liter (U/L)
  * Units per milliliter (U/mL)
  * Milliequivalents per liter (mEq/L)
  * Millimoles per liter (mmol/L)
  * Pack years (pack-yrs)
  * “times two” -> “x2” (1 through 10)
  * “two plus” -> “2+” (1 through 10)
</Accordion>

<Accordion title="Vertebrae formatting">
  **Individual vertebrae** (spoken form "letter number")

  * C1, C2, C3, C4, C5, C6, C7
  * T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
  * L1, L2, L3, L4, L5
  * S1, S2, S3, S4, S5

  **Sequential, adjacent vertebrae** (spoken form "letter number letter number")

  * C1–C2, C2–C3, C3–C4, C4–C5, C5–C6, C6–C7
  * C7–T1
  * T1–T2, T2–T3, T3–T4, T4–T5, T5–T6, T6–T7, T7–T8, T8–T9, T9–T10, T10–T11, T11–T12
  * T12–L1
  * L1–L2, L2–L3, L3–L4, L4–L5
  * L5–S1
  * S1–S2, S2–S3, S3–S4, S4–S5

  <Note>German vertebrae abbreviations "HWK", "BWK", "LWK", and "SWK" are also supported</Note>
</Accordion>

<Accordion title="Staging formatting">
  Staging for cancer, chronic kidney disease, etc. ()"spoken form" -> `written form`)

  * "stage zero" -> `Stage 0`
  * "stage one" -> `Stage I`
  * "stage one A" -> `Stage IA`
  * "stage one B" -> `Stage IB`
  * "stage one C" -> `Stage IC`
  * "stage two" -> `Stage II`
  * "stage two A" -> `Stage IIA`
  * "stage two B" -> `Stage IIB`
  * "stage two C" -> `Stage IIC`
  * "stage three" -> `Stage III`
  * "stage three A" -> `Stage IIIA`
  * "stage three B" -> `Stage IIIB`
  * "stage three C" -> `Stage IIIC`
  * "stage four" -> `Stage IV`
  * "stage four A" -> `Stage IVA`
  * "stage four B" -> `Stage IVB`
  * "stage four C" -> `Stage IVC`
</Accordion>

<Tip>
  See [examples](/stt/formatting#examples) below for more information on how **numbers** and **measurements/units** configurations work together
</Tip>

### Numeric Ranges

| Option | Format | Example | Default |
| :- | :- | :- | :-: |
| `as_dictated` | As dictated | "one to ten"<br />"six out of ten" | |
| `numerals` | As numbers | "1-10"<br />"6/10" | <Icon icon="circle-check" /> |

<Info>
  Note: Numeric range formatting supported for integers only (not numbers with decimals).
</Info>

### Ordinals

| Option | Format | Example | Default |
| :- | :- | :- | :-: |
| `as_dictated` | As dictated | "First, second, third" | |
| `numerals_above_nine` | First through ninth as words, multi-digit as number | "First, second ... ninth, 10th, 11th, 12th" | <Icon icon="circle-check" /> |
| `numerals` | Abbreviated | "1st, 2nd, 3rd" | |

***

## Examples

The following examples show expected output given different combinations of formatting configurations.

<AccordionGroup>
  <Accordion title="Date examples">
    > "the injury was sustained on fifth of February twenty twenty six and surgical repair was completed on February tenth two thousand twenty six"

    | Dates | Expected Output | Default |
    | - | - | :-: |
    | `locale:long` | "the injury was sustained on February 5, 2026 and surgical repair was completed on February 10, 2026" | <Icon icon="circle-check" /> |
    | `locale:medium` | "the injury was sustained on Feb 5, 2026 and surgical repair was completed on Feb 10, 2026" | |
    | `locale:short` | "the injury was sustained on 2/5/2026 and surgical repair was completed on 2/10/2026" | |
    | `as_dictated` | "the injury was sustained on fifth of February twenty twenty six and surgical repair was completed on February tenth two thousand twenty six" | |

    <Info>Notice that, while using `locale` parameters, the date output is normalized for two different spoken form patterns in the example text</Info>

    > "zero two zero three twenty twenty five"

    | Dates | Expected Output | Default |
    | - | - | :-: |
    | `locale:long` | "zero two zero three 20 25" /> | |
    | `locale:medium` | "zero two zero three 20 25" | |
    | `locale:short` | "zero two zero three 20 25" | |
    | `as_dictated` | "zero two zero three 20 25" | |

    <Info>
      Dictation of numbers to be shown in "short" date form is not supported. In this example the expected output is based on default `numbers:numerals_above_nine` formatting.

      For text to be formatted as a date, dictate the month, day, year pattern as shown [above](/stt/formatting#dates).
    </Info>
  </Accordion>

  <Accordion title="Numbers and measurements: Single-digit numbers">
    > "the child had one doctor visit today and is one meter tall"

    | Numbers | Measurements | Expected Output | Default |
    | - | - | - | :-: |
    | `numerals_above_nine` | `abbreviated` | "the child had one doctor visit today and is 1 m tall" | <Icon icon="circle-check" /> |
    | `numerals_above_nine` | `as_dictated` | "the child had one doctor visit today and is one meter tall" | |
    | `numerals` | `abbreviated` | "the child had 1 doctor visit today and is 1 m tall" | |
    | `numerals` | `as_dictated` | "the child had 1 doctor visit today and is one meter tall" | |
    | `as_dictated` | `abbreviated` | "the child had one doctor visit today and is 1 m tall" | |
    | `as_dictated` | `as_dictated` | "the child had one doctor visit today and is one meter tall" | |
  </Accordion>

  <Accordion title="Numbers and measurements: Hundred numbers">
    > "one eighty centimeters"

    | Numbers | Measurements | Expected Output | Default |
    | - | - | - | :-: |
    | `numerals_above_nine` | `abbreviated` | "180 cm" | <Icon icon="circle-check" /> |
    | `numerals_above_nine` | `as_dictated` | "180 centimeters" | |
    | `numerals` | `abbreviated` | "180 cm" | |
    | `numerals` | `as_dictated` | "180 centimeters" | |
    | `as_dictated` | `abbreviated` | "one eighty cm" | |
    | `as_dictated` | `as_dictated` | "one eighty centimeters" | |

    > "one hundred eighty centimeters"

    | Numbers | Measurements | Expected Output | Default |
    | - | - | - | :-: |
    | `numerals_above_nine` | `abbreviated` | "180 cm" | <Icon icon="circle-check" /> |
    | `numerals_above_nine` | `as_dictated` | "180 centimeters" | |
    | `numerals` | `abbreviated` | "180 cm" | |
    | `numerals` | `as_dictated` | "180 centimeters" | |
    | `as_dictated` | `abbreviated` | "one hundred eighty cm" | |
    | `as_dictated` | `as_dictated` | "one hundred eighty centimeters" | |

    <Info>Notice that both forms of "hundreds" are normalized using `numerals_above_nine` and `numerals`</Info>
  </Accordion>

  <Accordion title="Numbers and measurements: Percentages">
    > "ninety eight point two percent"

    | Numbers | Measurements | Expected Output | Default |
    | - | - | - | :-: |
    | `numerals_above_nine` | `abbreviated` | "98.2%" | <Icon icon="circle-check" /> |
    | `numerals_above_nine` | `as_dictated` | "98.2 percent" | |
    | `as_dictated` | `abbreviated` | "ninety-eight point two%" | |
    | `as_dictated` | `as_dictated` | "ninety-eight point two percent" | |
  </Accordion>

  <Accordion title="Ordinal examples">
    > "First time he tried he came in tenth place"

    | Ordinal | Expected Output | Default |
    | - | - | :-: |
    | `numerals_above_nine` | "First time he tried he came in 10th place" | <Icon icon="circle-check" /> |
    | `numerals` | "1st time he tried he came in 10th place" | |
    | `as_dictated` | "First time he tried he came in tenth place" | |
  </Accordion>

  <Accordion title="Numeric ranges examples">
    > "she vomited two to three times today"

    | numericRanges | numbers | Expected Output | Default | |
    | - | - | - | :-: | - |
    | `numerals` | `numerals_above_nine` | "she vomited 2-3 times today" | <Icon icon="circle-check" /> | |
    | `numerals` | `numbers` | "she vomited 2-3 times today" | | |
    | `numerals` | `as_dictated` | "she vomited 2-3 times today" | | |
    | `as_dictated` | `numerals_above_nine` | "she vomited two to three times today" | | |
    | `as_dictated` | `numbers` | "she vomited 2 to 3 times today" | | |
    | `as_dictated` | `as_dictated` | "she vomited two to three times today" | | |

    > “one point five to two point five”

    | numericRanges | numbers | Expected Output | Default | |
    | - | - | - | :-: | - |
    | `numerals` | `numerals_above_nine` | "1.5 to 2.5" | <Icon icon="circle-check" /> | |
    | `numerals` | `numbers` | "1.5 to 2.5" | | |
    | `numerals` | `as_dictated` | "one point five to two point five" | | |
    | `as_dictated` | `numerals_above_nine` | "1.5 to 2.5" | | |
    | `as_dictated` | `numbers` | "1.5 to 2.5" | | |
    | `as_dictated` | `as_dictated` | "one point five to two point five" | | |

    > "The pain is a six out of ten"

    | numericRanges | numbers | Expected Output | Default | |
    | - | - | - | :-: | - |
    | `numerals` | `numerals_above_nine` | "The pain is a 6/10" | <Icon icon="circle-check" /> | |
    | `numerals` | `numbers` | "The pain is a 6/10" | | |
    | `numerals` | `as_dictated` | "The pain is a 6/10" | | |
    | `as_dictated` | `numerals_above_nine` | "The pain is a six out of 10" | | |
    | `as_dictated` | `numbers` | "The pain is a 6 out of 10" | | |
    | `as_dictated` | `as_dictated` | "The pain is a six out of ten" | | |
  </Accordion>
</AccordionGroup>

<br />

<Note>While these examples are based on `primaryLanguage:en`, the same logic applies for other [languages with formatting support](/stt/transcribe#feature-availability-per-language). Please [contact us](mailto:help@corti.ai) for further assistance with formatting configuration.</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.