Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【长期】跨语言支持 #440

Open
babysor opened this issue Mar 7, 2022 · 11 comments
Open

【长期】跨语言支持 #440

babysor opened this issue Mar 7, 2022 · 11 comments

Comments

@babysor
Copy link
Owner

babysor commented Mar 7, 2022

已有讨论

#142
#197

Q & A

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

作者却苦于近期精力限制只能势单力薄处理一些小的bug,也看到issue区有不少爱好与开发者想要学习或二次改造更好满足自己需求,不过比较零碎难以展开。为了让项目和AI持续可以给大家提供更多价值,共同学习,我在issue区根据不同主题创建长期交流频道,若留言人数超过20也将建立对应交流群。

  • 如何改参数,搞出更逼真的克隆效果 435
  • 如何改模型,搞出更好效果 436
  • 训练克隆特定人声音&finetune 437
  • 学术/论文讨论/训练分析 438
  • 跨语言支持 440
  • 工程化/新场景讨论(绝不做恶 & 合法合规) 439
@Chopin68
Copy link

Chopin68 commented Mar 8, 2022

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

@Emiya0415
Copy link

关于日语方面,我已经找到了对应的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个小时左右,可能是因为数据集太小的原因所以效果不好。如果有日语的较多较好音频和对应的文字文本训练集或是有相关训练经验,欢迎一起探讨学习。

@babysor
Copy link
Owner Author

babysor commented Mar 20, 2022

关于日语方面,我已经找到了对应的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个小时左右,可能是因为数据集太小的原因所以效果不好。如果有日语的较多较好音频和对应的文字文本训练集或是有相关训练经验,欢迎一起探讨学习。

@584761274
Copy link

584761274 commented May 15, 2022

链接: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步 更长时间的训练应该能获得更好的效果)

@Emiya0415
Copy link

链接: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步 更长时间的训练应该能获得更好的效果)

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

@584761274
Copy link

584761274 commented May 16, 2022

链接:https://pan.baidu.com/s/1eBX12_eJR8TvED15DdfD0g?pwd=1111码提取:1111 我不知道如何上传音频文件,使用百度网盘上传的步骤相同句号修改其他语言 tt 0 开头的日语会话的所有输入参数我是想加入的,所以这里的参数QQ图片20220515232233我是想加入 aidata0zh, magicdata、aishell3、data_aishell 的第三图片步用数据集合成器(我认为只训练合成器就可以达到更好的训练效果,如果编码器和编码器效果会更好?)step-20500-mel-spectrogram_sample_1只训练了20k步更长时间的应该可以获得更好的效果)

我们用的是,都是英伟的普通话。你直接用片假名训练的,我把同一个片假名再进一步转换为罗马达音进行。现在是90k步,效果只能说一般,部分文字还是识别不出来。

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

@Emiya0415
Copy link

链接:https://pan.baidu.com/s/1eBX12_eJR8TvED15DdfD0g?pwd=1111码提取:1111 我不知道如何上传音频文件,使用百度网盘上传的步骤相同句号修改其他语言 tt 0 开头的日语会话的所有输入参数我是想加入的,所以这里的参数QQ图片20220515232233我是想加入 aidata0zh, magicdata、aishell3、data_aishell 的第三图片步用数据集合成器(我认为只训练合成器就可以达到更好的训练效果,如果编码器和编码器效果会更好?)step-20500-mel-spectrogram_sample_1只训练了20k步更长时间的应该可以获得更好的效果)

我们用的是,都是英伟的普通话。你直接用片假名训练的,我把同一个片假名再进一步转换为罗马达音进行。现在是90k步,效果只能说一般,部分文字还是识别不出来。

我对日语并不熟悉,但或许片假/平假对tts来说更易拟合? 我对目前训练的效果还是满意的 日语的大型数据集太难找了

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

@584761274
Copy link

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

@Emiya0415
Copy link

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

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

@584761274
Copy link

image
神经网络似乎可以自己对单词的时间进行划分 所以我没有划分单词时间
链接:https://pan.baidu.com/s/1_qn8nL7AKbAcBrmH8TcptQ?pwd=1111
提取码:1111

@Emiya0415
Copy link

image 神经网络似乎可以自己对单词的时间进行划分 所以我没有划分单词时间 链接:https://pan.baidu.com/s/1_qn8nL7AKbAcBrmH8TcptQ?pwd=1111 提取码:1111

感谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants