VoiceNET库是一个开源的.NET库,它通过标签预测技术简化了语音命令控制功能的实现。它支持在线和离线使用,并且可以轻松集成到任何.NET应用程序中。这个库是由FPT Edu Research Festival 2021比赛的一个研究项目发展而来的,旨在帮助人们更容易地访问语音识别技术。
VoiceNET库使用ML.NET和Spectrogram库,将语音转换为频谱图。然后,利用ML.NET库中的图像分类功能来标记标签。
VoiceNET库的主要特点包括:
使用VoiceNET库的优势包括:
尽管VoiceNET库有很多优点,但它也有一些劣势:
要安装VoiceNET库,可以使用.NET Core CLI:
dotnet add package VoiceNET.Library
或者使用NuGet包管理器:
Install-Package VoiceNET.Library
例如,创建一个实时语音控制的图像库:
在Windows Forms界面中拖放:
在Form_Load中:
C# VBuilder.ModelPath(""); if(VBuilder.loadModel()) { tmGetResult.Start(); VBuilder.WFListener(); }
在tmGetResult中:
C# lbResult.Text = VBuilder.WFGetResult;
如果想停止监听,请使用以下代码:
C# VBuilder.WFStopListener();
例如,通过录音识别命令标签:
在Windows Forms界面中拖放:
在Form_Load中:
C# VBuilder.ModelPath(""); if(VBuilder.loadModel()) { //do something after Load Model } else { //do something if fail }
在btnRecord_Click中:
C# VBuilder.StartRecord(); btnStop.Enabled = true; btnRecord.Enabled = false;
在btnStop中:
C# VBuilder.StopRecord(); lbResult.Text = VBuilder.Result(true); btnRecord.Enabled = true; btnStop.Enabled = false;
从v1.0.5版本开始支持WPF实时语音控制。在WPF应用程序界面中拖放:
在MainWindow()中:
C# public DispatcherTimer tmGetResult = new DispatcherTimer(); tmGetResult.Interval = TimeSpan.FromSeconds(1); tmGetResult.Tick += tmGetResult_Tick;
在MainWindow()中:
C# VBuilder.ModelPath(""); if(VBuilder.loadModel()) { tmGetResult.Start(); VBuilder.WPFListener(); }
在void tmGetResult_Tick中:
C# lbResult.Content = VBuilder.WPFGetResult;
如果想停止监听,请使用以下代码:
C# VBuilder.WPFStopListener();
从v1.0.5版本开始支持WPF录音。更多使用方法请参考VoiceNET.Lib.WPF.Record示例。
从v1.0.2.4版本开始支持ASP.NET MVC。更多使用方法请参考VoiceNET.Lib.Web.AspNet示例。
从v1.0.6.8版本开始支持ASP.NET Core Web API。更多使用方法请参考SampleWebAPI示例,包括ASP.NET Core Web API和WinForm App (WinForm Realtime)使用Web API的示例。
使用包含的MicBuilder程序为数据集构建MLModel.zip文件。
麦克风音量调整:
C# VBuilder.setVolume(80);
环境噪音减少设置:
C# VBuilder.setMinVolume(10);
C# VBuilder.setMicTime(250);
MIT LICENSE
Spectrogram是一个.NET库,用于从预先录制的信号或声卡的实时音频创建频谱图。