Question

J'ai réussi à enfin pocketsphinx de construction et d'exécution (pocketsphinx_continuous). Le problème que je suis en cours d'exécution en est de savoir comment une améliorer la précision. D'après ce que je comprends, vous pouvez spécifier un fichier de dictionnaire (-dict test.dic). Je pris alors le fichier dictionnaire par défaut et a ajouté quelques autres prononciations des mêmes mots, par exemple:

pencil P EH N S AH L
pencil(2) P EH N S IH L

spaghetti S P AH G EH T IY
spaghetti(2) S P UH G EH T IY

Pourtant pocketsphinx ne reconnaît toujours pas non plus mot du tout. Je sais qu'il ya un fichier JSGF vous pouvez spécifier aussi bien, mais cela semble plus pour les phrases et la grammaire. Comment puis-je obtenir pocketsphinx pour reconnaître les mots communs tels que le crayon et des spaghettis?

Merci

-Mike

Était-ce utile?

La solution

Avec quelque chose comme ça, vous ne pouvez pas être certain, mais je peux offrir les suggestions suivantes:

  1. Peut-être le modèle de langage a en quelque sorte une faible probabilité pour « spaghetti » et « crayon ». Comme vous l'avez dit, vous pouvez utiliser un JSGF pour tester comment il le fait pour la reconnaissance si elle ne pas utiliser les modèles N-gramme, mais ne place une grammaire simple (donner comme vingt mots, y compris spaghetti et crayon). De cette façon, vous pouvez voir si elle est peut-être le modèle de langage qui rend difficile de reconnaître ces mots, et il peut faire bien si elle considère tous les mots ont une probabilité égale.

  2. Peut-être que vous prononcez simplement ces mots mal, même avec les autres entrées du dictionnaire. Essayez soit A. voix des autres peuples d'essai, ou B. Adapter le modèle acoustique à votre voix (voir http: / /cmusphinx.sourceforge.net/wiki/tutorialam )

  3. En outre, ce qui est-il en les reconnaissant comme quand il échoue? Si possible, supprimer les mots qu'il comme du méconnaît le dictionnaire.

Encore une fois, la précision globale, seulement trois choses vont vraiment vous aider. Limiter la grammaire, l'adaptation du modèle accoustique, et peut-être obtenir l'entrée d'enregistrement de qualité supérieure

Autres conseils

Pour améliorer la précision, vous pouvez essayer d'adapter le modèle acoustique à votre voix. http://cmusphinx.sourceforge.net/wiki/tutorialadapt

Pour savoir comment ajouter de nouveaux mots: http://ghatage.com/tech/2012/12/13/Make-Pocketsphinx-recognize-new-words/

Assurez-vous que vous mettez un onglet (pas un espace) après le mot et avant le début de la prononciation.

Peut-être le problème est avec pocketsphinx. Moi aussi, je ne recevais pas de bons résultats avec pocketsphinx. Mais je recevais une très bonne précision avec Sphinx4 (pour un haut-parleur des États-Unis avec un microphone antibruit.) Je les ai fait une comparaison entre les deux en utilisant les mêmes enregistrements audio. Pour pocketsphinx je pocketsphinx_batch avec le modèle audio WSJ et un petit modèle de langage de vocabulaire et dictionnaire (créé en ligne avec la boîte à outils de modélisation linguistique CMU Cambridge.) Pour Sphinx4 je l'ai écrit un petit programme Java en utilisant la bibliothèque Sphinx4. Le résultat a été que Sphinx4 était beaucoup plus précis. Tous les détails sordides sont à http://www.jaivox.com/pocketsphinx.html .

Pour obtenir une bonne précision avec un pocketshinx:

  • Important! Vérifiez que votre micro, appareil audio, supports de fichiers 16 kHz alors que le modèle général est formé avec des exemples acoustiques 16 kHz.
  • Vous devez créer votre propre limité dictionnaire vous ne pouvez pas utiliser cmusphinx-voxforge-de.dic tandis que la précision est considérablement chuté.
  • Vous devez créer votre propre modèle de langage.

Vous pouvez rechercher projet Jasper sur gitlab ce pour voir comment il est mis en œuvre. En outre, s'il vous plaît consulter la documentation

est sur le site CMUSphinx

"Il y a plusieurs phonesets pour représenter les téléphones, tels que l'IPA ou SAMPA. CMUSphinx ne pas encore vous avez besoin d'utiliser un Combiné bien connu, par ailleurs, il préfère utiliser des noms de téléphone lettre uniquement sans caractères spéciaux. Cette Simplifie exigence certains algorithmes de traitement, par exemple, vous pouvez créer des fichiers avec des noms de téléphone dans le cadre des noms de fichiers sans violer des exigences de noms de fichiers OS.

Un dictionnaire doit contenir tous les mots qui vous intéressent, sinon la reconnaissance ne sera pas en mesure de les reconnaître. Cependant, il ne suffit pas d'avoir les mots dans le dictionnaire. Les regards de Recognizer pour un mot dans le dictionnaire à la fois et le modèle de langue. Sans le modèle de langue, un mot ne sera pas reconnu, même si elle est présente dans le dictionnaire « . https://cmusphinx.github.io/wiki/tutorialdict/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top