J'ai récemment été chargé de réécrire un serveur C en Java, ce qui a nécessité la migration de ses capacités de reconnaissance vocale du Pocketsphinx C api vers l'API Sphinx4 Java, en utilisant le mêmes fichiers de dictionnaire et de modèle de langage que ceux qui travaillaient avec Pocketsphinx plus le modèle en-us-semi-acoustique par défaut fourni par CMU Sphinx sur leur site. Une remarque: aucun modèle acoustique n'était requis pour l'utilisation de Pocketsphinx, j'ai donc choisi le modèle en-us-semi en pensant qu'il serait satisfaisant pour mes besoins. Ce faisant, je reçois une erreur lors de l'initialisation d'une StreamSpeechRecognizer
comme un grain de printemps avec ce code:Impossible de charger le modèle en-us-semi dans sphinx4
@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);
}
L'erreur que je reçois suit:
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)
Il est levé par le constructeur StreamSpeechRecongizer
.
L'échec d'assertion est assert numVariances == numSenones * numGaussiansPerSenone;
En outre, il peut être utile pour vous de savoir que le fichier dictionnaire que je utilise contient des mots anglais ordinaires comme la pomme de terre aux côtés des noms de services Internet, tels que Hotmail, Facebook, Twitter, etc. sur.
Toute aide serait grandement appréciée de votre part. Merci beaucoup.
Cela a fonctionné! Merci! – MawrCoffeePls