AiSrt : Vertaal, Extraheer en Transcribeer uw Ondertitels met behulp van Kunstmatige Intelligentie
Een gratis tool om video's toegankelijk te maken in 29 talen, voor doven, slechthorenden en alle liefhebbers van meertalige content
Heeft u een video met ondertitels in het Engels en wilt u deze in het Frans, Spaans, Arabisch of Japans? Of een film zonder enige ondertitels, waarvan u een .srt wilt maken? Dat is precies waarom ik AiSrt heb geschreven.
AiSrt is een commandoregeltool die gebruikmaakt van AI om uw ondertitelbestanden .srt te vertalen, al aanwezige sporen in uw videobestanden te extraheren en de audio van een video rechtstreeks naar ondertitels te transcriberen. Alle drie in dezelfde binaire.
Voor de vertaling heeft u de keuze uit vijf motoren. De API's van OpenAI, Anthropic (Claude), Google (Gemini) en xAI (Grok) kosten een paar cent per film. Of een server Ollama die op uw eigen machine draait: gratis, offline, geen sleutel, geen account. Uw ondertitels verlaten uw harde schijf niet.
En als de video geen ondertitels bevat, maakt AiSrt gebruik van Whisper, het spraakherkenningsmodel van OpenAI, dat de audiobron omzet in een .srt helemaal alleen. Eerlijk gezegd, de eerste keer dat ik een uur durende lezing ondertiteld zag worden zonder dat ik een enkele regel hoefde in te voeren, deed me iets.
Nieuw in deze versie: Blu-ray-ondertitels, die geen tekst zijn maar afbeeldingen, kunnen nu ook worden gelezen. AiSrt decodeert ze, stuurt ze naar een tekensherkenningsmotor en laat het resultaat vervolgens door de AI herlezen. Daar kom ik later op terug, dat is het stuk waar ik het meest tevreden over ben.
Waarom AiSrt?
- Toegankelijkheid eerst. Doven en slechthorenden verdienen een eenvoudige toegang tot videoinhoud. Het genereren en vertalen van ondertitels zou enkele minuten moeten duren, geen avond.
- 29 talen. Arabisch, Duits, Engels, Chinees, Koreaans, Deens, Spaans, Fins, Frans, Grieks, Hindi, Hebreeuws, Hongaars, Indonesisch, Italiaans, Japans, Maleis, Nederlands, Noors, Pools, Portugees, Roemeens, Russisch, Zweeds, Tsjechisch, Thais, Turks, Oekraïens en Vietnamees.
- Een vertaling die de context begrijpt. Dat is het hele verschil met een woord-voor-woord vertaler: idiomatische uitdrukkingen, humor en woordspelingen komen veel beter over.
- Drie functies in één tool: vertaling, extractie, transcriptie.
- Zelfs ondertitels die afbeeldingen zijn. De PGS-sporen van Blu-ray worden gelezen door tekensherkenning en vervolgens herlezen door de AI om te corrigeren wat de OCR verkeerd heeft gezien.
- Vijf vertaalmotoren naar keuze. OpenAI, Claude, Gemini, Grok of Ollama, met uw eigen sleutel, veranderbaar in een optie.
- Gratis en offline als u dat wilt. Met Ollama geïnstalleerd op uw machine kost de vertaling niets, vraagt geen sleutel en verzendt niets ergens naartoe. Handig voor content die u niet via een derde partij wilt laten verlopen.
- Geen extra installatie nodig. De binaire is autonoom, er is geen .NET-runtime te downloaden, alles zit erin. En ffmpeg en whisper.cpp worden automatisch opgehaald onder Windows en Linux wanneer we ze nodig hebben.
- NVIDIA-versnelling onder Windows. Als AiSrt uw grafische kaart detecteert, schakelt het over naar de CUDA-versie van whisper en gaat de transcriptie veel sneller.
Installatie
Vereisten
Eigenlijk niets verplicht. Extractie en transcriptie draaien zonder sleutel, zonder account en zonder iets ergens naartoe te sturen.
Voor de vertaling heeft u een sleutel nodig bij een van de vier betaalde diensten (OpenAI, Anthropic, Google of xAI), of Ollama geïnstalleerd op uw machine, dat gratis en offline is. De twee volgende secties leggen elk uit, neem degene die u het beste uitkomt.
Er is maar één geval dat een extra tool vereist: ondertitels die afbeeldingen zijn. U heeft dan Tesseract nodig, dat u zelf installeert. Eén commando, en het is voor altijd geregeld.
Geen runtime te installeren: elke archief bevat een zelfstandige uitvoerbare voor uw systeem.
- Download hieronder het archief dat overeenkomt met jouw machine: Windows x64, Linux x64, of macOS (Apple Silicon M1 tot M4, of Intel x64).
- Pak het uit in de map van jouw keuze.
- Optioneel: voeg deze map toe aan jouw omgevingsvariabele
PATHomaisrtvanaf elke terminal aan te roepen.
Onder macOS, als het systeem weigert de binaire te starten, open de Terminal in de map en voer chmod +x aisrt uit, gevolgd door xattr -cr aisrt. De macOS builds zijn ondertekend en genotarieerd, dus in principe zou je dit niet nodig moeten hebben.
Een API-sleutel, bij de service van jouw keuze
Nogmaals: dit is alleen voor de vertaling.
- Ga naar platform.openai.com en maak een account aan, of log in.
- Ga naar API Keys vanuit het menu van jouw profiel, rechtsboven.
- Klik op Create new secret key.
- Geef het een naam, AiSrt bijvoorbeeld, en bevestig.
- Kopieer de sleutel meteen, deze zal nooit meer worden weergegeven.
- Plak het in
appsettings.json, in plaats van"OPENAI_KEY":
{
"OpenAI": {
"ApiKey": "sk-jouw-api-sleutel-hier",
"Model": "gpt-5-mini",
"Temperature": 1
}
}Dit bestand bevindt zich naast de uitvoerbare. Zodra AiSrt is geïnstalleerd, wordt het gelezen vanaf %LOCALAPPDATA%\AiSrt\appsettings.json onder Windows, en vanaf ~/.config/aisrt/appsettings.json onder Linux en macOS.
Tip: je kunt de sleutel ook in een apart .env bestand bewaren. Zet "UseSecretEnvFile": true in appsettings.json, geef het pad naar het bestand op, en schrijf daarin de regel OPENAI_KEY=sk-jouw-api-sleutel-hier. Dat is wat ik thuis doe, het voorkomt dat je je sleutel in een configuratiebestand meeneemt dat je zonder nadenken deelt.
De kosten: OpenAI rekent per gebruik, en een ondertitel verbruikt heel weinig. Reken op een paar cent voor een hele film met gpt-5-mini.
En als je de voorkeur geeft aan Claude, Gemini of Grok
Sinds deze versie is OpenAI niet meer de enige betaalde service. Drie andere doen precies hetzelfde werk, met uw eigen sleutel: Anthropic voor Claude, Google AI Studio voor Gemini, en xAI voor Grok. De werkwijze is overal hetzelfde: u maakt een account aan, genereert een sleutel, en plakt deze in appsettings.json.
Elke service heeft zijn eigen sectie, met zijn standaardmodel al ingevuld:
{
"Translation": { "Provider": "anthropic" },
"Anthropic": { "ApiKey": "sk-ant-uw-sleutel", "Model": "claude-haiku-4-5" },
"Gemini": { "ApiKey": "uw-sleutel", "Model": "gemini-3.6-flash" },
"Xai": { "ApiKey": "xai-uw-sleutel", "Model": "grok-4.5" }
}En om een service uit te proberen zonder het bestand aan te raken, is er de optie --provider:
aisrt "film.srt" -t nl --provider anthropic
aisrt "film.srt" -t nl --provider gemini
aisrt "film.srt" -t nl --provider grokDe gebruikelijke namen worden geaccepteerd, dus claude, google, grok en gpt werken net zo goed als de officiële namen. Ik heb ze toegevoegd omdat ik zelf één op de twee keer de fout maakte.
Een detail dat me een avond heeft gekost: elke service accepteert twee namen voor de omgevingsvariabele voor zijn sleutel, bijvoorbeeld ANTHROPIC_API_KEY of CLAUDE_API_KEY. Ik had mijn .env bestand ingevuld met de naam van het model en niet die van het bedrijf, en AiSrt legde me beleefd uit dat mijn sleutel ontbrak. Hij was er, onder een naam die hij niet controleerde.
Laatste punt, en dit geldt voor alle vier: als de sleutel onjuist is, als het account leeg is of als het model niet bestaat, zegt AiSrt dit voordat het begint, door de regel van het configuratiebestand te noemen die gecorrigeerd moet worden. Geen crashes meer halverwege een half vertaald film.
Of: gratis vertalen, bij u thuis, met Ollama
Geen zin om een OpenAI-account aan te maken, of geen zin om uw bestanden naar een derde partij te sturen? Installeer Ollama, dat een taalmodel rechtstreeks op uw machine draait. Het is gratis, onbeperkt, en het werkt zonder internetverbinding zodra het model is gedownload.
Drie stappen :
# 1. Installeer Ollama vanaf ollama.com, start vervolgens de server
ollama serve
# 2. Download het standaardmodel
ollama pull gpt-oss:20b
# 3. Vertalen, lokaal
aisrt "film.srt" -t fr --provider ollamaDe optie --provider geldt voor de huidige opdracht. Als je wilt dat Ollama je standaardmotor wordt, zet dan "Provider": "ollama" in de sectie Translation van appsettings.json, en dan hoef je er niet meer aan te denken.
Welk model te kiezen? Ik heb er verschillende getest en het resultaat verraste me. Een lokaal model moet voldoen aan een zeer strikte uitvoerindeling, een blok vertaald per blok verzonden, in volgorde, zonder opmerkingen. Sommige modellen slagen daar helemaal niet in: qwen2.5 gaf me opmerkingen in het Chinees midden in de ondertitels, drie keer op drie, zelfs toen ik het maximaal beperkte. Dat is niet bruikbaar. llama3.1:8b presteert heel goed en is ongeveer tien keer sneller. gpt-oss:20b is degene die ik standaard lever, omdat het nooit een enkel blok heeft verloren tijdens mijn tests, maar het is aanzienlijk zwaarder (ongeveer 14 GB) en langzamer.
Laten we eerlijk zijn over de compromis: lokaal is het gratis maar traag, en de kwaliteit blijft onder wat gpt-5-mini produceert. Voor een film die je vanavond kijkt, is de OpenAI API voor drie cent comfortabeler. Voor het verwerken van een heel seizoen zonder naar de teller te kijken, of voor gevoelige inhoud, wordt Ollama interessant.
Een ding dat me tijd heeft gekost en dat ik je bespaar: AiSrt praat met Ollama via zijn native API en geeft het een voldoende contextvenster. Als je via de OpenAI compatibiliteitslaag van Ollama gaat, wordt deze instelling genegeerd, het model snijdt zijn antwoord af zonder het te zeggen, en je eindigt met ontbrekende blokken in het eindbestand. Dit wordt voor je beheerd, maar het verklaart waarom de batches kleiner zijn lokaal (10 blokken in plaats van 40).
Wat er gebeurt voordat het vertrekt
Twee controles draaien bij het opstarten, en ze hebben me heel wat frustratie bespaard.
De eerste kijkt naar het bestand dat je geeft. Als je aisrt film.mkv typt zonder de optie, antwoordt AiSrt dat het een video is en geeft je --extract of --transcribe. Vroeger las het de binaire bestand als tekst en stuurde het zoals het was naar de AI, die antwoordde met een onbegrijpelijke fout over de grootte van de aanvraag. Trouwens, als je hem een ondertitel geeft die geen .srt is (een .ass, een .vtt, een .sub), converteert hij het zelf met ffmpeg en gaat verder met de vertaling.
De tweede controleert of de vertaalmotor reageert, voordat hij iets verzendt. Ongeldige sleutel, account zonder krediet, Ollama-server niet gestart, model niet gedownload: elke situatie heeft zijn eigen bericht en reparatieopdracht. Er is niets erger dan het starten van de extractie van zes sporen, een kopje koffie gaan drinken, en bij terugkomst zes identieke fouten aantreffen.
Gebruikershandleiding
Algemene syntaxis
aisrt [<bestand>] [opties]Alle opties
| Optie | Beschrijving | Standaardwaarde |
|---|---|---|
<file> | Pad naar het .srt bestand dat vertaald moet worden, of het videobestand met --extract en --transcribe | geen |
-t, --target <code> | Doeltaalcode | fr |
-s, --source <code> | Bron taalcode | en |
--languages | Toont de 29 talen en hun codes | geen |
--streams | Geeft de ondertitelsporen van een video weer, zonder iets te extraheren | geen |
--extract | Extraheert de ondertitelsporen van een video, met interactieve selectie. Beeldsporen worden gelezen met OCR | geen |
--transcribe | Transcribeert de audio van een video naar een .srt met whisper.cpp | geen |
-p, --provider <naam> | Vertaalmachine: openai, anthropic, gemini, xai of ollama | deze in appsettings.json |
--stream <n|all> | Met --extract: het spoor dat moet worden geëxtraheerd, zonder door het menu te gaan | geen |
-tt, --translate-to <code> | Met --extract of --transcribe: vertaalt het resultaat zonder iets te vragen | geen |
-m, --model <naam> | Met --transcribe: het whisper-model, zonder door het menu te gaan | geen |
-al, --audio-language <code> | Met --transcribe: de gesproken taal in de video | gedetecteerd door whisper |
-ni, --non-interactive | Stelt geen vragen, past de standaardwaarden toe | geen |
--version | Toont de versie | geen |
-h, --help | Toont de hulp | geen |
Let op dat je --streams meervoudig, dat alleen de sporen opsomt, en --stream enkelvoudig, dat er één kiest om te extraheren, niet verwart. Slechts één letter verschil, twee heel verschillende effecten. Ik heb getwijfeld om het te hernoemen, maar heb dat niet gedaan: beide namen komen natuurlijk voort.
1. Ondertitels vertalen
De belangrijkste functie, en degene die ik het meest gebruik:
# Vertalen van het Engels naar het Frans (standaardgedrag)
aisrt "film.srt"
# Vertalen van het Engels naar het Spaans
aisrt "film.srt" -s en -t es
# Vertalen van het Frans naar het Japans
aisrt "film.fr.srt" -s fr -t jaHet vertaalde bestand bevat de code van de doeltaal in zijn naam: film.fr.srt, film.es.srt, enzovoort. Het vorige uitvoerbestand, als het al bestaat, wordt gekopieerd naar .bak.srt voordat het opnieuw wordt geschreven.
De vertaling gaat in batches van 40 blokken, en elke batch wordt op de schijf geschreven zodra deze terugkomt. Dit is wat het bij mij oplevert voor een volledige film:
598 blokken verdeeld in 15 batches, en je ziet de tijd oplopen aan de rechterkant: ongeveer een minuut per batch, iets minder dan vijftien minuten voor de hele film. Als het stopt bij batch 13, herstart dezelfde opdracht vanaf batch 13.
2. Lijst de sporen van een video
Voordat je extraheren kunt, kun je kijken wat er in het bestand staat:
aisrt --streams "film.mkv"Je krijgt een tabel met het stroomnummer, de taal, de codec en het type van elk spoor, tekst of bitmap.
3. Extraheer de ondertitels van een video
Veel MKV- en MP4-bestanden bevatten al ondertitels. Laten we ze liever ophalen dan ze opnieuw te maken:
aisrt --extract "film.mkv"Een menu laat je een spoor kiezen, of alles in één keer extraheren. Tekstformaten worden ondersteund (SRT, ASS, SSA, WebVTT, mov_text). PGS-sporen, die van Blu-ray, zijn afbeeldingen: ze worden nu gelezen door middel van optische tekenherkenning, en het volgende gedeelte is daaraan gewijd. Die van DVD's en TNT zijn nog niet gedecodeerd, maar AiSrt laat je dat duidelijk weten in plaats van ze stilletjes over te slaan. Zodra de extractie is voltooid, wordt aangeboden om elk spoor meteen te vertalen, met de taal van het spoor als brontaal.
Opmerking: ffmpeg wordt automatisch gedownload onder Windows en Linux als het nog niet op je machine staat. Onder macOS installeer je het met brew install ffmpeg.
4. Audio transcriberen naar ondertitels
Geen ondertitels in de video? We maken ze, met whisper.cpp :
aisrt --transcribe "film.mkv"Bij de eerste lancering vraagt AiSrt u welk spraakherkenningsmodel u wilt gebruiken:
- base.en, ongeveer 150 MB: snel, goed voor duidelijk gesproken Engels
- small.en, ongeveer 500 MB: de goede compromis
- medium.en, ongeveer 1,5 GB: nauwkeuriger, trager
- base, small, medium: dezelfde formaten, maar meertalig
- large-v3, ongeveer 3 GB: de meest nauwkeurige, meertalig, en de traagste
U kunt dit menu overslaan met --model als u al weet wat u wilt.
Transcribe iets anders dan Engels
Vroeger ging AiSrt ervan uit dat u hem Engels gaf. Dat was een zeer slecht idee: een toespraak in het Frans kwam eruit als onnauwkeurige Engelse ondertitels, zonder een enkel waarschuwingswoord, en als u doorging met een vertaling, kreeg u Frans dat opnieuw vanuit dat Engels werd vertaald. Een telefoonspel met uw eigen video's.
Nu detecteert whisper de gesproken taal en AiSrt leest zijn antwoord on-the-fly. U hoeft niets te verklaren, en het geproduceerde bestand heeft de juiste taalcodering. U kunt het altijd afdwingen als u weet wat u doet, met een meertalig model:
aisrt --transcribe "film.mkv" --audio-language fr --model baseHet geproduceerde bestand heet dan film.fr.srt, en als u doorgaat met een vertaling, weet AiSrt dat het startpunt Frans is.
Een valstrik waar ik even op lette: de modellen waarvan de naam eindigt op .en zijn alleen op Engels getraind. Geef ze Franse audio en ze protesteren niet, ze geven u Engelse fonetiek met totale zelfverzekerdheid. Dit is het soort resultaat dat je alleen kunt opmerken door het bestand te lezen. AiSrt weigert dus de combinatie voordat hij iets start, en geeft u de lijst van modellen die geschikt zijn.
Onder Windows en Linux downloadt AiSrt whisper automatisch. Onder Windows detecteert het bovendien een NVIDIA-kaart en neemt de CUDA-versie, die veel sneller is.
Onder macOS moet je een stap verder gaan. Het project whisper.cpp publiceert geen uitvoerbare commandoregel, alleen een framework voor Apple-ontwikkelaars: er is dus niets automatisch te downloaden. De oplossing is één commando:
brew install whisper-cpp ffmpegAiSrt gaat dan op zoek naar de geïnstalleerde tools op uw systeem en gebruikt ze zoals ze zijn. Ik heb geen Mac bij de hand om dit scenario van begin tot eind uit te voeren, dus als u op macOS bent en het vastloopt, laat het me weten, ik ben geïnteresseerd.
De ondertitels die afbeeldingen zijn
Haal een ondertitelspoor van een Blu-ray en je krijgt geen tekst. Je krijgt afbeeldingen, één per zin, in een formaat dat PGS heet. De schijf slaat de woorden niet op, het slaat de foto van de woorden op. Het is handig om het lettertype en de exacte plaatsing van de film te behouden, maar het is rampzalig zodra je wilt vertalen: er is niets te vertalen, er zijn alleen maar pixels.
Tot nu toe vertelde AiSrt u beleefd dat hij het niet kon. Nu kan hij het.
Wat er gebeurt als je de opdracht uitvoert
Niets nieuws om in te voeren, het is dezelfde opdracht als voorheen:
aisrt --extract "film.mkv"Als je een afbeeldingspoor kiest, doorloopt AiSrt drie stappen. Het haalt het ruwe spoor uit de container met ffmpeg. Het decodeert de afbeeldingen zelf, één per ondertitel, terwijl het de weergavetijden ophaalt zoals de schijf ze heeft geschreven. Vervolgens geeft het alles door aan Tesseract, een optische tekenherkenningsmotor (een software die tekst op een afbeelding leest), in één keer voor het hele spoor.
Het taalbestand van Tesseract wordt automatisch gedownload, in de taal die het spoor aangeeft. Een Frans spoor haalt het Frans op, een Japans spoor het Japans. Je hoeft niets te kiezen.
Tesseract moet je zelf installeren
Dit is de enige afhankelijkheid die AiSrt niet voor je ophaalt, en dat is bekend. ffmpeg en whisper publiceren zelfstandige uitvoerbare bestanden die ik netjes kan downloaden. Tesseract niet: dat zijn systeeminstallateurs, verschillend op elk platform. Eén opdracht is voldoende:
# Windows
winget install tesseract-ocr.tesseract
# Linux
sudo apt install tesseract-ocr
# macOS
brew install tesseractKleine anekdote die me een half uur heeft gekost: onder Windows plaatst deze installateur Tesseract niet in de PATH. AiSrt vertelde me dus dat de tool niet te vinden was, en stelde voor exact dezelfde opdracht uit te voeren die ik net had uitgevoerd. Een eindeloze lus. AiSrt zal nu kijken in de mappen waar de installateur daadwerkelijk het binaire bestand plaatst.
De AI leest opnieuw wat de OCR heeft gelezen
Een optische tekenherkenningsmotor maakt altijd dezelfde fouten. De verticale streep in plaats van de hoofdletter I. De r gevolgd door de n die een m wordt. Een weggelaten accent. Op een hele film begint dat op te vallen.
Daarom stuurt AiSrt de herkende tekst terug naar je vertaalservice, met een duidelijke instructie: corrigeer de leesfouten, vertaal niets, herformuleer niets, verkort niets. Het is een herlezing, geen herschrijving. Van de 100 ondertitels van een filmfragment dat ik heb getest, zijn er 14 gecorrigeerd, 86 waren al goed, en geen enkele is verplaatst of uitgevonden.
De veiligheidsmaatregel telt meer dan de functionaliteit, dus ik geef er meer details over. Een correctie wordt alleen geaccepteerd als deze dicht bij wat is gelezen blijft: een model dat zou besluiten een zin te vertalen, wordt afgewezen. En als het antwoord niet precies evenveel tekst bevat als het heeft verzonden, wordt de hele batch afgewezen en wordt de ruwe tekst behouden. Ik geef de voorkeur aan een ondertitel met een zichtbare fout dan een perfecte ondertitel die op de verkeerde zin is geplakt.
Deze herlezing is standaard actief en maakt gebruik van de service die al vertaalt. Je kunt het uitschakelen, of het aan een andere service toevertrouwen, in appsettings.json. En als er geen sleutel is geconfigureerd, gebeurt er niets dramatisch: de tekst van de OCR wordt letterlijk geschreven, AiSrt vertelt je dat, en de extractie eindigt normaal.
De bug die ik nooit zou hebben gevonden zonder te zoeken
Veel schijven laten hun ondertitels verschijnen en verdwijnen met een fade. Hiervoor sturen ze geen nieuwe afbeelding: ze hergebruiken dezelfde afbeelding door alleen de transparantie te veranderen. AiSrt beschouwde deze verandering als het einde van de ondertitel.
Resultaat: een ondertitel die vier seconden werd weergegeven, kwam in drie stukken terug. Het eerste duurde een seconde, en de andere twee waren te vaag om opnieuw te worden gelezen, dus werden ze weggegooid. Geen van mijn testbestanden had een fade, dus heb ik het geval speciaal gemaakt om het te zien. Drie stukken ervoor, één enkele ondertitel van de juiste duur erna.
AiSrt houdt nu, onder de opeenvolgende weergaven, degene waar de tekst het meest leesbaar is. Een fade begint en eindigt transparant: noch de eerste noch de laatste is de juiste keuze.
Wat nog niet werkt
De afbeeldingsondertitels van de DVD en de TNT worden niet gedecodeerd. In tegenstelling tot de PGS, waarbij elke afbeelding autonoom is, worden deze formaten gelezen tegen informatie die ergens anders in het bestand is opgeslagen. Dit is een ander project, geen uitbreiding van dit project. In de tussentijd herkent AiSrt ze en waarschuwt je in plaats van ze stilletjes te negeren.
Een volledige keten, van ruwe video naar vertaalde ondertitels
# Stap 1: transcribeer de Engelse audio
aisrt --transcribe "conference.mp4"
# geeft conference.en.srt
# Stap 2: vertaal naar het Frans
aisrt "conference.en.srt" -s en -t fr
# geeft conference.fr.srt
# Stap 3: en in het Spaans als het kan
aisrt "conference.en.srt" -s en -t es
# geeft conference.es.srtDrie commando's, en een video zonder ondertitels wordt toegankelijk in drie talen.
Klein detail dat telt als je dit allemaal script: AiSrt geeft 0 terug wanneer alles goed is gegaan, 1 in geval van een fout, en 2 als je zelf hebt geannuleerd. Wat al op de schijf is geschreven, blijft daar, en de vertaling gaat verder bij de volgende lancering.
Alles automatiseren, zonder een enkele vraag
De drie bovenstaande commando's stellen vragen: welke track te extraheren, welk model te gebruiken, moet er vertaald worden. Handig als je voor het scherm zit, veel minder als je een complete seizoen 's nachts wilt verwerken.
Vier opties vervangen ze, en de volledige keten past dan op één regel:
# Extraheer track 2, vertaal het naar het Frans, zonder ooit iets te vragen
aisrt --extract "episode.mkv" --stream 2 --translate-to fr --non-interactiveOf voor een hele map, onder Windows:
Get-ChildItem *.mkv | ForEach-Object {
aisrt --extract $_.FullName --stream 1 --translate-to fr --non-interactive
}--non-interactive raadt niets: elke vraag krijgt zijn standaardwaarde, en het vertelt je welke het heeft genomen en welke optie had kunnen worden gekozen om een andere te kiezen. Een waarde die je expliciet opgeeft, wordt echter nooit stil genegeerd. Als je track 7 van een bestand vraagt dat er maar twee heeft, stopt het en geeft het de beschikbare tracks weer, in plaats van alles te extraheren alsof er niets aan de hand is. Voor een script is een duidelijke fout beter dan een onverwacht resultaat.
En als je in deze modus op Ctrl+C drukt, stopt het onmiddellijk, zonder om bevestiging te vragen. Er zou niemand zijn om te antwoorden, en een onbeantwoorde vraag zou het script definitief blokkeren.
Ondersteunde talen
| Code | Taal | Code | Taal | Code | Taal |
|---|---|---|---|---|---|
ar | Arabisch | cs | Tsjechisch | da | Deens |
de | Duits | el | Grieks | en | Engels |
es | Spaans | fi | Fins | fr | Frans |
he | Hebreeuws | hi | Hindi | hu | Hongaars |
id | Indonesisch | it | Italiaans | ja | Japans |
ko | Koreaans | ms | Maleis | nl | Nederlands |
no | Noors | pl | Pools | pt | Portugees |
ro | Roemeens | ru | Russisch | sv | Zweeds |
th | Thais | tr | Turks | uk | Oekraïens |
vi | Vietnamees | zh | Chinees |
Typ aisrt --languages om deze lijst op elk moment terug te vinden.
Geavanceerde configuratie
Alles wordt ingesteld in appsettings.json :
- Het model, met de sleutel
Model, als je een ander OpenAI-model verkiest dangpt-5-mini. - De batchgrootte, met
BatchSize: het aantal blokken dat per verzoek wordt verzonden, standaard 40. - De regel lengte, met
MaxLineLength: boven de 50 tekens snijdt AiSrt de regel af zodat deze leesbaar blijft op het scherm. - De netwerklatentie, met
RequestTimeoutMinutes: standaard 10 minuten. Als je veelBatchSizeverhoogt, verhoog het dan ook. - De instructies gegeven aan de AI, met
SystemPromptenUserInstructionPrompt. Hier wordt het interessant: je kunt de vertaling aanpassen aan een juridische, medische, religieuze of technische context door deze twee teksten opnieuw te schrijven. Ik heb ze opzettelijk uit de code gehaald voor dit doel. - De temperatuur, tussen 0.3 voor een zeer letterlijke vertaling en 1.5 voor een vrijere vertaling. 1 standaard.
- De vertaalmotor, met
Providerin de sectieTranslation:openai,anthropic,gemini,xaiofollama. Dit is de instelling die geldt voor al je opdrachten, waar--provideralleen geldt voor de huidige. - De instellingen van Ollama, in hun eigen sectie: het serveradres met
BaseUrl, het model metModel, de batchgrootte metBatchSize, en de grootte van het contextvenster metNumCtx. Als je de eerste verhoogt, denk dan aan het verhogen van de tweede. - De tekenherkenning, in de sectie
Ocr: de fallback-taal metDefaultLanguage, de segmentatiemodus van tesseract metPageSegMode, en het vergroten van afbeeldingen vóór lezing metUpscaleFactor. De laatste twee zijn begrensd: een onrealistische waarde wordt gemeld en vervangen, in plaats van dat de afbeelding per afbeelding mislukt. - De proeflezen van de OCR-tekst, in
Ocr:Proofread:Enabledom het uit te schakelen,Providerom het aan een andere dienst toe te vertrouwen dan degene die vertaalt,BatchSizevoor de batchgrootte. Zijn twee prompts herschrijven zich zoals die van de vertaling.
Voor wie?
- De doven en slechthorenden, die ondertitels nodig hebben om dagelijks toegang te krijgen tot video's.
- De inhoudsproducenten die een publiek willen bereiken dat verder gaat dan hun taal.
- De docenten en trainers wiens online cursussen beter verdienen dan een onnauwkeurige automatische ondertiteling.
- De professionele vertalers, om een eerste versie in enkele minuten te verfijnen.
- De filmfanaten en serie-liefhebbers, uiteraard.
- De verenigingen en NGO's die video's internationaal verspreiden.
AiSrt is gratis en gebruiksklaar.
Download het, probeer het uit, en maak je video's toegankelijk voor iedereen.

Sluit je aan bij het gesprek
U moet een account hebben om dit artikel te kunnen commentariëren. Het aanmaken is gratis en duurt minder dan een minuut.
Geen opmerkingen voor het moment.