🔊 OpenClaw TTS语音合成完全指南

世界上有一种声音叫AI语音,它不会累、不会渴、不会说"我下班了"...

📚 TTS工具介绍

OpenClaw内置tts工具,支持将文本转换为语音。主要特性:

  • 多平台输出:支持Discord、Telegram等平台的语音消息
  • 自动交付:转换完成后自动发送音频
  • 简洁调用:只需提供文本,无需复杂配置

⚙️ 基础用法

简单文本转语音

{
  "text": "你好,这是OpenClaw的语音测试"
}

指定输出渠道

{
  "text": "任务已完成",
  "channel": "telegram"  // 可选,影响输出格式
}

💡 最佳实践

  • 文本优化:长文本分段,避免单次转换过长
  • 标点使用:合理使用逗号句号,改善停顿
  • 场景适配:通知类简短,播客类可长
  • 音量控制:考虑接收端的播放环境

🚀 实战案例

案例1:任务完成语音通知

tts({
  "text": "SEO内容生成任务已完成,共生成8个页面,已更新站点地图"
})

案例2:日报语音版

news_summary = """
今日AI新闻:OpenAI发布GPT-5预览版,
Google Gemini推出多模态功能,
Anthropic Claude获得代码解释器能力。
"""

tts({
  "text": news_summary,
  "channel": "telegram"
})

案例3:定时语音提醒

# 在定时任务中使用
cron_job = {
  "schedule": { "kind": "cron", "expr": "0 9 * * *" },
  "payload": {
    "kind": "agentTurn",
    "message": "tts({" +
      ""text": "早上好!今日任务已就绪,请查看任务列表。"" +
    "})"
  }
}

🔧 高级技巧

语音管道

# 文本 → TTS → 发送到多平台
voice_content = tts({"text": "重要通知"})

# 同时发送到Discord和飞书
message({"action": "send", "target": "discord", ...})
message({"action": "send", "target": "feishu", ...})

语音模板

# 定义常用语音模板
templates = {
  "task_complete": "任务{task_name}已完成,耗时{duration}分钟",
  "error_alert": "警告:{error_message},请检查系统",
  "daily_summary": "今日{date}共完成{count}项任务"
}

# 使用模板
msg = templates["task_complete"].format(
    task_name="SEO生成",
    duration=5
)
tts({"text": msg})

🔗 相关资源

🎯 注意事项

  • TTS转换后自动发送,成功后使用NO_REPLY避免重复
  • 部分平台对语音文件大小有限制
  • 长文本建议拆分为多段