我已经使用Microsoft和Kinect构建了一个语音识别工具。
按照代码示例,我加载了XML语法并启动了一个SpeechRecognitionEngine。
有时,当声音很少或没有声音时,SpeechRecognitionEngine就会在一个简单的句子上有一个非常自信的匹配(0.85):“莎拉现在几点了?”
这是我的GitHub上的主类
我还用法语编写了有转储的博客文章 (wav + xml)
发布于 2013-05-05 04:48:39
我不知道你说的是哪个波文件(我从中学起就没说法语了)。但我认为你们小组的这股浪潮是符合条件的: dump_2012_12.16_12.47.33.wav。它具有很高的置信度值.857,并且在音频文件中似乎没有任何语音。看一看声谱图(见下文),你可以看到音频文件确实包含在语音范围内的能量。

目前,大多数语音识别引擎都使用隐马尔可夫模型( HMM)来匹配语音矢量模式。当今最先进的技术并不总是精确地做到这一点。对背景噪音很敏感。
这就是为什么今天生产中的大多数语音类型功能(比如Siri)都是推动谈话的原因。你需要按下一个按钮,你有5秒的时间对着麦克风说话。他们这样做是为了确保有某种类型的语音信号。对于那些开放麦克风系统(Kinect是我所知道的唯一系统),它们试图使用回声消除的形式来抑制背景音频。但即使是在最先进的情况下,也仍在流血不止。
我所知道的唯一相对简单的工作(同样不是100%)涉及编辑语法以包含垃圾规则和缩短可能的短语列表。当语音引擎不知道该做什么时,垃圾规则将给它一个“运行到妈妈的家”选项。
http://www.w3.org/TR/speech-grammar/#S2.2.3
虽然我不认为这是推荐的用法,但我已经看到一些系统在使用垃圾规则帮助过滤背景噪音时表现得更好。当然,他们必须忽略垃圾回收事件。
https://stackoverflow.com/questions/12809098
复制相似问题