本文章为记录本人UTAU探索过程的个人向笔记,自制中文音源部分的上篇。内容包括:选择宿主、安装宿主、自制声库流程和录音部分。下篇待更新,内容包括自制声库的原音设定部分和实际上手调音后的参数设定部分等。
有关UTAU的中文教程,哈鲁鲁的教程站已经写得很全面了,BILIBILI也有很多或汇总或零散的教程。因此,本文仅为记录自己个人遇到的问题和采取的解决方案,笔记中的解决方案一不是多样化的,二也并不一定是最好的,只能说是适合自己个人当前情况的,可作为一个参考。主要是给未来忘记当初是怎么做的了的自己做参考
个人电脑配置:港版繁体中文系统;个人人脑配置:拥有VOCALOID4、VOCALOID5及少量DeepVocal编辑器调校经验,从未自制过音源。
目录
UTAU之前:自制虚拟歌手的宿主软件选择
目前民间自制虚拟歌手可选的宿主软件主要有UTAU、DeepVocal及DiffSinger。ACE Studio现在也出定制虚拟歌手服务了,收费好像在四位数,如果是金钱预算多于时间预算的可以选它。而对于时间预算多于金钱预算或者有兴趣自己上手捣鼓的人士而言,还是选前面那仨。其中UTAU和DeepVocal是用的传统采样合成技术,DiffSinger和ACE Studio是近几年的AI合成技术。
所以我为什么选UTAU?其实我是打算都挨个试试听听效果,毕竟不同的宿主软件做出来的音色都有差别。先从最老的UTAU开始。等UTAU音源弄得差不多了就试试DeepVocal和DiffSinger。
……嗯。或者说也确实有一个原因吧,就是我弄这个虚拟歌手是打算用来做原创歌曲的。然后上次编曲班小队聚会的时候,队长告诉我,现在的音乐平台,如果歌曲被识别为AI的话,会受到一些限流……
我:……啊?虽然AI虚拟歌手的确是AI但是但是……呃……好吧,那总之我就先搞搞传统采样合成……
AI虚拟歌手与RVC变声器的区别
所以,都是AI演唱,AI乐正绫AI洛天依这些与AI孙燕姿AI周杰伦那些有什么区别?区别是后者用的是RVC音色克隆。前者只要输入谱子,就能合成出歌声来;后者则需要有一个完整的原唱音频。
最直白的对比:如果你写了一首原创歌曲,想配上人声,则前者可以直接在软件里调制出歌声;后者则做不到。想让AI孙燕姿唱歌,你必须要有一个水平在线的原唱,再克隆孙燕姿的音色来进行翻唱。
所以,前者,即一般所谓的AI虚拟歌手,原创度更高,调整上更灵活,伦理上带来的争议也更低。音乐平台对AI进行限流,应该主要想限制的是音色克隆和Suno AI这些。然后虚拟歌手AI就被误打误撞波及了因为多少年过去了虚拟歌手仍然很没存在感
UTAU中文版安装
我是从某只泽的B站教程处下载的,见其简介里的“2.汉化包by至精至简”。这其中包含了UTAU原版安装包和汉化补丁,流程是先安装原版安装包,再使用2020汉化补丁中的utau.exe与res文件夹将其替换。
但我遇到的问题是,这是简中汉化包,我的电脑系统是繁中……
解决方法:将res文件夹里的txt文件手动一一转换为繁体,记得保存时使用“另存为”→“编码”由ANSI更改为UTF-16 LE。其中message.txt文件由于是日中对应,我是把里面全部186行每行的后半中文部分全部手动一一转为的繁中,这工作量。更机械劳动的还在后面呢
而且这样问题也只解决了95%,由于我不会改exe文件,仍有一小部分选项是乱码,但基本不妨碍使用。
而我在写这篇文章的时候又看到:
而B站up主至精至简公布的「完整汉化版」,虽然完整汉化了界面,表面上完美解决了乱码问题,
from哈鲁鲁教程新站
但其实无法正常使用日语声库,使用第三方插件(Plugins)时也会出现问题。
当然……如果你不打算使用日语声库,也不打算使用第三方插件,那也不是不能用。
嗯我确实没打算用日语声库,那些第三方插件会出现的问题是指乱码问题吧,我现在正在靠猜测每个按钮的功能来强行使用(。)
而实际上,改用OpenUTAU,就可以完全避免UTAU的乱码问题,不过我还没尝试。
把声音塞进UTAU需要几步?自制声库的工作流程
一、准备工具。
所需工具 – 硬件:一台电脑、一个收音设备(麦克风)。
所需工具 – 软件:UTAU、录音软件OREMO、录音表Reclist.txt、录音用BGM、原音设定软件setParam。
二、使用OREMO,导入录音表与BGM进行录音,获得wav格式音源片段。
三、使用setParam进行原音设定(即对音源片段进行采样位置标记),获得原音设定文件oto.ini。
四、在UTAU内生成frq周波数表文件。
五(可选)、配置头像图片、character.txt、readme.txt等歌手信息文件。
~~~一个UTAU声库就制作完成了~~~
自制中文声库 – 录音部分
收音设备选择
音色清晰度、底噪大小这都不是最重要的问题,有条件的当然可以去录音房录,但实测200块钱动圈麦的一般底噪也并不会在歌声合成之后很明显地显现出来,或者至少可以通过调音时调整flag参数来明显减弱(我使用的moresampler引擎)。
最重要的问题:你的设备是否录得进去你想要录制的音高?
应当是部分收音设备为了优化聊天语音的效果,而把人普通说话音高以外的频率都给“智能”切掉了,至少我用我的电脑自带收音和蓝牙耳机收音测试,均发现我如果将音高提高到大概假声的位置之后,就只有最开始的半秒有高音的声音,之后就全被“智能”优化掉了。因此我不得不买了个200块钱的麦。其实底噪仍然很重,比我的手机录音机底噪还重很多,但是由于OREMO只能在电脑上使用,因此只能用这个麦。然而实测比人声说话小12dB以上的底噪就基本不影响歌声合成效果了。
OREMO的使用
OREMO的官方下载地址:https://osdn.jp/users/nwp8861/pf/OREMO/wiki/FrontPage
OREMO的界面具体操作见哈鲁鲁教程站:https://utaujc.jimdofree.com/recording2
(虽然上面这个教程是基于日文版软件,我个人还是下载的英语版软件,这样一来从源头上避免了乱码问题,二来我英语还是比日语好一些的……)
录制过程可见樗儿的视频演示:https://www.bilibili.com/video/BV1ws411m7bp/
- 为什么录连续音需要搭配录音BGM?
- 为了辅助标准化定位发音时间位置、音长与音高,以便原音设定和获得质量更高的音源。
录音BGM的时间设置
我的录音BGM使用的是韩笑与幽寂制作的国产BGM,主要是为了配合录制中文CVVC音源。
其中,每一个音阶的BGM音频都可以看到搭配着一个同名的txt文件,这是用来指示OREMO何时开始与结束录音的。由于是日文ANSI编码,在我的繁中系统看来它里面长这样:
msec
CVVCHN3
1, 50.0, 0, 0, 0, 0, BGM
2, 3500.0, 1, 0, 0, 0, ﹛﹛
3, 4050.0, 0, 0, 0, 0, ﹛﹛﹛﹛﹛﹛屣
4, 6250.0, 0, 0, 0, 0, ﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛屣?
5, 6500.0, 0, 1, 0, 0, ﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛?
6, 7500.0, 0, 0, 1, 1, ﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛
实际上乱码的六段文字分别指示的是BGM开始、收录开始、发声开始、发声结束、收录结束、保存。前面的50.0至7500.0指的是按下R键开始录音后过去的多少毫秒的时间。由于我选择的录音方案需要录长音,默认的录音时间便不太够,于是我修改为了:
msec
CVVCHN3
1, 50.0, 0, 0, 0, 0, BGM
2, 3000.0, 1, 0, 0, 0, ﹛﹛
3, 4050.0, 0, 0, 0, 0, ﹛﹛﹛﹛﹛﹛屣
4, 6250.0, 0, 0, 0, 0, ﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛屣?
5, 9500.0, 0, 1, 0, 0, ﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛?
6, 10500.0, 0, 0, 1, 1, ﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛﹛
注意这里只修改数字就可以了,不要对乱码进行任何操作,也不要转换编码,不然OREMO不会识别。我修改第2项收录开始的时间是为了尽可能使发声时间位置对应上后文CVVC录音表自带的初始oto.ini文件,以便后续尽可能少地改动。发声开始与发声结束这两项参数对实际获得的录音文件并没有任何影响,就没有修改。
录音BGM的音阶选择与多音阶声库
从小我中学虚拟歌手社团的社长就教我们,调音时如果遇见音色突变导致的不和谐情况,可以选用相同音高的音符然后自行画Pitch线调整回原有音高来解决问题;其背后原理就是该虚拟歌手调用的声库实际上是多音阶的,在不同的音高范围内会使用指定的不同音源。简单来讲,就是高音使用高音音源,低音使用低音音源,这样以尽可能地避免调音时音高跨度太大所导致的“电”的感觉。
当然录多音阶声库,其工作量也是翻倍的。因此我的建议是先录一阶,个人感受了其工作量再说。
所以,如果录单音阶,录哪个音高合适?
- 打定心思只录一阶再也不多录的情况:随便哪个音高都行,想调偏高音的歌多就录相对较高的音高,想调偏低音的歌多就录相对较低的音高。
- 打算先录一阶看看,后续有可能录多音阶的情况:测一下自己能唱到的最高和最低的稳定音高,然后选择一个处于尽可能中间的音高来进行录制。
测音高如果不是太在意绝对准度的话,用OREMO里面的就可以。英文版选择Show → Show F0,勾选上再录音,就能看到音高了。
以我为例,我能稳定唱到的最高音大约在D#5,低音在G3。因此取中间,第一条音阶录F4是最合适的。
在此基础上,如果想录三音阶,那就是录中间音+最低音+最高音。注意一定要在可以相对平稳发声的前提下选择音高,因为要保持音色的稳定。于我而言,三音阶就是G3/F4/D#5。
五音阶的话,就是录最低音+较低音+中间音+较高音+最高音,中间间隔的音高要尽量均匀。这基本算是顶配了,如果你本身的音域不算宽的话(比如我也就跨了20个半音),录再多的音阶意义不大。于我而言,五音阶就是G3/C4/F4/A#4/D#5,正好每个相邻音阶之间间隔了5个半音。
多音阶声库调音时要使用UTAU内置的PrefixMap(我这里中文版叫做前缀后缀编辑器)进行音高映射。于我而言,如果做完五音阶声库完全体,由于每个相邻音阶之间间隔了5个半音,每个音阶映射的音高应当是其与上下各2个半音,也即:
- G3对应A3及以下;
- C4对应A#3到D4;
- F4对应D#4到G4;
- A#4对应G#4到C5
- D#5对应C#5及以上。
CVVC录音方案原理
在录音表选择上,我采用的是CVVC方案。C即Consonant(辅音),V即Vowel(元音),CVVC即是把获得的wav音源采样在原音设定时主要按两类来分别标记:CV(辅音元音连续)与VC(元音辅音连续)。
99配布所对此有详细的介绍及教程,但由于LOFTER的无良现在网站只有登录才可以看,出于对LOFTER的不信任以及为防以后更加无良,在此将介绍引用过来。(点击本段展开折叠区块可见)
介绍: C是指辅音 Consonant ;V是指元音 Vowel
CVVC是以日语首先作成的一种录音方案,在录制少量连续音之后建立在单独音基础上利用元音末端的口型变化与即将发出的下一个音进行对应衔接,实现连贯效果。CVVC本身并不是一个完备的录音方案,存在母音和子音间的细节对应问题,但因为不完善的部分十分细微,在视听时大多都是可以被忽略。因为在节约制作时间的同时又能获得较良好的音声合成效果而收到一定推崇,目前包括UTAU中的韩语、英语都有采用CVVC的录音方案的例子。CVVC是由UTAU技术者デルタ从「波音リツ eve」开始推广的(在这之前有少量实例出现),并制作了一系列CVVC各项辅助插件和录音表,制作和使用起来相当简便。原理:CV指一个整音结构(如 kua);VC指前一个音的末端至后一个音的前端之间的部分(如 a k)。
首先收录一个连读的音,如「kua_kua」,拆作「kua」和「a k」两个部分,「kua」即是「CV」部分,而「a k」即是「VC」部分。「a k」部分可以对应所有以「k」为辅音的音,ku、ke等,但不能对应ti、dun等,需再采样「a t」和「a d」。在录音表中对所有组合所需发音进行了整理。特点:
from 99配布所
和单独音对比,单独音本身只有「CV」结构,CVVC在此基础上增加「VC」环节,同时导致使用时一个音在理论上必须被拆成两个部分。
和连续音对比,它利用母音末端衔接,不必每一个母音都对应一个单独的整音结构。同时比起连续音能够做到其所不能的单字调整。
CVVC录音表的选择
这里使用的是哈鲁鲁教程站配布的Hr.J式CVVC中文录音方案。可选的录音表有很多,主要分为3+X字、X字、X字lite三种。其中3+X字录音表分为3字部分和X字部分,3字部分需要将第3字长读,这也是我前文更改录音BGM时间设置的原因。
具体使用上,我第一条音阶先使用的3+3字录音表进行尝试,其后尝试录第二条音阶时改为了5字录音表。在此我个人的建议是,气比较短,难以保证一口气3秒以上音色平稳发声的人(比如我……),谨慎尝试3+X字录音表,尤其是录制发声比较困难的高音和低音音阶时的情况。由于录制长音的差错率高,纵使可以重复尝试录制,但也会翻倍增长录制所用的时间。而且实际上在后续调音拼接中遇到长音时,完全可以将[CV_L]改为用[CV]+[_V_L]替换。[_V_L]为Others录音表中的音素,相同韵母只用录制一次,工作量可以降低不少。
發佈留言