Skip to main content
This page contains details about the models compatible with the current version of the SDK.
All models are language-agnostic and can be used for any language, as they operate on the acoustic properties of the audio signal rather than processing its linguistic content.All models can also be used with any sample rate using our SDK. You can learn more about that here.

Quail

Speech Enhancement for Voice AI Quail is a general-purpose speech enhancement model. It works in any setting, single- or multi-speaker and near- or far-field, suppressing background noise while preserving all audible speech. Unlike Quail Voice Focus, it does not single out a primary speaker, making it the right choice when every voice should be kept, such as speakerphone setups, meeting rooms, or situations with multiple participants spread across a space.
  • ID: quail-l-16khz
  • File size: 35 MB
  • Window length: 10 ms
  • Optimal sample rate: 16 kHz
  • Optimal block size: 160
  • Minimal algorithmic delay: 30 ms
  • ID: quail-l-8khz
  • File size: 33.4 MB
  • Window length: 10 ms
  • Native sample rate: 8 kHz
  • Native block size: 80
  • Minimal algorithmic delay: 30 ms
  • ID: quail-s-16khz
  • File size: 8.88 MB
  • Window length: 10 ms
  • Native sample rate: 16 kHz
  • Native block size: 160
  • Minimal algorithmic delay: 30 ms
  • ID: quail-s-8khz
  • File size: 8.43 MB
  • Window length: 10 ms
  • Native sample rate: 8 kHz
  • Native block size: 80
  • Minimal algorithmic delay: 30 ms

Quail Voice Focus

Primary Speaker Isolation for Voice AI Quail Voice Focus isolates the primary speaker. It is designed for settings where one or more speakers may be present but the application targets a single speaker, suppressing interfering speech, residual echo, and background noise.
  • ID: quail-vf-2.2-l-16khz
  • File size: 20 MB
  • Window length: 15 ms
  • Optimal sample rate: 16 kHz
  • Optimal block size: 240
  • Minimal algorithmic delay: 30 ms
  • ID: quail-vf-2.2-s-16khz
  • File size: 5.04 MB
  • Window length: 15 ms
  • Optimal sample rate: 16 kHz
  • Optimal block size: 240
  • Minimal algorithmic delay: 30 ms
  • ID: quail-vf-2.1-l-16khz
  • File size: 20 MB
  • Window length: 15 ms
  • Optimal sample rate: 16 kHz
  • Optimal block size: 240
  • Minimal algorithmic delay: 30 ms
  • ID: quail-vf-2.1-s-16khz
  • File size: 5 MB
  • Window length: 15 ms
  • Optimal sample rate: 16 kHz
  • Optimal block size: 240
  • Minimal algorithmic delay: 30 ms

VAD

Noise-robust Voice Activity Detection VAD is a general-purpose and noise-robust voice activity detection model. It detects all audible speech in any setting, single- or multi-speaker and near- or far-field, and is robust to background noise. Unlike VAD Voice Focus, it does not single out a primary speaker, making it the right choice when activity from any speaker should be detected.
  • ID: vad-2.1-xxs-16khz
  • File size: 634 KB
  • Window length: 15 ms
  • Optimal sample rate: 16 kHz
  • Optimal block size: 240
  • Minimal algorithmic delay: 30 ms
VAD 2.1 supersedes Quail VAD 2.0, which was published as quail-vad-2.0-xxs-16khz. See Renamed Models.

VAD Voice Focus

Primary Speaker Voice Activity Detection for Voice AI VAD Voice Focus detects voice activity for the primary speaker only. It is designed for settings where one or more speakers may be present but the application targets a single speaker, ignoring interfering speech and background noise so the VAD fires only on the target speaker.
  • ID: vad-vf-2.0-s-16khz
  • File size: 1.44 MB
  • Window length: 15 ms
  • Optimal sample rate: 16 kHz
  • Optimal block size: 240
  • Minimal algorithmic delay: 30 ms
This model was previously published as quail-vf-vad-2.0-s-16khz. See Renamed Models.

Tyto

Audio Insight for Voice AI Tyto is an audio intelligence model that predicts whether an audio signal is likely to cause failures in the downstream models that consume it (VAD, turn-taking, STT and speech-to-speech).
  • ID: tyto-l-16khz
  • File size: 18.9 MB
  • Window length: 5 s
  • Native sample rate: 16 kHz

Rook

Speech Enhancement for Human Intelligibility Rook reduces background noise and reverberation while preserving speech naturalness and intelligibility for human perception.
  • ID: rook-l-48khz
  • File size: 35.1 MB
  • Window length: 10 ms
  • Native sample rate: 48 kHz
  • Native block size: 480
  • Minimal algorithmic delay: 30 ms
  • ID: rook-l-16khz
  • File size: 35 MB
  • Window length: 10 ms
  • Native sample rate: 16 kHz
  • Native block size: 160
  • Minimal algorithmic delay: 30 ms
  • ID: rook-l-8khz
  • File size: 33.4 MB
  • Window length: 10 ms
  • Native sample rate: 8 kHz
  • Native block size: 80
  • Minimal algorithmic delay: 30 ms
  • ID: rook-s-48khz
  • File size: 8.96 MB
  • Window length: 10 ms
  • Native sample rate: 48 kHz
  • Native block size: 480
  • Minimal algorithmic delay: 30 ms
  • ID: rook-s-16khz
  • File size: 8.88 MB
  • Window length: 10 ms
  • Native sample rate: 16 kHz
  • Native block size: 160
  • Minimal algorithmic delay: 30 ms
  • ID: rook-s-8khz
  • File size: 8.43 MB
  • Window length: 10 ms
  • Native sample rate: 8 kHz
  • Native block size: 80
  • Minimal algorithmic delay: 30 ms

Loading and reusing models

A loaded model is its own object, separate from the processor, VAD, or analyzer that runs it. Each model type belongs to exactly one kind of object, and a mismatch fails when you create that object rather than when you process audio:

One model, many streams

The same model handle can be passed to as many processors, VADs, or analyzers as you need. Each one is fully independent, holds the state of exactly one stream, and shares the underlying model data internally. Model weights are loaded once, not once per stream:
Loading the same model file once per stream multiplies memory usage for no benefit. Load it once and create one processing object per stream.
Model data is memory-mapped from the file rather than copied into your process, so do not modify or delete a model file while it is loaded. Objects created from a model keep the underlying data alive through reference counting, so the model handle can be released first. In C this means aic_model_destroy and the matching *_destroy calls may run in any order.

Loading from memory

Some bindings can load a model from an in-memory buffer instead of a file, which is useful for embedding a model in your binary or fetching it over your own transport: An unaligned buffer is rejected with AIC_ERROR_CODE_MODEL_DATA_UNALIGNED (ModelDataUnalignedError in the bindings that expose it). The Python and Node.js bindings load models from files only.

Using models with non-native sample rates

Our models are trained for specific sample rates (8 kHz, 16 kHz, and 48 kHz). However, the ai-coustics SDK allows you to use any model with audio at non-native sample rates by internally resampling the input. The model always processes the audio at its native sample rate. You can choose any sample rate between 8 kHz and 192 kHz when calling the processor’s initialize function in the SDK, regardless of the model being used. Block size is equally free: every model accepts any block size at any supported sample rate, so you can initialize for the format your host delivers. Only the model’s optimal block size avoids the extra buffering the SDK would otherwise add, which is why it is the lowest-delay choice rather than the only valid one. Higher-than-native sample rate (e.g. 48 kHz audio with a 16 kHz model): In this case, the SDK cuts away the frequency content above the model’s native Nyquist frequency (everything above half the sample rate) before feeding it to the model. The SDK output is then upsampled back to the original sample rate. The mixback (enhancement_level) stays at the higher sample rate, so the output will contain the full frequency range of the original audio, but the model’s enhancement will only be applied to the frequencies within the model’s native Nyquist frequency. Lower-than-native sample rate (e.g. 8 kHz audio with a 16 kHz model): When the input audio sample rate is lower than the model’s native sample rate, compute resources are effectively “wasted” processing higher frequencies where no signal is contained (the model is just processing zeros). Therefore, if there is a model available matching your audio’s sample rate, we recommend using that model to avoid unnecessary compute and ensure optimal performance. In both cases, CPU consumption is only marginally affected by the input sample rate.
Learn more about performance here.

Compatibility

All models can be used in any of our available integrations, including all of our SDK language bindings and Pipecat filter. The LiveKit plugin has a limited selection of models available. For more information, see here. For more information about model compatibility with our different integrations, see the compatibility matrix.