- Introduce
- How its work?
- Features
- Advantage
- Disadvantage
- Installation
- Quickstart
- How to create a Model?
- Setting
- Resources
- License
VoiceNET Library makes it easy and fast to create Voice Command Control functionality through Label Prediction. It helps develop voice control in real-time on software or the web. It free supports online and offline use. This is a community development project to help people access voice recognition technology more easily.
It's a research project from the FPT Edu Research Festival 2021 contest.
Using ML.NET and Spectrogram libraries, the VoiceNET library works by converting your voice into a spectrogram. From there, proceed to use the Image Classification function in the ML.NET library to mark the label.
- Voice Command Control in real time.
- Voice Command Control based on recording.
- Easily integrate the library into your program.
- The code has been simple for every to use.
- It can be used both online and offline.
- It can be used for any communication language in the world.
- It's free.
- It takes a long time to create a Model for the library
- The time it takes to load the model into the program can be slow.
- There's still an error rate when labeling recognition.
Once you have an app, you can install the VoiceNET Library NuGet package from the .NET Core CLI using:
dotnet add package VoiceNET.Library
or from the NuGet Package Manager:
Install-Package VoiceNET.Library
Drag and drop into the Windows Forms interface:
- Label: lbResult
- Timer: tmGetResult (Interval=1)
In Form_Load
VBuilder.ModelPath("<your_model_path>");
if (VBuilder.loadModel())
{
tmGetResult.Start();
VBuilder.WFListener();
}
In tmGetResult
lbResult.Text = VBuilder.WFGetResult;
Use the following code if you want to stop listening
VBuilder.WFStopListener();
Drag and drop into the Windows Forms interface:
- Button: btnRecord, btnStop
- Label: lbResult
Form_Load
VBuilder.ModelPath("<your_model_path>");
if(VBuilder.loadModel())
//do something after Load Model
else
//do something if fail
btnRecord_Click
VBuilder.StartRecord();
btnStop.Enabled = true;
btnRecord.Enabled = false;
btnStop
VBuilder.StopRecord();
lbResult.Text = VBuilder.Result(true);
btnRecord.Enabled = true;
btnStop.Enabled = false;
Drag and drop into the WPF Application interface:
- Label: lbResult
Before MainWindow()
public DispatcherTimer tmGetResult = new DispatcherTimer();
In MainWindow()
tmGetResult.Interval = TimeSpan.FromSeconds(1);
tmGetResult.Tick += tmGetResult_Tick;
VBuilder.ModelPath("<your_model_path>");
if (VBuilder.loadModel())
{
tmGetResult.Start();
VBuilder.WPFListener();
}
In void tmGetResult_Tick
lbResult.Content = VBuilder.WPFGetResult;
Use the following code if you want to stop listening
VBuilder.WPFStopListener();
See the example in VoiceNET.Lib.WPF.Record for more how to use it.
See the example in VoiceNET.Lib.Web.AspNet for more how to use it.
See the example in SampleWebAPI for more how to use it.
It includes example ASP.NET Core Web API and WinForm App (WinForm Realtime) using Web API.
Use the included MicBuilder program to build an MLModel.zip file for your Dataset.
Microphone volume adjustment:
VBuilder.setVolume(80);
Ambient noise reduction setting
- Min Value: Adjust the minimum volume level to perform capturing. Input sound that is less than this portion will be considered noise. The default value is 10%.
VBuilder.setMinVolume(10);
- Continuous: How long does the sound stay continuous when Sound Input > Min Volume. The default value is 250 milliseconds.
VBuilder.setMicTime(250);
- FftSharp
- Microsoft.ML
- Microsoft.ML.ImageAnalytics
- Microsoft.ML.Vision
- NAudio
- SciSharp.TensorFlow.Redist
MIT LICENSE
- Spectrogram - is a .NET library for creating spectrograms from pre-recorded signals or live audio from the sound card.
- ML.NET - is a cross-platform open-source machine learning (ML) framework for .NET.
- VoiceNET Library - is a .NET Library makes it easy and fast to create Voice Command Control functionality.