Voice Activity Detection β€” ai-coustics

Real-time, noise-robust turn-taking for voice agents.

Production VAD models by ai-coustics that decide who is speaking when directly on noisy microphone input β€” designed to work without a separate denoiser, in parallel with or independent of speech enhancement. Outperforms Silero VAD in accuracy, balance, and reliability; 30 ms latency, no GPU needed, no ONNX dependency. Real-time audio intelligence that makes Voice AI work in production. Not just in the lab. Inference runs through the aic-sdk Python package (also available for Rust, C/C++, Node.js, and WebAssembly).

Setup

  1. Install the SDK:
    pip install aic-sdk
    
  2. Create a free SDK key on the ai-coustics playground β€” 30-day trial included, no credit card required.

Usage

# initialize the voice activity detector
import aic_sdk as aic

model = aic.Model.from_file(aic.Model.download("vad-ms-2.1-xxs-16khz", "./models"))
vad = aic.Vad(model, "{aic-sdk-key}", aic.ProcessorConfig.optimal(model))  # get a free SDK key: https://developers.ai-coustics.com/login

# feed mono float32 blocks β€” the audio is not modified, only analyzed
vad.process(audio_block)

# enjoy real-time, noise-robust turn-taking
speech_detected = vad.get_context().is_speech_detected()

Tuning turn-taking behavior

ctx = vad.get_context()
ctx.set_parameter(aic.VadParameter.Sensitivity, 0.5)            # 0.0–1.0 probability threshold
ctx.set_parameter(aic.VadParameter.MinimumSpeechDuration, 0.1)  # seconds before "speech" triggers
ctx.set_parameter(aic.VadParameter.SpeechHoldDuration, 0.3)     # seconds speech is held after it stops

ctx.raw_vad_probability() exposes the unprocessed per-block probability; ctx.get_prediction_delay() returns the prediction delay in samples for aligning decisions with the input timeline.

Running VAD alongside speech enhancement

Feed the VAD the original input audio, not the enhanced output β€” run both on the same block:

vad.process(block)                    # reads the block, does not modify it
enhanced = processor.process(block)   # enhances the same original block

Align predictions with your audio timeline via ctx.get_prediction_delay() (delay in samples, like ProcessorContext.get_audio_delay() for enhancement).

Which model should I use?

Model Use it for
VAD Multi Speaker (vad-ms-2.1-xxs-16khz) Default choice. Standalone VAD for noisy, multi-speaker, far-field audio β€” no separate denoiser required.
VAD Voice Focus (vad-vf-2.0-s-16khz) Primary-speaker turn-taking in voice agents. Preferred over chaining Voice Focus enhancement into VAD Multi Speaker.

Model variants

Weights are hosted on the ai-coustics artifact CDN. aic.Model.download() fetches the latest compatible artifact and verifies its checksum automatically; the direct links below are for manual download.

VAD Multi Speaker (16 kHz)

SDK model ID Artifact SHA-256 (prefix)
vad-ms-2.1-xxs-16khz β€” latest, recommended v7 060f15d4e576
vad-2.1-xxs-16khz (previous generation) v6 440cb06bf97a
quail-vad-2.0-xxs-16khz (legacy ID) v5 852005789c9b

VAD Voice Focus (16 kHz)

SDK model ID Artifact SHA-256 (prefix)
vad-vf-2.0-s-16khz β€” recommended v7 dbbd7995d1cf
quail-vf-vad-2.0-s-16khz (legacy ID) v5 c50dee9618b8

Full SHA-256 checksums for every artifact are listed next to each download at artifacts.ai-coustics.io.

Related ai-coustics models

  • πŸ”Š Speech Enhancement β€” real-time, ASR-optimized speech enhancement (Quail & Rook)
  • πŸ” Audio Insight β€” predict and diagnose downstream failures in Voice AI stacks

Resources

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support