胎教级SO-VITS-SVC使用教程:人工智能生成歌曲
AI魔法学院
2023-06-08
分享海报

so-vits-svc是基于VITS的开源项目,VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)是一种结合变分推理(variational inference)、标准化流(normalizing flows)和对抗训练的高表现力语音合成模型

应用so-vits-svc快速生成AI歌曲,仓库地址:



搭建训练环境


硬件需求


N卡,建议GPU达到GTX 3080显存8G以上。A卡应该是跑不了,只能通过CPU去跑了(AMD,no!)

本地环境搭建

python = 3.10
pip = 22.3.1
pytorch = 1.3.1

不同系统装python环境参考以下blog


so-vits-svc安装


在你自定义的目录下使用Git命令克隆项目:

git clone https://github.com/svc-develop-team/so-vits-svc.git


随后进入项目的目录:

cd so-vits-svc


接着安装依赖,如果是Linux或者Mac系统,运行命令:

pip install -r requirements.txt


如果是Windows用户,需要使用Win系统专用的依赖文件

pip install -r requirements_win.txt


依赖库安装成功之后,在项目的根目录运行命令,启动服务:

python webUI.py


程序返回:

PS D:\so-vits-svc> python .\webUI.py   
DEBUG:charset_normalizer:Encoding detection: ascii is most likely the one.   
C:\Users\zcxey\AppData\Roaming\Python\Python310\site-packages\gradio\deprecation.py:43: 
UserWarning: You have unused kwarg parameters in UploadButton,
 please remove them: {'variant': 'primary'}    
 warnings.warn(   DEBUG:asyncio:Using proactor: IocpProactor   
Running on local URL:  http://127.0.0.1:7860    
To create a public link, set `share=True` in `launch()`.


说明服务已经正常启动了,这里so-vits-svc会在后台运行一个基于Flask框架的web服务,端口号是7860,此时访问本地的网址:127.0.0.1:7860:


孙燕姿无损音色模型

链接: pan.baidu.com/s/1oMYzRc
提取码: mvtu
  • 下载模型文件之后,将模型文件放入logs/44k目录:
  • 接着将模型的配置文件config.js放入configs目录:
  • 随后,在页面中点击加载模型即可,这里环境就配置好了。
sd生成的话筒xswl

原始歌曲处理(人声和伴奏分离)


如果想要使用孙燕姿的模型进行二次创作,首先需要一段已经准备好的声音范本,然后使用模型把原来的音色换成孙燕姿模型训练好的音色即可


这里我们五月天的《我不愿让你一个人》来进行模拟,这两位歌手风格挺搭。慢歌适合新手,也方便我们练习。


需要注意的是,模型推理过程中,需要的歌曲样本不应该包含伴奏,因为伴奏属于“噪音”,会影响模型的推理效果,因为我们替换的是歌手的“声音”,排除伴奏。


这里我们选择使用开源库Spleeter来对原歌曲进行人声和伴奏分离,首先安装spleeter:

pip3 install spleeter --user

关于spleeter更多的操作,请移步至:


接着运行命令,对《遥远的歌》进行分离操作:
spleeter separate -o d:/output/ -p spleeter:2stems d:/我不愿让你一个人.mp3
这里-o代表输出目录,-p代表选择的分离模型,最后是要分离的素材。


首次运行会比较慢,因为spleeter会下载预训练模型,体积在1.73g左右,运行完毕后,会在输出目录生成分离后的音轨文件



其中vocals.wav为五月天的清唱声音,而accompaniment.wav则为伴奏。

至此,原始歌曲就处理好了。


歌曲覆盖


此时,将五月天的清唱声音vocals.wav文件添加到页面中:


接着就是参数的调整:


这里推理歌曲会有两个问题,就是声音沙哑和跑调,二者必出其一。


F0均值滤波(池化)参数开启后可以有效改善沙哑问题,但有概率导致跑调,而降低该值则可以减少跑调的概率,但又会出现声音沙哑的问题。


基本上,推理过程就是在这两个参数之间不断地调整。


所以每一次运行都需要认真的听一下歌曲有什么问题,然后调整参数的值,这里我最终的参数调整结果如上图所示。


覆盖出来的歌曲同样也是wav格式,此时我们将覆盖的清唱声音和之前分离出来的伴奏音乐accompaniment.wav进行合并即可,

作品输出

ffmpeg -f concat -i <( for f in *.wav; do echo "file '$(pwd)/$f'"; done ) output.wav


该命令可以把推理的人声wav和背景音乐wav合并为一个output.wav歌曲,至此我们的二次创作便完成了


原文:https://zhuanlan.zhihu.com/p/630115251

© THE END

转载请联系本网站获得授权

投稿或版权问题请加微信:skillupvip