【SynthV 插件】汉字转拼音、多音字检查、音素拼音转换等
在 SynthV Studio 里用汉字歌词的话,基本都会被多音字坑到。又一次在发布完才发现读音错误后,我打算写些工具来避免这种情况。顺便也写了几个其他的相关工具。
汉字转拼音
最直接的避免多音字问题的方法就是直接用拼音,但这样也不大方便:
一、一般汉字的歌词直接就能搜到,但拼音的基本没有现成的,需要自己转换。而且转换出来的结果依然有可能存在多音字导致的读音错误,需要手动校对。另外在扒谱时用拼音填歌词很可能会增加工作量,比如两段汉字歌词很容易看出来每行的字数一不一样,拼音的话就费劲了。
二、在调歌时,如果歌词是汉字的,看着很方便,就像字幕一样,拼音则不是一目了然的,定位也不方便。
问题一可以通过插件在一定程度上解决。
把歌词中的汉字转成拼音:https://www.vsqx.top/project/vn9239
因为多音字等原因,很多人愿意使用拼音作歌词,但一般只能搜到歌词的汉字歌词,还需要找工具转换可能比较麻烦。这个插件可以直接把汉字转换成对应的拼音(根据当前使用的音素)。
用法:
选择音轨后运行即可,只支持默认音符组。转换前最好备份一下,转换后试听一遍,以免出现未预料到的错误。
有了这个工具,自己在调歌时可以先填汉字歌词,填完后(或者调差不多后)直接运行插件把汉字全部转成拼音,再校对读音。如果汉字存在读音错误,转成拼音就更容易发现了。
但这样也只能减少一些工作量,而且因为问题二,我不想使用拼音歌词,这个插件只是一个我自己不用的副产品。
多音字检查
既然问题出在多音字上,那么专门写个工具用来检查多音字读音就好了。
检查多音字发音:https://www.vsqx.top/project/vn9238
在 SynthV Studio 里使用汉字歌词的话,基本都会被多音字发音问题坑到,简直防不胜防……被坑了不少次后,我终于决定写个工具辅助检查多音字的发音。
用法:
选定需要检查的音轨(只支持默认音符组)运行插件即可弹出结果,同时会复制结果到剪切板。会在多音字后边的括号中显示当前使用的发音,为了方便判断,会同时输出该字前后合计十余个汉字。
运行示例(如果内容较多,可以粘贴到其他地方看):

修改方法:
我目前自添加了一部分多音字,如果覆盖不全,可以自行添加。
// 可以根据自己的需要增删
var words = [
"落", "觉", "地", "合", "浅", "重", "弹", "颤", "扒", "数",
...
"茄", "什", "汤", "系", "轧", "粘",
];
按照这个格式添加即可。
相关工具:
如果歌词中有很多连音符、呼吸音之类,可以用“简化歌词”插件先处理一下,这样前后的字就比较多了:https://www.vsqx.top/project/vn5697
使用这个插件可以在比较快的时间判断当前的读音是否有错误,因为基本不需要听,只需要根据上下文来看。
音素拼音转换
以上两个插件都需要汉字转拼音的功能。SynthV 提供歌词转音素的函数,我们可以基于这个来做相关的功能,比如汉字、拼音、音素互相转换(不能再转回汉字)。这些功能在开发日语(比如假名和罗马音互相转换)、粤语(也存在多音字问题,而且不会粤语的话,看拼音可能更方便)和基于字典的语言的相关插件时也用的上。
所以我写了一个音素拼音转换工具包:https://www.vsqx.top/project/vn9237
该工具包用于开发音素拼音转换相关功能的脚本,如汉字转拼音、多音字处理等等。如果用于 Lua 脚本,可以稍微修改下字符串拼接部分的代码。
用法:
拼音全表.pdf:所有拼音的列表,希望是全的,内有来源地址
拼音全表.txt:从“拼音全表.pdf”转换的拼音列表
拼音全表.svp:包含所有拼音的 svp 文件
生成音素拼音对照表的工具.js:打开“拼音全表.svp”运行后可在剪切板获得“音素 -> 拼音”对照表的 javascript 赋值语句
生成音素拼音对照表的工具.js:打开“拼音全表.svp”运行后可在剪切板获得“拼音 -> 音素”对照表的 javascript 赋值语句
预先生成的代码(音素转拼音).txt:用 SV 1.10.0b1 运行“生成音素拼音对照表的工具.js”的结果
预先生成的代码(拼音转音素).txt:用 SV 1.10.0b1 运行“生成拼音音素对照表的工具.js”的结果
如果拼音不全,或者处理其他语言(如粤语),可以自行修改“拼音全表.svp”然后重新运行。
相关工具:
批量粘贴已选中音符:https://www.vsqx.top/project/vn5426
粘贴歌词:https://www.vsqx.top/project/vn5477
可用于制作或者修改“拼音全表.svp”。比如随意创建一个音符,选上后运行“批量粘贴已选中音符”,填个大点的数(比如 500),然后复制“拼音全表.txt”全文,选择刚刚创建的第一个音符,运行“粘贴歌词”,就可以了。
如果是处理汉字(普通话),直接用就可以。其他的则需要自己找拼音列表之类,然后使用其他提到的插件重新生成“拼音全表.svp”,再运行其中的插件。
假名转罗马音
把歌词中的假名转成罗马音:https://www.vsqx.top/project/vn9240
用法:
选定音符(不选择则处理整个当前音轨),运行插件即可。只能在日语模式的假名歌词上使用,其他情况很可能导致错误的结果。
如果一个音符上有超过一个假名可能出问题,比如:
はて(h a t e) -> ha t e(h a cl e)
一般情况好像不会这么填歌词。
にん、げん这样的情况正常。
不了解日语,可能在某些情况下会出错。