Skip to content
Jason's Blog
Go back

OpenClaw 语音转文字配置指南(Azure OpenAI)

OpenClaw 语音转文字配置指南(Azure OpenAI)

目标读者:本文为 AI agent 可逐步执行的操作手册。每个步骤都有明确的前提条件、操作命令和验证方法。

OpenClaw 支持在收到语音消息时自动将其转录为文字,转录后的内容会替换消息体,供后续 agent 处理。本文介绍如何使用 Azure OpenAI gpt-4o-transcribe 部署来实现这一功能。


前提条件

在开始之前,请确认:

需要用户提供的信息:

参数说明
AZURE_OPENAI_ENDPOINTAzure OpenAI 资源的 Endpoint,格式如 https://<resource-name>.openai.azure.com
AZURE_OPENAI_API_KEY对应资源的 API Key
DEPLOYMENT_NAMEgpt-4o-transcribe 模型的部署名称(通常就是 gpt-4o-transcribe

工作原理

OpenClaw 的语音转录通过 tools.media.audio 配置项控制。当收到音频附件时:

  1. OpenClaw 定位音频文件(本地路径或 URL)
  2. models 列表顺序尝试转录,第一个成功的结果生效
  3. 转录成功后,消息体被替换为 [Audio] 块,同时设置 {{Transcript}} 变量
  4. Agent 接收到的就是转录后的文字内容

支持的配置方式有两种:

由于 Azure OpenAI 的 Endpoint 和认证方式与标准 OpenAI 不同,这里使用 CLI 模式,通过 curl 直接调用 Azure 的转录 API。


步骤一:验证 Azure OpenAI 部署可用

在配置 OpenClaw 之前,先手动验证 API 可用。

操作: 准备一段测试音频文件(任意 .wav.mp3),然后执行:

curl -s \
  "https://<YOUR_ENDPOINT>/openai/deployments/<YOUR_DEPLOYMENT_NAME>/audio/transcriptions?api-version=2025-03-01-preview" \
  -H "api-key: <YOUR_API_KEY>" \
  -F "file=@/path/to/test-audio.wav"

预期结果: 返回 JSON,其中包含 "text" 字段,例如:

{"text": "你好,这是一段测试音频。"}

如果返回 401 或 404,请检查 Endpoint、部署名称和 API Key 是否正确。


步骤二:编辑 OpenClaw 配置文件

操作: 打开 ~/.openclaw/openclaw.json,在 tools 节点下添加或修改 media.audio 配置:

{
  "tools": {
    "media": {
      "audio": {
        "enabled": true,
        "models": [
          {
            "type": "cli",
            "command": "curl",
            "args": [
              "-s",
              "https://<YOUR_ENDPOINT>/openai/deployments/<YOUR_DEPLOYMENT_NAME>/audio/transcriptions?api-version=2025-03-01-preview",
              "-H",
              "api-key: <YOUR_API_KEY>",
              "-F",
              "file=@{{MediaPath}}"
            ]
          }
        ]
      }
    }
  }
}

参数说明:

注意: curl 调用 Azure OpenAI 转录 API,返回的是 JSON 格式,其中 text 字段为转录内容。OpenClaw 会自动从 stdout 中解析 {"text": "..."} 格式的输出并提取文字内容。


步骤三:重启 Gateway 使配置生效

操作:

openclaw gateway restart

或者,如果通过 systemd 管理:

systemctl --user restart openclaw-gateway

验证: 执行以下命令确认 Gateway 正常运行:

openclaw gateway status

预期输出包含 runningactive


步骤四:发送语音消息验证功能

操作: 通过已配置的 channel(如 Discord、Telegram、WhatsApp),向 OpenClaw 发送一条语音消息。

预期结果:

故障排查:


可选配置

显示转录内容(echoTranscript)

如果希望在 agent 处理前,先将转录内容回显到 chat,可添加:

{
  "tools": {
    "media": {
      "audio": {
        "enabled": true,
        "echoTranscript": true,
        "echoFormat": "📝 \"{transcript}\"",
        "models": ["..."]
      }
    }
  }
}

限制文件大小(maxBytes)

默认上限为 20MB。如需调整:

{
  "tools": {
    "media": {
      "audio": {
        "enabled": true,
        "maxBytes": 10485760,
        "models": ["..."]
      }
    }
  }
}

按 chat 类型限制转录范围(scope)

如果只想在私聊中转录,群组中不转录:

{
  "tools": {
    "media": {
      "audio": {
        "enabled": true,
        "scope": {
          "default": "allow",
          "rules": [
            { "action": "deny", "match": { "chatType": "group" } }
          ]
        },
        "models": ["..."]
      }
    }
  }
}

完整配置示例

以下是含转录功能的最简完整配置片段(~/.openclaw/openclaw.json 中的相关部分):

{
  "tools": {
    "media": {
      "audio": {
        "enabled": true,
        "echoTranscript": false,
        "models": [
          {
            "type": "cli",
            "command": "curl",
            "args": [
              "-s",
              "https://<YOUR_ENDPOINT>/openai/deployments/<YOUR_DEPLOYMENT_NAME>/audio/transcriptions?api-version=2025-03-01-preview",
              "-H",
              "api-key: <YOUR_API_KEY>",
              "-F",
              "file=@{{MediaPath}}"
            ]
          }
        ]
      }
    }
  }
}

⚠️ 安全提示:API Key 以明文存储在配置文件中,请确保 ~/.openclaw/openclaw.json 的文件权限设置为仅所有者可读(chmod 600 ~/.openclaw/openclaw.json)。


参考资料


Share this post on:

Next Post
Setting Up Voice Message Transcription in OpenClaw (Azure OpenAI Whisper)