babysor / MockingBird

🚀AI拟声: 5秒内克隆您的声音并生成任意语音内容 Clone a voice in 5 seconds to generate arbitrary speech in real-time
Other
35.05k stars 5.2k forks source link

来贡献模型了,aishell3的 #165

Open ferretgeek opened 2 years ago

ferretgeek commented 2 years ago

https://pan.baidu.com/s/1pu_XfQJnLRcQZYfawqCeNQ ,提取码:7777

aishell3数据集,Tesla V100 32G,BS 96训练的160K,loss值0.24

同时本人有两台V100 32G闲置,为BUG时撸的云服务器,有想训练啥的也可以提要求,反正闲着也是闲着。

Jamy325 commented 2 years ago

更新到最新版(2021/10/23)之后. 合成报错了

Arguments:
    datasets_root:    D:\works\data
    enc_models_dir:   encoder\saved_models
    syn_models_dir:   synthesizer\saved_models
    voc_models_dir:   vocoder\saved_models
    cpu:              False
    seed:             None
    no_mp3_support:   False

Loaded encoder "pretrained.pt" trained to step 1594501
Synthesizer using device: cuda
Trainable Parameters: 32.738M
Traceback (most recent call last):
  File "D:\works\MockingBird\toolbox\__init__.py", line 123, in <lambda>
    func = lambda: self.synthesize() or self.vocode()
  File "D:\works\MockingBird\toolbox\__init__.py", line 238, in synthesize
    specs = self.synthesizer.synthesize_spectrograms(texts, embeds, style_idx=int(self.ui.style_slider.value()), min_stop_token=min_token)
  File "D:\works\MockingBird\synthesizer\inference.py", line 87, in synthesize_spectrograms
    self.load()
  File "D:\works\MockingBird\synthesizer\inference.py", line 65, in load
    self._model.load(self.model_fpath)
  File "D:\works\MockingBird\synthesizer\models\tacotron.py", line 525, in load
    self.load_state_dict(checkpoint["model_state"], strict=False)
  File "D:\python310\lib\site-packages\torch\nn\modules\module.py", line 1406, in load_state_dict
    raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for Tacotron:
        size mismatch for encoder.embedding.weight: copying a param with shape torch.Size([70, 512]) from checkpoint, the shape in current model is torch.Size([75, 512]).
        size mismatch for encoder_proj.weight: copying a param with shape torch.Size([128, 512]) from checkpoint, the shape in current model is torch.Size([128, 1024]).
        size mismatch for decoder.attn_rnn.weight_ih: copying a param with shape torch.Size([384, 768]) from checkpoint, the shape in current model is torch.Size([384, 1280]).
        size mismatch for decoder.rnn_input.weight: copying a param with shape torch.Size([1024, 640]) from checkpoint, the shape in current model is torch.Size([1024, 1152]).
        size mismatch for decoder.stop_proj.weight: copying a param with shape torch.Size([1, 1536]) from checkpoint, the shape in current model is torch.Size([1, 2048]).
ferretgeek commented 2 years ago

更新到最新版(2021/10/23)之后.利德 · 利德

Arguments:
    datasets_root:    D:\works\data
    enc_models_dir:   encoder\saved_models
    syn_models_dir:   synthesizer\saved_models
    voc_models_dir:   vocoder\saved_models
    cpu:              False
    seed:             None
    no_mp3_support:   False

Loaded encoder "pretrained.pt" trained to step 1594501
Synthesizer using device: cuda
Trainable Parameters: 32.738M
Traceback (most recent call last):
  File "D:\works\MockingBird\toolbox\__init__.py", line 123, in <lambda>
    func = lambda: self.synthesize() or self.vocode()
  File "D:\works\MockingBird\toolbox\__init__.py", line 238, in synthesize
    specs = self.synthesizer.synthesize_spectrograms(texts, embeds, style_idx=int(self.ui.style_slider.value()), min_stop_token=min_token)
  File "D:\works\MockingBird\synthesizer\inference.py", line 87, in synthesize_spectrograms
    self.load()
  File "D:\works\MockingBird\synthesizer\inference.py", line 65, in load
    self._model.load(self.model_fpath)
  File "D:\works\MockingBird\synthesizer\models\tacotron.py", line 525, in load
    self.load_state_dict(checkpoint["model_state"], strict=False)
  File "D:\python310\lib\site-packages\torch\nn\modules\module.py", line 1406, in load_state_dict
    raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for Tacotron:
        size mismatch for encoder.embedding.weight: copying a param with shape torch.Size([70, 512]) from checkpoint, the shape in current model is torch.Size([75, 512]).
        size mismatch for encoder_proj.weight: copying a param with shape torch.Size([128, 512]) from checkpoint, the shape in current model is torch.Size([128, 1024]).
        size mismatch for decoder.attn_rnn.weight_ih: copying a param with shape torch.Size([384, 768]) from checkpoint, the shape in current model is torch.Size([384, 1280]).
        size mismatch for decoder.rnn_input.weight: copying a param with shape torch.Size([1024, 640]) from checkpoint, the shape in current model is torch.Size([1024, 1152]).
        size mismatch for decoder.stop_proj.weight: copying a param with shape torch.Size([1, 1536]) from checkpoint, the shape in current model is torch.Size([1, 2048]).

我是用10.12日发布的版本训练的,最新版本修改了什么导致模型无法复用,你得去问作者

babysor commented 2 years ago

注意:如果用最新的commit,会无法使用以上模型,最新commit我做了一个较大改动,在想办法兼容中。

zinwalin commented 2 years ago

谢谢分享

ferretgeek commented 2 years ago

https://pan.baidu.com/s/1pu_XfQJnLRcQZYfawqCeNQ ,提取码:7777

aishell3数据集,Tesla V100 32G,BS 96训练的160K,loss值0.24

同时本人有两台V100 32G闲置,为BUG时撸的云服务器,有想训练啥的也可以提要求,反正闲着也是闲着。

新版本兼容性有问题,等待作者修复,现在要用这个模型请用我分享的旧版本。 链接:https://pan.baidu.com/s/14UweWwENPc0myDLezy8L3Q 提取码:7777

lcp580 commented 2 years ago

感谢分享。 但是,以下语句: 本次录音是用于参与科大讯飞自训练音库进行录制。 无法完整的播放出来。后面的“自训练音库进行录制。”截断了,听不到声音。

后台是正确的: Read ['本次录音是用于参与科大讯飞自训练音库进行录制'] Synthesizing ['ben3 ci4 lu4 yin1 shi4 yong4 yu2 can1 yu4 ke1 da4 xun4 fei1 zi4 xun4 lian4 yin1 ku4 jin4 xing2 lu4 zhi4']

babysor commented 2 years ago

感谢分享。 但是,以下语句: 本次录音是用于参与科大讯飞自训练音库进行录制。 无法完整的播放出来。后面的“自训练音库进行录制。”截断了,听不到声音。

后台是正确的: Read ['本次录音是用于参与科大讯飞自训练音库进行录制'] Synthesizing ['ben3 ci4 lu4 yin1 shi4 yong4 yu2 can1 yu4 ke1 da4 xun4 fei1 zi4 xun4 lian4 yin1 ku4 jin4 xing2 lu4 zhi4']

https://zhuanlan.zhihu.com/p/425692267 里面提到

Trape-UDK commented 2 years ago

https://pan.baidu.com/s/1pu_XfQJnLRcQZYfawqCeNQ ,提取码:7777

aishell3数据集,Tesla V100 32G,BS 96训练的160K,loss值0.24

同时本人有两台V100 32G闲置,为BUG时撸的云服务器,有想训练啥的也可以提要求,反正闲着也是闲着。

纯小白。抱歉打扰了,请问这个文件要怎么使用啊?我按照新手友好版教程把@miven的synthesizer的xxx.pt文件下载下来并放到了github项目文件的synthesizer-save_models里面,但结果无一例外合成音都是刺耳电流音。本以为是没有下载数据集,但是当我把aidatatang_200zh近18G的文件下载下来后,依然还是电流声。我的encoder和vocoder是pretrained,synthesizer是选ceshi或者pretrained。因为是按照新手教程去做的所以没有训练,而是直接使用训练好的模型。这个问题困扰了我很久,如果能解决的话这将是我第一个成功运行的github项目。谢谢。

Trape-UDK commented 2 years ago

https://pan.baidu.com/s/1pu_XfQJnLRcQZYfawqCeNQ,提取码:7777 aishell3数据集,特斯拉V100 32G,BS 96训练的160K,损失值0.24 同时本人有两台V100 32G闲置,为BUG时撸的云服务器,有想练啥的也可以提要求,休息一下也是闲着。

新版本有问题,作者修复,现在要用模型这个请用我分享的旧版本。 链接:https : //pan.baidu.com/s/14UweWwENPc0myDLezy8L3Q提取码:7777

抱歉,打扰了,现在才看到这个,已经解决问题了。十分感谢分享,这对我意义重大!再次感谢

ferretgeek commented 2 years ago

https://pan.baidu.com/s/1pu_XfQJnLRcQZYfawqCeNQ,提取码:7777 aishell3数据集,特斯拉V100 32G,BS 96训练的160K,损失值0.24 同时本人有两台V100 32G闲置,为BUG时撸的云服务器,有想练啥的也可以提要求,休息一下也是闲着。

新版本有问题,作者修复,现在要用模型这个请用我分享的旧版本。 链接:https : //pan.baidu.com/s/14UweWwENPc0myDLezy8L3Q提取码:7777

抱歉,打扰了,现在才看到这个,已经解决问题了。十分感谢分享,这对我意义重大!再次感谢

看到你成功运行我也很开心,自己运行第一个项目能够成功确实是值得庆幸的事情!

cocucola commented 2 years ago

这个模型效果不错。

ZHAOYANZHOU commented 2 years ago

https://pan.baidu.com/s/1pu_XfQJnLRcQZYfawqCeNQ ,提取码:7777 aishell3数据集,Tesla V100 32G,BS 96训练的160K,loss值0.24 同时本人有两台V100 32G闲置,为BUG时撸的云服务器,有想训练啥的也可以提要求,反正闲着也是闲着。

新版本兼容性有问题,等待作者修复,现在要用这个模型请用我分享的旧版本。 链接:https://pan.baidu.com/s/14UweWwENPc0myDLezy8L3Q 提取码:7777

这个链接失效了,可以劳烦再发一次嘛

ferretgeek commented 2 years ago

https://pan.baidu.com/s/1pu_XfQJnLRcQZYfawqCeNQ ,提取码:7777 aishell3数据集,Tesla V100 32G,BS 96训练的160K,loss值0.24 同时本人有两台V100 32G闲置,为BUG时撸的云服务器,有想训练啥的也可以提要求,反正闲着也是闲着。

新版本兼容性有问题,等待作者修复,现在要用这个模型请用我分享的旧版本。 链接:https://pan.baidu.com/s/14UweWwENPc0myDLezy8L3Q 提取码:7777

这个链接失效了,可以劳烦再发一次嘛

无需使用这个了,在本项目主页的tag当中,有作者发布的旧版本压缩包

ZHAOYANZHOU commented 2 years ago

https://pan.baidu.com/s/1pu_XfQJnLRcQZYfawqCeNQ ,提取码:7777 aishell3数据集,Tesla V100 32G,BS 96训练的160K,loss值0.24 同时本人有两台V100 32G闲置,为BUG时撸的云服务器,有想训练啥的也可以提要求,反正闲着也是闲着。

新版本兼容性有问题,等待作者修复,现在要用这个模型请用我分享的旧版本。 链接:https://pan.baidu.com/s/14UweWwENPc0myDLezy8L3Q 提取码:7777

这个链接失效了,可以劳烦再发一次嘛

无需使用这个了,在本项目主页的tag当中,有作者发布的旧版本压缩包

好的,非常感谢!

https://pan.baidu.com/s/1pu_XfQJnLRcQZYfawqCeNQ ,提取码:7777 aishell3数据集,Tesla V100 32G,BS 96训练的160K,loss值0.24 同时本人有两台V100 32G闲置,为BUG时撸的云服务器,有想训练啥的也可以提要求,反正闲着也是闲着。

新版本兼容性有问题,等待作者修复,现在要用这个模型请用我分享的旧版本。 链接:https://pan.baidu.com/s/14UweWwENPc0myDLezy8L3Q 提取码:7777

这个链接失效了,可以劳烦再发一次嘛

无需使用这个了,在本项目主页的tag当中,有作者发布的旧版本压缩包

好的,非常感谢!

joshua54321 commented 2 years ago

这个模型我载入测试时,效果还是不好,目前我测试下来效果最好的还是作者发布的那个ceshi.pt,请问是有哪些地方配置不对吗?(另外,其实也很想知道作者训练ceshi.pt时的参数配置,如何训练重现,因为我训练的几个模型效果也是很差很差)

ferretgeek commented 2 years ago

这个模型我载入测试时,效果还是不好,目前我测试下来效果最好的还是作者发布的那个ceshi.pt,请问是有哪些地方配置不对吗?(另外,其实也很想知道作者训练ceshi.pt时的参数配置,如何训练重现,因为我训练的几个模型效果也是很差很差)

这个模型实际上我未曾测试过,只是看着loss好看发出来。我建议你可以测试我另外一个aishell3 160K的,那个我有实测过效果不错。

joshua54321 commented 2 years ago

这个模型我载入测试时,效果还是不好,目前我测试下来效果最好的还是作者发布的那个ceshi.pt,请问是有哪些地方配置不对吗?(另外,其实也很想知道作者训练ceshi.pt时的参数配置,如何训练重现,因为我训练的几个模型效果也是很差很差)

这个模型实际上我未曾测试过,只是看着loss好看发出来。我建议你可以测试我另外一个aishell3 160K的,那个我有实测过效果不错。

我就是下载的您云盘分享的“aishell3 160K BS96模型”,这个是您说的实测过的吧?

ferretgeek commented 2 years ago

这个模型我载入测试时,效果还是不好,目前我测试下来效果最好的还是作者发布的那个ceshi.pt,请问是有哪些地方配置不对吗?(另外,其实也很想知道作者训练ceshi.pt时的参数配置,如何训练重现,因为我训练的几个模型效果也是很差很差)

这个模型实际上我未曾测试过,只是看着loss好看发出来。我建议你可以测试我另外一个aishell3 160K的,那个我有实测过效果不错。

我就是下载的您云盘分享的“aishell3 160K BS96模型”,这个是您说的实测过的吧?

这个在真人语音,只用9句话的情况下,跑40K即可有非常不错的效果。另外在游戏角色的语音克隆下也有一点勉强可用的效果。不知道你的自定义数据集多大,也许你用少量的自定义数据集跑一下会有不错的效果

joshua54321 commented 2 years ago

这个模型我载入测试时,效果还是不好,目前我测试下来效果最好的还是作者发布的那个ceshi.pt,请问是有哪些地方配置不对吗?(另外,其实也很想知道作者训练ceshi.pt时的参数配置,如何训练重现,因为我训练的几个模型效果也是很差很差)

这个模型实际上我未曾测试过,只是看着loss好看发出来。我建议你可以测试我另外一个aishell3 160K的,那个我有实测过效果不错。

我就是下载的您云盘分享的“aishell3 160K BS96模型”,这个是您说的实测过的吧?

这个在真人语音,只用9句话的情况下,跑40K即可有非常不错的效果。另外在游戏角色的语音克隆下也有一点勉强可用的效果。不知道你的自定义数据集多大,也许你用少量的自定义数据集跑一下会有不错的效果

感谢您的回复,我后来基于最新的代码又测了一下您的模型,是可以work的。同时,也想和您交流一下,请教一下您,我现在训练synthesizor模型,用aidatatang200Zh语料,batch_size为30(GPU的显存有限,只能用这么大的size了),loss基本就在0.37左右徘徊无法下降了。也正在其他的数据集,但我有个疑问,先不考虑其他因素,但从数据量来看,200h的数据loss无法下降,数据量的增大会不会对效果的影响也会有限呢。。。

ferretgeek commented 2 years ago

这个模型我载入测试时,效果还是不好,目前我测试下来效果最好的还是作者发布的那个ceshi.pt,请问是有哪些地方配置不对吗?(另外,其实也很想知道作者训练ceshi.pt时的参数配置,如何训练重现,因为我训练的几个模型效果也是很差很差)

这个模型实际上我未曾测试过,只是看着loss好看发出来。我建议你可以测试我另外一个aishell3 160K的,那个我有实测过效果不错。

我就是下载的您云盘分享的“aishell3 160K BS96模型”,这个是您说的实测过的吧?

这个在真人语音,只用9句话的情况下,跑40K即可有非常不错的效果。另外在游戏角色的语音克隆下也有一点勉强可用的效果。不知道你的自定义数据集多大,也许你用少量的自定义数据集跑一下会有不错的效果

感谢您的回复,我后来基于最新的代码又测了一下您的模型,是可以work的。同时,也想和您交流一下,请教一下您,我现在训练synthesizor模型,用aidatatang200Zh语料,batch_size为30(GPU的显存有限,只能用这么大的size了),loss基本就在0.37左右徘徊无法下降了。也正在其他的数据集,但我有个疑问,先不考虑其他因素,但从数据量来看,200h的数据loss无法下降,数据量的增大会不会对效果的影响也会有限呢。。。

作者本人倾向于,多数据集的混合训练,以及微调训练参数。所以如果你loss下不去,就考虑调整学习率(learning rate),亦或者换数据集、增加数据集这种手段来解决。至于效果到底如何,还是需要你去实测才知道。

因为不同batch size的大小也能影响效果,我在训练数据集时发现,aidatatang200_zh混合aishell3,loss值的下降速度比单纯训练1个数据集,要快得多。但是loss也不代表最终效果,你可以看到我分享的这个70K虽然loss很好看,但据反馈效果不行,所以我个人觉得混合数据集也需要增加训练步数才会有更好的效果

--以上基于本人纯猜想及经验,具体以实践为真。

joshua54321 commented 2 years ago

合数据集也需要增加训练步数才会有更好的效果

好的,非常感谢您的回复和经验分享,我最近也在尝试,同时后面时间允许也会认真看下代码,期待与您做进一步交流,感谢!

2333557 commented 2 years ago

https://pan.baidu.com/s/1pu_XfQJnLRcQZYfawqCeNQ ,提取码:7777

aishell3数据集,Tesla V100 32G,BS 96训练的160K,loss值0.24

同时本人有两台V100 32G闲置,为BUG时撸的云服务器,有想训练啥的也可以提要求,反正闲着也是闲着。

您好,我用您这个模型,报这样的错误,我该怎么办 Caught exception: RuntimeError('Error(s) in loading state_dict for Tacotron:\n\tsize mismatch for encoder_proj.weight: copying a param with shape torch.Size([128, 512]) from checkpoint, the shape in current model is torch.Size([128, 1024]).\n\tsize mismatch for gst.stl.attention.W_query.weight: copying a param with shape torch.Size([512, 256]) from checkpoint, the shape in current model is torch.Size([512, 512]).\n\tsize mismatch for decoder.attn_rnn.weight_ih: copying a param with shape torch.Size([384, 768]) from checkpoint, the shape in current model is torch.Size([384, 1280]).\n\tsize mismatch for decoder.rnn_input.weight: copying a param with shape torch.Size([1024, 640]) from checkpoint, the shape in current model is torch.Size([1024, 1152]).\n\tsize mismatch for decoder.stop_proj.weight: copying a param with shape torch.Size([1, 1536]) from checkpoint, the shape in current model is torch.Size([1, 2048]).',) Restarting

1nlplearner commented 2 years ago

您好,请问训练的时候有遇到过训练过一段时间后,train loss跑飞了的情况吗

alivic505 commented 2 years ago

ارحب