如何提高C#System.Speech.Recognition的识别速度,甚至以准确性为代价?创建实时音素识别器

时间:2019-04-12 15:01:19

标签: c# .net cmusphinx system.speech.recognition

我正在创建一个小型应用程序,当用户对麦克风讲话时,需要实时输出音素。就我而言,识别输出的速度是数字1的优先级,甚至超过准确性。首选使用C#,但是如果可以使用其他语言和/或库(例如CMUSphinx)来实现更好的速度,我会进行切换。

使用System.Speech.RecognitionDictationGrammar("grammar:dictation#pronunciation"),我已经能够创建一个简单有效的音素识别器,当您对着麦克风讲话时,它可以输出音素,并且精度通常令人印象深刻(请订阅SpeechRecognitionEngine.SpeechHypothesized事件使我可以看到实时输出)。问题是,在用户讲话和输出之间的最小延迟约为0.5s,这与项目正常工作相去甚远。我知道通常这是一个相当高的速度,特别是考虑到良好的准确性,但是即使准确性受到很大的影响,我也确实需要更快的速度。有什么方法可以配置SpeechRecognitionEngine来将准确性扔掉,以便更快地提出假设?我使用SpeechRecognitionEngine.UpdateRecognizerSetting找到了一些公开的设置,但是它们似乎对音素识别的输出影响很小。

我还研究了CMUSphinx,这是一个看起来很有希望的免费语音识别项目。 Sphinx4易于编译,并且使用Java进行测试,但是我不知道如何配置它以实时输出音素,并且单词识别相对较慢。 Here,我在他们的另一个项目Pocketsphinx中发现了一些有关音素识别的注释。我也能够下载并编译它,但是无法成功运行任何测试。有人将CMUSphinx或Pocketsphinx与音素一起使用吗?它有很高的实时输出速度吗?也许还有更多选择?我真的在寻找一些非常基础但又快的东西。

编辑:能够获得Pocketphinx识别音素,但是在项目中使用太慢了

0 个答案:

没有答案