C# 语音识别实现方法 C#如何使用System.Speech进行语音识别-C#.Net教程

SpeechRecognitionEngine 默认不监听麦克风,需显式调用 SetInputToDefaultAudioDevice();中文识别依赖系统中文语言包,语法应加载于设输入后、识别前;SpeechRecognizer 适合前台应用,SpeechRecognitionEngine 用于后台或自定义音频流。

System.Speech.Recognition 为什么识别不了麦克风输入

默认情况下,SpeechRecognitionEngine 不自动监听系统麦克风,它需要你显式指定输入源。如果你只初始化了引擎但没调用 SetInputToDefaultAudioDevice() 或 SetInputToWaveFile(),识别器会处于“就绪但无输入”状态,RecognizeAsync() 看似运行却永不触发 SpeechRecognized 事件。

实操建议:

  • 必须在 SpeechRecognitionEngine 实例化后、调用 RecognizeAsync() 前,执行 recognitionEngine.SetInputToDefaultAudioDevice()
  • 确保系统默认录音设备已启用且未被其他程序独占(如 Teams、Zoom 占用麦克风会导致 InvalidOperationException: "The audio device is in use")
  • 若需后台持续识别,推荐用 RecognizeAsync(RecognizeMode.Multiple);仅识别一次用 RecognizeMode.Single

如何加载中文语音识别语法(Grammar)

System.Speech 的中文识别依赖于操作系统预装的中文语言包和对应语法定义。直接用 DictationGrammar() 支持自由听写,但准确率低;更可靠的是用 GrammarBuilder 或 Grammar 加载自定义词表或 SGRML 文件。

实操建议:

  • 确认系统已安装“中文(简体,中国)”语音识别语言包(控制面板 → 轻松使用 → 语音识别 → 安装语言)
  • 用 new Grammar(new GrammarBuilder("打开浏览器")) 构建简单命令语法,比纯听写稳定
  • 避免在 SpeechRecognitionEngine 初始化前加载语法;应在调用 SetInputToDefaultAudioDevice() 后、RecognizeAsync() 前执行 LoadGrammar()
  • 中文识别对语速、静音间隔敏感,建议在 SpeechRecognized 事件中检查 e.Result.Confidence,过滤低于 0.4 的结果

SpeechRecognitionEngine 和 SpeechRecognizer 的关键区别

SpeechRecognitionEngine 是底层引擎,完全可控但需手动管理音频输入与线程;SpeechRecognizer 是封装好的前台识别器,自动绑定默认麦克风并运行在 UI 线程,适合 WinForms/WPF 快速集成,但不支持后台服务或自定义音频流。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » C# 语音识别实现方法 C#如何使用System.Speech进行语音识别-C#.Net教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3996397+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3996397+
  • 本周更新: 0+
  • 最后更新: 2026-03-16