AiSrt: Übersetzen, Extrahieren und Transkribieren Sie Ihre Untertitel dank Künstlicher Intelligenz
Ein kostenloses Tool, um Videos in 29 Sprachen zugänglich zu machen, für Gehörlose, Schwerhörige und alle Liebhaber mehrsprachiger Inhalte
Sie haben ein Video mit englischen Untertiteln und hätten sie gerne auf Französisch, Spanisch, Arabisch oder Japanisch? Oder einen Film ohne den kleinsten Untertitel, aus dem Sie gerne eine .srt-Datei erstellen würden? Genau dafür habe ich AiSrt geschrieben.
AiSrt ist ein Kommandozeilen-Tool, das sich auf KI stützt, um Ihre .srt-Untertiteldateien zu übersetzen, die bereits in Ihren Videodateien eingebetteten Spuren zu extrahieren und die Audiospur eines Videos direkt in Untertitel zu transkribieren. Alles drei in derselben Binärdatei.
Für die Übersetzung haben Sie die Wahl zwischen fünf Engines. Die APIs von OpenAI, Anthropic (Claude), Google (Gemini) und xAI (Grok) kosten ein paar Cent pro Film. Oder ein Ollama-Server, der auf Ihrem eigenen Rechner läuft: kostenlos, offline, kein Schlüssel, kein Konto. Ihre Untertitel verlassen Ihre Festplatte nicht.
Und wenn das Video keine Untertitel enthält, greift AiSrt auf Whisper zurück, das Spracherkennungsmodell von OpenAI, das die Audiospur ganz allein in eine .srt-Datei umwandelt. Ganz ehrlich, als ich zum ersten Mal gesehen habe, wie eine einstündige Konferenz mit Untertiteln herauskam, ohne dass ich eine einzige Zeile tippen musste, hat mich das schon berührt.
Neu in dieser Version: Die Untertitel von Blu-rays, die kein Text, sondern Bilder sind, lassen sich jetzt ebenfalls lesen. AiSrt dekodiert sie, gibt sie an eine Texterkennungs-Engine weiter und lässt das Ergebnis anschließend von der KI gegenlesen. Darauf komme ich weiter unten zurück, das ist der Teil, auf den ich am stolzesten bin.
Warum AiSrt?
- Barrierefreiheit zuerst. Gehörlose und schwerhörige Menschen verdienen einen einfachen Zugang zu Videoinhalten. Untertitel zu erzeugen und zu übersetzen sollte ein paar Minuten dauern, nicht einen ganzen Abend.
- 29 Sprachen. Arabisch, Deutsch, Englisch, Chinesisch, Koreanisch, Dänisch, Spanisch, Finnisch, Französisch, Griechisch, Hindi, Hebräisch, Ungarisch, Indonesisch, Italienisch, Japanisch, Malaiisch, Niederländisch, Norwegisch, Polnisch, Portugiesisch, Rumänisch, Russisch, Schwedisch, Tschechisch, Thailändisch, Türkisch, Ukrainisch und Vietnamesisch.
- Eine Übersetzung, die den Kontext versteht. Das ist der ganze Unterschied zu einer Wort-für-Wort-Übersetzung: Redewendungen, Humor und Wortspiele kommen viel besser rüber.
- Drei Funktionen in einem einzigen Tool: Übersetzung, Extraktion, Transkription.
- Sogar Untertitel, die Bilder sind. Die PGS-Spuren von Blu-rays werden per Texterkennung gelesen und anschließend von der KI gegengelesen, um zu korrigieren, was die OCR falsch erkannt hat.
- Fünf Übersetzungs-Engines zur Auswahl. OpenAI, Claude, Gemini, Grok oder Ollama, mit Ihrem eigenen Schlüssel, der sich mit einer Option wechseln lässt.
- Kostenlos und offline, wenn Sie möchten. Mit Ollama, das auf Ihrem Rechner installiert ist, kostet die Übersetzung nichts, benötigt keinen Schlüssel und schickt nichts irgendwohin. Praktisch für Inhalte, die Sie nicht über einen Drittanbieter-Dienst laufen lassen möchten.
- Nichts zusätzlich zu installieren. Die Binärdatei ist eigenständig, es gibt keine .NET-Runtime zum Herunterladen, alles ist enthalten. Und ffmpeg sowie whisper.cpp werden unter Windows und Linux automatisch abgerufen, sobald sie benötigt werden.
- NVIDIA-Beschleunigung unter Windows. Wenn AiSrt Ihre Grafikkarte erkennt, wechselt es auf die CUDA-Version von whisper und die Transkription geht deutlich schneller.
Installation
Voraussetzungen
Eigentlich nichts Verpflichtendes. Extraktion und Transkription laufen ohne Schlüssel, ohne Konto und ohne irgendetwas irgendwohin zu schicken.
Für die Übersetzung benötigen Sie einen Schlüssel bei einem der vier kostenpflichtigen Dienste (OpenAI, Anthropic, Google oder xAI), oder Ollama, das auf Ihrem Rechner installiert ist und kostenlos sowie offline läuft. Die beiden folgenden Abschnitte erklären beides, nehmen Sie den, der Ihnen passt.
Nur ein Fall erfordert ein zusätzliches Tool: Untertitel, die Bilder sind. Dann brauchen Sie Tesseract, das Sie selbst installieren. Ein Befehl, und die Sache ist für immer erledigt.
Keine Runtime zu installieren: Jedes Archiv enthält eine eigenständige ausführbare Datei für Ihr System.
- Lade unten das Archiv herunter, das zu deiner Maschine passt: Windows x64, Linux x64, oder macOS (Apple Silicon M1 bis M4, oder Intel x64).
- Entpacke es in den Ordner deiner Wahl.
- Optional : Füge diesen Ordner zu deiner Umgebungsvariable
PATHhinzu, umaisrtvon jedem Terminal aus aufzurufen.
Unter macOS öffnest du das Terminal im Ordner und führst chmod +x aisrt aus, wenn das System die Ausführung der Binärdatei verweigert, dann xattr -cr aisrt. Die macOS-Builds sind signiert und notariell beglaubigt, daher solltest du das im Prinzip nicht zu benötigen.
Ein API-Schlüssel beim Dienst deiner Wahl
Noch einmal : Das ist ausschließlich für die Übersetzung.
- Gehe auf platform.openai.com und erstelle ein Konto, oder melde dich an.
- Gehe über das Menü deines Profils oben rechts zu API Keys.
- Klicke auf Create new secret key.
- Gib ihm einen Namen, zum Beispiel AiSrt, und bestätige.
- Kopiere den Schlüssel sofort, er wird nie wieder angezeigt.
- Füge ihn in
appsettings.jsonanstelle von"OPENAI_KEY"ein :
{
"OpenAI": {
"ApiKey": "sk-votre-cle-api-ici",
"Model": "gpt-5-mini",
"Temperature": 1
}
}Diese Datei befindet sich neben der ausführbaren Datei. Sobald AiSrt installiert ist, wird sie unter Windows aus %LOCALAPPDATA%\AiSrt\appsettings.json und unter Linux und macOS aus ~/.config/aisrt/appsettings.json gelesen.
Tipp : Du kannst den Schlüssel auch in einer separaten .env-Datei aufbewahren. Setze "UseSecretEnvFile": true in appsettings.json, gib den Pfad zur Datei an, und schreibe die Zeile OPENAI_KEY=sk-votre-cle-api-ici hinein. Genau das mache ich bei mir zu Hause, so vermeide ich, den Schlüssel in einer Konfigurationsdatei mit mir herumzutragen, die man gedankenlos teilt.
Die Kosten : OpenAI rechnet nach Nutzung ab, und ein Untertitel verbraucht sehr wenig. Rechne bei einem ganzen Film mit ein paar Cent mit gpt-5-mini.
Und wenn du Claude, Gemini oder Grok bevorzugst
Seit dieser Version ist OpenAI nicht mehr der einzige kostenpflichtige Dienst. Drei weitere erledigen genau dieselbe Arbeit mit deinem eigenen Schlüssel: Anthropic für Claude, Google AI Studio für Gemini und xAI für Grok. Der Ablauf ist überall gleich: Du erstellst ein Konto, generierst einen Schlüssel und fügst ihn in appsettings.json ein.
Jeder Dienst hat seinen eigenen Abschnitt, in dem das Standardmodell bereits eingetragen ist:
{
"Translation": { "Provider": "anthropic" },
"Anthropic": { "ApiKey": "sk-ant-votre-cle", "Model": "claude-haiku-4-5" },
"Gemini": { "ApiKey": "votre-cle", "Model": "gemini-3.6-flash" },
"Xai": { "ApiKey": "xai-votre-cle", "Model": "grok-4.5" }
}Und wenn du einen Dienst ausprobieren willst, ohne die Datei anzufassen, gibt es die Option --provider:
aisrt "film.srt" -t fr --provider anthropic
aisrt "film.srt" -t fr --provider gemini
aisrt "film.srt" -t fr --provider grokDie üblichen Namen werden akzeptiert, also funktionieren claude, google, grok und gpt genauso gut wie die offiziellen Namen. Ich habe sie hinzugefügt, weil ich mich selbst jedes zweite Mal vertan habe.
Ein Detail, das mich einen Abend gekostet hat: Jeder Dienst akzeptiert zwei Namen für die Umgebungsvariable seines Schlüssels, zum Beispiel ANTHROPIC_API_KEY oder CLAUDE_API_KEY. Ich hatte meine .env-Datei mit dem Namen des Modells und nicht mit dem des Unternehmens ausgefüllt, und AiSrt erklärte mir höflich, dass mein Schlüssel fehlte. Er war da, unter einem Namen, nach dem AiSrt nicht suchte.
Das Letzte, und es gilt für alle vier: Wenn der Schlüssel falsch ist, wenn das Konto leer ist oder wenn das Modell nicht existiert, sagt AiSrt es bevor es loslegt und nennt dabei die Zeile der Konfigurationsdatei, die korrigiert werden muss. Kein Absturz mehr mitten in einem halb übersetzten Film.
Oder: kostenlos bei dir zu Hause mit Ollama übersetzen
Keine Lust, ein OpenAI-Konto zu erstellen, oder keine Lust, dass deine Dateien bei einem Drittanbieter landen? Installiere Ollama, das ein Sprachmodell direkt auf deiner Maschine laufen lässt. Das ist kostenlos, unbegrenzt und funktioniert ohne Internetverbindung, sobald das Modell heruntergeladen ist.
Drei Schritte:
# 1. Installer Ollama depuis ollama.com, puis demarrer le serveur
ollama serve
# 2. Telecharger le modele livre par defaut
ollama pull gpt-oss:20b
# 3. Traduire, en local
aisrt "film.srt" -t fr --provider ollamaDie Option --provider gilt für den aktuellen Befehl. Wenn du möchtest, dass Ollama deine Standard-Engine wird, setze "Provider": "ollama" in den Abschnitt Translation von appsettings.json, und du musst dir keine Gedanken mehr darum machen.
Welches Modell soll man wählen? Ich habe mehrere getestet und die Antwort hat mich überrascht. Ein lokales Modell muss ein sehr strenges Ausgabeformat einhalten, ein übersetzter Block pro gesendetem Block, in der richtigen Reihenfolge, ohne Kommentar. Manche schaffen das überhaupt nicht: qwen2.5 hat mir mitten in die Untertitel chinesische Anmerkungen geschoben, drei von drei Mal, selbst als ich es maximal eingeschränkt habe. Das ist nicht brauchbar. llama3.1:8b schlägt sich sehr gut und ist ungefähr zehnmal schneller. gpt-oss:20b ist das Modell, das ich standardmäßig ausliefere, weil es während meiner Tests nie auch nur einen einzigen Block verloren hat, aber es ist deutlich schwerer (etwa 14 GB) und langsamer.
Seien wir ehrlich, was den Kompromiss angeht: lokal ist es kostenlos, aber langsam, und die Qualität bleibt hinter dem zurück, was gpt-5-mini ausgibt. Für einen Film, den du heute Abend ansiehst, ist die OpenAI-API für drei Cent angenehmer. Um eine ganze Staffel zu verarbeiten, ohne auf den Zähler zu schauen, oder für sensible Inhalte wird Ollama interessant.
Eine Sache, die mich Zeit gekostet hat und die ich dir erspare: AiSrt spricht über seine native API mit Ollama und gibt ihm ein ausreichendes Kontextfenster vor. Wenn man über Ollamas OpenAI-Kompatibilitätsschicht geht, wird diese Einstellung ignoriert, das Modell schneidet seine Antwort ab, ohne es zu sagen, und am Ende fehlen dir Blöcke in der fertigen Datei. Das wird für dich erledigt, aber es erklärt, warum die Stapel lokal kleiner sind (10 Blöcke statt 40).
Was passiert, bevor es losgeht
Beim Start laufen zwei Überprüfungen, und sie haben mir einiges an Ärger erspart.
Die erste prüft die Datei, die Sie ihr geben. Wenn Sie aisrt film.mkv eingeben und die Option vergessen, antwortet AiSrt Ihnen, dass es sich um ein Video handelt, und weist Sie auf --extract oder --transcribe hin. Früher las es die Binärdatei als Text ein und schickte sie unverändert an die KI, die mit einer unverständlichen Fehlermeldung zur Größe der Anfrage antwortete. Übrigens, wenn Sie ihm eine Untertiteldatei geben, die kein .srt ist (ein .ass, ein .vtt, ein .sub), konvertiert es ihn automatisch mit ffmpeg und macht mit der Übersetzung weiter.
Die zweite überprüft, ob die Übersetzungs-Engine antwortet, bevor sie irgendetwas abschickt. Ungültiger Schlüssel, Konto ohne Guthaben, Ollama-Server nicht gestartet, Modell nicht heruntergeladen: Jeder Fall hat seine eigene Meldung und seinen eigenen Reparaturbefehl. Nichts ist schlimmer, als die Extraktion von sechs Spuren zu starten, einen Kaffee trinken zu gehen und bei der Rückkehr sechs identische Fehler vorzufinden.
Benutzerhandbuch
Allgemeine Syntax
aisrt [<fichier>] [options]Alle Optionen
| Option | Beschreibung | Standardwert |
|---|---|---|
<file> | Pfad zur zu übersetzenden .srt-Datei oder zur Videodatei mit --extract und --transcribe | keine |
-t, --target <code> | Code der Zielsprache | fr |
-s, --source <code> | Code der Quellsprache | en |
--languages | Zeigt die 29 Sprachen und ihre Codes an | keine |
--streams | Listet die Untertitelspuren eines Videos auf, ohne etwas zu extrahieren | keine |
--extract | Extrahiert die Untertitelspuren eines Videos mit interaktiver Auswahl. Bildspuren werden per OCR gelesen | keine |
--transcribe | Transkribiert den Ton eines Videos mit whisper.cpp in .srt | keine |
-p, --provider <nom> | Übersetzungs-Engine: openai, anthropic, gemini, xai oder ollama | die aus appsettings.json |
--stream <n|all> | Mit --extract: die zu extrahierende Spur, ohne das Menü zu durchlaufen | keine |
-tt, --translate-to <code> | Mit --extract oder --transcribe: übersetzt das Ergebnis, ohne etwas zu fragen | keine |
-m, --model <nom> | Mit --transcribe: das whisper-Modell, ohne das Menü zu durchlaufen | keine |
-al, --audio-language <code> | Mit --transcribe: die in dem Video gesprochene Sprache | von whisper erkannt |
-ni, --non-interactive | Stellt keine Fragen, wendet die Standardwerte an | keine |
--version | Zeigt die Version an | keine |
-h, --help | Zeigt die Hilfe an | keine |
Achte darauf, --streams im Plural, das einfach die Spuren auflistet, nicht mit --stream im Singular zu verwechseln, das eine zum Extrahieren auswählt. Ein Buchstabe Unterschied, zwei sehr unterschiedliche Effekte. Ich habe überlegt, sie umzubenennen, und dann doch nicht: Die beiden Namen sind die, die einem ganz natürlich einfallen.
1. Untertitel übersetzen
Die Hauptfunktion, und die, die ich am häufigsten benutze:
# Traduire de l'anglais vers le français (comportement par défaut)
aisrt "film.srt"
# Traduire de l'anglais vers l'espagnol
aisrt "film.srt" -s en -t es
# Traduire du français vers le japonais
aisrt "film.fr.srt" -s fr -t jaDie übersetzte Datei übernimmt den Code der Zielsprache in ihrem Namen: film.fr.srt, film.es.srt, und so weiter. Die vorherige Ausgabedatei, falls sie bereits existiert, wird vor dem Überschreiben als .bak.srt kopiert.
Die Übersetzung läuft in Blöcken von 40, und jeder Block wird auf die Festplatte geschrieben, sobald er zurückkommt. So sieht das bei mir bei einem kompletten Film aus:
598 Blöcke, aufgeteilt in 15 Blöcke, und du siehst rechts, wie sich die Zeit ansammelt: ungefähr eine Minute pro Block, etwas weniger als fünfzehn Minuten für den ganzen Film. Wenn es bei Block 13 abbricht, macht das erneute Ausführen desselben Befehls bei Block 13 weiter.
2. Die Spuren eines Videos auflisten
Vor dem Extrahieren kann man sich ansehen, was in der Datei steckt:
aisrt --streams "film.mkv"Du bekommst eine Tabelle mit der Nummer des Streams, der Sprache, dem Codec und dem Typ jeder Spur, Text oder Bitmap.
3. Untertitel aus einem Video extrahieren
Viele MKV- und MP4-Dateien enthalten bereits Untertitel. Da kann man sie genauso gut holen, statt sie neu zu erstellen:
aisrt --extract "film.mkv"Ein Menü lässt dich eine Spur auswählen oder alles auf einmal extrahieren. Textformate werden unterstützt (SRT, ASS, SSA, WebVTT, mov_text). PGS-Spuren, die von Blu-rays, sind Bilder: Sie werden jetzt durch Zeichenerkennung gelesen, und der nächste Abschnitt ist ihnen gewidmet. Die von DVDs und DVB werden noch nicht dekodiert, aber AiSrt sagt dir das klar, statt sie stillschweigend zu überspringen. Sobald die Extraktion abgeschlossen ist, schlägt es vor, jede Spur direkt danach zu übersetzen, mit der Sprache der Spur als Ausgangssprache.
Hinweis: ffmpeg wird unter Windows und Linux automatisch heruntergeladen, falls es sich noch nicht auf deinem Rechner befindet. Unter macOS installierst du es mit brew install ffmpeg.
4. Audio in Untertitel transkribieren
Keine Untertitel in der Videodatei? Dann erstellen wir welche, mit whisper.cpp:
aisrt --transcribe "film.mkv"Beim ersten Start fragt AiSrt dich, welches Spracherkennungsmodell verwendet werden soll:
- base.en, etwa 150 MB: schnell, ordentlich bei gut artikuliertem Englisch
- small.en, etwa 500 MB: der gute Kompromiss
- medium.en, etwa 1,5 GB: präziser, langsamer
- base, small, medium: dieselben Größen, aber mehrsprachig
- large-v3, etwa 3 GB: am präzisesten, mehrsprachig und am langsamsten
Du kannst dieses Menü mit --model überspringen, wenn du schon weißt, was du willst.
Etwas anderes als Englisch transkribieren
Früher ging AiSrt davon aus, dass du ihm Englisch gibst. Das war eine sehr schlechte Idee: Eine französische Ansprache kam als grobe englische Untertitel heraus, ohne einen Hinweis, und wenn du anschließend eine Übersetzung gestartet hast, bekamst du aus diesem Englisch zurückübersetztes Französisch. Stille Post mit deinen eigenen Videos.
Jetzt erkennt whisper die gesprochene Sprache und AiSrt liest seine Antwort direkt aus. Du musst nichts angeben, und die erzeugte Datei trägt den richtigen Sprachcode. Du kannst die Sprache immer noch erzwingen, wenn du weißt, was du tust, mit einem mehrsprachigen Modell:
aisrt --transcribe "film.mkv" --audio-language fr --model baseDie erzeugte Datei heißt dann film.fr.srt, und wenn du anschließend eine Übersetzung startest, weiß AiSrt, dass Französisch der Ausgangspunkt ist.
Eine Falle, mit der ich mich eine Weile beschäftigt habe: Modelle, deren Name mit .en endet, sind ausschließlich mit Englisch trainiert. Gib ihnen französisches Audio und sie protestieren nicht, sie liefern dir mit voller Selbstsicherheit englische Phonetik zurück. Das ist die Sorte Ergebnis, die man nur bemerkt, wenn man die Datei liest. AiSrt lehnt die Kombination deshalb ab, bevor irgendetwas gestartet wird, und zeigt dir die Liste der passenden Modelle.
Unter Windows und Linux lädt AiSrt whisper ganz von allein herunter. Unter Windows erkennt es außerdem eine NVIDIA-Karte und nimmt die CUDA-Version, die sehr viel schneller ist.
Unter macOS musst du einen Schritt mehr machen. Das Projekt whisper.cpp veröffentlicht dort kein ausführbares Kommandozeilenprogramm, sondern nur ein Framework für Apple-Entwickler: Es gibt also nichts, was automatisch heruntergeladen werden könnte. Die Lösung besteht aus einem einzigen Befehl:
brew install whisper-cpp ffmpegAiSrt sucht dann nach den auf deinem System installierten Tools und verwendet sie unverändert. Ich habe gerade keinen Mac zur Hand, um dieses Szenario von Anfang bis Ende durchzuspielen, also schreib mir, wenn du unter macOS bist und es klemmt, das interessiert mich.
Untertitel, die Bilder sind
Wenn du eine Untertitelspur aus einer Blu-ray holst, bekommst du keinen Text. Du bekommst Bilder, eines pro Dialogzeile, in einem Format namens PGS. Die Disc speichert nicht die Wörter, sie speichert das Foto der Wörter. Das ist praktisch, um die Schriftart und die genaue Platzierung aus dem Kino beizubehalten, aber katastrophal, sobald man übersetzen will: Es gibt nichts zu übersetzen, nur Pixel.
Bis jetzt hat AiSrt dir höflich gesagt, dass es das nicht kann. Jetzt kann es das.
Was passiert, wenn du den Befehl startest
Nichts Neues einzutippen, es ist derselbe Befehl wie zuvor:
aisrt --extract "film.mkv"Wenn du eine Bildspur auswählst, führt AiSrt drei Schritte hintereinander aus. Es holt die rohe Spur mit ffmpeg aus dem Container. Es decodiert die Bilder selbst, eines pro Untertitel, und übernimmt dabei die Anzeigemomente, wie sie auf der Disc geschrieben wurden. Dann übergibt es das Ganze auf einmal für die gesamte Spur an Tesseract, eine Texterkennungs-Engine (eine Software, die Text auf einem Bild liest).
Die Sprachdatei von Tesseract wird ganz von selbst in der Sprache heruntergeladen, die die Spur angibt. Eine französische Spur bekommt Französisch, eine japanische Spur Japanisch. Du musst nichts auswählen.
Tesseract musst du selbst installieren
Das ist die einzige Abhängigkeit, die AiSrt nicht für dich besorgt, und das ist so beabsichtigt. ffmpeg und whisper veröffentlichen eigenständige ausführbare Dateien, die ich sauber herunterladen kann. Tesseract nicht: Das sind System-Installer, die auf jeder Plattform anders sind. Ein Befehl reicht:
# Windows
winget install tesseract-ocr.tesseract
# Linux
sudo apt install tesseract-ocr
# macOS
brew install tesseractEine kleine Anekdote, die mich eine halbe Stunde gekostet hat: Unter Windows trägt dieser Installer Tesseract nicht in den PATH ein. AiSrt antwortete mir also, dass das Tool nicht gefunden wurde, und schlug mir vor, genau den Befehl auszuführen, den ich gerade ausgeführt hatte. Eine Schleife ohne Ausgang. AiSrt schaut jetzt in den Verzeichnissen nach, in denen der Installer die Binärdatei tatsächlich ablegt.
Die KI liest Korrektur, was die OCR gelesen hat
Eine Texterkennungs-Engine macht immer dieselben Fehler. Der senkrechte Balken anstelle des großen I. Das r gefolgt vom n, das zu einem m wird. Ein verschluckter Akzent. Bei einem ganzen Film fällt das irgendwann auf.
Also schickt AiSrt den erkannten Text an deinen Übersetzungsdienst zurück, mit einer genauen Anweisung: korrigiere die Lesefehler, übersetze nichts, formuliere nichts um, kürze nichts. Das ist ein Korrekturlesen, keine Neufassung. Von den 100 Untertiteln eines Filmausschnitts, den ich auf den Prüfstand gestellt habe, wurden 14 korrigiert, 86 waren schon richtig, und kein einziger wurde verschoben oder erfunden.
Die Absicherung zählt mehr als die Funktion, deshalb gehe ich darauf genauer ein. Eine Korrektur wird nur akzeptiert, wenn sie nahe an dem bleibt, was gelesen wurde: Ein Modell, das beschließen würde, eine Zeile zu übersetzen, wird rausgeworfen. Und wenn die Antwort nicht genau so viele Texte enthält, wie es gesendet hat, wird die gesamte Charge verworfen und der rohe Text bleibt erhalten. Ich ziehe einen Untertitel mit einem sichtbaren Tippfehler einem perfekten Untertitel vor, der auf der falschen Zeile klebt.
Dieses Korrekturlesen ist standardmäßig aktiv und verwendet den Dienst, der bereits übersetzt. Du kannst es in appsettings.json ausschalten oder einem anderen Dienst anvertrauen. Und wenn kein Schlüssel konfiguriert ist, passiert nichts Dramatisches: Der OCR-Text wird unverändert geschrieben, AiSrt sagt dir das, und die Extraktion endet normal.
Der Bug, den ich nie gefunden hätte, wenn ich nicht danach gesucht hätte
Viele Discs lassen ihre Untertitel ein- und ausblenden. Dafür senden sie kein neues Bild: Sie verwenden dasselbe wieder und ändern nur seine Transparenz. AiSrt hielt diese Änderung für das Ende des Untertitels.
Das Ergebnis: Ein vier Sekunden lang angezeigter Untertitel kam in drei Stücken heraus. Das erste dauerte eine Sekunde, und die beiden anderen waren zu blass, um erneut gelesen zu werden, also wurden sie verworfen. Keine meiner Testdateien blendete ein oder aus, also habe ich den Fall absichtlich nachgebaut, um ihn zu sehen. Drei Stücke vorher, ein einziger Untertitel mit der richtigen Dauer danach.
AiSrt behält jetzt unter den aufeinanderfolgenden Darstellungen diejenige, auf der der Text am lesbarsten ist. Ein Ein- und Ausblenden beginnt und endet transparent: Weder das erste noch das letzte ist die richtige Wahl.
Was noch nicht funktioniert
Die Bilduntertitel von DVD und TNT werden nicht decodiert. Anders als bei PGS, wo jedes Bild eigenständig ist, werden diese Formate anhand von Informationen gelesen, die an anderer Stelle in der Datei abgelegt sind. Das ist eine andere Baustelle, keine Erweiterung dieser hier. Bis dahin erkennt AiSrt sie und warnt dich, statt sie stillschweigend zu ignorieren.
Eine vollständige Kette, vom Rohvideo bis zu übersetzten Untertiteln
# Étape 1 : transcrire l'audio anglais
aisrt --transcribe "conference.mp4"
# donne conference.en.srt
# Étape 2 : traduire en français
aisrt "conference.en.srt" -s en -t fr
# donne conference.fr.srt
# Étape 3 : et en espagnol tant qu'à faire
aisrt "conference.en.srt" -s en -t es
# donne conference.es.srtDrei Befehle, und ein Video ohne Untertitel wird in drei Sprachen zugänglich.
Ein kleines Detail, das zählt, wenn du das alles skriptest: AiSrt gibt 0 zurück, wenn alles gut gelaufen ist, 1 im Fehlerfall, und 2, wenn du selbst abgebrochen hast. Was bereits auf die Festplatte geschrieben wurde, bleibt dort, und die Übersetzung wird beim nächsten Start fortgesetzt.
Alles automatisieren, ohne eine einzige Frage
Die drei oben genannten Befehle stellen Fragen: Welche Spur soll extrahiert werden, welches Modell soll verwendet werden, soll danach übersetzt werden. Praktisch, wenn man vor dem Bildschirm sitzt, viel weniger, wenn man eine ganze Staffel über Nacht verarbeiten will.
Vier Optionen ersetzen sie, und die vollständige Kette passt dann in eine Zeile:
# Extraire la piste 2, la traduire en francais, sans jamais rien demander
aisrt --extract "episode.mkv" --stream 2 --translate-to fr --non-interactiveOder für einen ganzen Ordner unter Windows:
Get-ChildItem *.mkv | ForEach-Object {
aisrt --extract $_.FullName --stream 1 --translate-to fr --non-interactive
}--non-interactive rät nichts: Jede Frage nimmt ihren Standardwert, und es sagt dir, welchen es genommen hat und welche Option es erlaubt hätte, einen anderen auszuwählen. Dagegen wird ein Wert, den du ausdrücklich angibst, nie stillschweigend ignoriert. Wenn du Spur 7 einer Datei anforderst, die nur zwei hat, bricht es ab und listet dir die verfügbaren Spuren auf, statt alles zu extrahieren und so zu tun, als wäre nichts gewesen. Für ein Skript ist ein klarer Fehler besser als ein unerwartetes Ergebnis.
Und wenn du in diesem Modus Strg+C drückst, bricht es sofort ab, ohne eine Bestätigung zu verlangen. Es wäre niemand da, um zu antworten, und eine unbeantwortete Frage würde das Skript endgültig blockieren.
Unterstützte Sprachen
| Code | Sprache | Code | Sprache | Code | Sprache |
|---|---|---|---|---|---|
ar | Arabisch | cs | Tschechisch | da | Dänisch |
de | Deutsch | el | Griechisch | en | Englisch |
es | Spanisch | fi | Finnisch | fr | Französisch |
he | Hebräisch | hi | Hindi | hu | Ungarisch |
id | Indonesisch | it | Italienisch | ja | Japanisch |
ko | Koreanisch | ms | Malaiisch | nl | Niederländisch |
no | Norwegisch | pl | Polnisch | pt | Portugiesisch |
ro | Rumänisch | ru | Russisch | sv | Schwedisch |
th | Thailändisch | tr | Türkisch | uk | Ukrainisch |
vi | Vietnamesisch | zh | Chinesisch |
Gib aisrt --languages ein, um diese Liste jederzeit wiederzufinden.
Erweiterte Konfiguration
Alles wird in appsettings.json eingestellt:
- Das Modell, mit dem Schlüssel
Model, falls du ein anderes OpenAI-Modell alsgpt-5-minibevorzugst. - Die Größe der Batches, mit
BatchSize: die Anzahl der pro Anfrage gesendeten Blöcke, standardmäßig 40. - Die Zeilenlänge, mit
MaxLineLength: ab mehr als 50 Zeichen schneidet AiSrt die Zeile ab, damit sie auf dem Bildschirm lesbar bleibt. - Die Netzwerkverzögerung, mit
RequestTimeoutMinutes: standardmäßig 10 Minuten. Wenn duBatchSizestark erhöhst, erhöhe auch diesen Wert. - Die Anweisungen an die KI, mit
SystemPromptundUserInstructionPrompt. Hier wird es interessant : du kannst die Übersetzung an einen juristischen, medizinischen, religiösen oder technischen Kontext anpassen, indem du diese beiden Texte neu formulierst. Ich habe sie dafür absichtlich aus dem Code herausgenommen. - Die Temperatur, zwischen 0.3 für eine sehr wörtliche Übersetzung und 1.5 für eine freiere Übersetzung. Standardmäßig 1.
- Die Übersetzungs-Engine, mit
Providerim AbschnittTranslation:openai,anthropic,gemini,xaioderollama. Das ist die Einstellung, die für alle deine Befehle gilt, während--providernur für den aktuellen gilt. - Die Ollama-Einstellungen, in ihrem eigenen Abschnitt : die Serveradresse mit
BaseUrl, das Modell mitModel, die Batchgröße mitBatchSizeund die Größe des Kontextfensters mitNumCtx. Wenn du den ersten Wert erhöhst, denk daran, den zweiten ebenfalls zu erhöhen. - Die Zeichenerkennung, im Abschnitt
Ocr: die Ausweichsprache mitDefaultLanguage, der Aufteilungsmodus von Tesseract mitPageSegModeund die Vergrößerung der Bilder vor dem Lesen mitUpscaleFactor. Die beiden letzten Werte sind begrenzt : ein unsinniger Wert wird gemeldet und ersetzt, statt das Lesen Bild für Bild scheitern zu lassen. - Das Korrekturlesen des OCR-Textes, in
Ocr:Proofread:Enabled, um es auszuschalten,Provider, um es einem anderen Dienst als dem Übersetzungsdienst zu übertragen,BatchSizefür die Größe der Batches. Die beiden Prompts lassen sich wie die der Übersetzung neu formulieren.
Für wen?
- Gehörlose und schwerhörige Menschen, die im Alltag Untertitel benötigen, um auf Videos zugreifen zu können.
- Content Creator, die ein Publikum über ihre eigene Sprache hinaus erreichen möchten.
- Lehrkräfte und Trainer, deren Onlinekurse mehr verdienen als eine ungenaue automatische Untertitelung.
- Professionelle Übersetzer, um in wenigen Minuten einen ersten Entwurf grob vorzubereiten.
- Film- und Serienfans, natürlich.
- Vereine und NGOs, die Videos international verbreiten.
AiSrt ist kostenlos und sofort einsatzbereit.
Lade es herunter, probiere es aus, und mach deine Videos für alle zugänglich.

Treten Sie der Unterhaltung bei
Sie müssen ein Konto haben, um diesen Artikel zu kommentieren. Die Erstellung ist kostenlos und dauert weniger als eine Minute.
Keine Kommentare im Moment.