C#使用WhisperNet实现语音识别功能
1.写在前面
最近想做一下本地音频语音识别工具,在网上找了一些本地音频语音识别方面的资料。

Whisper 的性能因语言而异。下图显示了使用该模型的 Fleurs 数据集按语言的 WER(单词错误率)细分large-v2(数字越小,性能越好)。中文为14.7%
2.下载地址
源码下载地址:https://github.com/Const-me/Whisper
模型下载地址:https://huggingface.co/sandrohanea/whisper.net/tree/main/classic
3.程序实现
下面将贴出实现该程序的关键代码。
private async void buttonAsr_Click(object sender, EventArgs e) { string[] list = Library.listGraphicAdapters(); CommandLineArgs cla = new CommandLineArgs(); cla.language = eLanguage.Chinese; cla.gpu = textGpu.Text; cla.model = textModel.Text; cla.fileName = textFile.Text; cla.prompt = "这是一段播客的内容。"; cla.output_srt = true; using iModel model = await Library.loadModelAsync(cla.model, new CancellationToken(), eGpuModelFlags.Cloneable, cla.gpu); int[]? prompt = null; if (!string.IsNullOrEmpty(cla.prompt)) prompt = model.tokenize(cla.prompt); context = model.createContext(); cla.apply(ref context.parameters); context.parameters.setFlag(eFullParamsFlags.NoContext, true); using iMediaFoundation mf = Library.initMediaFoundation(); Transcribe transcribe = new Transcribe(cla); using iAudioReader reader = mf.openAudioFile(cla.fileName, cla.diarize); await context.runFullAsync(reader, transcribe, UpdateProgress, prompt); }
private void UpdateProgress(double value)
{
int pValue = (int)Math.Round(value, 2) * 100;
progress.Value = pValue;
foreach (sSegment seg in context.results(eResultFlags.Timestamps).segments)
{
string begin = Transcribe.printTimeWithComma(seg.time.begin);
string end = Transcribe.printTimeWithComma(seg.time.end);
string msg = string.Format("【{0} --> {1}】 {2}\r\n", begin, end, seg.text);
if (!FindMsg(msg)) rtextMsg.AppendText(msg);
}
rtextMsg.Select(rtextMsg.Text.Length, 0);
rtextMsg.ScrollToCaret();
}
4.程序界面
5.功能
本地音频语音识别。
程序中包含WhisperDesktop.exe
下载地址:https://pan.baidu.com/s/1dfCLtXdetsa0bNM7h9u_CQ?pwd=6666 提取码:6666
模型地址:https://pan.baidu.com/s/1kYfuRYJgOAayBBxrU_Xfvw?pwd=6666 提取码:6666
源码地址:https://pan.baidu.com/s/1O1iegWMN5qDS5H_o3-6-zQ?pwd=6666 提取码:6666
只有对写程序充满热情,才能写出好的程序!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了