跳到主要内容

如何接入其它 TTS 服务?

文档内容来源于 MiGPT:使用第三方 TTS,为了适用于 MiGPT GUI 而做了一些调整。

相关问题:MiGPT GUI 与 MiGPT 之间是什么关系?

MiGPT GUI 默认使用小米自带的 TTS 服务(即小爱音箱自带的音色)朗读文字内容,如果你需要:

  • 绕过小米 TTS 提示文字存在敏感信息
  • 使用第三方 TTS 或本地搭建的 TTS 服务,自定义 TTS 音色

那么你可以使用其它 TTS 引擎。

Edge 大声朗读

注意:有且仅有 migpt-server 支持此选项

migpt-server 内置了 MiGPT TTS,所以你无需自建,只需填写相关配置即可。

但是,migpt-cli 及 MiGPT 均不支持此选项,你需要自定义

  1. 语音服务 - TTS 引擎选择【Edge 大声朗读】
  2. 对外地址填写方式见【对外地址】怎么填?
  3. Trusted Token 不方便公开,你可以从 MiGPT TTS 的源码里找,如果找不到的话就先用别的 TTS 服务。
  4. 可供使用的音色https://github.com/idootop/mi-gpt-tts/blob/main/src/tts/edge.ts 里的 speaker(例如 zh-CN-YunxiNeural

火山(豆包)

注意:有且仅有 migpt-server 支持此选项

migpt-server 内置了 MiGPT TTS,所以你无需自建,只需填写相关配置即可。

但是,migpt-cli 及 MiGPT 均不支持此选项,你需要自定义

  1. 语音服务 - TTS 引擎选择【火山(豆包)】
  2. 对外地址填写方式见【对外地址】怎么填?
  3. APP IDAccess Token 请参考 MiGPT TTS 的这篇文档
  4. 可供使用的音色https://github.com/idootop/mi-gpt-tts/blob/main/src/tts/volcano.ts 里的 speaker(例如 BV700_streaming

OpenAI

注意:有且仅有 migpt-server 支持此选项

migpt-server 内置了 MiGPT TTS,所以你无需自建,只需填写相关配置即可。

但是,migpt-cli 及 MiGPT 均不支持此选项,你需要自定义

  1. 语音服务 - TTS 引擎选择【OpenAI】
  2. 对外地址填写方式见【对外地址】怎么填?
  3. 密钥接口地址请参考 OpenAI 申请文档
  4. 可供使用的音色https://github.com/idootop/mi-gpt-tts/blob/main/src/tts/openai.ts 里的 speaker(例如 nova

自定义

你可以通过以下步骤,自定义 MiGPT 使用的 TTS 引擎:

  1. 语音服务 - TTS 引擎选择【自定义】
  2. TTS_BASE_URL 填写你的 TTS 服务地址,格式为 http://[你的局域网或公网地址]:[端口号]/api,比如:http://192.168.31.205:4321/api

配置成功后,即可通过 小爱同学,把声音换成 xxx 语音指令切换 TTS 音色。

MiGPT-TTS 支持的完整 TTS 音色列表与名称请查看此处:volcano.ts

TTS_BASE_URL

TTS_BASE_URL 是你的外部 TTS 服务引擎地址。这里提供一个 Node.js 端的示例:MiGPT-TTS

目前接入了 火山引擎 的语音合成服务,实名认证后可以免费使用 21 款常用音色。

具体部署和使用教程,请移步:https://github.com/idootop/mi-gpt-tts

支持更多的 TTS 服务

如果你想使用本地 TTS 服务(比如:ChatTTS),或者接入其他 TTS 服务商(比如微软、讯飞、OpenAI 等),可以参考上面的 MiGPT-TTS 项目代码自行搭建服务端,只需满足以下接口即可:

GET /api/tts.mp3

文字合成音频,请求示例:/api/tts.mp3?speaker=BV700_streaming&text=很高兴认识你

其中,请求参数 speaker 为指定音色名称或标识,可选。

注意:小爱音箱在访问音频链接时,可能会将请求链接中的 &text= 转义成 +text=,你需要在 Server 端手动修复请求参数。相关 issue

GET /api/speakers

获取音色列表

属性说明示例
name音色名称灿灿
gender性别
speaker音色标识BV700_streaming

返回值示例

[
{
"name": "广西老表",
"gender": "男",
"speaker": "BV213_streaming"
},
{
"name": "甜美台妹",
"gender": "女",
"speaker": "BV025_streaming"
}
]

可用的 TTS 引擎列表

如果你实现了对更多 TTS 服务的支持,欢迎提交 PR,将你的项目分享给大家。

  • MiGPT-TTS:目前接入了 火山引擎 的语音合成服务,实名认证后可以免费使用 21 款常用音色。