web-dev-qa-db-fra.com

Comment utiliser la reconnaissance vocale YouTube de Google sans télécharger de vidéos sur YouTube?

J'ai beaucoup de contenu vidéo de conférence pour lequel j'aimerais avoir les sous-titres. YouTube génère automatiquement des sous-titres pour les vidéos dans certaines conditions (ces conditions restent pour moi un mystère).

J'aimerais pouvoir utiliser cette technologie de reconnaissance vocale en dehors de YouTube. Je ne veux pas télécharger toutes les vidéos uniquement pour obtenir la transcription (cela prend trop de temps). De plus, je ne pense pas que YouTube le fera pour les vidéos d'une durée supérieure à 30 minutes environ (la plupart le sont), ne pensez pas que cela le fera pour les vidéos non publiques répertoriées (ce qui pose un problème car il s'agit d'un contenu premium destiné à être vendu).

Scénario parfait: Je peux exécuter un programme à partir de mon bureau pour extraire la transcription de ces vidéos. Elle est de qualité égale ou meilleure que celle de YouTube et possède des codes de temps similaires à ceux d'une SRT ou du XML générés par YouTube [- Comment obtenir des sous-titres YouTube ].

Scénario acceptable: je peux effectuer certaines astuces pour forcer YouTube à transcrire les vidéos, qu'elles soient définies en mode privé ou public et malgré leur longueur.

Scénario faisable: Il existe une bibliothèque ou quelque chose que je peux utiliser pour coder mon propre programme. Je suis bon avec C # et bon avec C++ (mais je préfère vraiment C #).

15
fredsbend

Google a mis en œuvre le Web Speech API (à la fois pour la reconnaissance et la synthèse de la parole) dans Chrome, que vous pouvez utiliser si vous êtes un développeur. C’est ce que YouTube utilise pour générer un sous-titrage précis de certaines vidéos. Peut-être trouverez-vous du code pour interagir avec cela.

Le flux de données serait probablement:

Un fichier vidéo => extraire et convertir l'audio => l'envoyer à Google API => obtenir le texte => écrire dans un fichier SRT.

EDIT: Il ne semble pas y avoir de page officielle de l'API, autre que la spécification W3C. Alors, voici d'autres liens:

Ces exemples concernent l'utilisation de l'API dans Chrome, mais vous pouvez directement interroger le moteur de reconnaissance vocale en ligne de Google. Par exemple, Jasper , un assistant personnel de reconnaissance de la parole pour Raspberrry Pi, vous permet choisissez Google comme moteur de reconnaissance vocale.

10
foucdeg

Il existe un outil appelé "autosub" (voir agermanidis/autosub sur github) qui le fait précisément, bien qu'il utilise l'ancienne API Google Voice. L'outil utilise ffmpeg pour extraire l'audio dans les fichiers FLAC, puis les envoie à Google pour la 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 ("API Cloud Cloud"REST API "à l'adresse 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 consiste à télécharger sur YouTube et le fichier VTT lorsque le sous-titrage est terminé. La complication avec ceci est que YouTube produit des légendes très fines (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.

1
Dirk Grunwald

Le moyen le plus simple est le suivant: accédez à Google Documents, ouvrez un nouveau document texte et sélectionnez un des outils de "saisie vocale", puis lisez votre bande. Oui. C'est si facile! (et supporte plusieurs langues)

Sinon, vous pouvez utiliser une page Web locale avec HTML5 comme ceci: https://www.labnol.org/software/add-speech-recognition-to-website/19989/

1
Zibri