跳转至

文本转语音代理工具和 Gateway RPC

Agent 工具

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

WhatsApp 通过 Baileys 将音频作为 PTT 语音备注(audio 且 ptt: true)发送,并将可见文本单独于 PTT 音频发送,因为客户端在语音备注上渲染标题的行为并不一致。

该工具接受可选的 channel 和 timeoutMs 字段;timeoutMs 是每次调用的 provider 请求超时时间(毫秒)。每次调用的值会覆盖 tts.timeoutMs;已配置的 TTS 超时时间会覆盖任何插件编写的 provider 默认值。

工具配置文件(Tool profiles)

tts 不属于 minimal、coding 或 messaging 工具配置文件。除非你显式授予权限,否则这些配置文件上的 Agent 无法调用它:

{
  tools: {
    profile: "messaging",
    alsoAllow: ["tts"],
  },
}

full 配置文件和未设置配置文件时都会包含 tts,无需额外配置。其他允许/拒绝层仍可将其移除。

工具配置文件不影响自动 TTS:即使 Agent 无法调用 tts 工具,tts.auto 仍会朗读回复。

Gateway RPC

方法 用途
tts.status 读取当前 TTS 状态及最近一次尝试。
tts.enable 将本地自动偏好设置为 always。
tts.disable 将本地自动偏好设置为 off。
tts.convert 一次性文本 → 音频转换。
tts.setProvider 设置本地 provider 偏好。
tts.personas 列出已配置的 personas 及当前启用的。
tts.setPersona 设置本地 persona 偏好。
tts.providers 列出已配置的 providers 及其状态。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw