Ich benutze Sphinx4, um die Ausrichtung mit einem Text zu tun. Ich möchte das Timing für jedes Wort im Satz (Anfang, Ende) und auch das Timing jedes Phonems in den Wörtern erhalten. Dazu habe ich den Code des SpeechAligner geändert. Die von mir bearbeitete Methode ist:Sphinx4 Token Einheiten verschoben
Ich habe gerade eine Liste hinzugefügt, wo ich das Ergebnis in der Ergebnisklasse (nicht WordResult) bekomme.
List<WordResult> hypothesis = new ArrayList<WordResult>();
Result result;
while (null != (result = recognizer.recognize())) {
alignResult.add(result);// I am filling the results here
logger.info("Utterance result " + result.getTimedBestResult(true));
hypothesis.addAll(result.getTimedBestResult(false));
}
Dann folgte ich genau dieses Beispiel: Phonemes Timestamp
Für diesen Satz: "der adversaires" Ich erwarte haben: expected result
Aber das Ergebnis verschoben wird 1 Wort der der Anfang nimmt die Schreibweise des Wortes "des", und des nimmt die Schreibweise von "Adversaires" und so weiter (als ob die zweite Stille ignoriert wird). Ich erhalte diese: what i get
das Token anzuzeigen und die Einheiten Ich benutze:
System.out.println("token : " + token.getWordPath() + " - unit : " + unit.toString());
Vielen Dank im Voraus,
@NikolayShmyrev Die Änderung von "false" ändert leider nichts (trotzdem logger.info ("Uterance result" + result.getTimedBestResult (true));) ist nur eine Protokollzeile. – user1828433