Appearance
OpenClaw 使用 Azure Speech REST API 直接合成回复音频,默认输出 24kHz 48kbps MP3,语音消息则用原生 Ogg/Opus,电话通道使用 8kHz mulaw。配置时需要提供 AZURE_SPEECH_KEY 和 AZURE_SPEECH_REGION 环境变量,或在 messages.tts.providers.azure-speech 中指定语音、语言和输出格式;密钥通过 Ocp-Apim-Subscription-Key 头部发送,OpenClaw 自动从 region 拼接端点。
OpenClaw Azure Speech TTS 配置:认证、格式与默认语音
Azure Speech 是 Azure AI 语音服务的文本转语音(TTS)提供方。在 OpenClaw 中,它负责将智能体的回复音频合成为 MP3(默认),为语音消息生成原生的 Ogg/Opus 格式,为电话通道(如语音呼叫)输出 8 kHz mulaw 音频。
OpenClaw 直接通过 Azure Speech REST API 发送 SSML,并使用 X-Microsoft-OutputFormat 指定提供方支持的输出格式。
| 属性 | 值 |
|---|---|
| 官网 | Azure AI Speech |
| 文档 | Speech REST text-to-speech |
| 认证 | AZURE_SPEECH_KEY + AZURE_SPEECH_REGION |
| 默认语音 | en-US-JennyNeural |
| 默认文件输出 | audio-24khz-48kbitrate-mono-mp3 |
| 默认语音消息输出 | ogg-24khz-16bit-mono-opus |
快速开始
创建 Azure Speech 资源
在 Azure 门户中创建 Speech 资源,从“资源管理” > “密钥和终结点”复制 **KEY 1**,并记录资源位置(如 `eastus`)。
```
AZURE_SPEECH_KEY=<speech-resource-key>
AZURE_SPEECH_REGION=eastus
```
在 messages.tts 中选取 Azure Speech
```json5
{
messages: {
tts: {
auto: "always",
provider: "azure-speech",
providers: {
"azure-speech": {
voice: "en-US-JennyNeural",
lang: "en-US",
},
},
},
},
}
```
发送一条消息
通过任意已连接的渠道发送回复,OpenClaw 会使用 Azure Speech 合成音频,标准音频返回 MP3,渠道期望语音消息时返回 Ogg/Opus。
配置选项
| 选项 | 路径 | 说明 |
|---|---|---|
apiKey | messages.tts.providers.azure-speech.apiKey | Azure Speech 资源密钥。回退顺序:AZURE_SPEECH_KEY、AZURE_SPEECH_API_KEY、SPEECH_KEY。 |
region | messages.tts.providers.azure-speech.region | Azure Speech 资源区域。回退顺序:AZURE_SPEECH_REGION、SPEECH_REGION。 |
endpoint | messages.tts.providers.azure-speech.endpoint | 可选的 Azure Speech 终结点/基础 URL 覆盖。 |
baseUrl | messages.tts.providers.azure-speech.baseUrl | 可选的 Azure Speech 基础 URL 覆盖。 |
voice | messages.tts.providers.azure-speech.voice | Azure 语音 ShortName(默认 en-US-JennyNeural)。 |
lang | messages.tts.providers.azure-speech.lang | SSML 语言代码(默认 en-US)。 |
outputFormat | messages.tts.providers.azure-speech.outputFormat | 音频文件输出格式(默认 audio-24khz-48kbitrate-mono-mp3)。 |
voiceNoteOutputFormat | messages.tts.providers.azure-speech.voiceNoteOutputFormat | 语音消息输出格式(默认 ogg-24khz-16bit-mono-opus)。 |
注意事项
认证
Azure Speech 使用 Speech 资源密钥,不是 Azure OpenAI 密钥。密钥通过 `Ocp-Apim-Subscription-Key` 头发送;OpenClaw 默认从 `region` 拼接出 `https://<region>.tts.speech.microsoft.com`,除非你提供了 `endpoint` 或 `baseUrl`。
语音名称
使用 Azure Speech 语音的 `ShortName` 值,例如 `en-US-JennyNeural`。当前内置提供方可以通过同一 Speech 资源列出可用语音,并会过滤标记为已弃用或已退役的语音。
音频输出格式
Azure 支持的输出格式包括 `audio-24khz-48kbitrate-mono-mp3`、`ogg-24khz-16bit-mono-opus`、`riff-24khz-16bit-mono-pcm` 等。OpenClaw 针对 `voice-note` 目标请求 Ogg/Opus,这样渠道可以发送原生语音气泡,无需二次转换 MP3。
别名
`azure` 可作为提供方别名用于已有的 PR 和用户配置,但新配置应使用 `azure-speech`,避免与 Azure OpenAI 模型提供方混淆。
相关链接
文本转语音
TTS 概览、提供方列表及 `messages.tts` 配置。
配置
完整配置参考,包含 `messages.tts` 设置。
提供方
OpenClaw 所有内置提供方。
故障排除
常见问题与调试步骤。
常见问题
如何获取 Azure Speech 的 API 密钥?
在 Azure 门户中创建一个 Speech 资源,进入“资源管理” > “密钥和终结点”复制 KEY 1。将密钥设置为环境变量 AZURE_SPEECH_KEY,区域设置为 AZURE_SPEECH_REGION(如 eastus),或在配置文件中直接填写 apiKey 和 region。
默认语音能换成中文吗?
可以。在 messages.tts.providers.azure-speech 中设置 voice 为中文语音的 ShortName(如 zh-CN-XiaoxiaoNeural),lang 设为 zh-CN。注意语音 ShortName 需在 Azure Speech 文档中查找。
为什么回复音频是 MP3,但我想要 Ogg/Opus?
OpenClaw 会自动针对语音消息(voice-note)渠道使用 Ogg/Opus,标准回复默认为 MP3。如果你想全局修改输出格式,可以设置 outputFormat 为你需要的值(如 ogg-24khz-16bit-mono-opus),但注意某些渠道可能不兼容。