赞
踩
本文是该系列的第一篇,采用倒序的方式,先从推理过程开始介绍人声克隆的工作流,以及各个模型的功能,之后再去详细介绍各个模型,因此不涉及具体的使用方法,这个官方文档里面已经讲的很清楚了,所以本文主要聚焦于整个项目中对音频数据的预处理、特征提取和最终的推理过程(音频生成的过程)进行介绍,最后放上我制作的两段音频,给大家看看效果。
特征提取流程图如下:
为了完美的复刻人声对源人声的特征提取还是比较丰富的,主要分为下面几类:
预训练模型三选一即可,不同模型,特征表示维度不一样,如果显存较小可以选择低维的特征编码,Contextvec可以选择不同隐藏层的特征表示。
so-vits-svc提供了四种不同的f0计算方法,选一即可,uv
是基于f0的衍生特征,计算方式如下,不同方法略有不同。
data = np.reshape(f0, (f0.size, 1))
vuv_vector = np.zeros((data.size, 1), dtype=np.float32)
vuv_vector[data > 0.0] = 1.0
vuv_vector[data <= 0.0] = 0.0
spectrogram : 通过对人声音频的时域信号进行短时傅里叶变换(STFT)得到。
mel spectrogram : 频谱经过梅尔滤波后得到梅尔频谱。
能量特征是可选,可有可无。
推理阶段,提供三种方案来生成目标音频,最后还可以选择是否采用预训练模型NSF_HifiGAN
对结果进行增强修饰。
流程图如下:
生成模型主要用到,预训练训练模型的特征编码和乐理特征,在生成音频同时,也预测乐理特征,用于生成+扩散的方案。
扩散模型基本全部用到之前的特征,扩散模型的预测不直接生成目标音频数据,而是生成目标音频的梅尔频谱,然后通过转换得到最终的目标音频。
HiFiGAN是较为常用的声码器,能够将声学模型产生的频谱转换为高质量的音频,从名字可以看出采用的是生成对抗网络模型。
展示两段demo,分别克隆了懂王(建国)、睡神(振华)、观海的声音,翻唱《All out of Lvoe》,原唱:Air Supply。
Demo 1: 翻唱:乔振华、奥观海
《All out of Love》乔振华,奥观海翻唱
懂王、睡神深情合唱《All Out Of Love》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。