> ## 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.

# Audio Format

> Learn about file types and codecs supported by the Corti API

Audio files must be encoded and packaged in formats that balance quality, size, and compatibility. Consistent encoding parameters ensure accurate recognition and low latency across both synchronous and asynchronous workflows. The API supports both containerized audio formats (such as Ogg and WebM) as well as raw PCM audio streams.

<Tip>
  See **Allowable MIME types** below for supported `audioFormat` configuration values.
</Tip>

***

## Supported Audio Formats

### Container-based Audio

The following audio containers and their associated codecs are supported by the Corti API:

| Container | Supported Encodings | Comments                                      |
| :-------- | :------------------ | :-------------------------------------------- |
| Ogg       | Opus, Vorbis        | Excellent quality at low bandwidth            |
| WebM      | Opus, Vorbis        | Excellent quality at low bandwidth            |
| MP4/M4A   | AAC, MP3            | Compression may degrade transcription quality |
| MP3       | MP3                 | Compression may degrade transcription quality |

<Accordion title="Allowable MIME types for streamed audio">
  <Note>This parameter is optional but recommended</Note>

  The `audioFormat` parameter can be defined in `transcribe` and `streams` configuration to declare the audio format the speech to text system should expect in the incoming audio stream.

  | Format    | Accepted MIME types                      |
  | --------- | ---------------------------------------- |
  | Ogg       | `audio/ogg`                              |
  | WebM      | `audio/webm`                             |
  | Opus      | `audio/opus`                             |
  | Vorbis    | `audio/vorbis`                           |
  | MP3       | `audio/mpeg`, `audio/mp3`, `audio/mpeg3` |
  | FLAC      | `audio/flac`                             |
  | M4A / AAC | `audio/mp4`, `audio/m4a`                 |

  For container formats (`audio/ogg`, `audio/webm`), you can optionally specify a codec parameter. Allowed codecs are `opus` and `vorbis`.

  Examples:

  ```
  audio/ogg; codecs=opus
  audio/webm; codecs=opus
  audio/ogg; codecs=vorbis
  ```

  <Callout icon="circle-check" color="green">
    WAV files are supported for upload to the `/recordings` endpoint, but raw PCM audio should follow approach outlined below.
  </Callout>
</Accordion>

### Raw Audio

Raw pulse code modulation (PCM) audio is supported when rate, channels, and bits parameters are defined in configuration.

<Accordion title="Allowable MIME types for raw audio configuration">
  <Note>This parameter is required for use with raw PCM audio</Note>

  The `audioFormat` parameter can be defined in `transcribe` and `streams` configuration to declare the audio format the speech to text system should expect in the incoming audio stream.

  | Format  | Accepted MIME types |
  | ------- | ------------------- |
  | Raw PCM | `audio/pcm`         |

  For raw audio (`audio/pcm`), the parameters `rate`, `channels`, and `bits` must be defined.

  | Parameter | Type | Required   | Possible Values          |
  | --------- | ---- | ---------- | ------------------------ |
  | rate      | int  | `required` | `8000-48000`             |
  | channels  | int  | `required` | `1-8`                    |
  | bits      | int  | `required` | `8`, `16`, `24`, or `32` |
  | endian    | str  | `optional` | `little`, `big`          |
  | encoding  | str  | `optional` | `sint`, `uint`           |

  Examples:

  ```
  audio/pcm; rate=16000; channels=1; bits=16
  audio/pcm; rate=44100; channels=2; bits=32
  audio/pcm; rate=8000; channels=1; bits=8
  audio/pcm; rate=48000; channels=2; bits=24
  audio/pcm; rate=16000; channels=1; bits=16; endian=little; encoding=sint
  ```

  <Callout icon="circle-check" color="green">
    When using Raw PCM audio, 16-bit little-endian mono at 16 kHz is recommended.
  </Callout>
</Accordion>

***

## Audio streaming recommendations

|                                          |                                                                                                                                                                                                                                                        |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Sample rate 16 kHz**                   | Captures the full range of human speech frequencies, with **higher rates offering negligible recognition benefit** but increasing computational cost                                                                                                   |
| **Audio chunk size of 250 milliseconds** | Optimal speed to support both dictation and AI scribing workflows, with **sending much smaller chunks more frequently can degrade recognition accuracy** without improving latency                                                                     |
| **Stream at real-time speed**            | Audio should be streamed at or near real-time speed. **Streaming audio faster than real time is not recommended** and may cause buffering issues, degraded results, or stream termination. Pace audio chunks according to their actual audio duration. |

## Additional Notes

* Enabling diarization is typically only required on mono audio.
* Mono audio with diarization disabled will produce transcripts with one channel (-1), whereas diarized-mono transcripts will have two channels (0, 1).
* For multichannel audio, each channel should capture only one speaker’s microphone feed in order to avoid cross-talk or echo between channels.
* A maximum of 8 audio channels are supported in a given audio stream or recording.
* Keep all channels aligned in time; do not trim or delay audio streams independently.
* Ensure each channel contains only one participant’s feed to avoid duplicated transcript content.
* Recommended capture format is 16-bit / 16 kHz PCM

<br />

<Note>
  Please [contact us](mailto:help@corti.ai) if you need more information about supported audio formats or are having issues processing an audio file.

  See also:

  * [Recommended microphones](/stt/microphones)
  * [Audio configuration best practices](/stt/best-practices-audio)
  * [Recording best practices](/stt/best-practices-recording)
</Note>
