Wie Verwenden von Google YouTube Spracherkennung ohne das Hochladen von Videos auf YouTube?

15

Ich habe eine Menge von Vortragsvideoinhalten, die ich mag die Untertitel haben für. YouTube generiert automatisch Untertitel für Videos unter bestimmten Bedingungen (die Bedingungen sind immer noch so etwas wie ein Rätsel für mich).

Ich möchte in der Lage sein, diese außerhalb von YouTube Spracherkennungstechnologie zu nutzen. Ich möchte nicht jedes Video hochladen, nur um das Transkript zu erhalten (zu zeitaufwändig), und ich glaube nicht, dass YouTube dies für Videos tun wird, die länger als 30 Minuten sind (die meisten von ihnen sind es) Ich glaube nicht, dass dies bei nicht öffentlich gelisteten Videos der Fall ist (was ein Problem darstellt, da es sich um Premium-Inhalte handelt, die verkauft werden sollen).

Perfektes Szenario: Es ist ein Programm , dass ich von meinem Desktop laufen kann das Transkript aus diesen Videos zu bekommen , und es ist von gleicher oder besserer Qualität als YouTube und hat den Zeitcodes ähnlich einen SRT oder XML , dass YouTube erzeugt [ Wie YouTube-Untertitel abrufen ].

Akzeptables Szenario: Es gibt einige Tricks, mit denen ich YouTube zwingen kann, die Videos zu transkribieren, egal ob privat oder öffentlich, und das trotz der Länge.

Machbares Szenario: Es gibt eine Bibliothek oder etwas, mit dem ich mein eigenes Programm programmieren kann. Ich bin gut mit C # und okay mit C ++ (aber ich bevorzuge wirklich C #).

287352
quelle
2
danke für den link nach oben - aus tauben
sicht
@studiohack kein Wortspiel vorgesehen.
287352
LOL, das habe ich gar nicht gemerkt! : P
studiohack

Antworten:

10

Google hat das Web Speech API (sowohl für die Spracherkennung als auch für die Synthese) in Chrome implementiert , das Sie als Entwickler verwenden können. Dies wird von YouTube verwendet, um für einige Videos Untertitel zu generieren. Vielleicht finden Sie Code, um damit zu interagieren.

Der Datenfluss wäre wahrscheinlich:

Eine Videodatei => Audio extrahieren und konvertieren => an Google API senden => den Text abrufen => in eine SRT schreiben.

BEARBEITEN: Es scheint keine offizielle API-Seite zu geben, außer der W3C-Spezifikation. Also hier sind noch mehr Links:

In diesen Beispielen geht es um die Verwendung der API in Chrome. Sie können jedoch die Online-Spracherkennungs-Engine von Google direkt abfragen. Mit Jasper , einem persönlichen Assistenten zur Spracherkennung für Raspberrry Pi, können Sie beispielsweise Google als Spracherkennungsmodul auswählen .

Foucdeg
quelle
Vielen Dank! Ich werde das mit Sicherheit ausprobieren. Wenn es schnell geht (abgesehen von der Bearbeitungszeit), kann ich dies in mein Produkt implementieren. Was für ein Segen das wäre.
287352
Eine andere Quelle für die API ist möglicherweise eine NodeWebkit-Umgebung
John Dvorak,
1

Es gibt ein Tool namens "autosub" (siehe agermanidis / autosub auf github), das genau dies tut, obwohl es die ältere Google-Sprach-API verwendet. Das Tool verwendet ffmpeg, um das Audio in FLAC-Dateien umzuwandeln, und sendet die FLAC-Dateien dann zur Transkription an Google. Es wird eine SRT- oder VTT-Datei erstellt.

Die Genauigkeit ist teilweise aufgrund der älteren Google-API gering. Es gibt eine neuere API ("Cloud Speech REST API" unter https://cloud.google.com/speech/docs/apis ). Diese API ist ziemlich einfach und irgendwann wollte ich Autosub forken, um das zu nutzen.

Die Alternative besteht darin, auf YouTube hochzuladen und die VTT-Datei herunterzuladen, wenn die Untertitel fertig sind. Die Komplikation dabei ist, dass YouTube eher sehr feinkörnige Untertitel (z. B. ein paar Wörter) als z. B. einen Satz produziert. Dies macht es schwieriger, die Beschriftungen bei einem manuellen Scan zu überprüfen.

Dirk Grunwald
quelle