声音克隆术:用GPT-SoVITS-MindSpore打造你的数字声音分身

作者李子洲,昇思MindSpore开发者,西安科技大学大三在读

你是否想象过拥有一个和你声音一模一样的虚拟分身?现在,通过基于GPT-SoVITS的语音生成技术,这一幻想可以成为现实!

昇思MindSpore已支持音色克隆项目 GPT-SoVITS,使用当下流行的影视角色、动漫人物的音色,即可花样定制各类“声音克隆”,让我们一起探索这项令人兴奋的技术,看看如何基于MindSpore NLP + GPT-SoVITS一步步创造出专属于你的数字声音分身。

  • 项目链接:https://github.com/ultranationalism/GPT-SoVITS-mindspore

01

零样本文本到语音(TTS): 输入 5 秒的声音样本,即刻体验文本到语音转换。


02

少样本 TTS: 仅需 1 分钟的训练数据即可微调模型,提升声音相似度和真实感。


03

跨语言支持: 支持与训练数据集不同语言的推理,目前支持英语、日语和中文。

训练“声音克隆”——

基于MindSpore NLP + GPT-SoVITS生成语音

1. 首先,需要进入项目文件夹

cd GPT-SoVITS-mindspore。

2. 打开webui

launch_webui.sh,弹出这段代码后,说明webui已经打开,可通过127.0.0.1:9872进入webui。

image.png

3. 选择GPT模型和SoVITS模型,基础的模型可在下方链接下载:

https://modelscope.cn/models/ultranationalism/GPT-SoVITS-mindspore/files。

image.png

4. 上传参考语音并填入参考音频的文本

image.png

5. 输入需要合成的文本,并设置GPT采样参数,就可以在右侧看到结果

image.png

image.png

  • GPT采样参数说明

top_k、top_p、temperature这三个值都是用来控制采样的。在推理的时候要挑出一个最好的token,但机器并不知道哪个是最好的。于是先按照top_k挑出前几个token,top_p在top_k的基础上筛选token。最后temperature控制随机性输出。
比如总共有100个token,top_k设置5,top_p设置0.6,temperature设置为0.5。那么就会从100个token中先挑出5个概率最大的token,这五个token的概率分别是(0.3,0.3,0.2,0.2,0.1),那么再挑出累加概率不超过0.6的token(0.3和0.3),再从这两个token中随机挑出一个token输出,其中前一个token被挑选到的几率更大。以此类推。
 

捕捉声音的灵魂——

GPT-SoVITS TTS的原理

1. 特征提取

Hubert和RVQ将音频转化为包含音色的语义token,然后使用类GPT模型将他补全。

2. 类GPT模型

类GPT模型的自回归特性,我们可以在类GPT模型推理的时候添加一段参考音频,推理时的token始终会继承一些参考音频的音色。这样,补全的包含声音的token就由音色emb和参考音频共同决定。

3. 音频重建

最后,使用VITS模型对生成的语音token进行解码,生成最终的音频。VITS模型能够有效地重建高质量的语音,保留文本的语义信息和目标音色特征。因为token承担了一部分音色引导功能,VITS模型重建目标音色的压力就小很多。

4. 基线

SoVITS大模型需要学习万物音色,从量变到质变,才能通过音色emb进行引导,找到相似音色并重建目标音色。

GPT-SoVITS: token承担一部分音色引导功能,SoVITS大模型的训练集音色覆盖压力大大降低,使5秒音色克隆(变声)具备可行性。

写到最后

下面将简单介绍GPT-SoVITS的动机与他的由来。我们从语音转换(变声)领域最有名,且上了2023年时代周刊前200大发明的SoVITS讲起。

image.png

SoVITS的原理可以很简单地抽象为上图右边的编码器解码器结构。在重建的过程中模型将训练集音色学习进它的参数中,因此输入其他音色的语音经过编码后,VITS模型也能重建出学习过的音色的语音。在这个叙述逻辑中,问题最大的一点在于编码器去音色这一步。事实上,目前就没有能完全去除音色的特征,只有去音色相对强的特征,这也是为什么我们最后会使用ContentVec代替SoVITS名称中的SoftVC作为编码器的原因。

漏音色的意思是,你转换转了个“寂寞”,不太是你想要的那个音色,除了AI的噱头外就没什么太大用途了。但是我们反过来想,我们完全可以用这个泄露音色的语义特征作为音色的引导,来引导目标的音色。于是,第一批进入观众席的音色漏麻的CN_Hubert(原始Hubert使用wenet中文数据训练的参数)重新回到了赛场,保留了丰富的音色信息反而成为了他的优势。我们使用Hubert和RVQ将音频转化为包含音色的语义token,然后使用类GPT模型将他补全。因为token已经给音色划分了一个范围,因此给VITS重建目标音色的压力小了很多baseline:SoVITS大模型需要学习万物音色,从量变到质变,才能通过音色emb进行引导,找到相似音色并重建目标音色。GPT-SoVITS token承担一部分音色引导功能,SoVITS大模型的训练集音色覆盖压力大大降低,使5秒音色克隆(变声)具备可行性。
由于类GPT模型的自回归特性,推理时后面的token始终会继承一些参考音频的音色。

又由于token使用的特征漏音色比condition语义特征更大,因此GPT补全的token更多的是包含参考音频的目标音色。在Hubert分担一部分音色压力后,剩下的VITS的重建目标音色的压力就小很多了,这使得5秒音色克隆(变声)终于具备了可行性。我们也可以将GPT模型的condition变更为文本。

更多推荐

昇思MindSpore2.3版本已经正式上线,增强动/静态图与大模型能力,欢迎体验!详细特性介绍请戳下文了解。

安装信息:https://www.mindspore.cn/install

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值