使用 PaddleSpeech 训练一个自己的 TTS 模型

(以下内容搬运自 PaddleSpeech)

首先看一下效果 对paddlespeech的拙劣尝试 对paddlespeech的拙劣尝试2
我们需要走通 other/mfa和aishell3/tts3 两个流程
另外 windows 电脑也能搞这个 用 gitshell 就好了 有的地方要小改一下

收集数据

我的数据收集自网上,一种speaker大概需要600句话。获取到数据后用SpleeterGui进行背景音乐的分离,只取人声。

数据标注

我自己写了个小软件 啪的一下 很快啊 我们就标注完了,然后模仿 aishell3 的格式制作数据集,记得要排除所有非中文字符。
经过尝试和读代码我觉得照搬 aishell3 的 speaker 名的方式是最好的,改动少。然后我们用 pypinyin 制作标注文本,效果不怎么喜人,但是大概够用。记得抽出几句来填进test文件夹里。

获取mfa结果

other/mfa 流程走一下 流程里下载的是 linux 版本的二进制文件 如果你是windows的电脑记得改成下载windows版本的文件。

数据预处理

mfa结果有了之后去走 aishell3/tts3 的流程 要记住,先下载预训练好的那个 aishell3_fastspeech2 模型然后 ❗❗把脚本里的音素对照表指向这里的音素对照表,不要用你自己生成的那个

训练

走流程 练一会 然后停下 进checkpoints文件夹,❗❗把预训练模型复制进来然后编辑那个 jsonl 文件。删的只剩一行然后把那一行里的 pdz 文件指向你刚复制进来的那个模型就可以接着训练了

运行

你可以走 e2e 那个 step 然后指定好 speaker 如果不出意外的话,你就能听到你的训练结果了。

补充

注意,finetune 的时候,❗❗speaker_id_map 也需要用预训练模型提供的(要保证 speaker 数与预训练模型保持一致),假设你有 n 个新的 speaker, 需要把前 n 个 speaker 替换成自己的 speaker ,合成的时候通过 spk_id 选择自己的 speaker

FAQ

参考原 Disscussion 链接


P.S. 欢迎关注我们的 github repo PaddleSpeech, 是基于飞桨 PaddlePaddle 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型。

猜你喜欢

转载自blog.csdn.net/qq_21275321/article/details/127530836
TTS