现在哪还有人读小说、看视频,谁还用真人朗读呢?

现在给大家介绍,假人朗读是怎么来的,提供一些音频,进行训练,然后就能合成属于自己的音频了。这里只讲训练部分,使用请自己看github知更鸟,是来自于实时音频的分支。

GitHub – babysor/MockingBird: AI拟声: 5秒内克隆您的声音并生成任意语音内容 Clone a voice in 5 seconds to generate arbitrary speech in real-timeAI拟声: 5秒内克隆您的声音并生成任意语音内容 Clone a voice in 5 seconds to generate arbitrary speech in real-time – GitHub – babysor/MockingBird: AI拟声: 5秒内克隆您的声音并生成任意语音内容 Clone a voice in 5 seconds to generate arbitrary speech in real-timehttps://github.com/babysor/MockingBird


电脑要求:内存32G(16G跑不起来的),显卡3060(显存8G)

1.环境就直接看github搭建

2.素材,首先准备好,样本素材(声音.wav,声音对应的文字)

b站有好人,不用你去下他对应的数据集格式16G,吓死了。人家直接给的1kb的数据集格式。

https://pan.baidu.com/s/1y9mIvi-Utv8sGt-NaNV_9Q” />MockingBird训练自己的声音 文字转 语音 2023 ai 保姆教程_哔哩哔哩_bilibili

拿了之后直接解压

然后就有这个目录,进入transcript目录

打开,把你音频对应的文本放上去,这是我自己一行一行读的。我想训练自己,话是gpt生成的。

打开qh目录,将音频放进去

3.进行训练

梅尔频谱图预处理

python pre.py 文件根目录 -d 文件夹名称 -n 核数

我创建了一个morckingData,然后把数据文件夹放进去了

执行命令(其实训练就这一句,主要是样本一定要搞好,环境我就不多说了)

除了基本的安装外,他还需要这个包pip install webrtcvad-wheels

python pre.py D:\morckingData -d aidatatang_200zh -n 6

如果遇到了no words,那就是你qh里的音频名字和你transcripts里的。

100句话训练完了,我就录了100句。

然后会生成一个这个/SV2TTS/synthesizer

训练合成器

python synthesizer_train.py 训练集模型名称 根目录/SV2TTS/synthesizer

执行命令(我是windows,所以是分隔符是\)

python synthesizer_train.py shiao d:\morckingData\SV2TTS\synthesizer

然后他会一直训练,你按ctrl+c退出就行。

我大概训练了5分钟。

模型

刚刚合成的模型就在mockingBird-main的synthesizer/saved_models

当然这点数据集连声音都训练不出来,但是你的音色会被记录。所以现在还需要用之前他们利用很多音频训练好的模型,进行整合训练。为的是把声音训练出来,并且加入你的音色。

添加之前的模型文件

这个是之前安装的时候,下载的自带的模型。你也可以去官网下一个。

复制一下别人的pretrained.pt复制到我们自己训练的目录下。因为之前已经执行过训练了,所以我们自己的xx.pt可以删除。并且将这个复制过来的改名为我们自己的xx.pt

继续训练

python synthesizer_train.py shiao d:\morckingData\SV2TTS\synthesizer

遇到个超参数的问题,网上说是机器问题,别人训练的机器和我机器不一样。所以没法把自己声音覆盖上去。

Traceback (most recent call last):
File “D:\software\MockingBird-main\MockingBird-main\synthesizer_train.py”, line 37, in
train(**vars(args))
File “D:\software\MockingBird-main\MockingBird-main\synthesizer\train.py”, line 114, in train
model.load(weights_fpath, optimizer)
File “D:\software\MockingBird-main\MockingBird-main\synthesizer\models\tacotron.py”, line 525, in load
self.load_state_dict(checkpoint[“model_state”], strict=False)
File “C:\Users\a3139\anaconda3\envs\wav2lip\lib\site-packages\torch\nn\modules\module.py”, line 2041, 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 gst.stl.attention.W_query.weight: copying a param with shape torch.Size([512, 512]) from checkpoint, the shape in current model is torch.Size([512, 256]).

功夫不负有心人有心人,在2小时后,我找到了

将下面选中的部分改成

_characters = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz12340!\'(),-.:;” />

然后还是不行。于是又去社区是issue里面找,发现了一个

https://github.com/babysor/MockingBird/issues/245

用他的新模型替换测试

参考:

https://github.com/babysor/MockingBird/blob/main/README-CN.md

Docs