Wie kann die Spracherkennung von Google verwendet werden, ohne dass Videos auf YouTube hochgeladen werden?

18266
fredsbend

Ich habe viele Vortragsvideos, für die ich Untertitel hätte. YouTube generiert unter bestimmten Bedingungen automatisch Untertitel für Videos (diese Bedingungen sind für mich immer noch ein Rätsel).

Ich möchte diese Spracherkennungstechnologie auch außerhalb von YouTube nutzen können. 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 etwa 30 Minuten dauern (die meisten davon sind) Ich glaube nicht, dass dies für nicht öffentlich gelistete Videos gilt (was ein Problem ist, da es sich um Premium-Inhalte handelt, die verkauft werden sollen).

Perfektes Szenario: Es gibt ein Programm, das ich von meinem Desktop aus ausführen kann, um das Transkript aus diesen Videos zu holen, und es ist von gleicher oder besserer Qualität als das von YouTube und hat ähnliche Zeitcodes wie eine SRT oder das von YouTube erzeugte XML [ How to YouTube-Untertitel erhalten ].

Akzeptables Szenario: Es gibt einige Tricks, mit denen ich YouTube zwingen kann, Videos zu transkribieren, unabhängig davon, ob sie privat oder öffentlich sind, und dies 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 C #).

15
Danke für den Link - aus taubem Blick sehr interessiert, wie das funktioniert ... studiohack vor 10 Jahren 2
@studiohack kein Wortspiel beabsichtigt. fredsbend vor 10 Jahren 0
LOL, das habe ich nicht mal gemerkt! : P studiohack vor 10 Jahren 0

3 Antworten auf die Frage

10
foucdeg

Google hat die Web-Sprach-API (sowohl für die Spracherkennung als auch für die Synthese) in Chrome implementiert, die Sie als Entwickler verwenden können. Dies ist, was YouTube verwendet, um Untertitel für einige Videos zu erzeugen. Vielleicht findest du Code, um damit zu interagieren.

Der Datenfluss wäre wahrscheinlich:

Eine Videodatei => entpacken und Audio konvertieren => an Google API senden => Text abrufen => in ein SRT schreiben.

BEARBEITEN: Abgesehen von den W3C-Spezifikationen scheint es keine offizielle API-Seite zu geben. Hier sind weitere 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 spracherkennenden persönlichen Assistenten für Raspberrry Pi, können Sie beispielsweise Google als Spracherkennungsmodul auswählen .

Vielen Dank! Ich werde das sicherlich ausprobieren. Wenn es schnell geht (außer zur Bearbeitungszeit), kann ich dies in mein Produkt implementieren. Was für ein Segen das wäre. fredsbend vor 9 Jahren 0
Eine andere Quelle der API kann eine NodeWebkit-Umgebung sein John Dvorak vor 6 Jahren 0
1
Dirk Grunwald

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 zu extrahieren, und sendet dann die FLAC-Dateien zur Transkription an Google. Es erzeugt eine SRT- oder VTT-Datei.

Die Genauigkeit ist zum Teil 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 verwenden, um das zu verwenden.

Die Alternative ist, auf YouTube hochzuladen und die VTT-Datei herunterzuladen, wenn die Untertitelung abgeschlossen ist. Die Schwierigkeit dabei ist, dass YouTube sehr feinkörnige Bildunterschriften (z. B. ein paar Wörter) und nicht z. B. einen Satz erzeugt. Dies macht es schwieriger, die Untertitel beim manuellen Scannen zu überprüfen.

1
Zibri

Der einfachste Weg ist der: Gehen Sie zu Google Docs, öffnen Sie ein neues Textdokument, wählen Sie aus den Tools "Spracheingabe" aus und spielen Sie dann Ihr Band ab. Ja. So einfach ist das! (und unterstützt mehrere Sprachen)

Ansonsten können Sie eine lokale Webseite mit HTML5 wie folgt verwenden: https://www.labnol.org/software/add-speech-recognition-to-website/19989/