主题
通过 MCP 生成语音
MCP(Model Context Protocol)让 AI 客户端调用 Convbased 的文本转语音工具。连接后可查询模式与价格、提交合成任务并获取音频结果。
前置条件
- 已有可登录的 Convbased 账户。生成语音需要足够的钱包余额。
- 客户端支持远程 Streamable HTTP 和 OAuth 授权,且支持客户端元数据文档(CIMD)或已登记为受支持的客户端。
连接与授权
在客户端的 MCP 设置中添加远程服务:
| 配置项 | 填写内容 |
|---|---|
| 名称 | Convbased |
| 服务地址 | https://api.weights.chat/api/v1/mcp |
| 传输方式 | Streamable HTTP(部分客户端标为 HTTP) |
| 认证方式 | OAuth |
| 权限范围(需要填写时) | tts |
- 保存配置,在客户端发起连接或登录。
- 浏览器打开 Convbased 授权页后,登录要用于生成语音的账户,核对应用标识、回调来源、权限与收费说明,再同意授权。
- 返回客户端,刷新工具列表。应能看到
tts_modes、tts_pricing、audio_upload_request、tts_submit、tts_job和tts_cancel。
OAuth 凭据由客户端获取和保存,无需创建或粘贴 API Key,也不要复制网页登录令牌。
确认连接可用
在客户端发送:
使用 Convbased 查询可用的语音模式和当前价格,先不要生成音频。
客户端调用 tts_modes 和 tts_pricing 并返回结果,表示连接与授权可用。这两项查询不会创建收费合成任务。
需要生成时可发送:
使用 Convbased 的 general 模式,把“你好,欢迎使用 Convbased。”合成为语音,不使用参考音频。提交后等待任务完成,返回音频下载地址和实际扣费金额。
客户端通过 tts_submit 提交任务,再用 tts_job 等待结果。任务完成时,status 为 done,result.url 是临时音频地址,result.amount_charged 是实际扣费金额。请在地址有效期内保存音频。
费用与任务状态
MCP 合成按 API 价格扣除账户钱包余额,不使用会员额度或会员折扣。当前价格通过 tts_pricing 查询。
提交时预占余额,完成后按实际用量结算;失败或成功取消时释放预占余额。进阶模式按返回的最大秒数预占,结算后退回未使用部分。
网络中断或客户端超时后,已受理的任务仍可能继续执行。保留 job_id 并通过 tts_job 查询,按返回的 poll_after_ms 等待后再查询。提交结果不确定时,重试须沿用同一个 request_id 和全部输入;新建请求标识可能创建另一笔收费任务。
tts_cancel 只取消仍在排队的任务。以返回的 status 判断是否取消成功;断开 MCP 连接不会取消已受理任务。
使用参考音频
客户端需要能读取音频文件并执行 HTTP PUT 上传:先调用 audio_upload_request,再按返回的 upload_url 和 headers 上传文件,完成后将 key 传给 tts_submit。返回 exists: true 时可跳过上传。不要通过 MCP 传递 Base64 音频或把本地文件路径当作音频标识。
参考音频须属于当前授权账户,数量与对应文字要求通过 tts_modes 查询。仅能调用 MCP 工具、不能上传文件的客户端,可先使用无参考音频的 general 模式。
撤销授权
进入 开放中心,在“已授权应用”中撤销对应应用。撤销后应用不能继续访问,已受理的任务仍会执行并结算。再次使用时需从客户端重新发起授权。
连接排障
| 现象 | 处理方式 |
|---|---|
| 客户端只提供本地命令或 SSE 连接 | 使用支持 Streamable HTTP 和 OAuth 的客户端;不要把地址改成 /sse。 |
授权时提示 invalid_client 或不支持客户端注册 | 使用支持 CIMD 的客户端,或联系服务方确认客户端登记;API Key 不能替代 OAuth 授权。 |
| 授权请求无效或已过期 | 回到客户端重新发起授权,不重复使用旧授权页。 |
| 提示 401、凭据失效或授权已撤销 | 在客户端重新登录并授权。 |
| 提示 403、权限不足或工具列表为空 | 确认授予了 tts 权限,重新授权后刷新工具列表。 |
| 提示余额不足 | 为当前授权账户充值钱包后重试;会员剩余额度不能支付 MCP 合成。 |