私は最近 Java で C サーバーを書き直す任務を負っています。これは、Pocketsphinx plus で動作していたものと同じ辞書と言語モデル ファイルを使用して、Pocketsphinx C API から Sphinx4 Java API に音声認識機能を移行することを意味しました。 CMU Sphinx がサイトで提供するデフォルトの en-us-semi 音響モデル。1 つのメモ: Pocketsphinx を使用するために音響モデルは必要ありませんでした。そのため、私のニーズには十分であると考えて、en-us-semi モデルを選択しました。そうすることで、StreamSpeechRecognizer
次のコードで a を Spring Bean として初期化中にエラーが発生します。
@Bean
@Autowired
public StreamSpeechRecognizer streamSpeechRecognizer(SphinxProperties sphinxProperties) throws
IOException {
edu.cmu.sphinx.api.Configuration sphinxConfiguration = new edu.cmu.sphinx.api.Configuration();
sphinxConfiguration.setAcousticModelPath("resource:/" + sphinxProperties.getAcousticModelPath());
sphinxConfiguration.setDictionaryPath("resource:/" + sphinxProperties.getDictionaryPath());
sphinxConfiguration.setLanguageModelPath("resource:/" + sphinxProperties.getLanguageModelPath());
return new StreamSpeechRecognizer(sphinxConfiguration);
}
私が得ているエラーは次のとおりです。
Caused by: java.lang.AssertionError
at edu.cmu.sphinx.linguist.acoustic.tiedstate.Sphinx3Loader.createSenonePool(Sphinx3Loader.java:484)
at edu.cmu.sphinx.linguist.acoustic.tiedstate.Sphinx3Loader.loadModelFiles(Sphinx3Loader.java:386)
at edu.cmu.sphinx.linguist.acoustic.tiedstate.Sphinx3Loader.load(Sphinx3Loader.java:315)
at edu.cmu.sphinx.frontend.AutoCepstrum.newProperties(AutoCepstrum.java:118)
at edu.cmu.sphinx.util.props.PropertySheet.getOwner(PropertySheet.java:508)
StreamSpeechRecongizer
のコンストラクタによってスローされます。
アサーションの失敗はassert numVariances == numSenones * numGaussiansPerSenone;
また、私が使用している辞書ファイルには、hotmail、Facebook、Twitter などのインターネット サービス名と並んで、potato などの一般的な英語の単語が含まれていることを知っておくと役立つ場合があります。
皆様からのご支援をお待ちしております。どうもありがとうございました。