🎯 Voice AI Consulting
Get dedicated support and consultation to ensure your specific needs are met.
Consult an AI Expert

Picovoice Cobra VAD has quickly become the most accurate VAD engine in the market while having a negligible runtime footprint. Cobra shines the most when you compare its accuracy with the widely used WebRTC VAD developed by Google and open-source Silero VAD.

Voice Activity Detection (VAD) is a crucial component of many speech solutions. VAD detects the presence of a human voice within a stream of audio. Although simple to describe, this is a challenging task in the presence of non-stationary noise.

The V2.1 release of Cobra brought significant accuracy improvements compared to its predecessor at no additional runtime cost! In the Figure below, one can observe that at a 95% true-positive rate, V2.1 has one-fifth the number of false alarms compared to V2.0. If you are building with Cobra, make sure to update your SDK. Otherwise, read to try Cobra VAD live, inspect the open-source benchmark, and start building for free by creating a Picovoice Console account.

Cobra VAD V2.1 compared to Cobra VAD V2.0

Live Demo

Probability of Voice
Click to activate

Open Benchmark

Building on the success of Cobra VAD 2.0, Cobra VAD 2.1 continues to outperform all competitors, re-defining what top-tier VAD performance looks like. An open-source comparison between Cobra, WebRTC's VAD (developed by Google), and Silero's VAD is available in the Picovoice docs.

Start Building

1c = pvcobra.create(access_key)
2
3while True:
4 is_voiced =
5 c.process(audio_frame())
1const c = new Cobra(accessKey)
2
3const voiceProbability =
4 c.process(audioFrame);
1Cobra c = new Cobra(accessKey);
2
3while(true) {
4 float isVoiced =
5 c.process(audioFrame());
6}
1let c =
2 Cobra(accessKey: accessKey)
3
4while true {
5 let isVoiced =
6 c.process(audioFrame())
7}
1let c =
2 await CobraWorker.create(
3 accessKey,
4 (isVoiced) => {
5 // callback
6 })
7
8const processor =
9 WebVoiceProcessor.instance()
10await processor.subscribe(c)
1Cobra o =
2 Cobra(accessKey);
3
4float voiceProbability =
5 o.Process(GetNextAudioFrame());
1pv_cobra_init(
2 access_key,
3 &cobra);
4
5while (true) {
6 pv_cobra_process(
7 cobra,
8 audio_frame(),
9 &is_voiced);
10}