发布于: -/最后更新: -/3 分钟/

QQ机器人接入GPT-Sovits让你的机器人开口说话

摘要

通过阿里云函数计算服务部署GPT-Sovits语音生成模型,可以实现AI克隆声音。部署过程中可能遇到的问题包括访问域名报错和函数实例异常退出。解决方案包括检查NAS资源是否正常、确认角色授权完整以及正确配置AstrBot-GPT_SoVITS插件。插件配置需要填写GPT-SoVITS API的URL、模型与参考音频路径等信息。通过这些步骤,可以实现QQ机器人接入GPT-Sovits,让机器人开口说话。

QQ机器人接入GPT-Sovits让你的机器人开口说话

参考文章

实现效果

【宵宫机器人-演示视频】

核心工作流程

  1. 创建QQ机器人

  2. 部署AstrBot

  3. AstrBot接入 QQ 官方机器人平台

  4. 通过阿里云函数计算服务部署GPT-Sovits

申请一个QQ机器人

推荐阅读:通过 QQ官方机器人 接入 QQ (Websockets)#快速部署通道

部署AstrBot

推荐阅读:使用 Docker 部署 AstrBot

AstrBot接入 QQ 机器人

推荐阅读:通过 QQ官方机器人 接入 QQ (Websockets)

通过阿里云函数计算服务部署GPT-Sovits

推荐阅读:

笔者也是参考上述文章进行实践操作的,下面对实践过程中遇到的问题进行总结,希望能对您有所帮助!

阿里云函数计算服务部署GPT-Sovits遇到的问题及解决方案

跟着文档走结果出问题了怎么办?

阿里文档目前已接入AI助理,可在网页顶部或选中文档中文本的方式找到AI助理的入口,合理提问通常能有效解决问题。

顶部AI助理入口.png
点击查看大图
顶部AI助理入口.png
划词访问AI助理入口.png
点击查看大图
划词访问AI助理入口.png

访问域名(GPT-SovitsWeb端)报错

访问:函数计算 FC-应用-应用详情-环境详情-访问域名响应如下信息:

JSON
{
    "RequestId": "1-69ad08ea-154b5e69-425c88159833",
    "Code": "CAExited",
    "Message": "The function either cannot be started or exited. Function instance exited unexpectedly(code 128, message:key has been revoked) with start command 'python webui.py'."
}

报错原因: CAExited(code 128, message: key has been revoked)表明函数实例在启动时因密钥被吊销而异常退出,通常与 NAS 挂载权限或临时凭证失效有关。

解法方案:

检查关联的文件存储 NAS资源是否正常,若NAS资源不为可用(例如为休眠)则需启用它。

关联NAS访问入口.png
点击查看大图
关联NAS访问入口.png
NAS状态查看.png
点击查看大图
NAS状态查看.png

确认角色授权完整(NAS资源检查无误后再排查此问题)
确保已正确创建并授权角色 AliyunFCServerlessDevsRole。若部署时跳过授权或授权不全,会导致函数无法访问 NAS。

  • 进入 RAM 控制台,搜索 AliyunFCServerlessDevsRole,确认其包含以下策略:

    • AliyunFCReadOnlyAccess

    • AliyunNASFullAccess(或至少具备 NAS 挂载点读写权限)

AstrBot-GPT_SoVITS插件配置

推荐阅读:在 AstrBot 面板配置插件

笔者是将自己训练的模型、参考音频上传到阿里云函数计算关联的NAS上的,下面对它们在插件中的配置进行说明。

GPT-SoVITS API 的 URL

函数详情中可以查看到。注意填写时不用加/tts路径!

获取GPT-Sovits API地址.png
点击查看大图
获取GPT-Sovits API地址.png

模型与参考音频配置

浏览函数计算关联的NAS的浏览器,默认有两个文件夹不是带api结尾的文件即是GPT-Sovits的目录里面可以放自己的模型,不过你也可以自己新建文件夹来存放模型文件和参考音频。

NAS浏览器.png
点击查看大图
NAS浏览器.png

对于:GPT模型文件路径、SoVITS模型文件路径、参考音频路径的配置我们只需要将根目录替换为/mnt 即可,例如:

示例模型配置.png
点击查看大图
示例模型配置.png

正文结束