J'ai beaucoup de contenu vidéo de conférence dont j'aimerais avoir les sous-titres. YouTube génère automatiquement des sous-titres pour les vidéos sous certaines conditions (ces conditions sont encore un peu un mystère pour moi).
J'aimerais pouvoir utiliser cette technologie de reconnaissance vocale en dehors de YouTube. Je ne veux pas télécharger chaque vidéo juste pour obtenir la transcription (trop de temps), et je ne pense pas que YouTube le fera pour les vidéos qui durent plus de 30 minutes environ (la plupart d'entre elles le sont), de plus, je ne pensez pas qu'il le fera pour les vidéos non publiques (ce qui est un problème car c'est du contenu premium qui est destiné à être vendu).
Scénario parfait: il y a un programme que je peux exécuter à partir de mon bureau pour extraire la transcription de ces vidéos et il est de qualité égale ou meilleure que YouTube et a les codes temporels similaires à un SRT ou au XML que YouTube génère [ Comment obtenir des sous-titres YouTube ].
Scénario acceptable: il y a quelques astuces que je peux faire pour forcer YouTube à transcrire les vidéos, qu'elles soient définies sur privé ou public, et malgré la durée.
Scénario faisable: il existe une bibliothèque ou quelque chose que je peux utiliser pour coder mon propre programme. Je suis bon en C # et d'accord avec C ++ (mais je préfère vraiment C #).
Réponses:
Google a implémenté l' API Web Speech (à la fois pour la reconnaissance vocale et la synthèse) dans Chrome, que vous pouvez utiliser si vous êtes développeur. C'est ce que YouTube utilise pour générer le sous-titrage de certaines vidéos. Vous trouverez peut-être du code pour interagir avec.
Le flux de données serait probablement:
Un fichier vidéo => extraire et convertir l'audio => l'envoyer à l'API Google => obtenir le texte => écrire dans un SRT.
EDIT: il ne semble pas y avoir de page API officielle, autre que la spécification W3C. Voici donc plus de liens:
Ces exemples concernent l'utilisation de l'API à partir de Chrome, mais vous pouvez directement interroger le moteur de reconnaissance vocale en ligne de Google. Par exemple, Jasper , un assistant personnel de reconnaissance vocale pour Raspberrry Pi, vous permet de choisir Google comme moteur de reconnaissance vocale.
la source
Il existe un outil appelé "autosub" (voir agermanidis / autosub sur github) qui fait exactement cela, bien qu'il utilise l'ancienne API Google de la parole. L'outil utilise ffmpeg pour découper l'audio en fichiers FLAC, puis envoie les fichiers FLAC à Google pour transcription. Il produit un fichier SRT ou VTT.
La précision est faible en partie à cause de l'ancienne API Google. Il existe une API plus récente ("Cloud Speech REST API" sur https://cloud.google.com/speech/docs/apis ). Cette API est assez simple et à un moment donné, j'allais créer un autosub pour l'utiliser.
L'alternative est de télécharger sur YouTube et de télécharger le fichier VTT lorsque le sous-titrage est terminé. La complication avec cela est que YouTube produit des sous-titres très fins (par exemple quelques mots) plutôt que par exemple une phrase. Cela rend plus difficile la vérification des sous-titres lors d'une analyse manuelle.
la source
La façon la plus simple est la suivante: accédez à Google Documents, ouvrez un nouveau document texte et sélectionnez parmi les outils "saisie vocale", puis lisez votre bande. Oui. C'est si facile! (et prend en charge plusieurs langues)
Sinon, vous pouvez utiliser une page Web locale avec HTML5 comme celle-ci: https://www.labnol.org/software/add-speech-recognition-to-website/19989/
la source