GPT-SoVITS

  • 最方便的环境部署:参考视频 AutoDL+GPT-SoVITS ,直接用 autodl 传一段音频走一遍流程
  • 手动环境部署:
    • PyTorch 2.0.1 + Python 3.8 + cuda 11.8

    • 参考 README linux 装

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      # 先设置好代理
      export http_proxy="http://127.0.0.1:11081"
      export https_proxy="http://127.0.0.1:11081"
      export all_proxy="http://127.0.0.1:11081"

      git config --global http.proxy http://127.0.0.1:11081

      # 安装
      conda create -n GPTSoVits python=3.9
      conda activate GPTSoVits
      bash install.sh
    • 参考 README 拷贝预训练模型,模型来源于整合包

      1
      2
      3
      4
      5
      6
      cp -r pretrained_models/* GPT-SoVITS/GPT_SoVITS/pretrained_models
      cp -r G2PWModel GPT-SoVITS/GPT_SoVITS/text/
      cp -r uvr5_weights/* GPT-SoVITS/tools/uvr5/uvr5_weights
      cp -r models/* GPT-SoVITS/tools/asr/models/
      # 可能用到
      python -m nltk.downloader averaged_perceptron_tagger_eng
    • 由于使用的是录播,ffmpeg 提取录播的音频片段,交给 UVR5 进行处理,这里参考文档 整合包教程 中的内容

      1
      先用model_bs_roformer_ep_317_sdr_12.9755模型(已经是目前最好的模型)处理一遍(提取人声),然后将输出的干声音频再用onnx_dereverb最后用DeEcho-Aggressive(去混响),输出格式选wav。输出的文件默认在GPT-SoVITS-beta\output\uvr5_opt这个文件夹下,建议不要改输出路径,到时候找不到文件谁也帮不了你。处理完的音频(vocal)的是人声,(instrument)是伴奏,(_vocal_main_vocal)的没混响的,(others)的是混响。(vocal)(_vocal_main_vocal)才是要用的文件,其他都可以删除。结束后记得到WebUI关闭UVR5节省显存。
    • 由于录播片段已经有 whisper 识别的 srt 字幕,在 UVR5 处理后,参考文档 使用字幕标注 中的工具进行切分,字符限制用的 15 字。然后手动修改 dataset_mapping.list 校对标注,标注文件的第一列的 vocal_path 要用绝对路径。校对除了改正 text 的内容外,还要删掉时长小于 5s,和大于 24s(4090 显存 24G)的音频

      1
      vocal_path|speaker_name|language|text
    • 文件传到对应的环境,然后填标注文件的绝对路径,开启打标 webui 确认一下内容,就可以按 整合包教程 中的训练部分继续操作了,用默认参数弄一遍,再调到最高轮数弄一下,对比一下

  • 启动
    • python webui.py zh_CN