BookTranslator
BookTranslator

Hogyan készítsünk kétnyelvű feliratokat: Két nyelv egyetlen SRT- vagy VTT-fájlban

Készíts olyan kétnyelvű SRT- vagy VTT-fájlt, amit az emberek is el tudnak olvasni: időzítés szerinti összefésülés, két nyelv egy feliratban, a felső nyelv kiválasztása és egy ingyenes ellenőrző futtatása.

BookTranslator

BookTranslator Team

10 perc olvasás

Kétnyelvű feliratok készítéséhez szükséged van egy időzített feliratfájlra, annak egy olyan fordítására, amely ugyanazt az időzítést tartja, valamint minden egyes pillanathoz egy feliratra, amely mindkét nyelvet tartalmazza: először az eredeti sorokat, majd a fordított sorokat, egyetlen időbélyeg alatt. Bármelyik fordító, amely kettős fájlt ír, ezt megteszi helyetted, és egy összefésülő eszköz is elvégzi, ha már van két fájlod. A sima SRT-hez ehhez nincs szükség különleges szintaxisra.

A fájl elkészítése a könnyebb rész. A nehezebb rész az, hogy az időzítés egyetlen nyelvre lett megírva. Egy felirat, amelybe két sor angol fért el, most négy sort kell hogy tartalmazzon, ugyanabban a néhány másodpercben, ugyanazon kép fölött. Ezért ez az útmutató leginkább arra fordítja az idejét, mit kell kijavítani az összefésülés után.

Készítettünk egy 12 feliratból álló tesztfájlt, elkészítettük a spanyol, kínai és arab változatot, valamint írtunk egy ingyenes ellenőrzőt. A fájlok a BookTranslator saját feliratíró kódjából származnak, helyben futtatva. A fordításokat kézzel írtuk, nem egy modellt hívtunk meg, így ezek a tesztek azt mutatják meg, mi történik a fájllal, nem pedig azt, hogy milyen jó egy fordítás. A részleteket a README tartalmazza. Az ellenőrzőhöz Python 3 kell, semmi más.

Gyors válasz: Így néz ki egy kétnyelvű felirat

2
00:00:03,400 --> 00:00:06,600
There's another one at six,
but the station closes at midnight.
Hay otro a las seis,
pero la estación cierra a medianoche.

Ez érvényes SRT. Minden felirat megtartja a számát és az időbélyegét, és az időbélyeg alatti összes szövegsor egyszerre jelenik meg a képernyőn. A WebVTT ugyanígy működik.

Először válaszd ki a beállítást

SzeretnédHasználdMiért
Szinte bármilyen lejátszóban megnézni, vagy egy fájlt elküldeni valakinekEgy összefésült SRTEz egyetlen közönséges feliratfájl, semmilyen lejátszófunkció nem kell hozzá
A saját számítógépeden nézni, nyelvenkénti vezérlésselKét külön fájl egy két sávot támogató lejátszóbanMinden nyelv megtartja a saját időzítését, és mozgatható vagy kikapcsolható
A nyelveket különböző méretekben megjeleníteni egy weboldalonEgy VTT, nyelvenként egy-egy osztállyalA WebVTT támogatja a stílusozást; az SRT-nek nincs erre szabványos módja
Olyan videót közzétenni, amely mindenhol ugyanúgy néz kiBeégetett feliratokA szöveg a kép részévé válik, és a nézők nem tudják kikapcsolni

Két sáv esetén az mpv rendelkezik egy --secondary-sid opcióval. A kézikönyve szerint a második sáv alapértelmezés szerint a képernyő tetején jelenik meg, ami távol tartja egymástól a nyelveket. Az mpv-t magunk nem teszteltük.

A beégetéshez az FFmpeg subtitles szűrőjének libass-t tartalmazó buildre van szüksége. A teszthez telepített FFmpeg 9.0.1 nem tartalmazta, ezért a tervezés előtt futtassa a ffmpeg -filters | grep subtitles parancsot. A beégetést nem teszteltük.

1. lépés: Két nyelv egyetlen fájlba

Ha egyetlen fájlja van, olyan eszközzel fordítsa le, amely dupla fájlt ír. A BookTranslator minden SRT- és VTT-feladatnál ezt teszi: kap egy lefordított fájlt és egy kétnyelvű fájlt ugyanazokkal az időbélyegekkel, és elkezdheti a feliratfordítónál. Ha előbb eszközt kell választania, nézze meg feliratszoftver-összehasonlításunkat.

Ha két fájlja van, idő szerint párosítsa őket, ne feliratszám szerint. Itt szokott elromlani az egyesítés, mert ugyanazon videó két sávja ritkán osztja fel ugyanúgy a sorokat. A második spanyol sávunk két hosszú feliratot kettévág, és kihagyja a hangeffektet, az évet és a zenét.

python3 check_bilingual_subs.py merge sample-source.srt sample-es-own-timing.srt -o merged.srt

A feliratszám szerinti párosítás (a szkript --index opciója) a 12 feliratból 10-et hibásan párosított, a 2. felirattól kezdve, ahol a spanyol fele eltűnt. A 3. feliratra a fordítás már egy másik sorhoz tartozott:

3
00:00:06,800 --> 00:00:08,000
So where do we wait?
pero la estación cierra a medianoche.

Az idő szerinti párosítás a helyes fordítást adta 9 felirat alatt, békén hagyta azt a 3 feliratot, amelyekhez nem tartozott spanyol, és jelezte az egyetlen spanyol sort, amely semmihez sem illeszkedett, így kézzel elhelyezheti. A szkript a második sáv egy feliratát ahhoz az első sávbeli felirathoz rendeli, amellyel a legnagyobb mértékben átfed, feltéve, hogy ez legalább a hossza felét lefedi. Az olyan eszközök, mint a submerger, szintén egyesítenek fájlokat; ezeket nem teszteltük. Bármit is használ, az első felosztás után ellenőrizze a feliratokat.

2. lépés: A fájl ellenőrzése

python3 check_bilingual_subs.py check sample-source.srt sample-es-bilingual.srt --max-target-cps 17

A kétnyelvű fájlt a forrással hasonlítja össze, és feltételezi, hogy az eredeti sorok vannak elöl, ezért a sorrend felcserélése előtt futtassa. Figyelmeztet, ha a felső sorok nem egyeznek a forrással. Ezt találta a spanyol fájlban:

FeliratMásodpercSorokEredeti karakter/mpSpanyol karakter/mpProbléma
23.2419.417.8Négy sor, a spanyol túl gyors
52.726.77.0' a szövegben
71.024.04.0Ugyanaz a szöveg kétszer
81.821.71.7Ugyanaz a szöveg kétszer
91.2420.822.5Négy sor, mindkét nyelv túl gyors
103.6218.319.4Mindkét sor 42 karakter felett, a spanyol túl gyors

A 6. és a 12. felirat is négy sorral jött vissza. A többi négy felirat rendben volt.

A sebesség- és sorbossz-korlátok a Netflixről származnak, mert annak számai nyilvánosak és konkrétak, és nyelvenként eltérnek. Az angol útmutatója felnőtt műsorokhoz 42 karaktert engedélyez soronként, két sort és legfeljebb 20 karaktert másodpercenként. A latin-amerikai spanyol útmutatója fordított feliratokhoz 17 karaktert engedélyez másodpercenként, az egyszerűsített kínai útmutatója pedig 16 karaktert soronként és 9-et másodpercenként. Tehát kínaihoz használja a --max-target-line 16 --max-target-cps 9 beállítást. Ezek az útmutatók egyszerre egy nyelvre vonatkoznak, legfeljebb két sorral. Nem ismerünk egyenértékű szabványt két nyelvre egy feliratban, ezért az ellenőrző három soros képernyős alapértelmezése és a következő szakasz minden része a mi megítélésünk.

Az ellenőrző egy kombinált számot is kiír, amely a 9. feliratnál elérte a 43,3 karakter/másodpercet. Ne próbálja megjavítani ezt a számot. Senki sem olvassa mindkét nyelv minden karakterét teljes figyelemmel. Tekintse mutatónak azokra a feliratokra, amelyeket érdemes figyelni.

3. lépés: A négy soros feliratok javítása

Ennyibe kerül négy sor. A Chromium beépített feliratmegjelenítőjében 1280x720-as felbontáson a kétsoros angol felirat a képkivágás magasságának 10,6%-át foglalta el, ugyanez a felirat spanyollal kiegészítve pedig 21,9%-át.

A kétsoros angol felirat egy sima, 1280 x 720-as tesztképkivágás alján, a Chromium alapértelmezett feliratstílusában.

Ugyanez a felirat két hozzáadott spanyol sorral, a képkivágás magasságának mintegy ötödét kitöltve.

A megjelölt feliratokat ebben a sorrendben nézd át:

  1. Tartsd meg a hang nyelvét szó szerint. Ha az emberek az eredetit hallgatják, és a szöveget követik, a lerövidített eredeti már nem egyezik azzal, amit hallanak.
  2. Rövidítsd a másik nyelvet egy sorra. A 2. feliratunk 17,8 karakter/másodpercről 13,1-re csökken, amikor a spanyol A las seis hay otro; cierran a medianoche. lesz. Ez három sor a képernyőn négy helyett, és mindkét tényt megtartja.
  3. Csak akkor adj hozzá időt, ha van hézag. A záró időpont módosítása előtt ellenőrizd a következő felirat kezdetét. A 2. feliratnak 0,2 másodperce van tartalékban, ami nem éri meg a fáradságot.
  4. A többit aztán hagyd békén. A 9. felirat a You knew? / Since March. 1,2 másodpercben. Megsérti a sebesség- és sorszámkorlátokat, de hagynánk: az utána következő 0,2 másodperces hézag túl kicsi ahhoz, hogy segítsen, és a néző valószínűleg egy pillantással be tudja fogadni két rövid választ. Nem minden megjelölés hiba.

A hosszú, egysoros feliratoknál, mint a 10., csak akkor tördeld két sorra az egyes nyelveket, ha a feliratnak van rá ideje. Ellenkező esetben rövidítsd a fordítást.

Ha te irányítod a megjelenítést, azt is megteheted, hogy az egyik nyelvet könnyebb legyen kiszúrni. Futtasd a to-vtt parancsot, hogy minden nyelv saját osztályt kapjon. Az eredményül kapott fájl Chromiumban megjelenítve az angolt 80%-os méretben és világosszürkén mutatta. Ez alig takarít meg helyet (a képkivágás magasságának 21,1%-a 21,9% helyett), tehát nem helyettesíti egy sor törlését. Nem teszteltük, hogy segít-e az embereknek az olvasásban.

A négysoros felirat, az angol sorok kisebbek és szürkébbek, mint a spanyol sorok.

Ez a WebVTT feliratosztályait és a ::cue() szelektort használja. Böngészőknek szánjuk. Más lejátszók figyelmen kívül hagyhatják a stílusokat vagy a VTT-fájlt.

4. lépés: Döntsd el, melyik nyelv kerüljön felülre

Van erről némi kutatás. Egy 2026-os szemmozgáskövetéses tanulmányban, amelyben 42 spanyol anyanyelvű, angolt második nyelvként beszélő résztvevő vett részt, a nézők több időt töltöttek a felső sorral, bármelyik nyelven is volt, és több időt töltöttek azzal a sorral, amelyik a hanghoz illeszkedett. A szövegértési pontszámok magasabbak voltak, amikor a spanyol, az első nyelvük volt felül. Egy korábbi tanulmány 112 angolul tanuló kínai résztvevővel azt találta, hogy a kétnyelvű feliratok ugyanannyit segítettek a szövegértésben, mint az első nyelvükön készült feliratok önmagukban, és mindkettő jobb volt az angol feliratoknál vagy a feliratok nélküli állapotnál.

Ezek egyedi tanulmányok meghatározott nézőcsoportokkal, tehát kiindulópontként kezeld őket:

  • Egy film vagy előadás tartalmának követése: tedd felülre azt a nyelvet, amelyen a legjobban olvasol.
  • Egy tanult nyelv gyakorlása: tedd felülre azt a nyelvet, és fogadd el, hogy esetleg valamivel kevesebbet értesz meg. A 2026-os tanulmány a szövegértést mérte, nem a tanulást, tehát ez a mi megítélésünk.
  • Egy fordítás átnézése: a sorrend keveset számít, hagyd úgy.

A BookTranslator kétnyelvű fájlja mindig felülre teszi az eredetit. A felcseréléshez:

python3 check_bilingual_subs.py flip sample-source.srt sample-es-bilingual.srt -o translation-on-top.srt

Mi jön vissza hibásan, és hogyan javítsd

Ezek a BookTranslator feliratkódjának a tesztfájljainkon való futtatásából származnak, és az ellenőrző az első kettőt jelöli meg.

  • A fordítást nem igénylő szöveg kétszer jelenik meg. A 1984 és a ♪ ♪ kimarad, mert nincs bennük lefordítandó szó, így a kétnyelvű fájl mindegyiket kétszer írja ki. Törölj ki egy sort kézzel.
  • A &apos; megjelenhet a szövegben. 2026 novemberétől előfordulhat, hogy egy formázócímkéket és aposztrófot tartalmazó felirat aposztrófja escape-elt formában jön vissza. Az eredeti sorunk <i>Don&apos;t answer that.</i> lett a kétnyelvű fájlban, és egy külön VTT-tesztben egy francia fordítás <i>Je n&apos;attendrai pas.</i> lett a lefordított fájlban is. A Chromium VTT-ben dekódolta, és normál aposztrófot mutatott. De amikor az SRT-t FFmpeg-gel konvertáltuk, a &apos; benne maradt a kimeneti szövegben, tehát feltételezd, hogy egyes lejátszók szó szerint fogják megjeleníteni. A fájl használata előtt cseréld ki a &apos;-t '-re. Jelentettük ezt a mérnökeinknek.
  • A VTT feliratbeállításai eltűnnek. Az olyan pozícióbeállítások, mint a line:0 align:start position:10%, és a NOTE blokkok hiányoztak a VTT-tesztkimenetünkből, és a beszélőcímkék mindkét sorban megjelentek. Ha a VTT-d az elhelyezésre támaszkodik, fordítás után tedd vissza.
  • A jobbról balra írt szöveget soronként jelöljük. Az arab sorok Unicode irányjelzőkkel körbevéve jöttek vissza. Csak egyetlen feliratot néztünk meg, a fájl egy VTT-másolatában Chromiumban, és az jobbról balra jelent meg. Az arabot számokkal keverő sorok, mint a 10-es feliratunk, a nehezebb eset, ezeket nem néztük meg, ezért teszteld a saját lejátszódban. Az SRT-ben nincs más mód az irány beállítására. A jobbról balra írt szövegek útmutatójában a könyvek szélesebb körű kérdéseit tárgyaljuk.

Ha a forrásod ASS vagy SSA, a BookTranslator kétnyelvű kimenete a fordított sort második eseményként adja hozzá, ugyanazzal a stílussal és időzítéssel, ami más szerkezetet jelent. Az ASS-feliratok útmutatójában elmagyarázzuk, hogyan épülnek fel ezek a fájlok. Ha az ékezetes karakterek bármelyik nyelven hibásan jelennek meg, a probléma általában a fájl kódolása, amit a felirat-kódolási útmutatónk tárgyal.

Mielőtt megosztod a fájlt

  1. Futtasd az ellenőrzőt, és menj végig minden megjelölt feliraton.
  2. Keresd meg a &apos;, &amp; és &quot; karaktereket, és cseréld ki őket.
  3. Töröld a hanghatásokon, számokon és zenén lévő ismétlődő sorokat.
  4. Nézd meg a legzsúfoltabb néhány percet abban a lejátszóban, amit a nézőid használni fognak, akkora képernyőn, amekkorán ők.
  5. Ellenőrizd, hogy az alsó sorok nem takarják-e a videóban látható szöveget.
  6. Olvasd el a fordítást szövegkörnyezetben. Az AI-felirat munkafolyamatunk bemutatja, hogyan ellenőrizd.

Készen áll egy SRT vagy VTT? Töltsd fel a feliratfordítóba, és nézd meg az árat, mielőtt fizetsz. Amikor elkészül, töltsd le a kétnyelvű fájlt a lefordítottal együtt. Ezután futtasd rajta az ellenőrzőt, mivel egy valós feladatban a sorszámok attól függnek, hogyan tagolja a modell az egyes fordított feliratokat.

Kapcsolódó bejegyzések