前言

随着人工智能技术的不断发展,语音克隆技术也得到了越来越多的关注和研究。目前,AI语音克隆技术已经可以实现让机器模拟出一个人的声音,甚至可以让机器模拟出一个人的语言习惯和表情。

然而,AI语音克隆技术仍然面临着许多难点和痛点。首先,现有的语音克隆技术仍然存在着语音质量不够高、语音还原度不够高等问题,难以达到真正的“以假乱真”效果。

针对这些难点和痛点,我们团队基于开源项目MockingBird提出了一种新的AI语音克隆方案MockingVoice,通过采用更加先进的语音合成技术和更加严格的隐私保护措施,实现了更高质量的语音克隆效果和更加安全可靠的使用体验。我们相信,这种新的AI语音克隆技术将有助于为人们带来更加智能、便捷、安全的语音交互体验,为人们的生活和工作带来更多可能性。

本篇文章,我们主要聚焦在MockingBird介绍及使用上,详细介绍如何借助现有的开源项目,实现声音克隆。

MockingBird开源项目介绍

python 克隆一个self python语音克隆_python 克隆一个self


MockingBird是一款先进的TTS(文本到语音)项目,使用深度学习模型生成高质量的合成语音。它由一组热衷于自然语言处理和语音技术的研究人员和工程师开发。

关键特点:对普通话的支持。

使用多个中文数据集进行训练,包括aidatatang_200zh、magicdata、aishell3、biaobei、MozillaCommonVoice和data_aishell,以确保生成的语音听起来自然流畅,可用于各种应用,包括语音助手、有声书和语言学习工具。

深度学习框架:Pytorch

使用PyTorch作为其主要深度学习框架,并已在2021年8月发布的最新版本PyTorch 1.9.0上进行了测试。它支持Tesla T4和GTX 2060 GPU,可以实现更快的训练和推理时间。

扩展性:易于使用和定制

提供了一个预训练的合成器,可立即使用,或者训练自己的合成器以生成符合您特定需求的语音。此外,您可以使用预训练的编码器和声码器,或使用实时的HiFi-GAN作为声码器来生成高质量的语音。

服务化:远程调用

Mocking Bird 支持Web服务,这意味着您可以轻松地将其部署在Web服务器上,并将其用于远程生成语音。这对于需要实时语音合成的应用程序或无法访问高端硬件的用户特别有用。

快速开始

一、环境安装

本文测试环境:Mac M1芯片 macos Monterey

Step 1 下载代码

下载git代码,https://github.com/babysor/MockingBird

Step 2 安装anaconda

可以从以下镜像站中:https://repo.anaconda.com/archive/ 找到适合你机器版本的镜像,下载安装。

安装完成后如图所示:

快速开始

一、环境安装

本文测试环境:Mac M1芯片 macos Monterey

Step 1 下载代码

下载git代码,https://github.com/babysor/MockingBird

Step 2 安装anaconda

可以从以下镜像站中:https://repo.anaconda.com/archive/ 找到适合你机器版本的镜像,下载安装。

安装完成后如图所示:

python 克隆一个self python语音克隆_人工智能_02


Step 3 构建虚拟python环境

注:由于原git项目代码中依赖了不同版本的第三方库,有些库对python版本还有要求,因此建议按照本文给的版本进行安装,目前在M1上是测试通过的。 运行命令:conda create -n mock_voice pythnotallow=3.9

激活虚拟环境 mock_voice:conda activate mock_voice

Step 4 安装第三方依赖库

直接运行命令:pip install -r requirements.txt

基本上按照本文提供的git,下载安装没有问题。在安装过程中,如果遇到安装不了的,大家自行google。

二、下载预训练模型

这边我们可以直接下载社区开发者训练好的模型,直接拿来使用,下载地址如下:

下载链接

信息

https://pan.baidu.com/s/1iONvRxmkI-t1nHqxKytY3g 百度盘链接 4j5d

75k steps 用3个开源数据集混合训练

https://pan.baidu.com/s/1fMh9IlgKJlL2PIiRTYDUvw 百度盘链接 提取码:om7f

25k steps 用3个开源数据集混合训练, 切换到tag v0.0.1使用

https://drive.google.com/file/d/1H-YGOUHpmqKxJ9FRc6vAjPuqQki24UbC/view?usp=sharing 百度盘链接 提取码:1024

200k steps 台湾口音需切换到tag v0.0.1使用

https://pan.baidu.com/s/1PI-hM3sn5wbeChRryX-RCQ 提取码:2021

150k steps 注意:根据issue修复 并切换到tag v0.0.1使用

我们下载第一个模型,将文件放置在地址:data/ckpt/synthesizer/pretrained-11-7-21_75k.pt

三、运行工具箱

Step 1 使用Audacity录音
如果我们使用MockingBird自带的工具箱进行录音的话,最终克隆出来的声音往往效果不好。我们需要借助专业工具来录制自己的声音,并对声音进行去噪处理。
下载软件:Audacity https://www.audacityteam.org/ 并安装

python 克隆一个self python语音克隆_python 克隆一个self_03


打开audacity,点击声音录制,并对录制完的声音进行降噪处理。

python 克隆一个self python语音克隆_人工智能_04


最后将录制的声音personal_test.wav导出到本地。Step 2 运行工具箱

输入命令 python demo_toolbox.py 此时会加载出一个界面

python 克隆一个self python语音克隆_深度学习_05


Step 3 加载录音

python 克隆一个self python语音克隆_AI拟音_06


Step 4 Synthesize only

输入你想要测试的中文文本,并点击按钮Synthesize only

Step 5 Vocode only

点击按钮Vocode only

python 克隆一个self python语音克隆_人工智能_07


最后将生成的声音进行播放。

分析及总结

录制声音时长

最好将要克隆的音频长度限定在3-8秒之间。这与许多人的想法不同,他们认为输入语音越长,音色被捕捉的准确性就越高。然而,由于模型特性,提取音色特征的容量是有限的。对于比较长的音频,模型只会映射到一个相对较小的模型中,这并没有提高准确性。在训练过程中,通常喂入110秒的语音,因此长音频中的一些不寻常的停顿可能导致推理过于发散。因此,建议输入音频的最佳长度为3~8秒,而不是越长越好。

输入音频去除明显背景声/底噪

尽管经过一些优化,特别是在引入GST之后,最新的代码库可以在说话人编码器部分提取并分离一部分噪音特征,减少噪音的影响,因此即使存在一些底噪,也可以正常地进行克隆合成。但是,原始模型仍然容易因底噪而失去音色的提取。为了获得更好的克隆效果,我们建议使用专业的音频工具或者像使用开源工具Audacity这样的工具对输入音频进行预处理,去除明显的噪音。这样可以大大提高克隆效果。

输入音频确保只有一个人声

经过实测,当输入的音频包含超过一个人的声音时,克隆出来的声音会变得难以辨认(有时甚至像幽灵声音),而且往往无法正常生成符合质量要求的音频,并且容易出现丢字现象。

输入音频的说话声最好是平调

在克隆的过程中,歌声和激动的声音往往难以获得准确的音色特征。因此,为了获得更好的效果,建议输入音频中的说话声是正常的语调。

边合成(synthesize)边看mel spectrogram

合成过程中会加入一定的随机值,因此可以尝试只进行合成(synthesize)操作,查看合成推理输出的Mel频谱图,直到获得满意的结果后再进行vocoder输出。下面是一个比较好的Mel频谱图供参考:

python 克隆一个self python语音克隆_python 克隆一个self_08

展望未来

本文我们主要讲述了如何使用预训练好的模型进行声音克隆的方法,那么如何自己构造数据集自己训练模型,或者说基于大模型进行微调从而达到更好的声音克隆效果呢,期待我们下次再见👋。