人工智能语音克隆是一种捕捉声音的独特特征,然后准确性复制它的技术。这种技术不仅可以让我们复制现有的声音,还可以创造全新的声音。它是一种彻底改变内容创作的工具,从个性化歌曲到自定义画外音,开辟了一个超越语言和文化障碍的创意世界。
本文的将提供利用AI语音克隆技术-通过训练自定义模型将任何音频转换为选定艺术家的音调甚至自己的声音的端到端解决方案。
技术背景
我们将在本文中使用的技术称为歌唱声音转换(Singing Voice Conversion ),特别是一个称为SO-VITS-SVC的系统,它代表“SoftVC VITS Singing Voice Conversion”。
SO-VITS-SVC系统代表了使用深度学习技术的声音转换(SVC)的复杂实现。理解这个系统需要了解它所使用的特定机器学习架构和算法。
1、变分推理和生成对抗网络
SO-VITS-SVC的核心是文本到语音的变分推理(VITS)架构。该系统巧妙地结合了变分自编码器(VAEs)和生成对抗网络(GANs)。在SVC中,mel谱图是音频信号的重要表征,利用VAE对mel谱图的分布进行建模,有助于捕捉语音的潜在变量。
VAE损失函数按下式表示。式中,x为输入mel谱图,z为潜变量,KL为Kullback-Leibler散度。
上面公式封装了VAE损失函数,通过Kullback-Leibler散度平衡了mel谱图的重建和潜空间的正则化。
GAN则增强了合成音频的真实感。GAN中的鉴别器对生成器的输出进行判别,提高了生成器的精度。GAN损失函数为:
GAN损失函数展示了对抗训练动态,驱动生成模型产生难以区分的歌声。
如果想全面了解了解变分自编码器(VAEs)和生成对抗网络(gan),以下是原始论文:
VAEs: Kingma, D. P., and Welling, M. “Auto-Encoding Variational Bayes.” arXiv:1312.6114, 2013.
GANs: Goodfellow, I. J., et al. “Generative Adversarial Nets.” arXiv:1406.2661, 2014.
2、浅扩散过程
如附所示,浅扩散过程从噪声样本开始,通过一系列变换逐步细化为结构化梅尔谱图。
上图展示了SO-VITS-SVC合成流程,从浅扩散模型的初始噪声生成到mel谱图的细化和最终可听声音输出的语音编码。
初始噪声样本:噪声的视觉表示,作为扩散过程的起点。
转换步骤:噪声在扩散模型中经历一系列步骤,从无序状态过渡到结构化的mel谱图。其中xt是步骤t的数据,而ε表示高斯噪声。
上面公式说明了扩散过程中的逐渐转变,将随机噪声转化为结构化数据,捕捉目标歌声的细微差别。在SO-VITS-SVC的背景下,“浅”意味着更少的层或步骤,在计算效率和音频质量之间取得平衡。
mel谱图优化:这个过程的结果是一个mel谱图,它封装了歌唱声音的音频内容,为下一个合成阶段做好准备。
声音编码:最后的声音编码步骤将mel谱图转换成声音波形,即可听到的歌声。
如果想深入探索扩散模型,请看一下的资料:
Sohl-Dickstein, J., et al. “Deep Unsupervised Learning using Nonequilibrium Thermodynamics.” arXiv:1503.03585, 2015.
Ho, J., et al. “Denoising Diffusion Probabilistic Models.” arXiv:2006.11239, 2020.
3、完整流程与SVC系统的整合
在浅层扩散模型将噪音结构化成更连贯的形式之后,如前面提到的图表所示,生成的mel谱图捕捉了歌唱声音的微妙音频内容。这个mel谱图作为原始、非结构化数据与最终声音输出之间的关键桥梁。
然后使用声码器将优化后的mel谱图转换为音频波形。在这一步中,将从视觉数据转换为可听的歌唱声音。声码器的作用是合成mel谱图中捕捉到的音高、音色和节奏的细微差别,从而产生最终的歌唱声音输出。
为了实现高保真度的合成,SO-VITS-SVC系统会经过重新的训练和优化。训练包括优化结合了VAE、GAN和扩散模型组件贡献的损失函数。这种优化使用诸如随机梯度下降或Adam等算法进行,其最终目标是最小化总体损失。这个过程确保最终输出在音色、音高和节奏方面与目标歌唱声音非常相似。
这个过程的最终结果是一个与目标歌唱声音非常相似的合成声音。在保持源声音的音乐性和表现力细微差别的能力的同时,采用目标的音色特质,这是SO-VITS-SVC系统复杂性的体现。
4、使用的python库
GitHub上的SO-VITS-SVC Fork是一个专门设计用于实时歌声转换的专业工具。它是提供了增强功能的原始SO-VITS-SVC项目的分支:如使用CREPE更准确的音高估计、图形用户界面(GUI)、更快的训练时间以及使用pip安装工具的便利性。
它还集成了QuickVC并修复了原始存储库中存在的一些问题。并且支持实时语音转换,下面我们来演示如何使用它。
AI声音克隆
声音克隆就是我们一般所说的推理阶段,是指神经网络模型在数据集上接受训练以理解特定声音后,用所学到的声音生成新内容的过程。
在这个阶段,我们可以通过向预训练的模型提供新的输入(原始的声音音频)来让AI“唱歌”,然后该模型会在原始声音音频上产生模仿艺术家歌唱风格的输出。
1、设置环境
为简单起见,我们将创建一个心的虚拟环境,然后使用它
conda create -n sovits-svc
conda activate sovits-svc
分享说明:转发分享请注明出处。