[babysor/MockingBird]【长期】跨语言支持

2024-07-16 746 views
1
已有讨论 142 197 Q & A

LxnChan 有足够的样本的前提下我想自己训练出来一个日语模型,不知道行不行 答:就像把中文句子例如 “你好” 变成 “ni2 hao3”,只需要找到一个tts前端处理一下日语为phenomenon

回答

8

感觉这样做出来会很强大,还自带翻译功能,会更复杂

5

关于日语方面,我已经找到了对应的tts前端,配合自己写的java脚本对日语处理为phenomenon,可以将一个wav文件夹下所有的语音和文本生成对应的alignment格式。一个是将日语的所有汉字等转换为片假名(类似于中文的拼音),另一个是输入对应的语音和txt文本,输出对应的每个拼音的时间。最后用java脚本生成alignment.txt文件。 tts前端:链接: https://pan.baidu.com/s/1lnpzrurtBRENbUqX9-p0ew?pwd=6f5s 提取码: 6f5s 复制这段内容后打开百度网盘手机App,操作更方便哦 包括两个文件japankana和segmentation-kit2 第一个japankana使用比较简单,打开后输入就行了,可以将包括汉字的日语转换为片假名 tts1 第二个操作方法请参考里面的readme.txt

我已经开始尝试训练了50k步,但日语效果并不是很好。基本只有前面的两个词左右能够识别输出,剩下的都是语音和输入文本对应不上。目前数据集是单独一个人的日语语音10个小时左右,可能是因为数据集太小的原因所以效果不好。如果有日语的较多较好音频和对应的文字文本训练集或是有相关训练经验,欢迎一起探讨学习。

5

9

链接:https://pan.baidu.com/s/1eBX12_eJR8TvED15DdfD0g?pwd=1111 提取码:1111 我不知道gui如何上传音频文件 所以使用百度网盘上传 这是我训练的效果,我相信相同的步骤可以应用于其他语言 第一步 修改MockingBird-main\synthesizer\utils\symbols.py 中的参数 QQ图片20220515232233 这里我是想训练日语tts 所以加入了所有的片假名 第二步 修改一个日语数据集,使其符合aidatatang_200zh, magicdata, aishell3, data_aishell的格式 image 第三步用数据集训练合成器(我认为只训练合成器就可以达到较好的效果,如果训练声码器和编码器效果应该会更好?) step-20500-mel-spectrogram_sample_1 (时间原因 我只训练了20k步 更长时间的训练应该能获得更好的效果)

4

我们用的是同一个数据集,都是英伟达的common voice。你直接用片假名训练的,我则是把片假名再进一步转换为罗马音进行训练。现在是90k step,效果只能说一般,部分文字还是识别不出来。可能是数据集大小还不够

4

我对日语并不熟悉,但或许片假/平假对tts来说更易拟合? 我对目前训练的效果还是满意的 毕竟日语的大型数据集太难找了 我接下来会用jsut 和 jvs混合训练试一试

7

那我今天根据片假名再重新开始训练好了。日语的数据集还是挺多的比如LaboroTVSpeech和Corpus of Spontaneous Japanese等,都有几百个小时。但前者申请需要国内大学的老师或者日本当地大学的学生、后者一个数据集2000rmb,对于个人兴趣负担还是太大了。方便的话可以分享一下你训练的模型吗,我已经把我训练的上传到issue了。

7

我训练到90k的时候会分享的,感觉loss还有下降的空间

9

你训练时有输入音频每个单词对应的时间吗,这部分是怎么处理的。我是用了segment_julius可以同时将片假名转换为罗马音并获取对应单词的时间,但如果只输入片假名如何获取其对应单词的时间呢

6

感谢