使用者: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, " ")
展開舊版 |
---|
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}}。
完成。
說明和已知問題
(其實沒什麼好說明的,只是最後不放點什麼感覺不太對)
如果大家有發現什麼錯誤,或者有更好的工具或者方法,歡迎指正~
已知問題:
「