65.9K
CodeProject 正在变化。 阅读更多。
Home

VoiceNET 库

2022年6月28日

MIT

3分钟阅读

viewsIcon

11222

downloadIcon

212

免费语音命令控制库

Nuget NuGet

目录

引言

VoiceNET 库可以轻松快速地通过标签预测创建语音命令控制功能。 它可以帮助在软件或网络上实时开发语音控制。 它免费支持在线和离线使用。 这是一个社区开发项目,旨在帮助人们更轻松地访问语音识别技术。

这是一个来自 FPT Edu Research Festival 2021 竞赛的研究项目。

VoiceNET 库

它是如何工作的?

使用 ML.NET 和 Spectrogram 库,VoiceNET 库通过将您的声音转换为频谱图来工作。 从那里,继续使用 ML.NET 库中的图像分类功能来标记标签。

VoiceNET 库的工作原理

特点

  • 实时语音命令控制
  • 基于录音的语音命令控制

优点

  • 轻松将库集成到您的程序中
  • 代码简单,适合所有人使用
  • 可以在线和离线使用
  • 可以用于世界上任何通信语言
  • 它是免费的

缺点

  • 为库创建一个模型需要很长时间。
  • 将模型加载到程序中的时间可能会很慢。
  • 标记识别时仍然存在错误率。

安装

一旦你有了应用程序,你可以使用 .NET Core CLI 从 NuGet 包管理器安装 VoiceNET Library NuGet 包

dotnet add package VoiceNET.Library

或从 NuGet 包管理器

Install-Package VoiceNET.Library

快速入门

WinForm 实时

示例

一个实时语音控制的图片库

如何在实时模式下创建一个 Demo?

拖放到 Windows Forms 界面

  • 标签: lbResult
  • 定时器: tmGetResult (Interval=1)

Form_Load

VBuilder.ModelPath("<your_model_path>");

if (VBuilder.loadModel())
    
{
	tmGetResult.Start();
	VBuilder.WFListener();            
}

tmGetResult

lbResult.Text = VBuilder.WFGetResult;

如果您想停止收听,请使用以下代码

VBuilder.WFStopListener();

WinForm 录音

示例

通过录音进行命令标签识别的示例

如何在录音模式下创建一个 Demo?

拖放到 Windows Forms 界面

  • 按钮: btnRecord, btnStop
  • 标签: 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;

WPF 实时 - v1.0.5 版本开始支持

拖放到 WPF 应用程序界面

  • 标签: lbResult

MainWindow() 前面

public DispatcherTimer tmGetResult = new DispatcherTimer();

MainWindow()

tmGetResult.Interval = TimeSpan.FromSeconds(1);

tmGetResult.Tick += tmGetResult_Tick;

VBuilder.ModelPath("<your_model_path>");

    if (VBuilder.loadModel())
            
	{

        tmGetResult.Start();

        VBuilder.WPFListener();

    }

void tmGetResult_Tick

lbResult.Content = VBuilder.WPFGetResult;

如果您想停止收听,请使用以下代码

VBuilder.WPFStopListener();

WPF 录音 - v1.0.5 版本开始支持

有关如何使用它的更多信息,请参阅 VoiceNET.Lib.WPF.Record 中的示例。

ASP.NET MVC - v1.0.2.4 版本开始支持

有关如何使用它的更多信息,请参阅 VoiceNET.Lib.Web.AspNet 中的示例。

ASP.NET Core Web API - v1.0.6.8 版本开始支持

有关如何使用它的更多信息,请参阅 SampleWebAPI 中的示例。

它包含使用 Web API 的 ASP.NET Core Web APIWinForm App (WinForm 实时) 示例。

如何创建模型?

使用包含的 MicBuilder 程序为您的 Dataset 构建一个 MLModel.zip 文件。

MicBuilder 模型构建器

设置

麦克风音量调节

VBuilder.setVolume(80);

环境降噪设置

  • 最小值:调整执行捕获的最小音量级别。 低于此部分的输入声音将被视为噪音。 默认值为 10%。
VBuilder.setMinVolume(10); 
  • 连续:当声音输入 > 最小音量时,声音保持连续的时间。 默认值为 250 毫秒。
VBuilder.setMicTime(250);

资源

许可证

MIT 许可证

  • Spectrogram - 是一个 .NET 库,用于从预先录制的信号或声卡中的实时音频创建频谱图。
  • ML.NET - 是一个用于 .NET 的跨平台开源机器学习 (ML) 框架。
  • VoiceNET 库 - 是一个 .NET 库,可以轻松快速地创建语音命令控制功能。
© . All rights reserved.