SileroVad 1.2.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package SileroVad --version 1.2.0
NuGet\Install-Package SileroVad -Version 1.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SileroVad" Version="1.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SileroVad --version 1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SileroVad, 1.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SileroVad as a Cake Addin #addin nuget:?package=SileroVad&version=1.2.0 // Install SileroVad as a Cake Tool #tool nuget:?package=SileroVad&version=1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Voice Activity Detection for .Net
Quick Start
using NAudio.Wave;
using NAudio.Wave.SampleProviders;
using SileroVad;
public static class FileReader
{
private static int SAMPLE_RATE = 16000;
private static Vad vad = new Vad();
public static void VadFile(string filePath)
{
var ext = Path.GetExtension(filePath).ToLower();
WaveStream waveFileReader;
switch (ext)
{
case ".wav":
waveFileReader = new WaveFileReader(filePath);
break;
case ".mp3":
waveFileReader = new Mp3FileReader(filePath);
break;
default:
throw new NotSupportedException($"not supported {ext}");
}
var TotalTime = waveFileReader.TotalTime;
ISampleProvider sampleProvider;
if (waveFileReader.WaveFormat.SampleRate != SAMPLE_RATE)
{
sampleProvider = new WdlResamplingSampleProvider(waveFileReader.ToSampleProvider(), SAMPLE_RATE).ToMono();
}
else
{
sampleProvider = waveFileReader.ToSampleProvider();
}
var array = new float[CountSamples(TotalTime)];
sampleProvider.Read(array, 0, array.Length);
List<VadSpeech> resul = vad.GetSpeechTimestamps(array, min_silence_duration_ms: 500, threshold: 0.5f);
var audioSpeech = VadHelper.GetSpeechSamples(array, resul);
var fileTrim = Path.ChangeExtension(filePath, "speech") + ".wav";
using var fileWriter = new WaveFileWriter(fileTrim, new WaveFormat(16000, 1));
foreach (var sample in audioSpeech)
{
fileWriter.WriteSample(sample);
}
fileWriter.Flush();
waveFileReader.Dispose();
}
private static int CountSamples(TimeSpan time)
{
WaveFormat waveFormat = new WaveFormat(16000, 1);
return TimeSpanToSamples(time, waveFormat);
}
private static int TimeSpanToSamples(TimeSpan time, WaveFormat waveFormat)
{
return (int)(time.TotalSeconds * (double)waveFormat.SampleRate) * waveFormat.Channels;
}
}
References
<a id="1">[1]</a> Silero Team. (2021). Silero VAD: pre-trained enterprise-grade Voice Activity Detector (VAD), Number Detector and Language Classifier. GitHub, GitHub repository, https://github.com/snakers4/silero-vad, hello@silero.ai.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- Microsoft.ML.OnnxRuntime.Gpu (>= 1.17.1)
-
net7.0
- Microsoft.ML.OnnxRuntime.Gpu (>= 1.17.1)
-
net8.0
- Microsoft.ML.OnnxRuntime.Gpu (>= 1.17.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.