J'essaie de marquer chaque paragraphe de texte transcrit avec des horodatages indiquant quand / où il apparaît dans l'audio.
mplayer
et emacs
me rapproche. mplayer
, dans le terminal, émet un flux d’informations temporelles appropriées; par exemple. (journal de commandes et exemples)
mplayer au-file 1>event.log 2>&1
A: 0.8 (00.7) of 3207.0 (53:27.0) 0.1% [J
A: 0.9 (00.9) of 3207.0 (53:27.0) 0.1% [J
A: 1.0 (01.0) of 3207.0 (53:27.0) 0.1% [J
Certaines clés non liées (par exemple, F12
) peuvent être utilisées pour marquer un événement dans le journal, en particulier pour le début d'un paragraphe.
xdotool key --window $termID F12
A: 3.1 (03.0) of 3207.0 (53:27.0) 0.1% [J
No bind found for key 'F12'.
A: 3.2 (03.2) of 3207.0 (53:27.0) 0.1% [J
A: 3.3 (03.3) of 3207.0 (53:27.0) 0.1% [J
Ce qui précède fonctionne bien. Il faut ensuite que les numéros de ligne soient injectés event.log
. Je vais probablement utiliser emacs
pour déclencher ces deux événements de l'intérieur emacs
, en liant une clé pour lire la point
position actuelle et en l'ajoutant au journal.
Oui, vous l'avez deviné, j'ai un problème. Il semble que mplayer
garder un pointeur de flux (ou quelque chose?), Car quand il écrit sa prochaine ligne, il écrase le texte que j'ai ajouté. Je ne sais pas ce qui se passe, mais aucune de mes lignes ajoutées n'apparaît dans le journal final ... je l'ai déjà utilisée echo $number >>events.log
.
J'ai regardé le journal via tail -f events.log
et il montre une de mes lignes de temps en temps, donc ils doivent y arriver ...
Y-a-t-il moyen de faire autrement?
Soit par certains fu
au journal, ou une méthode entièrement différente, par exemple. un outil qui fait exactement cela, en temps réel .. J'ai examiné les outils de sous-titrage et les éditeurs audio-vidéo, mais ils semblent trop maladroits .. Je suis ouvert à toutes les idées.
Remarque. Ceci est une réponse à ma propre question
La méthode suivante fonctionne assez bien. Il envoie une série d’appuis non liés à mplayer (mplayer enregistre ces pressions de touche non valides). Chaque touche enfoncée est choisie pour représenter un chiffre décimal, par exemple. l'envoi
F2 F5 F7
représente le nombre décimal257
. L'envoi d'un numéro à 6 chiffres prend environ 0,2 seconde. L'horodatage est extrait de la ligne du journal juste avant la première pression de touche (en-tête). Cela évite tous les problèmes liés aux délais de mise en cache, comme mentionné dans la réponse de Gilles .Il peut être exécuté très facilement
emacs
en déplaçant simplementpoint
(le curseur) sur une autre ligne ou en appuyant sur une touche spécifique (ce code n’est pas là, mais j’attendrais à ce qu’il soit assez simple (je suis nouveau dans elisp). la solution codée et alpha-testée ...Voici un processus de suivi en 3 étapes pour extraire l’horodatage et le numéro (numéro de ligne ou décalage octet / caractère dans le texte source) ...
Voici le résultat final:
time in seconds
et le testline number
la source