2017-04-17 3 views
0

J'essaie d'implémenter une application de commande et de contrôle en allemand avec CMUSphinx et Java. Jusqu'à présent, l'application ne devrait reconnaître que quelques mots (chiffres de 1 à 9, oui/non).CMUSphinx application de commande et de contrôle allemand, mauvaise précision

Malheureusement, la précision est très mauvaise. Il semble que si un mot est correctement reconnu, ce n'est que par hasard.

Voici mon code java jusqu'à présent (adapté du tutoriel):

public static void main(String[] args) throws IOException { 

    // Configuration Object 
    Configuration configuration = new Configuration(); 

    // Set path to the acoustic model. 
    configuration.setAcousticModelPath("resource:/cmusphinx-de-voxforge-5.2"); 

    // Set path to the dictionary. 
    configuration.setDictionaryPath("resource:/cmusphinx-voxforge-de.dic"); 

    // use grammar 
    configuration.setGrammarPath("resource:/"); 
    configuration.setGrammarName("dialog"); 
    configuration.setUseGrammar(true); 

    LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration); 

    recognizer.startRecognition(true); 
    SpeechResult result; 
    while ((result = recognizer.getResult()) != null) { 
     System.out.format("Hypothesis: %s\n", result.getHypothesis()); 
    } 
    recognizer.stopRecognition(); 
} 

Voici mon fichier Grammer:

#JSGF V1.0; 

grammar dialog; 

public <digit> = 1 | 2 | 3 | 4 |5 | 6 | 7 | 8 | 9 | ja | nein; 

J'ai téléchargé le modèle acoustique allemand et le dictionnaire d'ici : https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/German/

Y at-il quelque chose d'évident que je manque ici? Où est le problème?

Merci d'avance et de l'amitié.

+0

Vous devez fournir des données audio et les modèles que vous avez modifiés pour reproduire vos problèmes. Les chiffres comme 1,2 ne font pas partie du dictionnaire par défaut, vous ne pouvez pas les utiliser dans une grammaire. –

+0

Merci pour votre rediffusion. 1) Qu'entendez-vous par données audio? L'audio que je veux reconnaître? Ou pour un nouveau modèle acoustique? 2) J'ai changé 1 en eins et donc un (qui font partie du dictionnaire). Ne semble pas améliorer la précision :( –

+0

J'ai également ajouté 'cmusphinx-voxforge-de.lm.bin' Aucun effet –

Répondre

0

Eh bien, la précision n'est pas grande, probablement la base de données originale n'a pas beaucoup d'exemples comme le vôtre. En partie votre dialecte contribue également, les Allemands disent 7 avec z, pas avec s. L'écho partiel dans votre pièce contribue aussi. Je ne suis pas sûr de la façon dont vous avez enregistré votre audio, si vous avez utilisé une compression ou un codec entre les deux, cela pourrait aussi contribuer à une mauvaise précision.

Vous pourriez vouloir collecter quelques centaines d'échantillons et effectuer une adaptation MAP pour améliorer la précision.