0%

About AI Singer

起因:

  • 最近一段时间 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
  • 依赖项里的 fairseqpyworld 这两个库,如果系统没有安装 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
  • 下载孙燕姿音色模型,这里感谢大佬提供的模型文件

    ai-孙燕姿-syz-so-vits-svc-4.0

  • 解压之后得到两个文件,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
    2
    ffmpeg -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,以下是具体步骤
  1. 在终端输入 nvidia-smi 查看显卡 CUDA 版本

  2. 下载对应版本的 CUDA,对应版本的 CUDNN,其中下载 CUDNN 需要注册 NVIDIA 的开发者账号

  3. CUDA 直接安装即可,CUDNN 解压后,将三个文件夹里的文件全部复制到 CUDA 的对应目录下

    1
    2
    3
    CUDNN bin -> CUDA bin
    CUDNN lib -> CUDA lib
    CUDNN include -> CUDA include

    注:是复制文件,不是复制目录

  4. 将 CUDA & CUDNN 目录添加到环境变量中

    1
    2
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64
  5. 在终端输入 nvcc -V 能出现版本号代表 CUDA 安装成功

  6. 终端进入 CUDNN 默认目录如下,运行 bandwidthTest.exe 出现 Result = PASS 代表 CUDNN 安装成功

    1
    2
    cd 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\extras\demo_suite\'
    .\bandwidthTest.exe
  7. 安装对应版本的 pytorch 等依赖,如果之前安装过别的版本最好卸载掉

    1
    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
  8. pip3 list 或以下 python 命令确认 torch 是否能用 CUDA

    1
    2
    3
    4
    import torch
    print(torch.__version__)
    print(torch.cuda.is_available())
    print(torch.backends.cudnn.version())
  9. 重新运行 web 程序即可

参考: