快速开始

文本转语音

OpenClaw 可通过 14 个语音提供商将出站回复转换为音频: 在 Feishu、Matrix、Telegram 和 WhatsApp 上发送原生语音消息;在其他渠道发送音频 附件;并为电话和 Talk 提供 PCM/Ulaw 流。

TTS 是 Talk 的 stt-tts 模式中的语音输出部分(talk.speak 调用同一 合成路径)。提供商原生的 realtime Talk 会话改为在实时提供商内部合成 语音;transcription 会话绝不会合成智能体语音回复。

快速开始

  • 选择提供商

    OpenAI 和 ElevenLabs 是最可靠的托管选项。Microsoft 和 Local CLI 无需 API key 即可使用。完整列表请参阅提供商矩阵

  • 设置 API key

    导出你的提供商所需的环境变量(例如 OPENAI_API_KEYELEVENLABS_API_KEY)。Microsoft 和 Local CLI 无需密钥。

  • 在配置中启用

    设置 messages.tts.auto: "always"messages.tts.provider

    json5
    {  messages: {    tts: {      auto: "always",      provider: "elevenlabs",    },  },}
  • 在聊天中试用

    /tts status 显示当前状态。/tts audio Hello from OpenClaw 会发送一次性音频回复。

  • 支持的提供商

    提供商 身份验证 说明
    Azure Speech AZURE_SPEECH_KEY + AZURE_SPEECH_REGION(也支持 AZURE_SPEECH_API_KEYSPEECH_KEYSPEECH_REGION 原生 Ogg/Opus 语音消息输出和电话功能。
    DeepInfra DEEPINFRA_API_KEY 与 OpenAI 兼容的 TTS。默认为 hexgrad/Kokoro-82M
    ElevenLabs ELEVENLABS_API_KEYXI_API_KEY 支持声音克隆和多语言;通过 seed 实现确定性;为 Discord 语音播放提供流式传输。
    Google Gemini GEMINI_API_KEYGOOGLE_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_TOKENMINIMAX_CODE_PLAN_KEYMINIMAX_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_KEYBYTEPLUS_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

    json5
    {messages: {tts: {  auto: "always",  provider: "azure-speech",  providers: {    "azure-speech": {      apiKey: "${AZURE_SPEECH_KEY}",      region: "eastus",      speakerVoice: "en-US-JennyNeural",      lang: "en-US",      outputFormat: "audio-24khz-48kbitrate-mono-mp3",      voiceNoteOutputFormat: "ogg-24khz-16bit-mono-opus",    },  },},},}

    ElevenLabs

    json5
    {messages: {tts: {  auto: "always",  provider: "elevenlabs",  providers: {    elevenlabs: {      apiKey: "${ELEVENLABS_API_KEY}",      model: "eleven_multilingual_v2",      speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",    },  },},},}

    Google Gemini

    json5
    {messages: {tts: {  auto: "always",  provider: "google",  providers: {    google: {      apiKey: "${GEMINI_API_KEY}",      model: "gemini-3.1-flash-tts-preview",      speakerVoice: "Kore",      // 可选的自然语言风格提示:      // audioProfile: "以沉稳的播客主持人口吻说话。",      // speakerName: "Alex",    },  },},},}

    Gradium

    json5
    {messages: {tts: {  auto: "always",  provider: "gradium",  providers: {    gradium: {      apiKey: "${GRADIUM_API_KEY}",      speakerVoiceId: "YTpq7expH9539ERJ",    },  },},},}

    Inworld

    json5
    {messages: {tts: {  auto: "always",  provider: "inworld",  providers: {    inworld: {      apiKey: "${INWORLD_API_KEY}",      modelId: "inworld-tts-1.5-max",      speakerVoiceId: "Sarah",      temperature: 0.7,    },  },},},}

    Local CLI

    json5
    {messages: {tts: {  auto: "always",  provider: "tts-local-cli",  providers: {    "tts-local-cli": {      command: "say",      args: ["-o", "{{OutputPath}}", "{{Text}}"],      outputFormat: "wav",      timeoutMs: 120000,    },  },},},}

    Microsoft(无需密钥)

    json5
    {messages: {tts: {  auto: "always",  provider: "microsoft",  providers: {    microsoft: {      enabled: true,      speakerVoice: "en-US-MichelleNeural",      lang: "en-US",      outputFormat: "audio-24khz-48kbitrate-mono-mp3",      rate: "+0%",      pitch: "+0%",    },  },},},}

    MiniMax

    json5
    {messages: {tts: {  auto: "always",  provider: "minimax",  providers: {    minimax: {      apiKey: "${MINIMAX_API_KEY}",      model: "speech-2.8-hd",      speakerVoiceId: "English_expressive_narrator",      speed: 1.0,      vol: 1.0,      pitch: 0,    },  },},},}

    OpenAI + ElevenLabs

    json5
    {messages: {tts: {  auto: "always",  provider: "openai",  summaryModel: "openai/gpt-4.1-mini",  modelOverrides: { enabled: true },  providers: {    openai: {      apiKey: "${OPENAI_API_KEY}",      model: "gpt-4o-mini-tts",      speakerVoice: "alloy",    },    elevenlabs: {      apiKey: "${ELEVENLABS_API_KEY}",      model: "eleven_multilingual_v2",      speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",      voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0 },      applyTextNormalization: "auto",      languageCode: "en",    },  },},},}

    OpenRouter

    json5
    {messages: {tts: {  auto: "always",  provider: "openrouter",  providers: {    openrouter: {      apiKey: "${OPENROUTER_API_KEY}",      model: "hexgrad/kokoro-82m",      speakerVoice: "af_alloy",      responseFormat: "mp3",    },  },},},}

    Volcengine

    json5
    {messages: {tts: {  auto: "always",  provider: "volcengine",  providers: {    volcengine: {      apiKey: "${VOLCENGINE_TTS_API_KEY}",      resourceId: "seed-tts-1.0",      speakerVoice: "en_female_anna_mars_bigtts",    },  },},},}

    xAI

    json5
    {messages: {tts: {  auto: "always",  provider: "xai",  providers: {    xai: {      apiKey: "${XAI_API_KEY}",      speakerVoiceId: "eve",      language: "en",      responseFormat: "mp3",    },  },},},}

    Xiaomi MiMo

    json5
    {messages: {tts: {  auto: "always",  provider: "xiaomi",  providers: {    xiaomi: {      apiKey: "${XIAOMI_API_KEY}",      model: "mimo-v2.5-tts",      speakerVoice: "mimo_default",      format: "mp3",    },  },},},}

    对于 Xiaomi mimo-v2.5-tts-voicedesign,请省略 speakerVoice,并将 style 设置为 声音设计提示。OpenClaw 会将该提示作为 TTS 的 user 消息发送, 且不会为 voicedesign 模型发送 audio.voice

    按智能体覆盖语音设置

    当某个智能体需要使用不同的提供商、语音、模型、角色或自动 TTS 模式时,请使用 agents.list[].tts。智能体配置块会深度合并并覆盖 messages.tts,因此提供商凭据可以保留在全局提供商配置中:

    json5
    {  messages: {    tts: {      auto: "always",      provider: "elevenlabs",      providers: {        elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2" },      },    },  },  agents: {    list: [      {        id: "reader",        tts: {          providers: {            elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL" },          },        },      },    ],  },}

    要为单个智能体固定角色,请在提供商配置旁设置 agents.list[].tts.persona——它只会为该智能体覆盖全局 messages.tts.persona

    自动回复、/tts audio/tts statustts 智能体工具的优先级顺序:

    1. messages.tts
    2. 活动的 agents.list[].tts
    3. 渠道覆盖(当渠道支持 channels.<channel>.tts 时)
    4. 账户覆盖(当渠道传递 channels.<channel>.accounts.<id>.tts 时)
    5. 此主机的本地 /tts 偏好设置
    6. 启用模型驱动的指令时的内联 [[tts:...]] 指令

    渠道和账户覆盖使用与 messages.tts 相同的结构,并通过深度合并覆盖之前的层,因此共享提供商凭据可以保留在 messages.tts 中,而渠道或 Bot 账户只更改说话语音、模型、角色或自动模式:

    json5
    {  messages: {    tts: {      provider: "openai",      providers: {        openai: { apiKey: "${OPENAI_API_KEY}", model: "gpt-4o-mini-tts" },      },    },  },  channels: {    feishu: {      accounts: {        english: {          tts: {            providers: {              openai: { speakerVoice: "shimmer" },            },          },        },      },    },  },}

    角色

    角色是一种稳定的语音身份,可以确定性地应用于不同提供商。它可以首选某个提供商、定义与提供商无关的提示意图,并携带针对语音、模型、提示模板、种子和语音设置的提供商特定绑定。

    最小角色配置

    json5
    {  messages: {    tts: {      auto: "always",      persona: "narrator",      personas: {        narrator: {          label: "旁白",          provider: "elevenlabs",          providers: {            elevenlabs: {              speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",              modelId: "eleven_multilingual_v2",            },          },        },      },    },  },}

    完整角色配置(与提供商无关的提示)

    json5
    {  messages: {    tts: {      auto: "always",      persona: "alfred",      personas: {        alfred: {          label: "阿尔弗雷德",          description: "冷幽默、温暖的英式管家旁白。",          provider: "google",          fallbackPolicy: "preserve-persona",          prompt: {            profile: "一位才华横溢的英式管家。冷幽默、机智、温暖、迷人、情感丰富,绝不平庸。",            scene: "安静的深夜书房。面向可信操作员的近距离麦克风旁白。",            sampleContext: "说话者正以简洁的自信和克制的温暖回应一项私人技术请求。",            style: "优雅、克制,略带笑意。",            accent: "英式英语。",            pacing: "节奏从容,带有短暂的戏剧性停顿。",            constraints: ["不要朗读配置值。", "不要解释角色。"],          },          providers: {            google: {              model: "gemini-3.1-flash-tts-preview",              speakerVoice: "Algieba",              promptTemplate: "audio-profile-v1",            },            openai: { model: "gpt-4o-mini-tts", speakerVoice: "cedar" },            elevenlabs: {              speakerVoiceId: "voice_id",              modelId: "eleven_multilingual_v2",              seed: 42,              voiceSettings: {                stability: 0.65,                similarityBoost: 0.8,                style: 0.25,                useSpeakerBoost: true,                speed: 0.95,              },            },          },        },      },    },  },}

    角色解析

    活动角色按以下确定性顺序选择:

    1. /tts persona <id> 本地偏好设置(若已设置)。
    2. messages.tts.persona(若已设置)。
    3. 无角色。

    提供商选择遵循显式设置优先原则:

    1. 直接覆盖(CLI、Gateway 网关、Talk、允许的 TTS 指令)。
    2. /tts provider <id> 本地偏好设置。
    3. 活动角色的 provider
    4. messages.tts.provider
    5. 注册表自动选择。

    对于每次提供商尝试,OpenClaw 按以下顺序合并配置:

    1. messages.tts.providers.<id>
    2. messages.tts.personas.<persona>.providers.<id>
    3. 可信请求覆盖
    4. 允许的模型输出 TTS 指令覆盖

    提供商如何使用角色提示

    角色提示字段(profilescenesampleContextstyleaccentpacingconstraints与提供商无关。每个提供商自行决定如何使用它们:

    Google Gemini

    仅当有效的 Google 提供商配置设置了 promptTemplate: "audio-profile-v1"personaPrompt 时,才会将角色提示字段包装进 Gemini TTS 提示结构。较旧的 audioProfilespeakerName 字段仍会作为 Google 特定提示文本添加到前面。[[tts:text]] 块中的 [whispers][laughs] 等内联音频标签会原样保留在 Gemini 文本记录中;OpenClaw 不会生成这些标签。

    OpenAI

    仅当未配置显式的 OpenAI instructions 时,才会将角色提示字段映射到请求的 instructions 字段。显式的 instructions 始终优先。

    其他提供商

    仅使用 personas.<id>.providers.<provider> 下特定于提供商的角色绑定。除非提供商实现了自己的角色提示映射,否则会忽略角色提示字段。

    回退策略

    fallbackPolicy 控制角色没有绑定到尝试使用的提供商时的行为:

    策略 行为
    preserve-persona **默认。**与提供商无关的提示字段仍然可用;提供商可以使用或忽略它们。
    provider-defaults 在该次尝试的提示准备过程中省略角色;提供商使用其中性默认设置,同时继续回退到其他提供商。
    fail 跳过该提供商尝试,并附带 reasonCode: "not_configured"personaBinding: "missing"。仍会尝试回退提供商。

    仅当尝试的所有提供商均被跳过或失败时,整个 TTS 请求才会失败。

    Talk 会话的提供商选择以会话为作用域。Talk 客户端应从 talk.catalog 中选择提供商 ID、模型 ID、语音 ID 和区域设置,并通过 Talk 会话或移交请求传递它们。打开语音会话不应修改 messages.tts 或全局 Talk 提供商默认设置。

    模型驱动的指令

    默认情况下,助手可以输出 [[tts:...]] 指令,为单次回复覆盖语音、模型或速度,还可以添加一个可选的 [[tts:text]]...[[/tts:text]] 块,用于只应出现在音频中的表现力提示:

    text
    给你。 [[tts:speakerVoiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]][[tts:text]](笑)再读一遍这首歌。[[/tts:text]]

    messages.tts.auto"tagged" 时,必须有指令才能触发音频。分块流式传输会在渠道看到可见文本之前移除指令,即使指令被拆分到相邻块中也是如此。

    除非 modelOverrides.allowProvider: true,否则会忽略 provider=...。当回复声明 provider=... 时,该指令中的其他键仅由该提供商解析;不支持的键会被移除,并作为 TTS 指令警告报告。

    可用的指令键:

    • provider(已注册的提供商 ID;需要 allowProvider: true
    • speakerVoice / speakerVoiceId(旧别名:voicevoiceNamevoice_namegoogle_voicevoiceId
    • model / google_model
    • stabilitysimilarityBooststylespeeduseSpeakerBoost
    • vol / volume(MiniMax 音量,(0, 10]
    • pitch(MiniMax 整数音高,−12 到 12;小数值会被截断)
    • emotion(Volcengine 情绪标签)
    • applyTextNormalizationauto|on|off
    • languageCode(ISO 639-1)
    • seed

    完全禁用模型覆盖:

    json5
    { messages: { tts: { modelOverrides: { enabled: false } } } }

    允许切换提供商,同时保持其他参数可配置:

    json5
    { messages: { tts: { modelOverrides: { enabled: true, allowProvider: true, allowSeed: false } } } }

    斜杠命令

    单一命令 /tts。在 Discord 上,OpenClaw 还会注册 /voice,因为 /tts 是 Discord 的内置命令——文本 /tts ... 仍然有效。

    text
    /tts off | on | status/tts chat on | off | default/tts latest/tts provider <id>/tts persona <id> | off/tts limit <chars>/tts summary off/tts audio <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 标题/消息的最大长度);超出此范围的值会被拒绝。
    • limitsummary 存储在本地偏好设置中,而不是主配置中。
    • /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 覆盖(alwaysoff、…)
    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 或其他可能的音频文件形式生成时,渠道插件会在发送原生语音消息前,使用 ffmpeglibopus,64 kbps)将其转码为 48 kHz Ogg/Opus。WhatsApp 通过 Baileys audio 载荷发送结果,并设置 ptt: trueaudio/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;对于缓冲和流式输出,音频文件合成都可以使用 mp3wavpcmmulawalaw。语音消息目标的流式输出和缓冲回退均使用 MP3,因为 xAI 的 pcmmulawalaw 输出是不含标头的原始音频。缓冲合成使用 xAI 的批处理 REST /v1/tts 端点;textToSpeechStream 使用原生 wss://api.x.ai/v1/tts。这不是实时语音契约。不支持原生 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-XiaoxiaoNeuralzh-CN 区域设置)。

    OpenAI 和 ElevenLabs 的输出格式按上述各渠道固定。

    自动 TTS 行为

    当启用 messages.tts.auto 时,OpenClaw 会:

    • 如果回复已包含结构化媒体,则跳过 TTS。
    • 跳过非常短的回复(少于 10 个字符)。
    • 启用摘要时,使用 summaryModel(或 agents.defaults.model.primary)概括较长的回复。
    • 将生成的音频附加到回复中。
    • mode: "final" 中,文本流完成后,仍会为流式传输的最终回复仅发送 TTS 音频;生成的媒体会经过与普通回复附件相同的渠道媒体规范化处理。

    如果回复超过 maxLength,OpenClaw 绝不会直接跳过音频:

    • 开启摘要(默认)且摘要模型可用:将文本概括为大约 maxLength 个字符,然后合成摘要。
    • 关闭摘要、概括失败或摘要模型没有可用的 API key:将文本截断为 maxLength 个字符,并合成截断后的文本。
    text
    回复 -> 已启用 TTS?  否  -> 发送文本  是 -> 包含媒体 / 内容很短?          是 -> 发送文本          否  -> 长度 > 限制?                   否  -> TTS -> 附加音频                   是 -> 摘要已启用且可用?                            否  -> 截断 -> TTS -> 附加音频                            是 -> 概括 -> TTS -> 附加音频

    字段参考

    顶层 messages.tts.*
    auto"off" | "always" | "inbound" | "tagged"

    自动 TTS 模式。inbound 仅在收到语音消息后发送音频;tagged 仅在回复包含 [[tts:...]] 指令或 [[tts:text]] 块时发送音频。

    enabledboolean

    旧版开关。openclaw doctor --fix 会将其迁移到 auto

    mode"final" | "all"default: final

    除最终回复外,"all" 还包括工具/块回复。

    providerstring

    语音提供商 ID。未设置时,OpenClaw 使用注册表自动选择顺序中第一个已配置的提供商。openclaw doctor --fix 会将旧版 provider: "edge" 重写为 "microsoft"

    personastring

    personas 中的活动人设 ID。会规范化为小写。

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBlcnNvbmFzLjxpZA " type="object"> 稳定的语音身份。字段:labeldescriptionproviderfallbackPolicypromptproviders.<provider>。请参阅人设

    summaryModelstring

    用于自动摘要的低成本模型;默认为 agents.defaults.model.primary。接受 provider/model 或已配置的模型别名。

    modelOverridesobject

    允许模型发出 TTS 指令。enabled 默认为 trueallowProvider 默认为 false

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb3ZpZGVycy48aWQ " type="object"> 以语音提供商 ID 为键、由提供商所有的设置。openclaw doctor --fix 会重写旧版直接配置块(messages.tts.openai.elevenlabs.microsoft.edge);仅提交 messages.tts.providers.<id>

    maxTextLengthnumberdefault: 4096

    TTS 输入字符数的硬性上限。超过上限时,/tts audiotts.converttts.speak 会失败。

    timeoutMsnumberdefault: 30000

    请求超时时间(毫秒)。设置后,单次调用的 timeoutMs(智能体工具、Gateway 网关)优先;否则,显式配置的 messages.tts.timeoutMs 优先于任何由插件定义的提供商默认值。

    prefsPathstring

    覆盖本地偏好设置 JSON 路径(提供商/限制/摘要)。默认为 ~/.openclaw/settings/tts.json

    Azure Speech

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 环境变量:AZURE_SPEECH_KEYAZURE_SPEECH_API_KEYSPEECH_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlZ2lvbiIgdHlwZT0ic3RyaW5nIg Azure Speech 区域(例如 eastus)。环境变量:AZURE_SPEECH_REGIONSPEECH_REGION。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVuZHBvaW50IiB0eXBlPSJzdHJpbmci 可选的 Azure Speech 端点覆盖值(别名 baseUrl)。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Azure 语音 ShortName。默认为 en-US-JennyNeural。旧版别名:voice。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI SSML 语言代码。默认为 en-US。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg 用于标准音频的 Azure X-Microsoft-OutputFormat。默认为 audio-24khz-48kbitrate-mono-mp3。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlTm90ZU91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg 用于语音消息输出的 Azure X-Microsoft-OutputFormat。默认为 ogg-24khz-16bit-mono-opus。 OPENCLAW_DOCS_MARKER:paramClose:

    ElevenLabs

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 回退到 ELEVENLABS_API_KEYXI_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci 模型 ID。默认为 eleven_multilingual_v2。旧版 ID eleven_turbo_v2_5/eleven_turbo_v2 会规范化为匹配的 flash 模型。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci ElevenLabs 语音 ID。默认为 pMsXgVXv3BLzUgSXRplE。旧版别名:voiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    voiceSettingsobject

    stabilitysimilarityBooststyle(每项均为 0..1,默认值为 0.5/0.75/0)、useSpeakerBoosttrue|false,默认值为 true)、speed0.5..2.0,默认值为 1.0)。

    applyTextNormalization"auto" | "on" | "off"

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlQ29kZSIgdHlwZT0ic3RyaW5nIg 2 字母 ISO 639-1 代码(例如 ende)。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNlZWQiIHR5cGU9Im51bWJlciI 用于尽力保证确定性的整数 0..4294967295。 OPENCLAW_DOCS_MARKER:paramClose:

    baseUrlstring
    Google Gemini

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 回退到 GEMINI_API_KEY / GOOGLE_API_KEY。如果省略,TTS 可以在回退到环境变量之前复用 models.providers.google.apiKey。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci Gemini TTS 模型。默认值为 gemini-3.1-flash-tts-preview。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Gemini 预构建语音名称。默认值为 Kore。旧版别名:voiceNamevoice。 OPENCLAW_DOCS_MARKER:paramClose:

    audioProfilestring
    speakerNamestring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb21wdFRlbXBsYXRlIiB0eXBlPSciYXVkaW8tcHJvZmlsZS12MSIn 设为 audio-profile-v1,以确定性的 Gemini TTS 提示词结构封装启用中的角色提示词字段。 OPENCLAW_DOCS_MARKER:paramClose:

    personaPromptstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI 仅接受 https://generativelanguage.googleapis.com。 OPENCLAW_DOCS_MARKER:paramClose:

    Gradium

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 环境变量:GRADIUM_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI 位于 api.gradium.ai 的 HTTPS Gradium API URL。默认值为 https://api.gradium.ai。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci 默认为 Emma(YTpq7expH9539ERJ)。旧版别名:voiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    Inworld

    Inworld 主配置

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 环境变量:INWORLD_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI 默认值为 https://api.inworld.ai。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsSWQiIHR5cGU9InN0cmluZyI 默认值为 inworld-tts-1.5-max。其他选项:inworld-tts-1.5-miniinworld-tts-1-maxinworld-tts-1。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci 默认值为 Sarah。旧版别名:voiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRlbXBlcmF0dXJlIiB0eXBlPSJudW1iZXIi 采样温度 0..2(不含 0)。 OPENCLAW_DOCS_MARKER:paramClose:

    本地 CLI (tts-local-cli)
    commandstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFyZ3MiIHR5cGU9InN0cmluZ1tdIg 命令参数。支持 {{Text}}{{OutputPath}}{{OutputDir}}{{OutputBase}} 占位符。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0nIm1wMyIgfCAib3B1cyIgfCAid2F2Iic 预期的 CLI 输出格式。音频附件的默认值为 mp3。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRpbWVvdXRNcyIgdHlwZT0ibnVtYmVyIg 命令超时时间(毫秒)。默认值为 120000。 OPENCLAW_DOCS_MARKER:paramClose:

    cwdstring
    env"Record<string,

    命令标准输出以及生成或转换后的音频限制为 50 MiB。诊断标准错误输出限制为 1 MiB。任一限制被超出时,OpenClaw 都会终止命令并使语音合成失败。

    Microsoft(无需 API key)
    enabledbooleandefault: true

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Microsoft 神经网络语音名称(例如 en-US-MichelleNeural)。旧版别名:voice。如果当前使用默认英语语音且回复文本以 CJK 字符为主,OpenClaw 会自动切换到 zh-CN-XiaoxiaoNeural。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI 语言代码(例如 en-US)。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg Microsoft 输出格式。默认值为 audio-24khz-48kbitrate-mono-mp3。内置的基于 Edge 的传输方式并不支持所有格式。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJhdGUgLyBwaXRjaCAvIHZvbHVtZSIgdHlwZT0ic3RyaW5nIg 百分比字符串(例如 +10%-5%)。 OPENCLAW_DOCS_MARKER:paramClose:

    saveSubtitlesboolean
    proxystring
    timeoutMsnumber

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVkZ2UuKiIgdHlwZT0ib2JqZWN0IiBkZXByZWNhdGVk 旧版别名。运行 openclaw doctor --fix,将持久化配置重写为 providers.microsoft。 OPENCLAW_DOCS_MARKER:paramClose:

    MiniMax

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 回退到 MINIMAX_API_KEY。通过 MINIMAX_OAUTH_TOKENMINIMAX_CODE_PLAN_KEYMINIMAX_CODING_API_KEY 进行 Token Plan 身份验证。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI 默认值为 https://api.minimax.io。环境变量:MINIMAX_API_HOST。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci 默认值为 speech-2.8-hd。环境变量:MINIMAX_TTS_MODEL。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci 默认值为 English_expressive_narrator。环境变量:MINIMAX_TTS_VOICE_ID。旧版别名:voiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi 0.5..2.0。默认值为 1.0。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvbCIgdHlwZT0ibnVtYmVyIg (0, 10]。默认值为 1.0。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBpdGNoIiB0eXBlPSJudW1iZXIi 整数 -12..12。默认值为 0。请求前会截断小数值。 OPENCLAW_DOCS_MARKER:paramClose:

    OpenAI

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 回退到 OPENAI_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci OpenAI TTS 模型 ID。默认值为 gpt-4o-mini-tts。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg 语音名称(例如 alloycedar)。默认值为 coral。旧版别名:voice。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imluc3RydWN0aW9ucyIgdHlwZT0ic3RyaW5nIg 显式的 OpenAI instructions 字段。设置后,角色提示词字段不会自动映射。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImV4dHJhQm9keSAvIGV4dHJhX2JvZHkiIHR5cGU9IlJlY29yZDxzdHJpbmcsIHVua25vd24 ">在生成的 OpenAI TTS 字段之后合并到 /audio/speech 请求正文中的额外 JSON 字段。可用于 Kokoro 等需要 lang 之类提供商专用键的 OpenAI 兼容端点;不安全的原型键会被忽略。 OPENCLAW_DOCS_MARKER:paramClose:

    baseUrlstring

    覆盖 OpenAI TTS 端点。解析顺序:配置 → OPENAI_TTS_BASE_URLhttps://api.openai.com/v1。非默认值会被视为 OpenAI 兼容 TTS 端点,因此接受自定义模型和语音名称,并且 speed 不再执行 0.25..4.0 范围检查。

    OpenRouter

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 环境变量:OPENROUTER_API_KEY。可以复用 models.providers.openrouter.apiKey。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI 默认值为 https://openrouter.ai/api/v1。旧版 https://openrouter.ai/v1 会被规范化。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci 默认值为 hexgrad/kokoro-82m。别名:modelId。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg 默认值为 af_alloy。旧版别名:voicevoiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJwY20iJw 默认值为 mp3。 OPENCLAW_DOCS_MARKER:paramClose:

    speednumber
    Volcengine(BytePlus Seed Speech)

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 环境变量:VOLCENGINE_TTS_API_KEYBYTEPLUS_SEED_SPEECH_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc291cmNlSWQiIHR5cGU9InN0cmluZyI 默认值为 seed-tts-1.0。环境变量:VOLCENGINE_TTS_RESOURCE_ID。当你的项目拥有 TTS 2.0 权限时,使用 seed-tts-2.0。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcEtleSIgdHlwZT0ic3RyaW5nIg App key 请求头。默认值为 aGjiRDfUWi。环境变量:VOLCENGINE_TTS_APP_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI 覆盖 Seed Speech TTS HTTP 端点。环境变量:VOLCENGINE_TTS_BASE_URL。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg 语音类型。默认值为 en_female_anna_mars_bigtts。环境变量:VOLCENGINE_TTS_VOICE。旧版别名:voice。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkUmF0aW8iIHR5cGU9Im51bWJlciI 提供商原生速度比率,0.2..3。 OPENCLAW_DOCS_MARKER:paramClose:

    emotionstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcElkIC8gdG9rZW4gLyBjbHVzdGVyIiB0eXBlPSJzdHJpbmciIGRlcHJlY2F0ZWQ 旧版 Volcengine Speech Console 字段。环境变量:VOLCENGINE_TTS_APPIDVOLCENGINE_TTS_TOKENVOLCENGINE_TTS_CLUSTER(默认值为 volcano_tts)。 OPENCLAW_DOCS_MARKER:paramClose:

    xAI

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 环境变量:XAI_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI 默认值为 https://api.x.ai/v1。环境变量:XAI_BASE_URL。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci 默认值为 eve。有身份验证时,openclaw infer tts voices --provider xai 会获取当前内置目录;无身份验证时,则列出离线回退项 araeveleorexsal。即使账户自定义语音 ID 不在内置列表中,也会被转发。旧版别名:voiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlIiB0eXBlPSJzdHJpbmci BCP-47 语言代码或 auto。默认值为 en。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJ3YXYiIHwgInBjbSIgfCAibXVsYXciIHwgImFsYXciJw 默认值为 mp3。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi 提供商原生速度覆盖值,0.7..1.5。 OPENCLAW_DOCS_MARKER:paramClose:

    Xiaomi MiMo

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 环境变量:XIAOMI_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI 默认值为 https://api.xiaomimimo.com/v1。环境变量:XIAOMI_BASE_URL。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci 默认值为 mimo-v2.5-tts。环境变量:XIAOMI_TTS_MODEL。还支持 mimo-v2-ttsmimo-v2.5-tts-voicedesign。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg 预设语音模型的默认值为 mimo_default。环境变量:XIAOMI_TTS_VOICE。旧版别名:voice。对于 mimo-v2.5-tts-voicedesign,不会发送此字段。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImZvcm1hdCIgdHlwZT0nIm1wMyIgfCAid2F2Iic 默认值为 mp3。环境变量:XIAOMI_TTS_FORMAT。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InN0eWxlIiB0eXBlPSJzdHJpbmci 作为用户消息发送的可选自然语言风格指令;不会被朗读。对于 mimo-v2.5-tts-voicedesign,这是语音设计提示词;省略时,OpenClaw 会提供默认值。 OPENCLAW_DOCS_MARKER:paramClose:

    Agent 工具

    tts 工具将文本转换为语音,并返回音频附件用于 回复投递。在 Feishu、Matrix、Telegram 和 WhatsApp 上,音频会 作为语音消息而不是文件附件投递。当 ffmpeg 可用时,Feishu 和 WhatsApp 可以在此路径上转码非 Opus TTS 输出。

    WhatsApp 通过 Baileys 将音频作为 PTT 语音消息发送(audio 搭配 ptt: true),并将可见文本与 PTT 音频分开发送,因为 客户端无法始终如一地在语音消息上呈现说明文字。

    该工具接受可选的 channeltimeoutMs 字段;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 列出已配置的提供商及其状态。

    服务链接

    相关内容

    Was this useful?
    On this page

    On this page