我正在创建一个小型应用程序,当用户对着麦克风讲话时,它需要实时输出音素。就我而言,识别输出的速度是第一要务,甚至高于准确性。使用 C# 是首选,但如果可以使用不同的语言和/或库(如 CMUSphinx)实现更好的速度,我会切换。
使用System.Speech.Recognition
和DictationGrammar("grammar:dictation#pronunciation")
,我已经能够创建一个简单而有效的音素识别器,当您对着麦克风说话时,它会输出音素,而且准确度通常令人印象深刻(订阅该SpeechRecognitionEngine.SpeechHypothesized
事件可以让我看到实时输出)。问题是,用户说话和输出之间的最小延迟约为 0.5 秒,这对于项目来说太长了。我知道总的来说这是一个相当高的速度,特别是考虑到良好的准确性,但我真的需要更快的东西,即使准确性受到很大影响。有什么方法可以配置 aSpeechRecognitionEngine
以将准确性抛到窗外,以便更快地提出假设?我使用 发现了一些暴露的设置SpeechRecognitionEngine.UpdateRecognizerSetting
,但它们似乎对音素识别的输出影响不大。
我还研究了 CMUSphinx,这是一个看起来很有前途的免费语音识别项目。Sphinx4 很容易编译和设置测试是Java,但我不知道如何配置它来实时输出音素,而且它的单词识别速度相对较慢。在这里,我发现了一些关于使用他们的另一个项目 pocketsphinx 进行音素识别的笔记。我也能够下载和编译它,但无法成功运行任何测试。有没有人在音素上使用 CMUSphinx 或 Pocketsphinx?它是否能够实现高实时输出速度?或者也许还有更多的选择?我真的在寻找一些非常基本但很快的东西。
编辑:能够让pocketsphinx识别音素,但在项目中使用太慢了