BookTranslator
BookTranslator

စတိုင်များ၊ နေရာများ သို့မဟုတ် ကာရာအိုကေများ မပျက်စီးစေဘဲ ASS/SSA စာတန်းထိုးများကို ဘယ်လိုဘာသာပြန်မလဲ

.ass ဖိုင်ထဲရှိ မြင်နိုင်သော ဒိုင်ယာလော့ခ်များကိုသာ ဘာသာပြန်ပြီး အချိန်ကိုက်မှု၊ တဂ်များ၊ ကာရာအိုကေနှင့် ဖောင့်များကို စစ်ဆေးပါ။ နမူနာဖိုင်၊ အခမဲ့စစ်ဆေးရေးကိရိယာနှင့် ဒေသတွင်း LLM စမ်းသပ်မှု ၉ ကြိမ်ဖြင့်။

ASS သို့မဟုတ် SSA စာတန်းထိုးဖိုင်သည် ပရိုဂရမ်ငယ်တစ်ခုဖြစ်သည်- ခေါင်းစီးတစ်ခု၊ စတိုင်များဇယားတစ်ခုနှင့် နောက်ဆုံးအကွက်တွင် ဒိုင်ယာလော့ခ်ကို ဖော်မတ်ကုဒ်နှင့် ရောနှောထားသော အချိန်သတ်မှတ်ထားသည့် ဖြစ်ရပ်များစာရင်းတစ်ခု ပါဝင်သည်။ ၎င်းကို ဘာသာပြန်ရန် ထိုနောက်ဆုံးအကွက်ရှိ ဖတ်နိုင်သောစကားလုံးများကိုသာ ပြောင်းလဲပြီး ကျန်အားလုံးကို ဘိုက်တစ်ဘိုက်ချင်း မထိခိုက်စေဘဲ ထားခဲ့ကာ မည်သည့်ဘာသာပြန်ကိရိယာကမှ သင့်အတွက် မပြင်ဆေးပေးသော အချက်သုံးချက်ကို စစ်ဆေးပါ- ဖောင့်များ၊ အကွာအဝေးကုဒ်များနှင့် ကာရာအိုကေလိုင်းများ။

ကျွန်ုပ်တို့သည် ဖြစ်ရပ် ၁၄ ခုပါသော နမူနာတစ်ခုကို ရိုးရှင်းသော တရုတ်ဘာသာသို့ ဒေသတွင်းမော်ဒယ်တစ်ခုဖြင့် ကိုးကြိမ် ဘာသာပြန်ခဲ့ပြီး မတူညီသော ပရော့ပ်သုံးမျိုးကို အသုံးပြုကာ ရလဒ်တိုင်းကို ကျွန်ုပ်တို့ရေးသားထားသော စကရစ်ပတ်တစ်ခုဖြင့် စစ်ဆေးခဲ့သည်။ အချိန်ကိုက်မှု၊ နေရာများ၊ အရောင်များ၊ မှတ်ချက်များနှင့် ပုံဆွဲမှုများသည် ကိုးကြိမ်စလုံးတွင် မပျက်စီးဘဲ ကျန်ရှိခဲ့သည်။ ပျက်စီးသွားသည်မှာ ဖိုင်ထဲရှိ အင်္ဂလိပ်ဘာသာကို ယူဆထားသော အစိတ်အပိုင်းများဖြစ်သည်- ကိုးကြိမ်စလုံးတွင် စတိုင်ဖောင့်များတွင် တရုတ်စာလုံးများ မပါရှိသဖြင့် ဖိုင်သည် ဖောင့်အစားထိုးရန် ပလေယာကို မှီခိုရမည်ဖြစ်ပြီး အင်္ဂလိပ်လိုင်းမှ မာကျောသော အကွာအဝေးတစ်ခုသည် တရုတ်ဘာသာတွင် မြင်နိုင်သော ကွက်လပ်တစ်ခု ဖြစ်လာခဲ့သည်။ ကာရာအိုကေလိုင်းသည် ပြေးတိုင်း အချိန်ကိုက်မှုကို မှားယွင်းသော စကားလုံးများဆီသို့ ညွှန်ပြထားပြီး လေးကြိမ်တွင် အချို့သော အသံထွက်များသည် လုံးဝ မီးမောင်းထိုးမပြခဲ့ပါ။

အမြန်အဖြေ- ဘာကို ဘာသာပြန်မလဲ၊ ဘာကို မထိဘဲ ထားမလဲ

ဖိုင်၏ အစိတ်အပိုင်းကျွန်ုပ်တို့၏ နမူနာမှ ဥပမာဘာသာပြန်မလား?
[Script Info] ခေါင်းစီးPlayResX: 1920, WrapStyle: 0မဟုတ်ပါ။ နေရာများကို ဤတန်ဖိုးများမှ တွက်ချက်သည်။
[V4+ Styles]Style: Default,Trebuchet MS,64,...မဟုတ်ပါ၊ ဖောင့်အမည်မှလွဲ၍ ရည်ရွယ်ချက်ရှိရှိ ပြောင်းလဲရန် လိုအပ်နိုင်သည်
ဖြစ်ရပ်အကွက် ၁–၉0,0:00:01.00,0:00:03.20,Default,Jun,0,0,0,မဟုတ်ပါ။ ဤအရာများသည် အလွှာ၊ အချိန်ကိုက်မှု၊ စတိုင်၊ စကားပြောသူ၊ အနားသတ်များနှင့် အကျိုးသက်ရောက်မှုဖြစ်သည်။
အထပ်ထပ်ရေးထားသော ဘလောက်များ{\i1}, {\an8\pos(960,120)}, {\k25}မဟုတ်ပါ
ပုံဆွဲမှုများ{\p1}m 0 0 l 200 0 200 60 0 60{\p0}မဟုတ်ပါ။ ၎င်းသည် စာသားမဟုတ်ဘဲ ဗက်တာပုံသဏ္ဌာန်ဖြစ်သည်။
Comment: ဖြစ်ရပ်များComment: ...,Earlier draft: Try the stacks.ရွေးချယ်နိုင်သည်။ မှတ်ချက်များသည် မျက်နှာပြင်ပေါ်တွင် ဘယ်တော့မှ မပေါ်ပါ။
အထူးကွင်းစကွက်မှတ်စုများ{TL note: "stacks" means the closed shelves}ရွေးချယ်နိုင်သည်။ ပလေယာများက ၎င်းတို့ကို လျစ်လျူရှုသည်။
မြင်နိုင်သော ဒိုင်ယာလော့ခ်Did you find the second volume?ဟုတ်ကဲ့
လိုင်းကုဒ်များ\N, \n, \h\N ကို ထားရှိပါ။ \n နှင့် \h အတွက် တစ်ခုချင်းစီ အခြေအနေအလိုက် ဆုံးဖြတ်ပါ။

ဤလမ်းညွှန်၏ ကျန်ရှိသောအပိုင်းတွင် အတန်းတစ်ခုစီသည် အဘယ်ကြောင့် အရေးကြီးသည်နှင့် ရလဒ်ကို မည်သို့စစ်ဆေးရမည်ကို ရှင်းပြထားသည်။

ASS အတန်းတစ်ခုကို မည်သို့တည်ဆောက်သည်

[Events] အပိုင်းရှိ အတန်းတိုင်းသည် ၎င်းအပေါ်တွင် ကြေညာထားသော ပုံစံအတိုင်း လိုက်နာသည်။

Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:03.40,0:00:06.10,Default,Mara,0,0,0,,{\i1}I thought it was{\i0} sold out.

ဒသမမြောက် အကွက် Text တစ်ခုတည်းသာ ကြည့်ရှုသူဖတ်ရှုမည့် အရာများကို ကိုင်တွယ်ထားသည်။ libass ပရောဂျက်၏ ASS ဖိုင်ဖော်မတ်လမ်းညွှန် တွင် ဤနောက်ဆုံးအကွက်သည် "ကော်မာများ ပါဝင်ခွင့်ရှိသည်" ဟု ဖော်ပြထားပြီး ထို့ကြောင့် ကော်မာတိုင်းကို ဂရုမစိုက်ဘဲ ခွဲခြမ်းပါက Well, if it's there, then, we go now. ကဲ့သို့သော အတန်းတစ်ခု ပျက်စီးသွားမည်ဖြစ်သည်။ ဘေးကင်းသော ကိရိယာတစ်ခုသည် ပထမ ကော်မာ ကိုးခုကိုသာ ခွဲခြမ်းသည်။

Text အတွင်းတွင် ကွင်းကောက်အတွင်း၌ ရှိသော အရာမှန်သမျှသည် override block ဖြစ်သည်။ Aegisub ၏ override tag ရည်ညွှန်း တွင် သင်အများဆုံး ကြုံတွေ့ရမည့် ကုဒ်များကို သတ်မှတ်ထားသည်။

  • \N သည် wrap mode တိုင်းတွင် အတန်းချိုးခြင်းကို အတင်းအကြပ် ပြုလုပ်သည်။ \n သည် wrap mode 2 တွင်သာ အတန်းကို ချိုးပြီး အခြားအခြေအနေများတွင် နေရာလွတ်တစ်ခု ဖြစ်သည်။ \h သည် မချိုးနိုင်သော နေရာလွတ် ဖြစ်သည်။
  • \an8 သည် ဂဏန်းကီးပက်ဒ် အပြင်အဆင်ကို အသုံးပြု၍ ချိန်ညှိမှုကို သတ်မှတ်သည်၊ ထို့ကြောင့် 8 သည် အပေါ်အလယ် ဖြစ်သည်။ \pos(960,120) သည် အတန်းကို ဇာတ်ညွှန်း ကိုဩဒိနိတ်များတွင် နေရာချသည်။
  • \k25 သည် ကာရာအိုကေ အသံထွက်တစ်ခု ဖြစ်သည်။ ကြာချိန်များကို စင်တီစက္ကန့်ဖြင့် ဖော်ပြသည်၊ ထို့ကြောင့် 25 သည် တစ်စက္ကန့်၏ လေးပုံတစ်ပုံ ဖြစ်သည်။
  • \p1 ပြီးနောက် စာသားသည် "ပုံဆွဲခြင်း ညွှန်ကြားချက်များအဖြစ် အဓိပ္ပာယ်ဖွင့်ဆိုခံရမည်" ဖြစ်သောကြောင့် m 0 0 l 200 0 ကို "ဘာသာပြန်" သော ဘာသာပြန်သူသည် ပုံသဏ္ဌာန်တစ်ခုကို ဖျက်ဆီးပစ်သည်။
  • ကွင်းကောက်အတွင်း၌ မှတ်မိမရသော စာသားကို "တိတ်တဆိတ် လျစ်လျူရှုသည်" ဖြစ်သောကြောင့် fansub ဖိုင်များတွင် ဘာသာပြန်သူ မှတ်စုများကို ကွင်းကောက်အတွင်း ထည့်သွင်းလေ့ရှိသည်။

Comment: ဖြင့် စတင်သော အတန်းများသည် တူညီသော အကွက်များကို အသုံးပြုသော်လည်း libass လမ်းညွှန်အရ "မျက်နှာပြင်ပေါ်တွင် ဘာမှ ပြသမည်မဟုတ်ပါ။"

ကျွန်ုပ်တို့ စမ်းသပ်ခဲ့သည့်အရာ

ကျွန်ုပ်တို့သည် sample-source.ass ကို ရေးသားခဲ့သည်၊ ၎င်းသည် စာအုပ်ဆိုင်တစ်ခုတွင် ဖြစ်ပျက်သော 14-event ဇာတ်ကွက်ဖြစ်ပြီး အထက်ပါ အင်္ဂါရပ်တစ်ခုစီအတွက် ဥပမာတစ်ခုစီ ပါဝင်သည်- စာလုံးစောင်း၊ အတင်းချိုးခြင်း၊ စကားပြောအတွင်း ကော်မာများ၊ ကွင်းကောက်မှတ်စု၊ မှတ်ချက်အတန်း၊ နေရာချထားသော ဆိုင်းဘုတ်၊ vector အကွက်၊ fade၊ အတင်းနေရာလွတ်၊ \r ဖြင့် အရောင်ပြောင်းခြင်း၊ ပျော့ပျောင်းသော ချိုးခြင်း၊ လှိမ့်နေသော Banner အကျိုးသက်ရောက်မှု၊ နှင့် ခြောက်လုံးပါ ကာရာအိုကေအတန်း။

ထို့နောက် ကျွန်ုပ်တို့သည် ဒေသတွင်း မော်ဒယ်တစ်ခုကို ရိုးရှင်းသော တရုတ်ဘာသာသို့ နည်းလမ်းသုံးမျိုးဖြင့် ဘာသာပြန်ရန် တောင်းဆိုခဲ့သည်။

  1. ဖိုင်တစ်ခုလုံး။ .ass ဖိုင်တစ်ခုလုံးကို ကူးထည့်ပြီး ဘာသာပြန်ထားသော ဖိုင်ကို ပြန်တောင်းပါ။
  2. စာသားသာ။ စကားပြောအတန်းတစ်ခုစီ၏ Text အကွက်ကိုသာ JSON အဖြစ် ပို့ပြီး tag များကို အတွင်းတွင် ထည့်ကာ {...} block တိုင်းနှင့် \N၊ \n၊ \h တိုင်းကို ထားရှိရန် ညွှန်ကြားချက်နှင့်အတူ ပို့ပါ။
  3. ကာကွယ်ထားသော။ အလားတူပင်၊ သို့သော် ကွင်းကောက် block တိုင်းနှင့် အတန်းကုဒ်တိုင်းကို နံပါတ်တပ်ထားသော placeholder ဖြင့် အစားထိုးပြီးမှ မူရင်းများကို ပြန်ထည့်ပါ။

ဒုတိယနှင့် တတိယ အခြေအနေများတွင် ဇာတ်ညွှန်းသည် vector ပုံဆွဲခြင်း သို့မဟုတ် မှတ်ချက်အတန်းကို မော်ဒယ်ထံ ဘယ်တော့မှ မပို့ပါ၊ ထို့ကြောင့် ထိုအတန်းများသည် ဖိုင်တစ်ခုလုံး အခြေအနေတွင်သာ ပျက်စီးနိုင်သည်။

မော်ဒယ်မှာ Apple M4 Max တွင် မမ်မိုရီ 64 GB ဖြင့် LM Studio 0.4.8 တွင် Qwen 3.6 27B (Q4_K_M) ဖြစ်ပြီး တွေးခေါ်မှုကို ပိတ်ထားကာ temperature 0.3 ဖြစ်သည်။ ကျွန်ုပ်တို့သည် အခြေအနေတစ်ခုစီကို သုံးကြိမ် လုပ်ဆောင်ခဲ့ပြီး စုစုပေါင်း ကိုးကြိမ် ဖြစ်သည်။ တတိယအကြိမ် ပထမဆုံး ကြိုးပမ်းမှုသည် ဒေသတွင်း ဆာဗာက ချိတ်ဆက်မှုကို ဖြတ်တောက်လိုက်သောအခါ ရပ်တန့်သွားခဲ့သည်၊ ထို့ကြောင့် ကျွန်ုပ်တို့သည် ၎င်းကို ပြန်လည်စတင်ပြီး တတိယအကြိမ်ကို ထပ်မံလုပ်ဆောင်ခဲ့သည်။ ဇာတ်ညွှန်းမှာ run_llm_ass_test.py ဖြစ်ပြီး ရလဒ်ကိုးခုစလုံးကို ၎င်းနှင့်အတူ တည်းဖြတ်မှုမရှိဘဲ ထုတ်ဝေထားသည်။ README တွင် ဖိုင်တိုင်းကို စာရင်းပြုစုထားသည်။ သင်သည် ဒေသတွင်း မော်ဒယ်ကို တစ်ခါမျှ မတပ်ဆင်ဖူးပါက ကျွန်ုပ်တို့၏ ဒေသတွင်း LLM ဘာသာပြန်လမ်းညွှန် တွင် ဆက်တင်များကို ဖော်ပြထားသည်။

ဤသည် မော်ဒယ်တစ်ခု၊ ဘာသာစကားအတွဲတစ်ခုနှင့် နမူနာတစ်ခုအတွက် သေးငယ်သော စမ်းသပ်မှုတစ်ခု ဖြစ်သည်။ ၎င်းသည် မည်သည့်ပြဿနာများ ဖြစ်ပေါ်သည်နှင့် ၎င်းတို့ကို မည်သို့ ဖမ်းမိနိုင်သည်ကို ပြသသည်။ ၎င်းသည် ကိရိယာများ သို့မဟုတ် prompt များကို အဆင့်သတ်မှတ်ခြင်း မဟုတ်ပါ။

ရလဒ်- စက်ပြင်ဆင်မှုသည် ရှင်သန်ခဲ့သည်၊ အင်္ဂလိပ် ယူဆချက်များ မရှင်သန်ခဲ့ပါ

ကျွန်ုပ်တို့သည် ထွက်ရှိမှုတိုင်းကို check_ass_translation.py ဖြင့် စစ်ဆေးခဲ့သည်။ အပြည့်အစုံ ထွက်ရှိမှုကို check-results.txt တွင် တွေ့နိုင်ပြီး results.csv တွင် ဇာတ်ညွှန်း မမြင်နိုင်သော ပြဿနာများ အပါအဝင် လုပ်ဆောင်မှုတစ်ခုစီအတွက် အတန်းတစ်ခုစီ ပါဝင်သည်။

စစ်ဆေးမှုဖိုင်တစ်ခုလုံးစာသားသာကာကွယ်ထားသည်
အချိန်၊ ပုံစံများနှင့် အကွက် 1–9 မပြောင်းလဲ3/33/33/3
အထူး tag များ မပြောင်းလဲ3/32/33/3
ပုံဆွဲခြင်းနှင့် မှတ်ချက်လိုင်းများ မထိခိုက်3/33/33/3
ဘာသာပြန်ချက်ကို ရေးဆွဲနိုင်သော ပုံစံဖောင့်များ0/30/30/3
\h နှင့် \n တို့ကို တရုတ်စာသားတွင် ကွက်လပ်များအဖြစ် ထားရှိသည်3/33/33/3
ကာရာအိုကေ tag အားလုံး ထိန်းသိမ်းထားပြီး တစ်ခုစီတွင် စာသားပါသည်3 of 30 of 31 of 3

ရလဒ်နှစ်ခုက ကျွန်တော်တို့ကို အံ့အားသင့်စေခဲ့ပါတယ်။ ဖိုင်တစ်ခုလုံးကို ကူးထည့်ခြင်းက သုံးကြိမ်စလုံးမှာ ဖွဲ့စည်းပုံကို မပျက်မစီး ထိန်းသိမ်းထားနိုင်ခဲ့ပေမယ့် နှစ်ကြိမ်မှာတော့ ခေါင်းစီးထဲက Title လိုင်းကိုပါ ဘာသာပြန်ပေးခဲ့ပါတယ်။ ပိုပြီးလုံခြုံတယ်လို့ ထင်ရတဲ့ စာသားသက်သက် ပရော့ပ်ကတော့ ပျက်စီးနေတဲ့ တဂ်တွေကို ထုတ်ပေးခဲ့တာပါပဲ။ တစ်ကြိမ်မှာ ကာရာအိုကေ တဂ်ခြောက်ခုပါတဲ့ လိုင်းတစ်လိုင်းအတွက် {\k25}翻{\k30}页,{\k45}开{\k60}灯 ဆိုပြီး ပြန်ပေးခဲ့ပါတယ်။ နောက်ဆုံး တဂ်နှစ်ခုနဲ့ ဟိုက်လိုက် အချိန် 1.20 စက္ကန့်က ပျောက်သွားခဲ့ပြီး ဟိုက်လိုက်က လိုင်းမကုန်ခင် အများကြီး စောပြီး ဆုံးသွားမှာပါ။ အဲဒီအကြိမ်တစ်ခုတည်းမှာပဲ Room\h12 is upstairs. ကို 12\h12号房间在楼上。 အဖြစ် ပြောင်းလိုက်ပြီး အခန်းနံပါတ်က နှစ်ခါ ဖြစ်သွားပါတယ်။

ဒါကြောင့် အသုံးဝင်တဲ့ သင်ခန်းစာက "ပရော့ပ် X ကို သုံးပါ" ဆိုတာ မဟုတ်ပါဘူး။ သင်ကြောက်နေတဲ့ ဖွဲ့စည်းပုံဆိုင်ရာ ပျက်စီးမှုကို ရှာဖွေတွေ့ရှိဖို့ လွယ်ကူပြီး၊ ကိုးကြိမ်စလုံးမှာ အမှန်တကယ် ဖြစ်ပေါ်ခဲ့တဲ့ ပျက်စီးမှုက ASS ဘာသာပြန်အတွက် ကိရိယာစာမျက်နှာတွေမှာ မဆွေးနွေးထားတဲ့ နေရာသုံးခုမှာ ရှိနေတာပါ။

1. ဖောင့်တွေက ဘာသာစကားအသစ်ကို ရေးဆွဲနိုင်မှာ မဟုတ်ပါ

နမူနာရဲ့ စတိုင်းတွေက ဒိုင်ယာလော့အတွက် Trebuchet MS နဲ့ ဆိုင်းဘုတ်တွေအတွက် Georgia ကို သုံးထားပြီး အင်္ဂလိပ်ထုတ်ဝေမှုအတွက် ပုံမှန်ပါပဲ။ ဖောင့်နှစ်ခုစလုံးမှာ တရုတ်စာလုံးတွေ မပါဝင်ပါဘူး။ စစ်ဆေးသူရဲ့ glyph စမ်းသပ်မှုကို ဖောင့်ဖိုင်နှစ်ခုဆီ ညွှန်ပြလိုက်တဲ့အခါ ကြိမ်တိုင်းမှာ ဘာသာပြန်ထားတဲ့ စာသားဖြစ်ရပ် 12 ခုစလုံး မအောင်မြင်ခဲ့ပါဘူး။

ERROR   event 1: font 'Trebuchet MS' has no glyph for 9 characters, e.g. 了二你到卷吗找第?
ERROR   event 7: font 'Georgia' has no glyph for 10 characters, e.g. 书人仅作员工库架闭限

ပလေယာတစ်ခုက အခြားထည့်သွင်းထားတဲ့ ဖောင့်တစ်ခုကို အစားထိုးနိုင်တာကြောင့် စာတန်းထိုးက ပေါ်နေနိုင်သေးပေမယ့် ထုတ်ဝေမှုက ဘယ်လိုပုံစံမျိုးဖြစ်မယ်ဆိုတာကို ထိန်းချုပ်နိုင်တော့မှာ မဟုတ်ပါဘူး။ သင့်တော်တဲ့ ဖောင့်မရှိတဲ့ စနစ်ရှိ ကြည့်ရှုသူကတော့ ကွက်လပ်လေးထပ်ကွက်တွေကို တွေ့ရနိုင်ပါတယ်။ ပြုပြင်ဖို့ဆိုတာ စတိုင်းတစ်ခုချင်းစီရဲ့ Fontname အကွက်ကို တမင်တကာ တည်းဖြတ်ခြင်းပါပဲ။ ထွက်ရှိမှုတစ်ခုထဲက စတိုင်းသုံးခုစလုံးကို macOS နဲ့အတူ ပါလာတဲ့ တရုတ်ဖောင့် Hiragino Sans GB သို့ ပြောင်းပြီး အဲဒီဖောင့်နဲ့ glyph စမ်းသပ်မှုကို ပြုလုပ်ကြည့်တဲ့အခါ glyph အမှားတွေ သုညဖြစ်သွားပါတယ်။

သင့်ကြည့်ရှုသူတွေ အမှန်တကယ် ရှိမယ့် ဖောင့်တစ်ခုကို ရွေးချယ်ပါ၊ ဒါမှမဟုတ် ဗီဒီယိုနဲ့အတူ ထည့်သွင်းပို့ဆောင်ပါ။ libass လမ်းညွှန်က ထုတ်ဝေမှုတွေဟာ သူတို့သုံးသမျှ ဖောင့်တိုင်းကို ပူးတွဲပါရှိသင့်တယ်၊ ဖြစ်နိုင်ရင် MKV ကွန်တိန်နာထဲမှာ ထည့်သွင်းသင့်တယ်လို့ ဆိုပါတယ်။ ပစ်မှတ်ဘာသာစကားရဲ့ ဖောင့်က အသစ်ဖြစ်တာကြောင့် အခုဆိုရင် ဖောင့်ကို ပူးတွဲထည့်သွင်းတာဟာ ဘာသာပြန်ခြင်းအလုပ်ရဲ့ တစ်စိတ်တစ်ပိုင်း ဖြစ်လာပါပြီ။

2. အကွာအဝေးကုဒ်တွေက အင်္ဂလိပ်အလေ့အထတွေကို သယ်ဆောင်ထားတယ်

Room\h12 က "Room" နဲ့ "12" ကို ကပ်ထားတာကြောင့် လိုင်းတွေကြားမှာ ဘယ်တော့မှ ကွဲသွားမှာ မဟုတ်ပါဘူး။ တရုတ်ဘာသာမှာ စကားလုံးတွေကို ကွက်လပ်နဲ့ မခွဲထားပေမယ့် ကြိမ်တိုင်းမှာ \h က တစ်နေရာရာမှာ ကျန်နေခဲ့ပါတယ်။ ငါးကြိမ်က 12号房间 နဲ့ 在楼上 ကြားမှာ ထားခဲ့ပြီး၊ သုံးကြိမ်က နံပါတ်ရှေ့မှာ ထားခဲ့ပြီး၊ တစ်ကြိမ်က နံပါတ်မိတ္တူနှစ်ခုကြားမှာ ထားခဲ့ပါတယ်။ ဘယ်လိုပဲဖြစ်ဖြစ် ကြည့်ရှုသူက လွင့်နေတဲ့ ကွက်လပ်တစ်ခုကို တွေ့ရပါတယ်။ Wait\nhere. မှာလည်း အလားတူ ပြဿနာရှိပါတယ်။ WrapStyle: 0 နဲ့ဆိုရင် \n က ကွက်လပ်တစ်ခုအဖြစ် ပေါ်လာတာကြောင့် 在\n这里等 က စကားလုံးသုံးလုံးပါတဲ့ ဝါကျအလယ်မှာ ကွက်လပ်တစ်ခုကို ပြသနေပါတယ်။

ဒီမှာ ဖွဲ့စည်းပုံက ကောင်းမွန်ပါတယ်၊ ဘာသာစကားက မကောင်းပါဘူး။ စကားလုံးတွေကြားမှာ ကွက်လပ်မထားတဲ့ ပစ်မှတ်ဘာသာစကားအတွက် ဘာသာပြန်ထားတဲ့ စာသားထဲက \h နဲ့ \n ကို ဖယ်ရှားပါ။ အတင်းချိုးဖို့ လိုတဲ့နေရာမှာသာ \N ကို ထားရှိပြီး ပစ်မှတ်ဝါကျရဲ့ သဘာဝကျတဲ့ အမှတ်မှာ ထားပါ။ ဒါကြောင့်ပဲ စစ်ဆေးသူက ပြောင်းလဲသွားတဲ့ \h နဲ့ \n အရေအတွက်တွေကို အမှားတွေမဟုတ်ဘဲ သတိပေးချက်တွေအဖြစ် အစီရင်ခံပြီး တရုတ်၊ ဂျပန် သို့မဟုတ် ကိုရီးယားစာသားထဲမှာ တစ်ခုကျန်နေရင် သတိပေးပါတယ်။

3. ကာရာအိုကေ အချိန်က မူရင်းစကားလုံးတွေရဲ့ ပိုင်ဆိုင်မှုပါ

ကာရာအိုကေလိုင်း {\k25}Turn {\k30}the {\k45}page, {\k60}turn {\k40}the {\k80}light က အင်္ဂလိပ်အသံတစ်သံစီကို သီချင်းနဲ့ အချိန်ကိုက်ထားပါတယ်။ ဘာသာပြန်ခြင်းက အဲဒီအချိန်ကို အဓိပ္ပာယ်ရှိရှိ ထိန်းထားနိုင်မှာ မဟုတ်ပါဘူး၊ ဘာကြောင့်လဲဆိုတော့ တရုတ်စကားလုံးတွေက အဲဒီအစီအစဉ်တူ စည်းချက်တွေပေါ် မကျရောက်လို့ပါ။ ကျွန်တော်တို့ရဲ့ ကြိမ်တွေက မှားယွင်းသွားတဲ့ နည်းလမ်းအမျိုးမျိုးကို ပြသနေပါတယ်။

  • ကြိမ်လေးကြိမ်မှာ တဂ်ခြောက်ခုစလုံးကို ထိန်းထားခဲ့ပြီး တစ်ခုချင်းစီက အရင်ကနဲ့ မတူတဲ့ စကားလုံးပေါ်မှာ ရှိပါတယ်။ တစ်ကြိမ်က {\k40}打{\k80}开 ဆိုတဲ့ "ဖွင့်" နဲ့ အဆုံးသတ်ပြီး "light" ကို လိုင်းထဲကနေ လုံးလုံးလျားလျား ဖယ်ထုတ်ပစ်ခဲ့ပါတယ်။
  • ကြိမ်လေးကြိမ်မှာ အသံတစ်သံက ဘာကိုမှ ဟိုက်လိုက်မပေးခဲ့ပါဘူး၊ ဥပမာ 打开{\k40}{\k80}灯 (အသံဗလာပေါ်မှာ 0.40 စက္ကန့် ဟိုက်လိုက်)။ အဲဒီထဲက နှစ်ကြိမ်မှာ 0.45 စက္ကန့်ရှိတဲ့ အသံတစ်သံကလည်း ကော်မာတစ်ခုကိုသာ ဟိုက်လိုက်ပေးခဲ့ပါတယ်။
  • တစ်ကြိမ်မှာ အထက်ဖော်ပြပါအတိုင်း တဂ်နှစ်ခု ပျောက်ကွယ်သွားခဲ့ပါတယ်။

စစ်ဆေးသူက နေရာမှာတင် ဘာသာပြန်ထားတဲ့ ကာရာအိုကေလိုင်းနဲ့ စာသားမကျန်ရှိတဲ့ အသံတစ်သံကို အလံပြပါတယ်။ ပိုကောင်းတဲ့ ပြုပြင်မှုက တည်းဖြတ်ရေးဆိုင်ရာပါ။ ကာရာအိုကေကို နေရာမှာတင် ဘာသာမပြန်ပါနဲ့။ လိုက်ဆိုဖို့အတွက် မူရင်းအချိန်ကိုက်လိုင်းကို ထားရှိပြီး ဘာသာပြန်ချက်ကို သီးခြားဖြစ်ရပ်တစ်ခုအဖြစ် ထည့်ပါ။ ကာရာအိုကေဖြစ်ရပ်ကို ကူးယူပြီး သီးခြားစတိုင်းတစ်ခု ပေးပါ (ဥပမာ ပိုသေးပြီး အောက်ခြေမှာ ထားပါ)၊ \k တဂ်တွေကို ဖယ်ရှားပြီး စာသားကို ဘာသာပြန်ပါ။ သင်ကိုယ်တိုင် အသံနဲ့ အချိန်ကိုက်ဖို့ အသင့်ရှိမှသာ အသံတစ်သံစီကို ပြန်လည်အချိန်ကိုက်ပါ။

ခံနိုင်ရည်ရှိတဲ့ လုပ်ငန်းစဉ်တစ်ခု

  1. အရင်းအမြစ်ကို အရင်ဖတ်နိုင်အောင် လုပ်ပါ။ ဖိုင်က စာလုံးတွေ ပျက်နေတယ်ဆိုရင် အခြားအရာအားလုံးမတိုင်မီ ကုဒ်ပြောင်းခြင်းကို ပြုပြင်ပါ။ ကျွန်တော်တို့ရဲ့ ကုဒ်ပြောင်းခြင်းလမ်းညွှန် က SRT နမူနာတွေကို သုံးထားပေမယ့် အလားတူ byte အဆင့်ရှိ အဆင့်တွေက .ass ဖိုင်အတွက်လည်း အလုပ်ဖြစ်ပြီး မူရင်း byte တွေကို လုံခြုံစွာ ထိန်းသိမ်းထားပါတယ်။ စစ်ဆေးသူက UTF-8 နဲ့ UTF-16 ကိုသာ ဖတ်ပါတယ်။

  2. အတိုင်းအတာကို ဆုံးဖြတ်ပါ။ စတိုင်းတွေကို စာရင်းပြုစုပြီး ဘယ်ဟာတွေက ဒိုင်ယာလော့၊ ဘယ်ဟာတွေက မျက်နှာပြင်ပေါ်က ဆိုင်းဘုတ်တွေ၊ ဘယ်ဟာတွေက ကာရာအိုကေဆိုတာကို ဆုံးဖြတ်ပါ။ ဆိုင်းဘုတ်တွေက များသောအားဖြင့် ဘာသာပြန်ဖို့ လိုအပ်ပါတယ်။ ကာရာအိုကေက များသောအားဖြင့် သီးခြားလိုင်းတစ်ခု လိုအပ်ပါတယ်။ မှတ်ချက်တွေနဲ့ အကွက်ကွင်းမှတ်စုတွေက သင်ဆုံးဖြတ်ရမှာပါ။

  3. Text အကွက်ကိုသာ ဘာသာပြန်ပါ။ ASS ကို ပုံမှန်စာသားအဖြစ် မသဘောထားဘဲ ခွဲခြမ်းစိတ်ဖြာတဲ့ ကိရိယာကို သုံးပါ၊ ဒါမှမဟုတ် ကျွန်တော်တို့ရဲ့ တတိယအခြေအနေမှာလိုပဲ တဂ်တွေကို သင်ကိုယ်တိုင် ကာကွယ်ပါ။ မူရင်းဖိုင်ကို ထွက်ရှိမှုဘေးမှာ ထားပါ။

  4. ဖွဲ့စည်းပုံစစ်ဆေးမှုကို လုပ်ဆောင်ပါ။

    python3 check_ass_translation.py source.ass translated.ass
    

    ၎င်းက ဖြစ်ရပ်အရေအတွက်၊ ဖြစ်ရပ်အမျိုးအစားများ၊ အကွက် 1–9၊ စတိုင်းတန်ဖိုးများ၊ override ဘလောက်များ၊ ပုံများ၊ မှတ်ချက်လိုင်းများ၊ \N၊ ကာရာအိုကေအသံများနှင့် ကြာချိန်များ၊ ပြီးတော့ ဗလာ သို့မဟုတ် မပြောင်းလဲဘဲ ပြန်လာတဲ့ လိုင်းများကို နှိုင်းယှဉ်ပါတယ်။ ဘာသာပြန်အရည်အသွေးကို မအကဲဖြတ်ပါဘူး။

  5. ဖောင့်များကို ရည်ရွယ်ချက်ရှိရှိ ပြင်ဆင်ပါ။ ယခု ပစ်မှတ်ဘာသာစကားစာသား ပါဝင်နေသော စတိုင်တစ်ခုစီရှိ Fontname ကို ပြောင်းပါ၊ ထို့နောက် သင်ပို့ဆောင်မည့် ဖောင့်ဖိုင်နှင့် glyph စမ်းသပ်မှုကို လုပ်ဆောင်ပါ။

    pip install fonttools
    python3 check_ass_translation.py source.ass translated.ass --font "Noto Sans SC=/path/to/NotoSansSC-Regular.otf"
    

    ပြောင်းလဲထားသော ဖောင့်အမည်သည် သတိပေးချက်အဖြစ် ပေါ်လာမည်ဖြစ်သောကြောင့် ပြောင်းလဲမှုတိုင်းသည် ရည်ရွယ်ချက်ရှိရှိ ပြုလုပ်ခဲ့ကြောင်း အတည်ပြုနိုင်ပါသည်။

  6. အထက်တွင် ဖော်ပြထားသည့်အတိုင်း အကွာအဝေးကုဒ်များနှင့် ကာရာအိုကေကို ရှင်းလင်းပါ။

  7. ဗီဒီယိုနှင့်အတူ ကြည့်ပါ။ ဖိုင်ကို Aegisub သို့မဟုတ် သင့်ပလေယာတွင် ဖွင့်ပါ။ သင်္ကေတများသည် ၎င်းတို့၏နောက်ကွယ်တွင် ရေးဆွဲထားသော ပုံသဏ္ဌာန်များနှင့် အံကိုက်ဖြစ်နေဆဲလား စစ်ဆေးပါ၊ အဘယ်ကြောင့်ဆိုသော် \p ဘောက်စ်သည် ၎င်း၏ အင်္ဂလိပ်အရွယ်အစားကို ထိန်းသိမ်းထားပြီး ဘာသာပြန်ထားသော သင်္ကေတသည် များစွာ ပိုရှည်နိုင် သို့မဟုတ် ပိုတိုနိုင်သောကြောင့် ဖြစ်သည်။ မျဉ်းကြောင်းများသည် မျက်နှာပြင်ပေါ်တွင် ၎င်းတို့၏အချိန်အတွက် ရှည်လွန်းနေခြင်း မရှိကြောင်း စစ်ဆေးပါ။ ပြဿနာနှစ်ခုစလုံးကို ဖိုင်ထဲတွင် မမြင်နိုင်ပါ။

BookTranslator နေရာချထားမှု

BookTranslator ၏ စာတန်းထိုးဘာသာပြန်ကိရိယာ သည် SRT၊ VTT၊ ASS နှင့် SSA ဖိုင်များကို လက်ခံပါသည်။ ထုတ်ကုန်စာမျက်နှာအရ ၎င်းသည် အချိန်တံဆိပ်များနှင့် cue အစီအစဉ်ကို ထိန်းသိမ်းထားပြီး ပံ့ပိုးထားသော ASS နှင့် SSA စတိုင်ဖော်မတ်များကို စာတန်းထိုးအချက်အလက်တစ်ခုစီတွင် ပူးတွဲထားသောကြောင့် စာသားကို သင်ကိုယ်တိုင် ထုတ်ယူပြီး ပြန်ထည့်ရန် မလိုအပ်ပါ။ ၎င်းသည် စကားပြောများကို ပတ်ဝန်းကျင်မျဉ်းကြောင်းများနှင့်အတူ အကြောင်းအရာအဖြစ် ဘာသာပြန်ပေးသောကြောင့် အပိုင်းတစ်ခုလုံးရှိ အမည်များနှင့် ထပ်ခါတလဲလဲ ဟာသများအတွက် အထောက်အကူဖြစ်ပါသည်။

ဤဆောင်းပါးအတွက် ဤနမူနာကို BookTranslator ဖြင့် ကျွန်ုပ်တို့ မလုပ်ဆောင်ခဲ့ပါ။ သင်အသုံးပြုသည့် ကိရိယာမည်သို့ပင်ဖြစ်ပါစေ ရလဒ်အပေါ် အဆင့် 4 မှ 7 အထိ လုပ်ဆောင်ပါ။ အင်္ဂလိပ်ဖောင့်ကို ထိန်းသိမ်းထားသော စတိုင်သည် တရုတ်စာလုံးများကို မရေးဆွဲနိုင်သေးပါ၊ နေရာတွင်ဘာသာပြန်ထားသော ကာရာအိုကေသည် အယ်ဒီတာ့အာဘော် ဆုံးဖြတ်ချက် လိုအပ်နေဆဲဖြစ်သည်။ ကျန်ရှိသော စာတန်းထိုးလုပ်ငန်းစဉ်အတွက် ကျွန်ုပ်တို့၏ AI စာတန်းထိုးဘာသာပြန်လမ်းညွှန်၊ စာတန်းထိုးဘာသာပြန်ဆော့ဖ်ဝဲ နှိုင်းယှဉ်ချက် နှင့် သင့်ဘာသာပြန်ချက်ကို YouTube သို့ တင်မည်ဆိုပါက YouTube စာတန်းထိုးလုပ်ငန်းစဉ် တို့ကို ကြည့်ပါ။

ဘယ်အချိန်မှာ SRT သို့ ပြောင်းသင့်သလဲ

ဘာသာမပြန်မီ ASS ကို SRT သို့ ပြောင်းခြင်းသည် စတိုင်များ၊ နေရာချထားမှုများ၊ ပုံများနှင့် ကာရာအိုကေတို့ကို ဖယ်ရှားပေးပြီး အထက်ပါပြဿနာအများစုကိုလည်း ဖယ်ရှားပေးပါသည်။ သင့်ဦးတည်ရာနေရာသည် ရိုးရှင်းသော စာတန်းထိုးများကိုသာ ပြသပါက သို့မဟုတ် စတိုင်ဖော်မတ်သည် ထုတ်ဝေမှုအတွက် အရေးမကြီးခဲ့ပါက ၎င်းသည် ကျိုးကြောင်းဆီလျော်သော အပေးအယူတစ်ခု ဖြစ်သည်။ သင်္ကေတများနှင့် ကာရာအိုကေသည် လက်ရာ၏ တစ်စိတ်တစ်ပိုင်းဖြစ်သော အနီမီနှင့် ဂီတထုတ်ဝေမှုများအတွက်မူ ၎င်းသည် မှားယွင်းသော အပေးအယူ ဖြစ်သည်။ မည်သည့်ဖော်မတ်က ဘာသာပြန်ရပိုလွယ်သည်ဟူသော အချက်ပေါ်တွင် မဟုတ်ဘဲ ဖိုင်ကို မည်သည့်နေရာတွင် ပြသမည်ဟူသော အချက်ပေါ်တွင် အခြေခံ၍ ဆုံးဖြတ်ပါ။

စမ်းသပ်ဖိုင်များ ရယူပါ

ဤစမ်းသပ်မှုမှ အရာအားလုံးကို အခမဲ့ ပြန်လည်အသုံးပြုနိုင်ပါသည်။

  • sample-source.ass။ အင်္ဂလိပ်နမူနာ 14 ခုပါဝင်သည်။
  • check_ass_translation.py။ စစ်ဆေးကိရိယာ (Python စံစာကြည့်တိုက်၊ --font စမ်းသပ်မှုအတွက် fontTools လိုအပ်သည်)။
  • run_llm_ass_test.py။ OpenAI နှင့် ကိုက်ညီသော ဒေသတွင်းဆာဗာများအတွက် prompt အခြေအနေသုံးမျိုး။
  • results.csv နှင့် check-results.txt။ အပြေးတစ်ခုချင်းစီ၏ ရလဒ်များ။
  • README.txt။ ဖိုင်စာရင်းနှင့် စမ်းသပ်မှု ဆက်တင်များ၊ outputs ဖိုလ်ဒါအတွင်း မတည်းဖြတ်ရသေးသော ရလဒ်ကိုးခု ပါဝင်သည်။

ဆက်စပ် ဆောင်းပါးများ