使用 GPT-SoVITS 克隆任意人的声音,只需要10秒样本

克隆方法

高级使用技巧

项目地址

https://github.com/RVC-Boss/GPT-SoVITS/blob/main/docs/cn/README.md

注意这里要先取好模型的名称

Pasted image 20240815144552.png

API调用说明

首先需要启动 GPT-SoVITS 下的api.py,启动命令如下,要先进入 GPT-SoVITS文件夹再执行下面的代码

 .\runtime\python api.py -s SoVITS_weights_v2/xxx_e4_s60.pth -g GPT_weights_v2/xxx-e5.ckpt -dr "F:\AI\声音模型\model1\生成语音时用的参考样本.wav" -dt "可以看到放大的效果已经非常不错了,我在下面写了一张表格" -dl "zh" 

接着调用

http://127.0.0.1:9880?text=先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。&text_language=zh

API的完整说明参考以下代码

api.py usage

python api.py -dr "123.wav" -dt "一二三。" -dl "zh"

执行参数:

-sSoVITS模型路径, 可在 config.py 中指定
-gGPT模型路径, 可在 config.py 中指定

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

-d推理设备, "cuda","cpu"
-a绑定地址, 默认"127.0.0.1"
-p绑定端口, 默认9880, 可在 config.py 中指定
-fp覆盖 config.py 使用全精度
-hp覆盖 config.py 使用半精度
-sm流式返回模式, 默认不启用, "close","c", "normal","n", "keepalive","k"
·-mt-返回的音频编码格式, 流式默认ogg, 非流式默认wav, "wav", "ogg", "aac" ·-cp文本切分符号设定, 默认为空, 以",.,。"字符串的方式传入

-hbcnhubert路径
-bbert路径

调用:

推理

endpoint: /

使用执行参数指定的参考音频:
GET:
http://127.0.0.1:9880?text=先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。&text_language=zh
POST:

{
    "text": "先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。",
    "text_language": "zh"
}

使用执行参数指定的参考音频并设定分割符号:
GET:
http://127.0.0.1:9880?text=先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。&text_language=zh&cut_punc=,。
POST:

{
    "text": "先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。",
    "text_language": "zh",
    "cut_punc": ",。",
}

手动指定当次推理所使用的参考音频:
GET:
http://127.0.0.1:9880?refer_wav_path=123.wav&prompt_text=一二三。&prompt_language=zh&text=先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。&text_language=zh
POST:

{
    "refer_wav_path": "123.wav",
    "prompt_text": "一二三。",
    "prompt_language": "zh",
    "text": "先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。",
    "text_language": "zh"
}

RESP:
成功: 直接返回 wav 音频流, http code 200
失败: 返回包含错误信息的 json, http code 400

手动指定当次推理所使用的参考音频,并提供参数:
GET:
http://127.0.0.1:9880?refer_wav_path=123.wav&prompt_text=一二三。&prompt_language=zh&text=先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。&text_language=zh&top_k=20&top_p=0.6&temperature=0.6&speed=1
POST:

{
    "refer_wav_path": "123.wav",
    "prompt_text": "一二三。",
    "prompt_language": "zh",
    "text": "先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。",
    "text_language": "zh",
    "top_k": 20,
    "top_p": 0.6,
    "temperature": 0.6,
    "speed": 1
}

RESP:
成功: 直接返回 wav 音频流, http code 200
失败: 返回包含错误信息的 json, http code 400

更换默认参考音频

endpoint: /change_refer

key与推理端一样

GET:
http://127.0.0.1:9880/change_refer?refer_wav_path=123.wav&prompt_text=一二三。&prompt_language=zh
POST:

{
    "refer_wav_path": "123.wav",
    "prompt_text": "一二三。",
    "prompt_language": "zh"
}

RESP:
成功: json, http code 200
失败: json, 400

命令控制

endpoint: /control

command:
"restart": 重新运行
"exit": 结束运行

GET:
http://127.0.0.1:9880/control?command=restart
POST:

{
    "command": "restart"
}

RESP: 无

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

7 + 1 =