起因:
- 最近一段时间 AI 孙燕姿实在是 popular,到处都是 AI 翻唱,碰巧又看到了孙燕姿写的关于她的 AI 的 blog,于是就想着来试一下
声明:
本文章只是记录在过程中的遇到的问题,以及解决方法,目的是给想要尝试的小伙伴提供思路,如有侵权请告知本人删除
本文章只有推理的过程,没有训练模型的过程
环境:
Windows 10
python 3.8.10
基本步骤:
1. 安装 so-vits-svc
在自定义目录下 git clone 项目
1
git clone https://github.com/svc-develop-team/so-vits-svc.git
进入项目
1
cd so-vits-svc
安装依赖
1
pip3 install -r requirements_win.txt
依赖项里的
fairseq
和pyworld
这两个库,如果系统没有安装 Microsoft Visual C++ 14.0 的编译工具,安装会一直报错,建议安装一个 Visual Studio build tools启动服务
1
python webUI.py
默认地址是 http://127.0.0.1:7860/
2. 下载模型
首先下载声音编码器 checkpoint_best_legacy_500.pt,放在
.\so-vits-svc\pretrain
目录下1
wget -P pretrain/ http://obs.cstcloud.cn/share/obs/sankagenkeshi/checkpoint_best_legacy_500.pt
下载孙燕姿音色模型,这里感谢大佬提供的模型文件
解压之后得到两个文件,G_320000.pth 为模型文件,config.json 为模型的配置文件
注:这里的配置文件直接用会报错,需要修改配置文件,如下所示
1
2
3
4
5
6
7
8
9{
...
"model": {
...
"n_speakers": 1,
"speech_encoder":"vec256l9"
},
...
}
3. 加载模型
选择好模型文件和配置文件,点击加载模型即可
4. 需要用开源库 Spleeter 对想要替换声音的歌曲进行人声和伴奏分离
安装
1
pip3 install spleeter
分离
1
spleeter separate -o [输出目录] -p spleeter:2stems [歌曲]
第一次使用需要等待下载预训练模型
vocals.wav 为人声,accompaniment.wav 为伴奏
5. 输出人声
调好参数,上传人声音频,点击音频转换即可
6. 合并人声和伴奏
确保已经安装了 ffmpeg
(可选)将人声和伴奏文件转换为相同的音频格式,44.1kHz 2通道 WAV 音频文件
1
2ffmpeg -i vocals.wav -vn -ar 44100 -ac 2 -f wav vocals.wav
ffmpeg -i accompaniment.wav -vn -ar 44100 -ac 2 -f wav accompaniment.wav把替换后的人声和原伴奏放到一起,执行下面命令
1
ffmpeg -i vocals.wav -i .\accompaniment.wav -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f wav output.wav
(可选)调整音频文件的音量,增加50%
1
ffmpeg -i output.wav -filter:a "volume=1.5" -f wav -acodec pcm_s16le -ac 2 -ar 44100 output_volume_adjusted.wav
使用 GPU 推理
- 默认推理设备是只有 CPU 可以选择的,NVIDIA 的显卡需要安装 CUDA 和 CUDNN,以及下载对应版本的 pytorch,以下是具体步骤
在终端输入
nvidia-smi
查看显卡 CUDA 版本CUDA 直接安装即可,CUDNN 解压后,将三个文件夹里的文件全部复制到 CUDA 的对应目录下
1
2
3CUDNN bin -> CUDA bin
CUDNN lib -> CUDA lib
CUDNN include -> CUDA include注:是复制文件,不是复制目录
将 CUDA & CUDNN 目录添加到环境变量中
1
2C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64在终端输入
nvcc -V
能出现版本号代表 CUDA 安装成功终端进入 CUDNN 默认目录如下,运行
bandwidthTest.exe
出现Result = PASS
代表 CUDNN 安装成功1
2cd 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\extras\demo_suite\'
.\bandwidthTest.exe安装对应版本的 pytorch 等依赖,如果之前安装过别的版本最好卸载掉
1
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
用
pip3 list
或以下 python 命令确认 torch 是否能用 CUDA1
2
3
4import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.backends.cudnn.version())重新运行 web 程序即可