最终效果:

准备

配置GPT-SoVITS

视频内有详细的使用方法以及训练模型的方法

训练模型

女武神的语音可以看这个视频


百度网盘👈这是部分语音
提取码:1096👈这是我用来训练的八重樱的数据(data)和模型(weights),只有54条语音,而且还有好多重复的(*/ω\*)。不过效果还不错,可以试试看。

配置服务

  1. 在GPT-SoVITS根目录新建一个go-api.bat,用记事本编辑:

    1
    runtime\python.exe api.py -a "电脑的IP地址" -s "SoVITS模型路径" -g "GPT模型路径" -dr "参考音频路径" -dt "参考音频文本" -dl "zh" -d "cuda"
    • 参考音频路径参考音频文本和第一个视频的7:27的webui中设置类似。
    • 指定电脑的IP地址是为了让局域网中的设备可以访问。

      具体参数见api.py内容:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      ## 执行参数:

      `-s` - `SoVITS模型路径, 可在 config.py 中指定`
      `-g` - `GPT模型路径, 可在 config.py 中指定`

      调用请求缺少参考音频时使用
      `-dr` - `默认参考音频路径`
      `-dt` - `默认参考音频文本`
      `-dl` - `默认参考音频语种, "中文","英文","日文","zh","en","ja"`

      `-d` - `推理设备, "cuda","cpu","mps"`
      `-a` - `绑定地址, 默认"127.0.0.1"`
      `-p` - `绑定端口, 默认9880, 可在 config.py 中指定`
      `-fp` - `覆盖 config.py 使用全精度`
      `-hp` - `覆盖 config.py 使用半精度`

      `-hb` - `cnhubert路径`
      `-b` - `bert路径`
  2. 先用文本编辑器打开api.py,找到第442行:

    1
    2
    3
    torch.cuda.empty_cache()
    # torch.mps.empty_cache() 注释掉这一行
    return StreamingResponse(wav, media_type="audio/wav")

    不过看最新的代码已经把判断加上了,如果之后没有报错AttributeError: module 'torch' has no attribute 'mps'就不用管这个。

  3. 开头报下面这个错误没有影响继续用就行。

    1
    ImportError: FFmpeg libraries are not found. Please install FFmpeg.
  4. 双击go-api.bat即可开启服务器


使用

  1. 在手机上下载阅读
  2. 随便导入一部小说。
  3. 点击阅读界面下面的朗读->设置->朗读引擎
  4. 点击右上角+号,名称随意,urlhttp://电脑的IP地址:9880/?text={{speakText}}&text_language=zh
  5. 点击保存后返回,选择刚刚创建的引擎,点击右下角全局,再返回朗读界面就可以使用啦(❁´◡`❁)

    目前4060,用自己训练的八重樱的模型还挺流畅的。