改进语音识别,C#
我使用 System.Speech 库来识别语音,但它通常识别的结果非常不同。
SpeechRecognizer_rec = new SpeechRecognizer();
DictationGrammar grammar = new DictationGrammar();
grammar.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(grammar_SpeechRecognized);
_rec.LoadGrammar(grammar);
我怎样才能提高识别能力?它和语法课有关系吗?
I use System.Speech library to able to recognize speech but it usually recognizes very different.
SpeechRecognizer_rec = new SpeechRecognizer();
DictationGrammar grammar = new DictationGrammar();
grammar.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(grammar_SpeechRecognized);
_rec.LoadGrammar(grammar);
How can I improve the recgonition? Does it have a relation with Grammer class?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您必须限制语音识别引擎使用的模型(基本上是从语音输入到允许的英语文本输出的映射)以获得高置信度输出。模型越小,一般来说结果就越好,因为识别器在两个发音相似的单词之间挑选错误单词的机会较小。
这个简化的例子只能识别从一到三的数字:
You have to limit the model (basically the mapping from speech input to allowed English text output) used by the speech recognition engine to get high confidence output. The smaller your model is, the better your results will be in general, since there is less chance for the recognizer picking i.e. the wrong word between two similar sounding words.
This simplified example i.e. would only be able to recognize the numbers from one to three:
如果您有能力要求用户参加培训过程,那肯定会给您带来更好的结果。我自己使用过(我有口音),它显着提高了我的应用程序中识别的准确性。
至少你可以自己尝试一下(控制面板、语音识别、训练你的计算机以更好地理解你)。实际上,训练或减少模型(或者当然是在安静的地方使用更好的麦克风使用您的应用程序)是提高结果准确性的唯一方法。
If you can afford to ask users go to the training process that will certainly yield you much better results. I have used for myself (and I have an accent) and it improved significantly the accuracy of the recognition in my applications.
At the very least you can try it yourself (Control Panel, Speech Recognition, Train your computer to better understand you). Really, training or reducing the model (or of course using your app in a quiet place with a better microphone) are the only ways to improve the accuracy of your results.
DictationGrammar 产生了某种奇怪的结果,我尝试了 SpeechRecognitionEngine 的不同属性,但勉强成功。
试用:
语音识别引擎.BabbleTimeOut
但请先阅读用法以防止错误。
The DictationGrammar yields somehow weird results, I tried out different properties of the SpeechRecognitionEngine, barely successful.
Try out:
SpeechRecognitionEngine.BabbleTimeOut
But read about usage first to prevent Errors.