WebRtcVad.NET
1.0.0
dotnet add package WebRtcVad.NET --version 1.0.0
NuGet\Install-Package WebRtcVad.NET -Version 1.0.0
<PackageReference Include="WebRtcVad.NET" Version="1.0.0" />
<PackageVersion Include="WebRtcVad.NET" Version="1.0.0" />
<PackageReference Include="WebRtcVad.NET" />
paket add WebRtcVad.NET --version 1.0.0
#r "nuget: WebRtcVad.NET, 1.0.0"
#:package WebRtcVad.NET@1.0.0
#addin nuget:?package=WebRtcVad.NET&version=1.0.0
#tool nuget:?package=WebRtcVad.NET&version=1.0.0
WebRtcVad.NET
Pure managed C# port of WebRTC's voice activity detection (VAD) algorithm.
No native dependencies - works on any platform that supports .NET 8+.
Installation
dotnet add package WebRtcVad.NET
Usage
using WebRtcVad.NET;
// Create a VAD instance
using var vad = new WebRtcVad
{
SampleRate = SampleRate.Rate16kHz,
FrameLength = FrameLength.Length20ms,
OperatingMode = OperatingMode.Aggressive
};
// Check if audio frame contains speech
byte[] audioFrame = GetAudioFrame(); // 16-bit PCM, little-endian
bool hasSpeech = vad.HasSpeech(audioFrame);
// Or use Span<short> for better performance
Span<short> samples = GetAudioSamples();
bool hasSpeech = vad.HasSpeech(samples);
Configuration
Sample Rates
SampleRate.Rate8kHzSampleRate.Rate16kHzSampleRate.Rate32kHzSampleRate.Rate48kHz
Frame Lengths
FrameLength.Length10msFrameLength.Length20msFrameLength.Length30ms
Operating Modes
| Mode | Description |
|---|---|
Quality |
Least aggressive - best for clean audio |
LowBitrate |
Slightly more aggressive |
Aggressive |
For moderately noisy audio |
VeryAggressive |
Most aggressive - for very noisy audio |
Higher aggressiveness = fewer false positives (noise detected as speech) but more false negatives (missed speech).
Audio Format
This library only supports raw 16-bit linear PCM audio. It will not work with WAV files or other container formats directly - you need to extract the raw PCM data first.
Algorithm
This is a bit-exact port of the WebRTC VAD algorithm, which uses a Gaussian Mixture Model (GMM) to classify audio frames as speech or non-speech. The algorithm:
- Splits audio into 6 frequency bands
- Calculates energy features for each band
- Uses GMM to compute speech/noise probabilities
- Applies adaptive thresholds based on operating mode
License
MIT License - see LICENSE
The algorithm is ported from WebRTC, which is licensed under the WebRTC License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 101 | 1/9/2026 |