HTS Sinsy音源训练方法

最近看了些方法,整理了下。
需要环境:Debain/Ubuntu x86_64系统
首先下载训练包:https://pan.baidu.com/s/1i6huEaD
下载后解压
先编译hts_engine_API,然后编译SPTK和HTS_for_HTK.编译时需要csh和libx11,记得安装。apt里就有
编译hts_engine_API和SPTK后一定要make install,HTS_for_HTK可以不用install
然后打开hts-train-demo文件夹,打开data,替换相应文件
raw文件夹为音频文件,格式为:480000Hz Little Endian 跳过前2位
可以使用ffmpeg进行转换:

ffmpeg -I input.wav -f s16le -ar 48000 -acodec pcm_s16le output.raw

label/full放入音乐的完整label,可以用Sinsy-remix导出

sinsy -x dic -m jp.htsvoice -w c -o output.lab -l t infile.xml

-x 指定发音表所在文件夹
-m 指定任意一个htsvoice(不影响输出结果,必须指定一个htsvoice是bug)
-w 指定语言,j代表日语,c代表中文
-l 指定输出label格式,n为full,m为mono

label/mono指定的歌词和对应时间,元音和辅音要拆开来,时间一定要准确,否则影响音源合成效果
注意:pau这个音的作用类似UTAU里的R,代表无声的范围,不能缺少。
具体怎么写可以参照官方的例子

开始训练,需要的时间较长(6-12小时),建议在screen里运行

screen -S train

配置时一定要指定HTK的位置

./configure --with-hts-search-path=../HTS_for_HTK/htk/HTKTools

然后就可以开始make了

make all

如果训练时,perl提示找不到对应类,请手动执行下面的指令:

perl scripts/Training.pl 当前的绝对路径/scripts/Config.pm

大约6小时训练完成
训练结果在voice文件夹内

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.