stt-tts 模式中语音输出的一半(talk.speak 会调用同一条合成路径)。提供商原生的 realtime Talk 会话会在实时提供商内部合成语音;transcription 会话永远不会合成智能体语音回复。
快速开始
选择提供商
OpenAI 和 ElevenLabs 是最可靠的托管选项。Microsoft 和
Local CLI 无需 API key 即可使用。完整列表请参阅提供商矩阵。
Auto-TTS 默认关闭。当
messages.tts.provider 未设置时,
OpenClaw 会按注册表自动选择顺序选用第一个已配置的提供商。
内置的 tts 智能体工具仅用于显式意图:普通聊天会保持文本,除非用户请求音频、使用 /tts,或启用 Auto-TTS/指令式语音。支持的提供商
| 提供商 | 凭证 | 说明 |
|---|---|---|
| Azure Speech | AZURE_SPEECH_KEY + AZURE_SPEECH_REGION(也支持 AZURE_SPEECH_API_KEY、SPEECH_KEY、SPEECH_REGION) | 原生 Ogg/Opus 语音便笺输出和电话。 |
| DeepInfra | DEEPINFRA_API_KEY | OpenAI 兼容 TTS。默认使用 hexgrad/Kokoro-82M。 |
| ElevenLabs | ELEVENLABS_API_KEY 或 XI_API_KEY | 语音克隆、多语言,通过 seed 实现确定性;以流式方式用于 Discord 语音播放。 |
| Google Gemini | GEMINI_API_KEY 或 GOOGLE_API_KEY | Gemini API 批量 TTS;通过 promptTemplate: "audio-profile-v1" 感知角色设定。 |
| Gradium | GRADIUM_API_KEY | 语音便笺和电话输出。 |
| Inworld | INWORLD_API_KEY | 流式 TTS API。原生 Opus 语音便笺和 PCM 电话。 |
| Local CLI | 无 | 运行已配置的本地 TTS 命令。 |
| Microsoft | 无 | 通过 node-edge-tts 使用公共 Edge 神经网络 TTS。尽力而为,无 SLA。 |
| MiniMax | MINIMAX_API_KEY(或 Token Plan:MINIMAX_OAUTH_TOKEN、MINIMAX_CODE_PLAN_KEY、MINIMAX_CODING_API_KEY) | T2A v2 API。默认使用 speech-2.8-hd。 |
| OpenAI | OPENAI_API_KEY | 也用于自动摘要;支持角色设定 instructions。 |
| OpenRouter | OPENROUTER_API_KEY(可复用 models.providers.openrouter.apiKey) | 默认模型 hexgrad/kokoro-82m。 |
| Volcengine | VOLCENGINE_TTS_API_KEY 或 BYTEPLUS_SEED_SPEECH_API_KEY(旧版 AppID/token:VOLCENGINE_TTS_APPID/_TOKEN) | BytePlus Seed Speech HTTP API。 |
| Vydra | VYDRA_API_KEY | 共享的图像、视频和语音提供商。 |
| xAI | XAI_API_KEY | xAI 批量 TTS。不支持原生 Opus 语音便笺。 |
| Xiaomi MiMo | XIAOMI_API_KEY | 通过 Xiaomi 聊天补全使用 MiMo TTS。 |
summaryModel(或
agents.defaults.model.primary),因此如果你保持摘要启用,该提供商也必须完成认证。
配置
TTS 配置位于~/.openclaw/openclaw.json 中的 messages.tts 下。选择一个预设并调整提供商块。下面显示的 speakerVoice/speakerVoiceId
字段是规范字段;每个提供商自己的 voice/voiceId/
voiceName 字段名仍可作为旧版别名使用。
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- Local CLI
- Microsoft(无 key)
- MiniMax
- OpenAI + ElevenLabs
- OpenRouter
- Volcengine
- xAI
- Xiaomi MiMo
mimo-v2.5-tts-voicedesign,省略 speakerVoice,并将 style 设置为语音设计提示词。OpenClaw 会把该提示词作为 TTS user 消息发送,并且不会为 voicedesign 模型发送 audio.voice。
按智能体覆盖语音
当一个智能体需要使用不同的提供商、语音、模型、身份设定或自动 TTS 模式发声时,使用agents.list[].tts。智能体块会深度合并到
messages.tts 之上,因此提供商凭证可以保留在全局提供商配置中:
agents.list[].tts.persona,它只会为该智能体覆盖全局 messages.tts.persona。
自动回复、/tts audio、/tts status 和
tts 智能体工具的优先级顺序:
messages.tts- 活跃的
agents.list[].tts - 渠道覆盖项,当该渠道支持
channels.<channel>.tts时 - 账号覆盖项,当该渠道传入
channels.<channel>.accounts.<id>.tts时 - 此主机的本地
/tts偏好设置 - 启用模型覆盖时的内联
[[tts:...]]指令
messages.tts 相同的形状,并深度合并到更早的层之上,因此共享提供商凭证可以保留在
messages.tts 中,而某个渠道或 Bot 账号只更改说话语音、模型、身份设定或自动模式:
身份设定
身份设定是一种稳定的口语身份,可以跨提供商以确定性方式应用。它可以偏好某个提供商,定义提供商无关的提示意图,并携带特定于提供商的语音、模型、提示模板、种子和语音设置绑定。最小身份设定
完整身份设定(提供商无关提示)
身份设定解析
活跃身份设定会以确定性方式选择:/tts persona <id>本地偏好设置,如果已设置。messages.tts.persona,如果已设置。- 无身份设定。
- 直接覆盖项(CLI、Gateway 网关、Talk、允许的 TTS 指令)。
/tts provider <id>本地偏好设置。- 活跃身份设定的
provider。 messages.tts.provider。- 注册表自动选择。
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- 受信任的请求覆盖项
- 允许的模型发出的 TTS 指令覆盖项
提供商如何使用身份设定提示
身份设定提示字段(profile、scene、sampleContext、style、accent、
pacing、constraints)是提供商无关的。每个提供商自行决定如何使用它们:
Google Gemini
Google Gemini
只有当有效的 Google 提供商配置设置了
promptTemplate: "audio-profile-v1"
或 personaPrompt 时,才会将身份设定提示字段包装进 Gemini TTS 提示结构。
旧的 audioProfile 和 speakerName 字段仍会作为 Google 特定的提示文本前置。
[[tts:text]] 块中的 [whispers] 或 [laughs] 等内联音频标签会保留在 Gemini 转录文本中;OpenClaw 不会生成这些标签。OpenAI
OpenAI
只有在没有配置显式 OpenAI
instructions 时,才会将身份设定提示字段映射到请求的 instructions 字段。显式 instructions 始终优先。其他提供商
其他提供商
只使用
personas.<id>.providers.<provider> 下特定于提供商的身份设定绑定。身份设定提示字段会被忽略,除非该提供商实现了自己的身份设定提示映射。回退策略
fallbackPolicy 控制当某个身份设定对尝试的提供商没有绑定时的行为:
| 策略 | 行为 |
|---|---|
preserve-persona | 默认。 提供商无关的提示字段保持可用;提供商可以使用或忽略它们。 |
provider-defaults | 该次尝试的提示准备会省略身份设定;提供商使用其中性默认值,同时继续回退到其他提供商。 |
fail | 跳过该提供商尝试,并带有 reasonCode: "not_configured" 和 personaBinding: "missing"。仍会尝试回退提供商。 |
talk.catalog 中选择提供商 ID、模型 ID、语音 ID 和语言区域,并通过 Talk 会话或移交请求传递它们。打开语音会话不应改变 messages.tts 或全局 Talk 提供商默认值。
模型驱动指令
默认情况下,助手可以发出[[tts:...]] 指令,为单次回复覆盖语音、模型或速度,并可附加一个可选的
[[tts:text]]...[[/tts:text]] 块,用于只应出现在音频中的表现性提示:
messages.tts.auto 为 "tagged" 时,必须使用指令才会触发音频。流式分块传送会在渠道看到文本之前,从可见文本中剥离指令,即使指令被拆分到相邻块中也是如此。
除非 modelOverrides.allowProvider: true,否则会忽略 provider=...。当回复声明 provider=... 时,该指令中的其他键只会由该提供商解析;不支持的键会被剥离,并报告为 TTS 指令警告。
可用指令键:
provider(已注册的提供商 ID;需要allowProvider: true)speakerVoice/speakerVoiceId(旧别名:voice、voiceName、voice_name、google_voice、voiceId)model/google_modelstability、similarityBoost、style、speed、useSpeakerBoostvol/volume(MiniMax 音量,0–10)pitch(MiniMax 整数音高,−12 到 12;小数值会被截断)emotion(Volcengine 情绪标签)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
斜杠命令
单个命令/tts。在 Discord 上,OpenClaw 还会注册 /voice,因为
/tts 是 Discord 内置命令;文本形式的 /tts ... 仍可使用。
命令需要授权发送者(适用 allowlist/owner 规则),并且必须启用
commands.text 或原生命令注册。/tts on将本地 TTS 偏好写为always;/tts off将其写为off。/tts chat on|off|default为当前聊天写入会话作用域的自动 TTS 覆盖项。/tts persona <id>写入本地身份设定偏好;/tts persona off会清除它。/tts latest从当前会话转录中读取最新的助手回复,并将其作为音频发送一次。它只会在会话条目上存储该回复的哈希,用于抑制重复语音发送。/tts audio生成一次性音频回复(不会打开 TTS)。/tts limit <chars>接受 100–4096(4096 是 Telegram 标题/消息最大值);超出该范围的值会被拒绝。limit和summary存储在本地偏好中,而不是主配置中。/tts status包含最新尝试的回退诊断信息:Fallback: <primary> -> <used>、Attempts: ...,以及每次尝试的详情(provider:outcome(reasonCode) latency)。/status会在启用 TTS 时显示活跃 TTS 模式,以及已配置的提供商、模型、语音和经过清理的自定义端点元数据。
每用户偏好设置
斜杠命令会将本地覆盖项写入prefsPath。默认值为
~/.openclaw/settings/tts.json;可使用 OPENCLAW_TTS_PREFS 环境变量或
messages.tts.prefsPath 覆盖。
| 存储字段 | 效果 |
|---|---|
auto | 本地自动 TTS 覆盖项(always、off、…) |
provider | 本地主提供商覆盖项 |
persona | 本地身份设定覆盖项 |
maxLength | 摘要/截断阈值(默认 1500 字符,/tts limit 范围 100–4096) |
summarize | 摘要开关(默认 true) |
messages.tts 以及该主机活跃
agents.list[].tts 块的有效配置。
输出格式
TTS 语音投递由渠道能力驱动。渠道插件会声明 语音风格的 TTS 是否应让提供商生成原生voice-note 目标,
或保持常规 audio-file 合成,以及渠道是否会在发送前转码
非原生输出。
| 目标 | 格式 |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | 语音便笺回复优先使用 Opus(ElevenLabs 的 opus_48000_64,OpenAI 的 opus)。48 kHz / 64 kbps 在清晰度和大小之间取得平衡。 |
| 其他渠道 | MP3(ElevenLabs 的 mp3_44100_128,OpenAI 的 mp3)。44.1 kHz / 128 kbps 是语音的默认平衡点。 |
| Talk / 电话 | 提供商原生 PCM(Inworld 22050 Hz,Google 24 kHz),或用于电话场景的 Gradium ulaw_8000。 |
- Feishu / WhatsApp 转码: 当语音便笺回复以 MP3/WebM/WAV/M4A 或其他可能的音频文件形式到达时,渠道插件会在发送原生语音消息前,使用
ffmpeg(libopus,64 kbps)将其转码为 48 kHz Ogg/Opus。WhatsApp 会通过 Baileysaudio载荷发送结果,并设置ptt: true和audio/ogg; codecs=opus。转码失败时:Feishu 会捕获错误并回退为将原始文件作为普通附件发送;WhatsApp 没有回退,因此发送本身会失败,而不是发布不兼容的 PTT 载荷。 - MiniMax: 普通音频附件使用 MP3(
speech-2.8-hd模型,32 kHz 采样率);对于渠道声明的语音便笺目标,会使用ffmpeg转码为 48 kHz Opus。 - Xiaomi MiMo: 默认使用 MP3,配置后可使用 WAV;对于渠道声明的语音便笺目标,会使用
ffmpeg转码为 48 kHz Opus。 - 本地 CLI: 使用配置的
outputFormat。语音便笺目标会转换为 Ogg/Opus,电话输出会使用ffmpeg转换为原始 16 kHz 单声道 PCM。 - Google Gemini: 返回原始 24 kHz PCM。OpenClaw 会将其封装为 WAV 用于音频附件,将其转码为 48 kHz Opus 用于语音便笺目标,并为 Talk/电话直接返回 PCM。
- Gradium: 音频附件使用 WAV,语音便笺目标使用 Opus,电话场景使用 8 kHz 的
ulaw_8000。 - Inworld: 普通音频附件使用 MP3,语音便笺目标使用原生
OGG_OPUS,Talk/电话使用 22050 Hz 的原始PCM。 - xAI: 默认使用 MP3;
responseFormat可以是mp3、wav、pcm、mulaw或alaw。使用 xAI 的批量 REST TTS 端点,并返回完整音频附件;此提供商路径不使用 xAI 的流式 TTS WebSocket。不支持原生 Opus 语音便笺格式。 - Microsoft: 使用
microsoft.outputFormat(默认audio-24khz-48kbitrate-mono-mp3)。- 内置传输接受
outputFormat,但并非所有格式都由服务提供。 - 输出格式值遵循 Microsoft Speech 输出格式(包括 Ogg/WebM Opus)。
- Telegram
sendVoice接受 OGG/MP3/M4A;如果需要保证 Opus 语音消息,请使用 OpenAI/ElevenLabs。 - 如果配置的 Microsoft 输出格式失败,OpenClaw 会使用 MP3 重试。
- 当未设置显式语音覆盖且使用默认英语语音时,如果回复文本以 CJK 为主,OpenClaw 会自动切换到中文神经网络语音(
zh-CN-XiaoxiaoNeural,zh-CN区域设置)。
- 内置传输接受
Auto-TTS 行为
启用messages.tts.auto 时,OpenClaw:
- 如果回复已包含结构化媒体,则跳过 TTS。
- 跳过很短的回复(少于 10 个字符)。
- 在启用摘要时,使用
summaryModel(或agents.defaults.model.primary)总结长回复。 - 将生成的音频附加到回复。
- 在
mode: "final"中,仍会在文本流完成后,为流式最终回复发送仅音频的 TTS; 生成的媒体会像普通回复附件一样,经过相同的 渠道媒体规范化流程。
maxLength,OpenClaw 绝不会直接跳过音频:
- 启用摘要(默认)且有可用摘要模型:将文本总结到约
maxLength个字符,然后合成摘要。 - 关闭摘要、摘要失败,或摘要模型没有可用 API key:
将文本截断到
maxLength个字符,并合成截断后的文本。
字段参考
顶层 messages.tts.*
顶层 messages.tts.*
自动 TTS 模式。
inbound 仅在收到入站语音消息后发送音频;tagged 仅在回复包含 [[tts:...]] 指令或 [[tts:text]] 块时发送音频。旧版开关。
openclaw doctor --fix 会将其迁移到 auto。"all" 除最终回复外,还会包含工具/块回复。语音提供商 ID。未设置时,OpenClaw 使用注册表自动选择顺序中的第一个已配置提供商。旧版
provider: "edge" 会由 openclaw doctor --fix 重写为 "microsoft"。来自
personas 的当前 persona ID。会规范化为小写。稳定的语音身份。字段:
label、description、provider、fallbackPolicy、prompt、providers.<provider>。参见 Personas。用于自动摘要的低成本模型;默认值为
agents.defaults.model.primary。接受 provider/model 或已配置的模型别名。允许模型发出 TTS 指令。
enabled 默认值为 true;allowProvider 默认值为 false。由提供商拥有的设置,以语音提供商 ID 为键。旧版直接块(
messages.tts.openai、.elevenlabs、.microsoft、.edge)会由 openclaw doctor --fix 重写;只提交 messages.tts.providers.<id>。TTS 输入字符数的硬上限。
/tts audio、tts.convert 和 tts.speak 超出时会失败。请求超时时间,单位为毫秒。设置了单次调用的
timeoutMs(智能体工具、Gateway 网关)时会优先生效;否则,显式配置的 messages.tts.timeoutMs 优先于任何插件定义的提供商默认值。覆盖本地偏好设置 JSON 路径(提供商/限制/摘要)。默认值为
~/.openclaw/settings/tts.json。Azure Speech
Azure Speech
环境变量:
AZURE_SPEECH_KEY、AZURE_SPEECH_API_KEY 或 SPEECH_KEY。Azure Speech 区域(例如
eastus)。环境变量:AZURE_SPEECH_REGION 或 SPEECH_REGION。可选的 Azure Speech 端点覆盖(别名
baseUrl)。Azure 语音 ShortName。默认值为
en-US-JennyNeural。旧版别名:voice。SSML 语言代码。默认值为
en-US。标准音频的 Azure
X-Microsoft-OutputFormat。默认值为 audio-24khz-48kbitrate-mono-mp3。语音便笺输出的 Azure
X-Microsoft-OutputFormat。默认值为 ogg-24khz-16bit-mono-opus。ElevenLabs
ElevenLabs
回退到
ELEVENLABS_API_KEY 或 XI_API_KEY。模型 ID。默认值为
eleven_multilingual_v2。旧版 ID eleven_turbo_v2_5/eleven_turbo_v2 会规范化为匹配的 flash 模型。ElevenLabs 语音 ID。默认值为
pMsXgVXv3BLzUgSXRplE。旧版别名:voiceId。stability、similarityBoost、style(每个都是 0..1,默认值为 0.5/0.75/0)、useSpeakerBoost(true|false,默认值为 true)、speed(0.5..2.0,默认值为 1.0)。文本规范化模式。
2 字母 ISO 639-1(例如
en、de)。用于尽力确定性的整数
0..4294967295。覆盖 ElevenLabs API 基础 URL。
Google Gemini
Google Gemini
回退到
GEMINI_API_KEY / GOOGLE_API_KEY。如果省略,TTS 可以在回退到环境变量之前复用 models.providers.google.apiKey。Gemini TTS 模型。默认
gemini-3.1-flash-tts-preview。Gemini 预构建语音名称。默认
Kore。旧版别名:voiceName、voice。在朗读文本前添加的自然语言风格提示。
当你的提示使用具名说话人时,在朗读文本前添加的可选说话人标签。
设置为
audio-profile-v1,以确定性的 Gemini TTS 提示结构封装当前角色提示字段。附加到模板“导演注释”的 Google 特定额外角色提示文本。
仅接受
https://generativelanguage.googleapis.com。Gradium
Gradium
Inworld
Inworld
本地 CLI (tts-local-cli)
本地 CLI (tts-local-cli)
Microsoft(无 API key)
Microsoft(无 API key)
允许使用 Microsoft 语音。
Microsoft 神经网络语音名称(例如
en-US-MichelleNeural)。旧别名:voice。如果默认英语语音生效且回复文本以 CJK 为主,OpenClaw 会自动切换到 zh-CN-XiaoxiaoNeural。语言代码(例如
en-US)。Microsoft 输出格式。默认
audio-24khz-48kbitrate-mono-mp3。内置的 Edge 后端传输并不支持所有格式。百分比字符串(例如
+10%、-5%)。在音频文件旁写入 JSON 字幕。
Microsoft 语音请求的代理 URL。
请求超时覆盖项(毫秒)。
旧别名。运行
openclaw doctor --fix 将持久化配置重写为 providers.microsoft。MiniMax
MiniMax
回退到
MINIMAX_API_KEY。Token Plan 认证通过 MINIMAX_OAUTH_TOKEN、MINIMAX_CODE_PLAN_KEY 或 MINIMAX_CODING_API_KEY。默认
https://api.minimax.io。环境变量:MINIMAX_API_HOST。默认
speech-2.8-hd。环境变量:MINIMAX_TTS_MODEL。默认
English_expressive_narrator。环境变量:MINIMAX_TTS_VOICE_ID。旧别名:voiceId。0.5..2.0。默认 1.0。(0, 10]。默认 1.0。整数
-12..12。默认 0。请求前会截断小数值。OpenAI
OpenAI
回退到
OPENAI_API_KEY。OpenAI TTS 模型 ID。默认
gpt-4o-mini-tts。语音名称(例如
alloy、cedar)。默认 coral。旧别名:voice。显式的 OpenAI
instructions 字段。设置后,角色提示字段不会自动映射。在生成的 OpenAI TTS 字段之后,合并到
/audio/speech 请求体中的额外 JSON 字段。用于 OpenAI 兼容端点,例如需要 lang 等提供商专用键的 Kokoro;不安全的原型键会被忽略。覆盖 OpenAI TTS 端点。解析顺序:配置 →
OPENAI_TTS_BASE_URL → https://api.openai.com/v1。非默认值会被视为 OpenAI 兼容 TTS 端点,因此会接受自定义模型和语音名称,并且 speed 会失去其 0.25..4.0 范围检查。OpenRouter
OpenRouter
环境变量:
OPENROUTER_API_KEY。可以复用 models.providers.openrouter.apiKey。默认
https://openrouter.ai/api/v1。旧版 https://openrouter.ai/v1 会被规范化。默认
hexgrad/kokoro-82m。别名:modelId。默认
af_alloy。旧别名:voice、voiceId。默认
mp3。提供商原生速度覆盖项。
Volcengine(BytePlus Seed Speech)
Volcengine(BytePlus Seed Speech)
环境变量:
VOLCENGINE_TTS_API_KEY 或 BYTEPLUS_SEED_SPEECH_API_KEY。默认
seed-tts-1.0。环境变量:VOLCENGINE_TTS_RESOURCE_ID。当你的项目拥有 TTS 2.0 权益时,使用 seed-tts-2.0。App key 标头。默认
aGjiRDfUWi。环境变量:VOLCENGINE_TTS_APP_KEY。覆盖 Seed Speech TTS HTTP 端点。环境变量:
VOLCENGINE_TTS_BASE_URL。语音类型。默认
en_female_anna_mars_bigtts。环境变量:VOLCENGINE_TTS_VOICE。旧别名:voice。提供商原生速度比例,
0.2..3。提供商原生情绪标签。
旧版 Volcengine Speech Console 字段。环境变量:
VOLCENGINE_TTS_APPID、VOLCENGINE_TTS_TOKEN、VOLCENGINE_TTS_CLUSTER(默认 volcano_tts)。xAI
xAI
Xiaomi MiMo
Xiaomi MiMo
环境变量:
XIAOMI_API_KEY。默认
https://api.xiaomimimo.com/v1。环境变量:XIAOMI_BASE_URL。默认
mimo-v2.5-tts。环境变量:XIAOMI_TTS_MODEL。也支持 mimo-v2-tts 和 mimo-v2.5-tts-voicedesign。预设语音模型默认
mimo_default。环境变量:XIAOMI_TTS_VOICE。旧别名:voice。不会为 mimo-v2.5-tts-voicedesign 发送。默认
mp3。环境变量:XIAOMI_TTS_FORMAT。可选的自然语言风格指令,会作为用户消息发送;不会被朗读。对于
mimo-v2.5-tts-voicedesign,这是语音设计提示;省略时 OpenClaw 会提供默认值。Agent 工具
tts 工具会将文本转换为语音,并返回用于回复投递的音频附件。在 Feishu、Matrix、Telegram 和 WhatsApp 上,音频会作为语音消息而不是文件附件投递。当 ffmpeg 可用时,Feishu 和 WhatsApp 可以在此路径上转码非 Opus TTS 输出。
WhatsApp 通过 Baileys 将音频作为 PTT 语音备注(带有 ptt: true 的 audio)发送,并且会将可见文本与 PTT 音频分开发送,因为客户端不会稳定地在语音备注上渲染字幕。
该工具接受可选的 channel 和 timeoutMs 字段;timeoutMs 是每次调用的提供商请求超时时间,单位为毫秒。每次调用的值会覆盖 messages.tts.timeoutMs;已配置的 TTS 超时时间会覆盖任何插件定义的提供商默认值。
Gateway RPC
| 方法 | 用途 |
|---|---|
tts.status | 读取当前 TTS 状态和上次尝试。 |
tts.enable | 将本地自动偏好设置为 always。 |
tts.disable | 将本地自动偏好设置为 off。 |
tts.convert | 一次性文本 → 音频。 |
tts.setProvider | 设置本地提供商偏好。 |
tts.personas | 列出已配置的角色和当前活动角色。 |
tts.setPersona | 设置本地角色偏好。 |
tts.providers | 列出已配置的提供商和状态。 |
服务链接
- OpenAI 文本转语音指南
- OpenAI Audio API 参考
- Azure Speech REST 文本转语音
- Azure Speech provider
- ElevenLabs 文本转语音
- ElevenLabs 认证
- Gradium
- Inworld TTS API
- MiniMax T2A v2 API
- Volcengine TTS HTTP API
- Xiaomi MiMo 语音合成
- node-edge-tts
- Microsoft Speech 输出格式
- xAI 文本转语音