VoiceNET Library giúp bạn dễ dàng và nhanh chóng tạo chức năng Điều khiển lệnh bằng giọng nói thông qua Dự đoán nhãn. Nó giúp phát triển phần mềm điều khiển bằng giọng nói trong thời gian thực. Nó miễn phí hỗ trợ sử dụng trực tuyến và ngoại tuyến. Đây là dự án phát triển cộng đồng nhằm giúp mọi người tiếp cận công nghệ nhận dạng giọng nói dễ dàng hơn.
Đây là một dự án nghiên cứu từ cuộc thi FPT Edu Research Festival 2021.
Sử dụng các thư viện ML.NET và Spectrogram, VoiceNET library hoạt động bằng cách chuyển giọng nói của bạn thành một biểu đồ quang phổ. Từ đó, tiến hành sử dụng chức năng Phân loại ảnh trong thư viện ML.NET để đánh dấu nhãn.
- Điều khiển lệnh bằng giọng nói trong thời gian thực.
- Điều khiển lệnh bằng giọng nói dựa trên bản ghi âm.
- Dễ dàng tích hợp thư viện vào chương trình của bạn.
- Mã rất đơn giản cho mọi người sử dụng.
- Nó có thể được sử dụng cả trực tuyến và ngoại tuyến.
- Nó có thể được sử dụng cho bất kỳ ngôn ngữ giao tiếp nào trên thế giới.
- Nó miễn phí.
- Mất nhiều thời gian để tạo Model cho thư viện.
- Thời gian tải mô hình vào chương trình có thể chậm.
- Vẫn có tỷ lệ lỗi khi nhận dạng nhãn.
Sau khi có ứng dụng, bạn có thể cài đặt gói VoiceNET Library NuGet từ .NET Core CLI bằng cách sử dụng:
dotnet add package VoiceNET.Library
hoặc từ NuGet Package Manager:
Install-Package VoiceNET.Library
Kéo và thả vào giao diện Windows Forms:
- Label: lbResult
- Timer: tmGetResult (Interval=1)
Trong Form_Load
VBuilder.ModelPath("<your_model_path>");
if (VBuilder.loadModel())
{
tmGetResult.Start();
VBuilder.WFListener();
}
Trong tmGetResult
lbResult.Text = VBuilder.WFGetResult;
Sử dụng thêm mã sau nếu muốn dừng việc lắng nghe
VBuilder.WFStopListener();
Kéo và thả vào giao diện Windows Forms:
- Button: btnRecord, btnStop
- Label: lbResult
Trong Form_Load
VBuilder.ModelPath("<your_model_path>");
if(VBuilder.loadModel())
//làm gì đó khi đã Load Model thành công
else
//làm gì đó nếu load model thất bại
btnRecord_Click
VBuilder.StartRecord();
btnStop.Enabled = true;
btnRecord.Enabled = false;
btnStop
VBuilder.StopRecord();
lbResult.Text = VBuilder.Result(true);
btnRecord.Enabled = true;
btnStop.Enabled = false;
Kéo thả vào giao diện WPF Application:
- Label: lbResult
Trước MainWindow()
public DispatcherTimer tmGetResult = new DispatcherTimer();
Trong MainWindow()
tmGetResult.Interval = TimeSpan.FromSeconds(1);
tmGetResult.Tick += tmGetResult_Tick;
VBuilder.ModelPath("<your_model_path>");
if (VBuilder.loadModel())
{
tmGetResult.Start();
VBuilder.WPFListener();
}
Trong void tmGetResult_Tick
lbResult.Content = VBuilder.WPFGetResult;
Sử dụng thêm mã sau nếu muốn dừng việc lắng nghe
VBuilder.WPFStopListener();
Xem thêm ví dụ VoiceNET.Lib.WPF.Record để biết cách sử dụng trên WPF.
Xem thêm ví dụ VoiceNET.Lib.Web.AspNet để biết cách sử dụng trên ASP.NET MVC.
Xem thêm ví dụ SampleWebAPI để biết cách sử dụng trên Web API.
Nó bao gồm ví dụ project ASP.NET Core Web API và WinForm App (WinForm Realtime) sử dụng Web API.
Dùng phần mềm MicBuilder để xây dựng tệp MLModel.zip cho tập dữ liệu của bạn.
Điều chỉnh âm lượng Microphone:
VBuilder.setVolume(80);
Cài đặt giảm tiếng ồn và tạp âm
- Min Value: Điều chỉnh mức âm lượng tối thiểu để thực hiện chụp. Âm thanh đầu vào nhỏ hơn phần này sẽ được coi là tiếng ồn. Giá trị mặc định là 10%.
VBuilder.setMinVolume(10);
- Continuous: Âm thanh duy trì liên tục trong bao lâu khi Đầu vào âm thanh> Min Value. Giá trị mặc định là 250 mili giây.
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.