Neue Funktion: Videos automatisch mit Untertiteln transkribieren

Wir haben unseren Robot /speech/transcribe kürzlich um eine Funktion erweitert, mit der er gesprochene Sprache erkennen und SRT-Dateien ausgeben kann. Diese Dateien können Sie automatisch nutzen, um Untertitel in Videoplayern anzuzeigen. Dank der Kombinierbarkeit von Transloadit nach dem LEGO-Prinzip können Sie die Untertitel sogar direkt in die Videos einbrennen. Heute möchte ich Ihnen zeigen, wie das geht.

KI kommt in mehr Lebensbereichen zum Einsatz, als Sie vielleicht erwarten, und das aus gutem Grund. Sie kann menschliche Arbeit deutlich schneller, präziser und effektiver machen. Doch die enorme Datenmenge, die Datenbereinigung und die Grafikkarten, die zum Trainieren komplexer Modelle nötig sind, können KI einschüchternd wirken lassen. Das kann kleinere Unternehmen davon abhalten, sie zu nutzen. Transloadit möchte KI mehr Entwicklern zugänglich machen, indem es ihre Nutzung und die Wertschöpfung damit deutlich vereinfacht.
Im Laufe der Jahre haben wir eine Reihe von KI-basierten Robots veröffentlicht, die sich einfach anschließen und nutzen lassen. Sie müssen keine Sekunde darauf verwenden, sich mit KI-Modellen vertraut zu machen oder sie zu trainieren.
Der KI-Robot, den wir uns heute ansehen, ist unser Robot /speech/transcribe. Dieser Robot kann jede Audio- oder Videodatei lesen und daraus automatisch Textdateien erstellen. So entfällt das mühsame manuelle Transkribieren. Er bietet zudem von Anfang an weitere Vorteile: Er unterstützt viele Sprachen und lässt Ihnen die Wahl zwischen der KI von Amazon und der von Google, indem Sie nur einen Parameter ändern. Transloadit übernimmt alle Implementierungsdetails im Hintergrund und bietet eine einheitliche Schnittstelle. Sie lässt sich in Workflows einbinden, in denen weitere Robots den bereits vorhandenen Nutzen dieser KI-Bots erheblich steigern. Das Ganze wird deutlich mehr als die Summe seiner Teile. Durch das Ändern von drei Zeichen können Sie außerdem den Anbieter wechseln und schnell herausfinden, welcher am besten zu Ihrem Anwendungsfall passt. Sie müssen sich weder um die Fehlerbehandlung noch um das Senden von Dateien mit den richtigen Codecs, Bandbreiten usw. kümmern. Transloadit übernimmt all das für Sie und bietet es als Dienst an, den Sie mit einem einzigen deklarativen JSON-Rezept nutzen können.
Erste Schritte
In diesem Beitrag kombinieren wir unsere Robots /speech/transcribe und /video/subtitle, um gesprochene Sprache in einem Video zu transkribieren und das Ergebnis anschließend direkt in das Video einzubrennen. Manuelle Arbeit kann zwar manchmal bessere Ergebnisse liefern, ist aber naturgemäß teuer und mühsam, bis hin zur Unwirtschaftlichkeit. Unserer Erfahrung nach halten unsere Kunden die automatische Transkription für viele Zwecke für „gut genug“. Gleichzeitig sinken die Kosten so stark, dass das Transkribieren von Videos überhaupt erst attraktiv wird.
Ein Anwendungsfall ist das Teilen von Videos in sozialen Medien. Dort ziehen Videos mit Untertiteln nachweislich deutlich mehr Aufmerksamkeit auf sich als solche ohne.
Häufig werden die transkribierten Dateien auch mit einem Tool wie ElasticSearch indexiert, wodurch Videos durchsuchbar werden. So liefert eine Suche Treffer zu jedem gesprochenen Wort im Video und nicht nur zu Wörtern im Videotitel.
Unten finden Sie das Rezept, mit dem wir unsere beiden Funktionen kombiniert haben. Wir nennen es Assembly Instructions. Speichern Sie es in einem Template in Ihrem Konto, um es jederzeit wiederzuverwenden. Wir gehen jeden Step durch und probieren es dann aus.
Erstellen Sie zunächst einen Eintrag mit Template-Zugangsdaten für
Amazon S3 mit dem Namen s3_cred für Ihren eigenen privaten Bucket. Lassen Sie
S3 Block Public Access aktiviert und geben Sie keine ACL- oder Grant-Header an. Der folgende Export
setzt den Parameter acl auf bucket-default, um den generierten
ACL-Header wegzulassen. Andernfalls hat /s3/store den Standardwert
public-read. Für das Lesen des privaten Videos und des Transkripts ist eine
separate Leseberechtigung erforderlich. Die zurückgegebenen URLs gewähren keinen Zugriff.
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"transcribed": {
"use": ":original",
"robot": "/speech/transcribe",
"provider": "gcp",
"format": "srt",
"result": true
},
"subtitled": {
"use": {
"bundle_steps": true,
"steps": [
{
"name": ":original",
"as": "video"
},
{
"name": "transcribed",
"as": "subtitles"
}
]
},
"robot": "/video/subtitle",
"ffmpeg_stack": "v7",
"preset": "ipad-high",
"result": true
},
"exported": {
"use": ["subtitled", "transcribed"],
"robot": "/s3/store",
"credentials": "s3_cred",
"acl": "bucket-default"
}
}
}
Unser erster Step verwendet den Robot /upload/handle, um unsere Uploads zu verarbeiten. Wer hätte das gedacht? Mit diesem Step können Sie Ihre Datei hochladen. Beachten Sie jedoch, dass wir viele alternative Robots für den Dateiimport anbieten.
Weiter geht es mit unserem zweiten Step
"transcribed", in dem unsere bereits erwähnte KI-Magie zum Einsatz kommt. Wir legen
einen Parameter provider mit dem API-Wert "gcp" fest. Sie könnten aber auch
den Wert "aws" verwenden. Zusätzlich müssen wir den Parameter
format festlegen. Da wir Untertitel in ein Video einbetten möchten, haben wir
uns für das Format "srt" entschieden. Alternativ könnten Sie
"webvtt" verwenden, dessen Vorteile gegenüber "srt"
wir für unseren Anwendungsfall jedoch nicht benötigen.
Sie könnten die SRT-Dateien separat exportieren, um die Untertitel im Videoplayer einzublenden.
Hier brennen wir die erzeugten Untertitel jedoch mit unserem
Robot /video/subtitle in die
ursprünglich hochgeladene Videodatei ein. Um die beiden
Steps zu verbinden, referenzieren Sie die beiden
Steps für den Upload und die Untertitel im
use-Parameter beim Robot
/video/subtitle mithilfe der Benennungssyntax
use.steps[].as.
Verwenden Sie abschließend den Robot /s3/store, um unsere Ergebnisse nach Amazon S3 zu exportieren. Wie unser erster Step lässt sich auch dieser Step leicht austauschen, denn wir bieten viele weitere Exportmöglichkeiten an.
Testen
Um unser Template zu testen, haben wir einen kurzen Clip aus der herausragenden Serie von David Attenborough mit dem Titel Planet Earth gewählt.
Wie Sie sehen, war die Assembly erfolgreich. Dank KI entfällt das mühsame manuelle Erstellen einer Untertiteldatei.
Diesen Workflow können Sie jetzt in Ihre Web- oder Mobil-App, Ihren Backend-Dienst oder Ihr Kommandozeilenprogramm integrieren. Dafür stehen Ihnen 20 praktische SDKs wie Uppy oder das Go SDK zur Verfügung. Sie können auch direkt unsere JSON REST API nutzen.
Wir freuen uns darauf zu erfahren, was Sie mit uns entwickeln. Erzählen Sie uns davon auf Twitter!