GPT-SoVITS简介
GPT-SoVITS是一个优秀的零样本(或少样本)中文语音克隆项目。它结合了GPT和SoVITS技术,能够实现高质量的语音合成。为了更好地支持API调用,项目维护者对原有的api.py进行了改进,推出了功能更强大的api2.py。本文将详细介绍api2.py的使用方法,帮助开发者快速上手并实现灵活的语音合成功能。
api2.py的优势
相比原版api.py,api2.py具有以下优点:
- 支持中英混合文本
- 能够按标点符号自动切分句子
- 提供更多自定义选项
- 使用更加灵活方便
这些改进大大提高了API的实用性和易用性,使得开发者能够更加得心应手地进行语音合成任务。
安装和配置
要使用api2.py,首先需要下载并将其放置在GPT-SoVITS软件目录下。执行命令与原版api.py相同,只需将文件名由api.py改为api2.py即可。默认情况下,api2.py会监听127.0.0.1:9880。
启动选项
api2.py提供了多种启动选项,以适应不同的使用场景:
1. 使用默认模型并指定参考音频
.
untimeinary api2.py -dr "123.wav" -dt "一二三四五六七。" -dl "zh"
这个命令会使用默认模型,并将123.wav作为参考音频,其文本内容为"一二三四五六七。",语言为中文。
2. 指定IP地址和端口
.
untimeinary api2.py -a "127.0.0.1" -p 9001
这个命令将API服务绑定到127.0.0.1:9001。
3. 使用自定义训练模型
.
untimeinary api2.py -s "SoVITS_weights/你的模型名" -g "GPT_weights/你的模型名" -dr "参考音频路径" -dt "参考音频文字内容" -dl zh
这个命令允许使用自己训练的模型进行语音合成。需要注意的是,使用自定义模型时必须同时指定参考音频。
4. 强制使用CPU推理
.
untimeinary api2.py -d cpu
默认情况下,api2.py会优先使用CUDA或MPS(Mac)进行推理。如果需要强制使用CPU,可以添加-d cpu
参数。
API调用示例
api2.py支持GET和POST两种请求方式。以下是一些调用示例:
GET请求示例
http://127.0.0.1:9880?text=亲爱的朋友你好啊,希望你的每一天都充满快乐。&text_language=zh
这个请求将合成指定的中文文本。
POST请求示例
{
"text": "先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。",
"text_language": "zh"
}
通过POST请求,可以发送更复杂的参数,如上例中的较长文本。
指定参考音频的调用示例
http://127.0.0.1:9880?refer_wav_path=wavs/5.wav&prompt_text=为什么御弟哥哥,甘愿守孤灯。&prompt_language=zh&text=亲爱的朋友你好啊,希望你的每一天都充满快乐。&text_language=zh
这个例子展示了如何在请求中指定参考音频、参考文本以及要合成的目标文本。
返回结果
API调用成功时,将直接返回WAV格式的音频流,可以直接播放或保存为文件。HTTP状态码为200。
如果调用失败,将返回包含错误信息的JSON,HTTP状态码为400。例如:
{"code": 400, "message": "未指定参考音频且接口无预设"}
常见问题与解决方案
Q: 如何切换不同的模型?
A: api2.py不支持动态切换模型。推荐的做法是为每个模型启动一个独立的API服务,绑定不同的端口。例如:
- 默认模型(9880端口):
.
untimeinary api2.py -dr "5.wav" -dt "今天好开心" -dl zh
- 自定义模型(9881端口):
```bash
.
untimeinary api2.py -p 9881 -s "SoVITS_weights/mymode-e200.pth" -g "GPT_weights/mymode-e200.ckpt" -dr "wavs/10.wav" -dt "御弟哥哥,为什么甘愿守孤灯" -dl zh
这种方式可以同时运行多个模型,通过不同的端口进行访问。
结语
GPT-SoVITS的api2.py为开发者提供了一个强大而灵活的语音合成API接口。通过本文的详细介绍,相信大家已经对api2.py的使用有了全面的了解。无论是用于个人项目还是商业应用,api2.py都能满足多样化的语音合成需求。
在实际应用中,开发者可以根据具体需求选择合适的启动参数和调用方式。同时,也要注意合理使用计算资源,选择适当的推理设备。对于需要同时使用多个模型的场景,可以通过启动多个API服务来实现。
随着语音合成技术的不断发展,GPT-SoVITS项目也在持续更新和改进。建议开发者关注项目的GitHub页面,及时了解最新的功能和优化。通过灵活运用api2.py,相信大家都能够在各自的项目中实现高质量的语音合成功能。
最后,希望本文能够帮助更多的开发者了解和使用GPT-SoVITS项目,共同推动语音合成技术的发展与应用。如果在使用过程中遇到任何问题,欢迎在项目的GitHub页面提出issue或讨论,让我们一起完善这个优秀的开源项目!