Skip to content

OpenClaw 使用 Azure Speech REST API 直接合成回复音频,默认输出 24kHz 48kbps MP3,语音消息则用原生 Ogg/Opus,电话通道使用 8kHz mulaw。配置时需要提供 AZURE_SPEECH_KEYAZURE_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。

配置选项

选项路径说明
apiKeymessages.tts.providers.azure-speech.apiKeyAzure Speech 资源密钥。回退顺序:AZURE_SPEECH_KEYAZURE_SPEECH_API_KEYSPEECH_KEY
regionmessages.tts.providers.azure-speech.regionAzure Speech 资源区域。回退顺序:AZURE_SPEECH_REGIONSPEECH_REGION
endpointmessages.tts.providers.azure-speech.endpoint可选的 Azure Speech 终结点/基础 URL 覆盖。
baseUrlmessages.tts.providers.azure-speech.baseUrl可选的 Azure Speech 基础 URL 覆盖。
voicemessages.tts.providers.azure-speech.voiceAzure 语音 ShortName(默认 en-US-JennyNeural)。
langmessages.tts.providers.azure-speech.langSSML 语言代码(默认 en-US)。
outputFormatmessages.tts.providers.azure-speech.outputFormat音频文件输出格式(默认 audio-24khz-48kbitrate-mono-mp3)。
voiceNoteOutputFormatmessages.tts.providers.azure-speech.voiceNoteOutputFormat语音消息输出格式(默认 ogg-24khz-16bit-mono-opus)。

注意事项

认证

Azure Speech 使用 Speech 资源密钥,不是 Azure OpenAI 密钥。密钥通过 `Ocp-Apim-Subscription-Key` 头发送;OpenClaw 默认从 `region` 拼接出 `https://&lt;region&gt;.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),或在配置文件中直接填写 apiKeyregion

默认语音能换成中文吗?

可以。在 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),但注意某些渠道可能不兼容。