Не удалось загрузить модель en-us-semi в sphinx4

1

Недавно мне было поручено переписать C-сервер на Java, что означало перенос возможностей распознавания речи из Pocketsphinx C api на Sphinx4 Java API с использованием тех же файлов словаря и языковых моделей, что и файлы, работающие с Pocketsphinx plus модель по умолчанию en-us-semi-акустическая, предоставленная CMU Sphinx на их сайте. Одно замечание: для использования Pocketsphinx не требуется акустическая модель, поэтому я выбрал модель en-us-semi, которая будет удовлетворительной для моих нужд. При этом я получаю сообщение об ошибке при инициализации StreamSpeechRecognizer в качестве компонента Spring с помощью этого кода:

@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 конструктором StreamSpeechRecongizer.

assert numVariances == numSenones * numGaussiansPerSenone; утверждения - assert numVariances == numSenones * numGaussiansPerSenone;

Кроме того, вам может быть полезно узнать, что словарь, который я использую, содержит обычные английские слова, такие как картофель, наряду с именами интернет-услуг, такими как Hotmail, Facebook, Twitter и т.д.

Любая помощь будет чрезвычайно оценена всеми вами. Большое спасибо.

Теги:
cmusphinx
sphinx4
pocketsphinx

1 ответ

1
Лучший ответ

Вам нужно использовать последнюю версию sphinx4-5prealpha, как описано в http://cmusphinx.sourceforge.net/wiki/tutorialsphinx4

Он поставляется с стандартной моделью p-tm 5.2 по умолчанию, самой точной моделью. Вам нужно использовать эту модель sphinx4 по умолчанию, а не en-us semi. Последний pocketsphinx работает с той же моделью.

en-us-semi не поддерживается sphinx4

  • 0
    Это сработало! Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню