Je suis en train de modifier la démo android de pocketsphinx pour tester les mots-clés continus en fonction d'une liste de mots-clés et de seuils relatifs. Lorsque la méthode onResult de mon implémentation de edu.cmu.pocketsphinx.RecognitionListener est appelée cette chaîne hypothesis.getHypstr()
contiendra la liste des correspondances possibles.Impossible de itérer sur SegmentList alors que plusieurs correspondances sont trouvées
Je lis here que pour obtenir chaque match et leur poids, il est possible de le faire comme ceci:
for (Segment seg : recognizer.getDecoder().seg()) {
System.out.println(seg.getWord() + " " + seg.getProb());
}
Cependant ma course de code est jamais itérez segments comme si SegmentList était vide alors que hypothesis.getHypstr()
montre plus d'un match.
Pour reproduire le cas j'utilise cette liste de mots clés avec Seuils très bas de sorte que plusieurs correspondances sont faciles à trouver:
rainbow /1e-50/
about /1e-50/
blood /1e-50/
energies /1e-50/
Ma méthode onPartialResult
ne fait rien tout:
public void onEndOfSpeech() {
switchSearch(KWS_SEARCH);
}
public void onResult(Hypothesis hypothesis) {
if (hypothesis != null) {
for (Segment seg : recognizer.getDecoder().seg()) {
//No iteration is done here!!!
Log.d("onResult", seg.getWord() + " " + seg.getProb());
}
String text = hypothesis.getHypstr();
makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
}
}
Par exemple si je dis "énergies" alors hypothesis.getHypstr()
= "sang sur les énergies du sang" mais aucune itération n'est faite sur SegmentList: je peux le voir en mettant un point d'arrêt au début de la méthode onResult.
Une suggestion?
Merci
Probablement il itère, mais n'imprime rien. Vous devez également déplacer la boucle dans l'hypothèse! = Null condition. –
Merci @Nikolay, je ne cherche pas à la sortie en sortie standard mais à la place je suis en train de déboguer le code et le bloc n'est jamais entré. Vous avez raison je vais déplacer l'hypothèse! = Null condition, mais de toute façon tout en débogage je peux voir l'hypothèse n'est pas nulle car le bloc suivant est entré – salvolds