11540 sujets

JavaScript, DOM et API Web HTML5

Hello

j'ai un audio, et un texte correspondant à la retranscription de cet audio en texte donc.
L'idée serait de changer la couleur du texte au fur et à mesure que l'audio défile, un peu comme un système de sous-titres mais où tout le texte est visible.

L'idée serait donc de faire quelque chose d'approximatif en calculant la durée de l'audio, et de créer une animation qui change la couleur du texte, en appliquant la durée de l'audio à l'animation.

Je reste un peu confus pour réaliser ça, si vous avez des idées ou des infos, je suis preneur.

Merci
Salut,
ce texte devrait défiler sous la barre audio, comme les sous-titres en vidéo, je suppose ? Ou alors autre chose, je n'ai pas trop compris cette partie.
La grosse difficulté sera de lancer le défilement du texte en même temps que l'audio. Je crois que je m'étais frotté à ce problème, il y a assez longtemps, lorsque je commençais dans le web. Je n'ai jamais tenté depuis.
Ça doit tout à fait être possible avec les @keyframes et la fonction css animation. En jouant sur la durée et éventuellement l'écartement des mots du texte pour une meilleure synchro. On peut lancer une @keyframe avec Javascript, qui lancerait aussi l'audio en même temps.
Sinon, tu peux faire comme si l'audio était une vidéo et mettre le texte en sous-titres.
Quelques précisions supplémentaires serraient les bienvenues, avec un exemple, même pris ailleurs.
Hello

alors je pense avoir trouvé, mais ce sera de la fausse synchro.

Je vais diviser mon texte en span, 1 span = 1 mot. Puis une anim sur chaque span pour changer sa couleur, le temps de l'anim sur chaque span correspondra à la durée totale de l'audio divisée par le nombre de span. Et les anim se déclencheront span par span, avec un offset donc.

Apres il y a des API pour faire de la vraie synchro, mais il faut les timecode issus de l'audio de chaque mot, travail d'arrache-pied...