用戶:Stevenlele/注音歌詞獲取轉換指南
簡介
這裡簡單記錄一下如何快速方便地獲取帶注音的日文歌詞並轉換成萌百的格式。因為萌百的 Ruby 注音用起來很方便。
這個方法脫胎於我所在的某字幕組研究批量自動化注音的時候,集思廣益搞出來的一套方法,所以本指南第二部分理論上是適用於所有日文文本注音的。
關於字幕批量注音,還沒有完整地實戰過,教程也還沒寫,有感興趣的大佬可以私下裡聯繫討論。咕咕咕(x
獲取帶注音的日文歌詞並轉換
這個是理想情況,可以直接獲取到帶注音的歌詞,比較省力。
1、去 UtaTen 搜索歌詞。如果沒有的話就用第二部分介紹的普通方法吧。
2~6、F12 打開 DevTools,切換到 Console,輸入以下代碼回車。然後複製結果。
$(".hiragana").html().replace(/<span class="ruby"><span class="rb">(.+?)<\/span><span class="rt">(.+?)<\/span><\/span>/g, "{{Photrans|$1|$2}}").replace(/<br>/g, "").trim().replace(/ /g, " ")
舊版 |
---|
2、使用 Lyric Get(舊版)從 UtaTen 獲取帶注音的歌詞。這個工具是在 cv342040 找到的,這篇文章也挺有意思,感興趣的可以看看。 接下來的步驟需要用到支持正則表達式且可以識別 Unicode ( 3、替換半角空格和半角標點:半角 ( ) → 全角 ( ),如果有英文部分,注意不要把英文空格和標點替換了。(這步是可選的,只是為了美觀;另外也可以留到最後做,不過現在字符量少,可以先做了) 4、保護原歌詞中非假名標註的半角括號,方法是替換成別的特殊字符,之後再替換回來;或者刪除掉之後手動加回來。 5、正則表達式替換: 6、整理查錯。還原之前保護替換的括號,然後對照 BK 或者其他網站的歌詞(比如 Lyrical Nonsense 之類)查錯,以及聽一遍看看振假名有沒有標錯,UtaTen 出錯還是比較常見的。直接用預覽模式看比較方便。 |
7、加注音按鈕,參考 {{Photrans}}。
完成。
給日文歌詞加上注音並轉換
如果 UtaTen 沒有的話,那就只能用普通的歌詞來添加注音了。也適用於一般的日語文本。
1、找到歌詞,獲得文本。可以用上面提到的 Lyric Get,如果是 Lyrical Nonsense 這種沒支持的話也可以用 Chrome 的檢查功能提取出來。或者對着 BK 手打。
2、替換半角符號,保護半角括號。同上。
3、使用 雅虎的假名標註 API 接口 添加假名標註。這裡 有一個現成的工具。選擇添加振假名(ふりがなに)就可以了。
4、這個方法添加的振假名會包含原文本裡面的一些假名,所以替換方法也不太一樣。正則表達式替換:([\u4E00-\u9FA5]+[\u2E80-\u33FF]*?)\(
→ ($1,
。解釋:從左半角括號向前匹配「至少一個漢字 + 零個或多個假名」(用不用貪婪模式其實差不多),然後把匹配到的東西一起括進括號裡面,用逗號分隔。
5、正則表達式替換:([\u2E80-\u33FF]+),(\S+)\1\)
→ ,$2)$1
。解釋:匹配漢字部分和假名部分末尾相同的假名部分,移出括號。
6、檢查結果,並整理查錯。這個模式會出錯的地方比較多,比如如果標註假名的部分中間包含假名,例如「漢字 + 假名 + 漢字」,會出現漢字部分沒有括全的現象,需要手動糾正並分拆成兩個或多個括號。另外,自動標註的假名也有幾率出錯,需要檢查。
7、把格式替換成萌百的 Photrans 模板格式。你可以不用正則表達式單獨替換(( → {{Photrans|
, → |
) → }}
),或者正則表達式:\((\S+?),(\S+?)\)
→ {{Photrans|$1|$2}}
。
8、加注音按鈕,參考 {{Photrans}}。
完成。
說明和已知問題
(其實沒什麼好說明的,只是最後不放點什麼感覺不太對)
如果大家有發現什麼錯誤,或者有更好的工具或者方法,歡迎指正~
已知問題:
「