2

我已经使用 Microsoft SAPI 和 Kinect构建了语音识别工具。

以下代码示例我加载 XML 语法并启动 SpeechRecognitionEngine。

有时,当声音很少或没有声音时,SpeechRecognitionEngine 会以非常高的置信度 (0.85) 匹配一个简单的句子:“Sarah what time is it”

  • 引擎为什么会在沉默中触发这场强敌?!
  • 任何Workaroud?

这是我在 GitHub 上的主要课程

我还用转储(wav + xml)写(法语)博客文章

4

1 回答 1

0

我不确定你说的是哪个波形文件(我从中学开始就不会说法语)。但我认为你们小组的这一波符合条件:dump_2012_12.16_12.47.33.wav。它具有 0.857 的高置信度值,并且在音频文件中似乎没有任何语音。查看频谱图(见下文),您可以看到音频文件确实包含语音范围内的能量。 在此处输入图像描述

如今,大多数语音识别引擎都使用隐马尔可夫模型(又名 HMM)将音频矢量模式与语音匹配。今天的最新技术在这方面并不总是准确的。HMM 往往对背景噪音非常敏感。

这就是为什么当今生产中的大多数语音类型功能(如 Siri)都是一键通。您需要按下一个按钮,然后您有 5 秒钟的时间对着麦克风讲话。他们这样做是为了确保存在某种类型的语音信号。对于那些开放式麦克风(我知道的只有 Kinect)的系统,他们尝试使用一种回声消除形式来抑制背景音频。但即使采用最先进的技术,仍然存在流血。

我所知道的唯一相对简单的解决方法(同样不是 100%)涉及编辑您的语法以包含垃圾规则并缩短可能的短语列表。当语音引擎不知道该做什么时,垃圾规则会给它一个“跑回家找妈妈”的选项。

http://www.w3.org/TR/speech-grammar/#S2.2.3

虽然我不认为这是推荐的用法,但我已经看到一些系统在使用垃圾规则来帮助过滤背景噪音时表现得更好。当然,他们必须忽略垃圾回收事件。

于 2013-05-05T04:48:39.940 回答