AiSrt: Fordítsd le, nyerd ki és írd át a felirataidat (Frissítés)

AiSrt: Fordítsd le, nyerd ki és írd át a felirataidat mesterséges intelligenciával

Ingyenes eszköz, amely 29 nyelven teszi hozzáférhetővé a videókat siketek, nagyothallók és minden többnyelvű tartalomrajongó számára

Van egy videód angol felirattal, és szeretnéd franciára, spanyolra, arabra vagy japánra lefordítani? Vagy egy film, amelyen egyetlen felirat sincs, és szeretnél belőle egy .srt-t kinyerni? Pontosan ezért írtam meg az AiSrt-t.

Az AiSrt egy parancssoros eszköz, amely mesterséges intelligenciára támaszkodva lefordítja a .srt feliratfájljaidat, kinyeri a videófájljaidba már beágyazott sávokat, és közvetlenül a videó hangját is átírja feliratokká. Mindhárom ugyanabban a binárisban.

A fordításhoz öt motor közül választhatsz. Az OpenAI, az Anthropic (Claude), a Google (Gemini) és az xAI (Grok) API-jai filmenként néhány centbe kerülnek. Vagy használhatsz egy saját gépeden futó Ollama-szervert: ingyenes, offline működik, nem kell hozzá kulcs vagy fiók. A felirataid nem hagyják el a merevlemezedet.

És ha a videó egyáltalán nem tartalmaz feliratot, az AiSrt a Whisperhez, az OpenAI beszédfelismerő modelljéhez fordul, amely magától .srt-vé alakítja a hangsávot. Őszintén szólva, amikor először láttam, hogy egy egyórás előadás feliratosan kerül ki úgy, hogy egyetlen sort sem kellett beírnom, az azért megérintett.

Ennek a verziónak az újdonsága: a Blu-ray-feliratok, amelyek nem szövegek, hanem képek, most már szintén olvashatók. Az AiSrt dekódolja őket, átadja egy karakterfelismerő motornak, majd az MI-vel újra átnézeti az eredményt. Mindjárt visszatérek erre lejjebb, ez az a rész, amire a legbüszkébb vagyok.


Miért az AiSrt?

  • Első az akadálymentesítés. A siketek és nagyothallók megérdemlik, hogy egyszerűen hozzáférjenek a videotartalmakhoz. A feliratok létrehozása és lefordítása néhány percig kellene, hogy tartson, nem egy egész estéig.
  • 29 nyelv. Arab, német, angol, kínai, koreai, dán, spanyol, finn, francia, görög, hindi, héber, magyar, indonéz, olasz, japán, maláj, holland, norvég, lengyel, portugál, román, orosz, svéd, cseh, thai, török, ukrán és vietnámi.
  • Kontextust értő fordítás. Ez a teljes különbség a szóról szóra fordítóhoz képest: az idiomatikus kifejezések, a humor és a szójátékok sokkal jobban átmennek.
  • Három funkció egyetlen eszközben: fordítás, kinyerés, átírás.
  • Még a képként létező feliratok is. A Blu-ray PGS-sávjait karakterfelismerés olvassa be, majd az MI újra átnézi őket, hogy kijavítsa, amit az OCR rosszul látott.
  • Öt fordítómotor közül választhatsz. OpenAI, Claude, Gemini, Grok vagy Ollama, a saját kulcsoddal, amely egyetlen beállítással lecserélhető.
  • Ingyenes és offline, ha úgy akarod. A gépedre telepített Ollamával a fordítás semmibe sem kerül, nem kell hozzá kulcs, és nem küld el semmit sehova. Praktikus olyan tartalmakhoz, amelyeket nem akarsz egy külső szolgáltatáson át küldeni.
  • Semmit sem kell mellé telepíteni. A bináris önálló, nem kell külön .NET runtime-ot letölteni, minden benne van. Az ffmpeg és a whisper.cpp pedig automatikusan letöltődik Windowson és Linuxon, amikor szükség van rájuk.
  • NVIDIA-gyorsítás Windowson. Ha az AiSrt felismeri a grafikus kártyádat, átvált a whisper CUDA-verziójára, és az átírás érezhetően gyorsabb lesz.

Telepítés

Előfeltételek

Igazából semmi kötelező. A kinyerés és az átírás kulcs, fiók és bárminek a sehova küldése nélkül működik.

A fordításhoz kulcsra van szükséged a négy fizetős szolgáltatás egyikénél (OpenAI, Anthropic, Google vagy xAI), vagy a gépedre telepített Ollama-ra, amely ingyenes és offline működik. A következő két szakasz mindkettőt elmagyarázza, válaszd azt, amelyik neked megfelel.

Egyetlen esetben kell még egy eszköz: amikor a feliratok képek. Ilyenkor a Tesseract kell, amelyet magad telepítesz. Egy parancs, és örökre el van intézve.

Nem kell runtime-ot telepíteni: minden archívum tartalmaz egy önálló futtatható fájlt a rendszeredhez.

  1. Töltse le az alábbiak közül a gépének megfelelőt: Windows x64, Linux x64 vagy macOS (Apple Silicon M1-től M4-ig, vagy Intel x64).
  2. Csomagolja ki a választása szerinti mappába.
  3. Opcionális: adja hozzá ezt a mappát a környezeti változójához, a PATH-hoz, hogy az aisrt parancsot bármelyik terminálból meghívhassa.

macOS alatt, ha a rendszer nem engedi elindítani a binárist, nyissa meg a Terminált a mappában, és futtassa a chmod +x aisrt parancsot, majd az xattr -cr aisrt parancsot. A macOS-build-ek alá vannak írva és hitelesítve vannak, ezért elvileg erre nem lesz szüksége.

Egy API-kulcs, a választása szerinti szolgáltatásnál

Még egyszer: ez kizárólag a fordításhoz kell.

  1. Nyissa meg a platform.openai.com oldalt, és hozzon létre egy fiókot, vagy jelentkezzen be.
  2. Lépjen a profilmenü jobb felső részén található API Keys menüpontba.
  3. Kattintson a Create new secret key lehetőségre.
  4. Adjon neki nevet, például AiSrt, majd erősítse meg.
  5. Azonnal másolja ki a kulcsot, később többé nem fog megjelenni.
  6. Illessze be az appsettings.json fájlba, az "OPENAI_KEY" helyére:
{
  "OpenAI": {
    "ApiKey": "sk-votre-cle-api-ici",
    "Model": "gpt-5-mini",
    "Temperature": 1
  }
}

Ez a fájl a futtatható fájl mellett található. Az AiSrt telepítése után Windows alatt innen olvassa be: %LOCALAPPDATA%\AiSrt\appsettings.json, Linux és macOS alatt pedig innen: ~/.config/aisrt/appsettings.json.

Tipp: a kulcsot egy külön .env fájlban is tarthatja. Állítsa a "UseSecretEnvFile": true értéket az appsettings.json fájlban, adja meg a fájl elérési útját, és írja bele ezt a sort: OPENAI_KEY=sk-votre-cle-api-ici. Én ezt csinálom otthon, így nem kell a kulcsot egy olyan konfigurációs fájlban hurcolászni, amit gondolkodás nélkül megosztunk.

A költség: az OpenAI használat alapján számláz, egy felirat pedig nagyon keveset fogyaszt. Egy egész film esetén néhány centre számítson a gpt-5-mini használatával.

És ha inkább a Claude-ot, a Geminit vagy a Grokot választaná

Ettől a verziótól az OpenAI már nem az egyetlen fizetős szolgáltatás. Három másik is pontosan ugyanazt a munkát végzi, a saját kulcsoddal: Anthropic a Claude-hoz, Google AI Studio a Geminihez, és xAI a Grokhoz. Mindenhol ugyanaz a menet: létrehozol egy fiókot, generálsz egy kulcsot, és bemásolod az appsettings.json fájlba.

Minden szolgáltatásnak megvan a saját szekciója, a már kitöltött alapértelmezett modelljével:

{
  "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" }
}

Ha pedig ki szeretnél próbálni egy szolgáltatást a fájl módosítása nélkül, ott a --provider kapcsoló:

aisrt "film.srt" -t fr --provider anthropic
aisrt "film.srt" -t fr --provider gemini
aisrt "film.srt" -t fr --provider grok

A gyakran használt nevek is elfogadottak, tehát a claude, a google, a grok és a gpt ugyanolyan jól működnek, mint a hivatalos nevek. Azért adtam hozzá őket, mert én magam is minden második alkalommal összekevertem őket.

Egy részlet, ami nekem egy estébe került: minden szolgáltatás két nevet fogad el a kulcs környezeti változójához, például az ANTHROPIC_API_KEY vagy a CLAUDE_API_KEY nevet. Az .env fájlomat a modell nevével és nem a cég nevével töltöttem ki, AiSrt pedig udvariasan közölte velem, hogy hiányzik a kulcsom. Ott volt, csak egy olyan név alatt, amit nem keresett.

Az utolsó dolog, és ez mind a négyre érvényes: ha a kulcs hibás, ha üres a fiók, vagy ha a modell nem létezik, az AiSrt mielőtt elkezdené, megmondja, és megnevezi a javítandó konfigurációs fájlbeli sort. Többé nem omlik össze egy félig lefordított film közepén.


Vagyis: fordíts ingyen, otthon, Ollamával

Nincs kedved OpenAI-fiókot létrehozni, vagy nem akarod, hogy a fájljaid egy harmadik félhez kerüljenek? Telepítsd az Ollamát, amely közvetlenül a gépeden futtat egy nyelvi modellt. Ingyenes, korlátlan, és az internetkapcsolat nélkül is működik, miután letöltötted a modellt.

Három lépés:

# 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 ollama

A --provider opció az aktuális parancsra vonatkozik. Ha azt akarod, hogy az Ollama legyen az alapértelmezett motorod, tedd a "Provider": "ollama" értéket az appsettings.json Translation szekciójába, és többé nem kell vele foglalkoznod.

Melyik modellt válaszd? Többet is kipróbáltam, és a válasz meglepett. Egy helyi modellnek nagyon szigorú kimeneti formátumot kell betartania, minden elküldött blokkhoz egy lefordított blokkot, sorrendben, megjegyzés nélkül. Némelyik egyáltalán nem képes erre: a qwen2.5 kínai megjegyzéseket csúsztatott a feliratok közé, mindhárom alkalommal, még akkor is, amikor a lehető legjobban lekorlátoztam. Ez nem használható. A llama3.1:8b nagyon jól teljesít, és körülbelül tízszer gyorsabb. A gpt-oss:20b az alapértelmezettként szállított modellem, mert a tesztjeim során egyetlen blokkot sem hagyott ki, de jóval nehezebb, körülbelül 14 Go, és lassabb.

Legyünk őszinték a kompromisszumot illetően: helyben ingyenes, de lassú, a minőség pedig elmarad attól, amit a gpt-5-mini produkál. Egy filmhez, amit ma este nézel meg, a háromcentes OpenAI API kényelmesebb. Egy teljes évad feldolgozásához anélkül, hogy a számlálót nézned kellene, vagy érzékeny tartalomhoz az Ollama érdekessé válik.

Van valami, ami időt rabolt tőlem, és amitől megkíméllek: az AiSrt a natív API-ján keresztül beszél az Ollamával, és megfelelő méretű kontextusablakot kényszerít ki nála. Ha az Ollama OpenAI-kompatibilitási rétegén keresztül használod, ezt a beállítást figyelmen kívül hagyja, a modell szó nélkül levágja a válaszát, te pedig hiányzó blokkokkal találod szembe magad a végleges fájlban. A rendszer ezt elintézi helyetted, de ez megmagyarázza, miért kisebbek a csomagok helyben, 10 blokk 40 helyett.


Mi történik, mielőtt elindul

Induláskor két ellenőrzés fut, és ezek jó pár bosszúságtól kíméltek meg.

Az első azt nézi meg, milyen fájlt adsz neki. Ha az opciót elfelejtve ezt írod be: aisrt film.mkv, az AiSrt közli veled, hogy ez egy videó, és megadja a --extract vagy a --transcribe opciót. Régebben bináris fájlként olvasta a fájlt szövegként, és változtatás nélkül elküldte az MI-nek, amely érthetetlen hibával válaszolt a kérés méretéről. Egyébként ha olyan feliratot adsz neki, ami nem .srt formátumú, hanem például .ass, .vtt vagy .sub, magától átalakítja az ffmpeg segítségével, és folytatja a fordítással.

A második ellenőrzi, hogy a fordítómotor válaszol-e, mielőtt bármit is elküldene. Érvénytelen kulcs, kredit nélküli fiók, el nem indított Ollama-szerver, le nem töltött modell: minden esetre jut egy saját üzenet és egy javítóparancs. Nincs rosszabb annál, mint elindítani hat sáv kinyerését, elmenni meginni egy kávét, majd visszatérve hat egyforma hibát találni.

Használati útmutató

Általános szintaxis

aisrt [<fichier>] [options]

Az összes opció

OpcióLeírásAlapértelmezett érték
<file>A lefordítandó .srt fájl elérési útja, vagy a videófájl a --extract és --transcribe használatávalnincs
-t, --target <code>A célnyelv kódjafr
-s, --source <code>A forrásnyelv kódjaen
--languagesMegjeleníti a 29 nyelvet és a kódjaikatnincs
--streamsFelsorolja egy videó feliratsávjait, anélkül hogy bármit kinyernenincs
--extractKinyeri egy videó feliratsávjait interaktív kiválasztással. A képsávokat OCR-rel olvassa benincs
--transcribeEgy videó hangját .srt formátumba írja át a whisper.cpp segítségévelnincs
-p, --provider <nom>Fordítómotor: openai, anthropic, gemini, xai vagy ollamaaz appsettings.json fájljában megadott
--stream <n|all>A --extract használatával: a kinyerendő sáv, a menü megnyitása nélkülnincs
-tt, --translate-to <code>A --extract vagy a --transcribe használatával: lefordítja az eredményt anélkül, hogy bármit kérdeznenincs
-m, --model <nom>A --transcribe használatával: a whisper modellje, a menü megnyitása nélkülnincs
-al, --audio-language <code>A --transcribe használatával: a videóban beszélt nyelva whisper érzékeli
-ni, --non-interactiveNem tesz fel kérdéseket, alkalmazza az alapértelmezett értékeketnincs
--versionMegjeleníti a verziótnincs
-h, --helpMegjeleníti a súgótnincs

Vigyázz, nehogy összekeverd az egyes számban álló --streams kapcsolót, amely csak felsorolja a sávokat, és az egyes számban álló --stream kapcsolót, amely kiválaszt egyet közülük kinyerésre. Egyetlen betű eltérés, két nagyon különböző hatás. Gondolkodtam rajta, hogy átnevezzem őket, de aztán mégsem: ez a két név jön magától.


1. Feliratok fordítása

A fő funkció, és az, amelyiket a legtöbbet használom:

# 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 ja

A lefordított fájl nevében szerepel a célnyelv kódja: film.fr.srt, film.es.srt, és így tovább. A korábbi kimeneti fájl, ha már létezik, újraírás előtt .bak.srt néven lesz lemásolva.

A fordítás 40 blokkból álló adagokban indul el, és minden adag azonnal lemezre kerül, amint visszaérkezik. Nálam így néz ki egy teljes film esetében:

Terminálablak, folyamatban lévő fordítás, adagokkénti előrehaladás az eltelt idővel

598 blokk 15 adagba szétosztva, és jobbra látod, ahogy gyűlik az idő: adagonként nagyjából egy perc, a teljes filmre valamivel kevesebb mint tizenöt perc. Ha a 13. adagnál szakad meg, ugyanazt a parancsot újraindítva a 13. adaggal folytatódik.

2. Egy videó sávjainak felsorolása

Kinyerés előtt megnézhetjük, mi van a fájlban:

aisrt --streams "film.mkv"

Egy táblázatot kapsz az egyes sávok folyamatszámával, nyelvével, kodekjével és típusával, legyen az szöveg vagy bitmap.

3. Feliratok kinyerése egy videóból

Sok MKV és MP4 már eleve tartalmaz feliratokat. Inkább kinyerjük őket, mint hogy újra elkészítsük:

aisrt --extract "film.mkv"

Egy menüben kiválaszthatsz egy sávot, vagy mindet kinyerheted egyszerre. A szöveges formátumok kezelve vannak (SRT, ASS, SSA, WebVTT, mov_text). A Blu-ray lemezek PGS-sávjai képek: ezeket most már karakterfelismeréssel olvassa be, és a következő szakasz ennek van szentelve. A DVD-k és a digitális földfelszíni tévézés sávjait még nem dekódolja, de az AiSrt ezt világosan közli veled, ahelyett hogy csendben átugraná őket. Miután a kinyerés befejeződött, felajánlja, hogy rögtön lefordítja az egyes sávokat, a sáv nyelvét használva kiindulási nyelvként.

Megjegyzés: a ffmpeg automatikusan letöltődik Windows és Linux alatt, ha még nincs a gépeden. macOS alatt telepítsd a következővel: brew install ffmpeg.

4. Hang átírása felirattá

Egyáltalán nincs felirat a videóban? Elkészítjük őket a whisper.cpp segítségével:

aisrt --transcribe "film.mkv"

Az első indításkor az AiSrt megkérdezi, melyik beszédfelismerő modellt szeretnéd használni:

  • base.en, körülbelül 150 MB: gyors, jól artikulált angolhoz megfelelő
  • small.en, körülbelül 500 MB: a jó kompromisszum
  • medium.en, körülbelül 1,5 GB: pontosabb, lassabb
  • base, small, medium: ugyanazok a méretek, de többnyelvűek
  • large-v3, körülbelül 3 GB: a legpontosabb, többnyelvű és a leglassabb

Átugorhatod ezt a menüt a --model kapcsolóval, ha már tudod, mit szeretnél.

Nem angol nyelvű dolgok átírása

Korábban az AiSrt abból indult ki, hogy angolt adsz neki. Ez nagyon rossz ötlet volt: egy francia beszéd hozzávetőleges angol feliratként jött ki, egyetlen figyelmeztető szó nélkül, és ha ezután fordítást indítottál, akkor az angoltól visszafordított franciát kaptad. Süketek telefonja a saját videóiddal.

Most a whisper észleli a beszélt nyelvet, az AiSrt pedig menet közben beolvassa a válaszát. Semmit sem kell megadnod, és az elkészült fájl a megfelelő nyelvi kódot kapja. Továbbra is megadhatod kézzel, ha tudod, mit csinálsz, egy többnyelvű modellel:

aisrt --transcribe "film.mkv" --audio-language fr --model base

Az elkészült fájl ekkor film.fr.srt néven jön létre, és ha ezután fordítást indítasz, az AiSrt tudni fogja, hogy a kiindulási nyelv a francia.

Egy csapda, amin egy ideig rágódtam: azok a modellek, amelyek neve .en végződésű, kizárólag angolon lettek betanítva. Adj nekik francia hanganyagot, és nem tiltakoznak, teljes magabiztossággal angol fonetikát adnak vissza. Ez az a fajta eredmény, amit csak a fájl elolvasásakor veszel észre. Az AiSrt ezért még bármi elindítása előtt elutasítja ezt a kombinációt, és megadja a megfelelő modellek listáját.

Windows és Linux alatt az AiSrt magától letölti a whispert. Windows alatt ezenfelül felismer egy NVIDIA-kártyát, és a CUDA-s, jóval gyorsabb verziót választja.

macOS alatt egy lépéssel többre van szükség. A whisper.cpp projekt itt nem tesz közzé parancssori futtatható fájlt, csak az Apple fejlesztőinek szánt frameworköt: ezért nincs mit automatikusan letölteni. A megoldás egyetlen parancs:

brew install whisper-cpp ffmpeg

Az AiSrt ezután megkeresi a rendszeredre telepített eszközöket, és úgy használja őket, ahogy vannak. Nincs kéznél Macem, hogy elejétől a végéig végigcsináljam ezt a forgatókönyvet, ezért ha macOS-t használsz és elakadsz, írj nekem, érdekel a dolog.


A képekből álló feliratok

Vegyél ki egy feliratsávot egy Blu-ray lemezről, és nem szöveget kapsz. Képeket kapsz, minden egyes megszólaláshoz egyet, egy PGS nevű formátumban. A lemez nem a szavakat tárolja, hanem a szavakról készült képet. Ez praktikus a moziban használt betűtípus és a pontos elhelyezés megőrzéséhez, fordítani viszont katasztrófa: nincs mit lefordítani, csak pixelek vannak.

Eddig az AiSrt udvariasan közölte veled, hogy ezt nem tudja. Most már tudja.

Mi történik, amikor elindítod a parancsot

Semmi újat nem kell beírni, ugyanaz a parancs, mint korábban:

aisrt --extract "film.mkv"

Ha képsávot választasz, az AiSrt három lépést végez egymás után. Az ffmpeg segítségével kiveszi a nyers sávot a konténerből. A képeket maga dekódolja, feliratonként egyet, közben visszanyerve a megjelenítés pillanatait úgy, ahogy a lemez rögzítette őket. Ezután az egészet egyszerre átadja a Tesseractnak, egy karakterfelismerő motornak (egy szoftvernek, amely újraolvassa a képen lévő szöveget), a teljes sávhoz.

A Tesseract nyelvi fájlját magától letölti, a sáv által megadott nyelven. Egy francia sáv a franciát kapja, egy japán sáv a japánt. Nincs mit kiválasztanod.

A Tesseractot neked kell telepítened

Ez az egyetlen függőség, amit az AiSrt nem szerez be helyetted, és ez szándékos. Az ffmpeg és a whisper önálló futtatható fájlokat tesz közzé, amelyeket rendesen le tudok tölteni. A Tesseract nem ilyen: rendszerszintű telepítők alkotják, amelyek minden platformon különböznek. Egyetlen parancs elég:

# Windows
winget install tesseract-ocr.tesseract

# Linux
sudo apt install tesseract-ocr

# macOS
brew install tesseract

Egy apró történet, ami fél órámba került: Windowson ez a telepítő nem teszi be a Tesseractot a PATHba. Az AiSrt ezért azt válaszolta, hogy az eszköz nem található, és azt javasolta, hogy pontosan azt a parancsot futtassam le, amit épp az imént futtattam le. Egy kijárat nélküli hurok. Az AiSrt most már megnézi azokat a mappákat, ahová a telepítő valóban lerakja a binárist.

Az MI újraolvassa, amit az OCR elolvasott

Egy karakterfelismerő motor mindig ugyanazokat a hibákat véti. A függőleges vonal a nagy I helyett. Az r, amelyet az n követ, m-mé válik. Egy lenyelt ékezet. Egy egész filmen ez már kezd látszani.

Ezért az AiSrt visszaküldi a felismert szöveget a fordítószolgáltatásodnak, egy pontos utasítással: javítsd az olvasási hibákat, ne fordíts le semmit, ne fogalmazz át semmit, ne rövidíts le semmit. Ez lektorálás, nem újraírás. Egy filmrészlet 100 feliratán, amelyet próbapadon teszteltem, 14-et kijavított, 86 már eleve jó volt, és egyetlenegyet sem helyezett át vagy talált ki.

A biztonsági korlát fontosabb a funkciónál, ezért részletezem. Egy javítást csak akkor fogad el, ha közel marad ahhoz, amit felolvastak: egy modell, amely úgy döntene, hogy lefordít egy sort, ki lesz dobva. És ha a válasz nem pontosan ugyanannyi szöveget tartalmaz, mint amennyit elküldött, az egész adag el lesz dobva, a nyers szöveg pedig megmarad. Inkább egy látható elírást tartalmazó feliratot választok, mint egy tökéletes feliratot, amely rossz sorra van ráillesztve.

Ez az újraolvasás alapértelmezés szerint aktív, és azt a szolgáltatást használja, amely már fordít. Kikapcsolhatod, vagy egy másik szolgáltatásra bízhatod az appsettings.json fájlban. És ha nincs beállítva kulcs, nem történik semmi drámai: az OCR szövege változatlanul kiíródik, az AiSrt szól neked, és a kinyerés rendesen befejeződik.

A hiba, amelyet soha nem találtam volna meg, ha nem keresem

Sok lemez elhalványulva jeleníti meg és tünteti el a feliratait. Ehhez nem küldenek új képet: ugyanazt használják újra, csak az átlátszóságát változtatják meg. Az AiSrt ezt a változást a felirat végének vette.

Az eredmény: egy négy másodpercig megjelenő felirat három darabban jelent meg. Az első egy másodpercig tartott, a másik kettő pedig túl halvány volt ahhoz, hogy újra el lehessen olvasni, ezért el lettek dobva. Egyetlen tesztfájlom sem halványult el, ezért szándékosan elkészítettem az esetet, hogy lássam. Három darab előtte, egyetlen, megfelelő hosszúságú felirat utána.

Az AiSrt mostantól az egymást követő megjelenítések közül azt tartja meg, amelyiken a szöveg a legolvashatóbb. Egy elhalványulás átlátszóan kezdődik és végződik: sem az első, sem az utolsó nem a jó választás.

Ami még nem működik

A DVD-k és a TNT képfeliratai még nincsenek dekódolva. A PGS-sel ellentétben, ahol minden kép önálló, ezeket a formátumokat a fájl máshol tárolt információi alapján kell olvasni. Ez egy másik munka, nem ennek a kiterjesztése. Addig is az AiSrt felismeri őket, és figyelmeztet rájuk, ahelyett hogy csendben figyelmen kívül hagyná őket.


A teljes folyamat a nyers videótól a lefordított feliratokig

# É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.srt

Három parancs, és a feliratok nélküli videó három nyelven válik elérhetővé.

Egy apró, de fontos részlet, ha ezt az egészet szkriptbe foglalod: az AiSrt 0-t ad vissza, ha minden rendben ment, 1-et hiba esetén, és 2-t, ha te magad szakítottad meg. Ami már ki lett írva a lemezre, ott marad, és a fordítás a következő indításkor folytatódik.


Mindent automatizálni, egyetlen kérdés nélkül

A fenti három parancs kérdéseket tesz fel: melyik sávot kell kinyerni, melyik modellt kell használni, le kell-e utána fordítani. Praktikus, amikor a képernyő előtt ülsz, sokkal kevésbé az, amikor egy teljes évadot akarsz éjszakára feldolgozni.

Négy beállítás váltja ki őket, így a teljes folyamat elfér egyetlen sorban:

# Extraire la piste 2, la traduire en francais, sans jamais rien demander
aisrt --extract "episode.mkv" --stream 2 --translate-to fr --non-interactive

Vagy egy teljes mappához, Windows alatt:

Get-ChildItem *.mkv | ForEach-Object {
  aisrt --extract $_.FullName --stream 1 --translate-to fr --non-interactive
}

A --non-interactive nem talál ki semmit: minden kérdés az alapértelmezett értékét kapja, és megmondja, melyiket választotta, valamint melyik beállítással lehetett volna mást választani. Egy kifejezetten megadott értéket viszont soha nem hagy figyelmen kívül csendben. Ha egy olyan fájl 7-es sávját kéred, amelyben csak kettő van, leáll, és felsorolja az elérhető sávokat, ahelyett hogy mindent kinyerne, mintha mi sem történt volna. Egy szkript esetében jobb egy egyértelmű hiba, mint egy váratlan eredmény.

És ha ebben a módban megnyomod a Ctrl+C-t, azonnal leáll, megerősítés kérése nélkül. Nem lenne ott senki, aki válaszoljon, egy megválaszolatlan kérdés pedig végleg blokkolná a szkriptet.


Támogatott nyelvek

KódNyelvKódNyelvKódNyelv
arArabcsCsehdaDán
deNémetelGörögenAngol
esSpanyolfiFinnfrFrancia
heHéberhiHindihuMagyar
idIndonézitOlaszjaJapán
koKoreaimsMalájnlHolland
noNorvégplLengyelptPortugál
roRománruOroszsvSvéd
thThaitrTörökukUkrán
viVietnámizhKínai  

Írd be a aisrt --languages parancsot, hogy bármikor újra előhívd ezt a listát.


Speciális beállítások

Mindent az appsettings.json fájlban állíthatsz be:

  • A modell, a Model kulccsal, ha a gpt-5-mini-től eltérő OpenAI-modellt szeretnél.
  • A kötegek mérete, a BatchSize használatával: a kérésenként elküldött blokkok száma, alapértelmezés szerint 40.
  • A sorok hossza, a MaxLineLength használatával: 50 karakternél hosszabb sor esetén az AiSrt megtöri a sort, hogy olvasható maradjon a képernyőn.
  • A hálózati időkorlát, a RequestTimeoutMinutes használatával: alapértelmezés szerint 10 perc. Ha jelentősen megnöveled a BatchSize-t, ezt is növeld meg.
  • Az MI-nek adott utasítások, a SystemPrompt és UserInstructionPrompt használatával. Itt válik érdekessé a dolog: a fordítást jogi, orvosi, vallási vagy műszaki környezethez igazíthatod e két szöveg átírásával. Szándékosan vettem ki őket a kódból erre a célra.
  • A hőmérséklet, 0.3 egy nagyon szó szerinti fordításhoz és 1.5 egy szabadabb fordításhoz. Alapértelmezés szerint 1.
  • A fordítómotor, a Translation szakaszban található Provider használatával: openai, anthropic, gemini, xai vagy ollama. Ez a beállítás az összes parancsodra érvényes, míg a --provider csak az éppen futóra.
  • Az Ollama beállításai, a saját szakaszukban: a szerver címe a BaseUrl használatával, a modell a Model használatával, a kötegek mérete a BatchSize használatával, a kontextusablak mérete pedig a NumCtx használatával. Ha az elsőt megnöveled, gondolj a második növelésére is.
  • A karakterfelismerés, az Ocr szakaszban: a tartaléknyelv a DefaultLanguage használatával, a tesseract darabolási módja a PageSegMode használatával, a képek olvasás előtti felnagyítása pedig az UpscaleFactor használatával. Az utolsó kettő korlátozott értéktartományú: a képtelen értéket jelzi a program és lecseréli, ahelyett hogy képenkénti olvasás közben hibát okozna.
  • Az OCR-szöveg lektorálása, az Ocr:Proofread alatt: az Enabled kikapcsolja, a Provider egy másik szolgáltatásra bízza, mint amelyik fordít, a BatchSize pedig a kötegek méretét állítja be. A két promptját ugyanúgy átírhatod, mint a fordításét.

Kinek?

  • A siket és nagyothalló embereknek, akiknek a mindennapokban feliratokra van szükségük ahhoz, hogy hozzáférjenek a videókhoz.
  • A tartalomkészítőknek, akik a nyelvükön túl is szeretnének közönséget elérni.
  • Azoknak a tanároknak és oktatóknak, akiknek az online kurzusai jobbat érdemelnek egy pontatlan automatikus feliratozásnál.
  • A hivatásos fordítóknak, hogy néhány perc alatt elkészítsék az első vázlatot.
  • A filmrajongóknak és sorozatkedvelőknek, természetesen.
  • A nemzetközi videókat terjesztő egyesületeknek és NGO-knak.

Az AiSrt ingyenes és azonnal használható.
Töltsd le, próbáld ki, és tedd videóidat mindenki számára hozzáférhetővé.

Download — Version 1.10.0

Version history
1.10.0 2026. 08. 01.Current
- Ez a verzió mindent tartalmaz, ami a 1.6.2 óta hozzá lett adva. - Három új fordító szolgáltatás: Anthropic Claude, Google Gemini és xAI Grok, az OpenAI és Ollama mellett. - A szolgáltatás a --provider opcióval, vagy az appsettings.json fájlban választható ki. - Hiányzó kulcs, érvénytelen kulcs vagy ismeretlen modell észlelhető az első fordítás előtt, nem pedig egy fájl közepén. - A kulcs két környezeti változó névből származhat szolgáltatásonként, például ANTHROPIC_API_KEY vagy CLAUDE_API_KEY. - A Blu-ray PGS képkocka feliratait OCR-rel olvassák be a Tesseract segítségével, amelyet magunknak kell telepíteni. - A felismert szöveget a fordító szolgáltatás átnézi, amely javítja az olvasási hibákat anélkül, hogy fordítana. - A fáklyák már nem vágják el a képkocka feliratokat: egy négy másodperces felirat három darabra esett szét. - A beszélt nyelvet a whisper észleli, ahelyett, hogy angolnak feltételezné. - Egyedül az angol whisper modell nem fogadható el külföldi audiónál, ahelyett, hogy kitalálná. - A transzkció már nem veszti el a mondatok első szavát, amikor két elemző ablak között van. - UTF-8 konzol Windows alatt: az ékezetek helyesen jelennek meg egy transzkció során. - A frissítési értesítés a rendszerindításkor jelenik meg, nem pedig egy negyedórás művelet végén. - Ocr:PageSegMode és Ocr:UpscaleFactor korlátozott: a határon túli értékek észlelésre kerülnek és helyettesítve lesznek. - A --help segítség végre bejelenti az OCR képkockák olvasását. - A DVD és TNT képkocka feliratai továbbra sincsenek kezelve: észlelve vannak és átugorva.
1.6.2 2026. 07. 30.
- Transcription : le premier mot d'une phrase n'est plus perdu quand elle est à cheval sur deux fenêtres d'analyse. « Cette vidéo présente » était transcrit « vidéo présente » — un défaut qui touchait tous les transcripts produits jusqu'ici. - Transcription : plus de répétitions en boucle sur les passages chantés ou musicaux. - Contrepartie assumée de cette correction : les annotations du type [Musique] n'apparaissent plus dans les sous-titres. - Un transcript vide est désormais signalé immédiatement, au lieu d'échouer plus loin sur un fichier jugé illisible.
1.5.1 2026. 04. 01.
- Traduction locale et gratuite avec Ollama. En plus de l'API OpenAI, AiSrt peut traduire via un serveur Ollama qui tourne sur votre machine : aucune clé, aucun compte, aucun envoi vers un service tiers, et un coût nul. Choix du moteur avec --provider openai|ollama, ou de façon permanente dans appsettings.json. - Vérification du moteur de traduction au démarrage. Clé invalide, compte sans crédit, serveur Ollama arrêté ou modèle absent : chaque cas est détecté avant le premier envoi et donne un message avec la commande qui le corrige, au lieu d'échouer au bout de plusieurs minutes. - Le fichier d'entrée est contrôlé avant tout traitement. Lancer aisrt sur un fichier vidéo sans option ne provoque plus d'erreur incompréhensible : AiSrt explique qu'il attendait un sous-titre et indique --extract ou --transcribe. Les sous-titres .ass, .ssa, .vtt et .sub sont convertis automatiquement en .srt avant traduction. - Transcription dans une autre langue que l'anglais, avec --audio-language, et ajout des modèles whisper multilingues base, small et medium. Un modèle anglais uniquement associé à une autre langue est refusé avant de lancer le traitement, au lieu de produire une transcription fausse sans le signaler. - --transcribe propose de traduire le résultat dans la foulée, comme le fait déjà --extract. - Utilisation en script, sans aucune question posée : --stream choisit la piste à extraire, --translate-to la langue de traduction, --model le modèle whisper, et --non-interactive supprime toute lecture au clavier. Une valeur invalide arrête l'exécution avec un message clair plutôt que d'appliquer un comportement inattendu. - Correction : traduire deux pistes d'une même vidéo vers la même langue ne fait plus écraser le premier fichier par le second. - Correction : un fichier verrouillé, un disque plein ou une sauvegarde impossible donnent un message d'erreur au lieu d'un plantage, et une traduction existante n'est jamais remplacée sans sauvegarde préalable. - La vérification de mise à jour ne ralentit plus le démarrage : elle tourne en arrière-plan et son résultat s'affiche à la fin de la commande.
Join the conversation

You need an account to comment on this article. Creating one is free and takes under a minute.

  • The XMLTV file, free to download every day
  • Comment on articles and reply to other readers
  • Get an e-mail when an article you follow is updated

No comments yet.

Une erreur s'est produite. Cette application peut ne plus répondre jusqu'à ce qu'elle soit rechargée.Veuillez contacter l'auteur. Reload 🗙