2013-09-27 1 views
0

Comment puis-je obtenir l'index temporel (ou le numéro d'image) dans Sphinx 4 lorsque je le mets à transcrire un fichier audio?Indice de temps de transcription Sphinx 4

Le code J'utilise ressemble à ceci:

audioURL = ... 
AudioFileDataSource dataSource = (AudioFileDataSource) cm.lookup("audioFileDataSource"); 
dataSource.setAudioFile(audioURL, null); 

Result result; 
while ((result = Recognizer.recognize()) != null) { 
    Token token = result.getBestToken(); 
    //DoubleData data = (DoubleData) token.getData(); 
    //long frameNum = data.getFirstSampleNumber(); // data seem always null 
    String resultText = token.getWordPath(false, false); 
    ... 
} 

J'ai essayé d'obtenir le temps de la transcription à partir d'objets de résultat/jeton, par exemple similaire à ce que fait un sous-titreur. J'ai trouvé Result.getFrameNumber() et Token.getFrameNumber() mais ils semblent retourner le nombre de trames décodées et non l'heure (ou l'image) où le résultat a été trouvé dans le contexte du fichier audio entier.

Je regardais AudioFileDataSource.getDuration() [= privé] et les classes Recognizer mais n'ont pas comprendre comment obtenir le transcrit nécessaire temps index ..

Idées? :)

Répondre

1

Le nombre d'images est le temps multiplié par la fréquence d'images qui est de 100 images/seconde.

Quoi qu'il en soit, s'il vous plaît trouver le patch pour des sous-titres démo qui retourne timings ici:

http://sourceforge.net/mailarchive/forum.php?thread_name=1380033926.26218.12.camel%40localhost.localdomain&forum_name=cmusphinx-devel

Le patch applique au tronc de la subversion, et non pas à la version 1.0-beta.

Veuillez noter que cette partie est en cours de refactoring majeur, l'API sera bientôt obsolète. Cependant, j'espère que vous serez en mesure de créer des sous-titres avec seulement quelques appels sans toute la complexité actuelle.

Questions connexes