PlayVoice / vits_chinese

Best practice TTS based on BERT and VITS with some Natural Speech Features Of Microsoft; Support ONNX streaming out!
https://huggingface.co/spaces/maxmax20160403/vits_chinese
MIT License
1.14k stars 168 forks source link

求问微调/Finetuning? #27

Open godspirit00 opened 1 year ago

godspirit00 commented 1 year ago

大佬好,我的一个数据集只有约为1000条样本,1小时20分钟,请问怎么在现有模型上微调?多谢!

MaxMax2016 commented 1 year ago

数据中标注吗,有的话训练好biaobei模型后,使用您的数据直接继续训练biaobei模型。

godspirit00 commented 1 year ago

是指那个韵律标注是么?没有,有办法自动生成么?

MaxMax2016 commented 1 year ago

汉字标注,韵律没有标注的话、使用韵律模型的推理结果去训练

godspirit00 commented 1 year ago

好的,可以详细指点一下怎么做么?

MaxMax2016 commented 1 year ago

您可以先研究下,针对这个问题我需要做个专题。

godspirit00 commented 1 year ago

好的,我大概可以从哪里入手?

MaxMax2016 commented 1 year ago

推理代码里面,汉字转换为韵律和发音单元,您把他们作为训练标注,可能需要手动修改多音字标注的错误。

godspirit00 commented 1 year ago

好的,我试试看,谢谢您!

MagicRedZero commented 1 year ago

借楼发问: 大大你好 需求: 自己有一些数据集,想使用这些数据集在您已有的模型上【vits_bert_model.pth、prosody_model.pt】进行微调,最终得到一个输出是我数据集音色的模型 请问可以用微调实现吗?

我自己的数据集是需要像biaobei数据集一样准备吗? a. xxx.wav音频 (训练时放在data/waves目录下) b. 整理文字xxx.txt文档 (训练时放在data目录下) c. 准备xxx.interval (这个需要准备吗? 如需要放在哪个目录下呢?)

最后开始训练即可? python vits_prepare.py -c ./configs/bert_vits.json python train.py -c configs/bert_vits.json -m bert_vits2

MaxMax2016 commented 1 year ago

请问可以用微调实现吗?有点看运气、无法确定

我自己的数据集是需要像biaobei数据集一样准备吗? 是的 a. xxx.wav音频 (训练时放在data/waves目录下) 是的 b. 整理文字xxx.txt文档 (训练时放在data目录下)汉字+拼音 c.不需要,VITS用的MAS,不需要时长标注

有两个prepare,按需取用 vits_prepare.py vits_prepare_4_custom_speaker.py

MagicRedZero commented 1 year ago

非常感谢!!! 我使用原数据集(biaobei 【BZNSYP.ZIP】) 跑训练流程时,在预处理数据步骤报错

Traceback (most recent call last): File "/root/vits_chinese/vits_prepare.py", line 126, in spec = get_spec(hps, wave_path) File "/root/vits_chinese/vits_prepare.py", line 27, in get_spec "{} {} SR doesn't match target {} SR".format( IndexError: Replacement index 2 out of range for positional args tuple

系统: ubuntu 18.04 server版 显卡: RTX 3090 CUDA Version: 11.7 torch 2.0.0

MaxMax2016 commented 1 year ago

需要提前将音频重采用为16000 https://github.com/PlayVoice/vits_chinese/issues/36#issuecomment-1469269333

MagicRedZero commented 1 year ago

我现在的音频信息是: 编解码器: PCM S16 LE (s16l) 类型: 音频 声道: 单声道 采样率: 48000 Hz 位每采样: 16

需要将采样率变更为16000 Hz么? 好的,我处理后再试试,感谢大佬

kendo6666 commented 1 year ago

@MaxMax2016 如果不能微调,是否意味着要想订制某个人的音色,只有自己录一套完整的数据集重头训练?

MaxMax2016 commented 1 year ago

不是,如果有多发音人预训练模型、可以用它进行微调

kendo6666 commented 1 year ago

@MaxMax2016 不是很明白“如果有多发音人预训练模型”指的是什么?我的理解是想要有“多发音人预训练模型”,还是得自己录一套多人发音的完整的数据集重头训练吧?或者说在标贝1000的基础上再加入更多的自己的素材才行。是这个意思吗?

MaxMax2016 commented 1 year ago

要用微调的方式训练自己的发音人,推荐这个仓库,https://github.com/Plachtaa/VITS-fast-fine-tuning ,多人模型可以用别人弄好的

kendo6666 commented 1 year ago

多谢指点

sunnnnnnnny commented 1 year ago

@MaxMax2016 https://github.com/Plachtaa/VITS-fast-fine-tuning 你好,但是这个fast-fine-tuning好像没集成 韵律耶

YacratesWyh commented 11 months ago

@MaxMax2016 https://github.com/Plachtaa/VITS-fast-fine-tuning 你好,但是这个fast-fine-tuning好像没集成 韵律耶

所以说韵律用推理啊