Voice Message

🔊 跨平台语音消息一键送达

基于 edge-tts 与 ffmpeg 的多渠道语音消息发送工具,支持飞书原生语音气泡、Discord 波形消息等特殊格式,解决平台 API 差异导致的附件问题。

收藏
7.2k
安装
2.2k
版本
1.0.0
CLS 安全性认证2026-08-11
点击查看完整报告 >

使用说明

核心功能

该技能实现跨平台语音消息自动化发送,覆盖 Telegram、Discord、飞书/Lark、Signal、WhatsApp 等主流渠道。核心链路为:文本 → Microsoft Edge TTS 合成 → OGG/Opus 格式转换 → 平台适配发送。

显著优点:

  • 平台深度适配:针对飞书 asVoice=true 不生效的已知限制,提供原生两步 API 调用方案(上传+发送),确保生成语音气泡而非文件附件
  • Discord 完整支持:实现语音消息特有字段(waveform 波形、duration_secs、flags=8192),符合官方 API 规范
  • 多账户安全隔离:飞书模块支持从 openclaw.json 按 agent 名称读取对应凭证,避免跨应用 open_id 错误
  • 音频参数精确控制:通过 ffprobe 提取时长,确保飞书 duration 毫秒级精度,影响消息形态判定

潜在局限与风险:

  • 外部依赖:强制依赖 edge-tts、ffmpeg/ffprobe,环境缺失将导致失败
  • 凭证管理敏感:飞书 tenant_access_token 需实时获取,脚本中涉及 appSecret 处理,存在泄露风险
  • 平台 API 变动:Discord flags、飞书 file_type/opus 等参数为硬编码,若官方调整需紧急更新
  • 波形生成开销:Discord 需额外 Python 脚本生成 base64 波形,增加调用复杂度

适用人群:

  • 需自动化语音通知的运维/客服团队
  • 跨平台 IM 机器人开发者
  • 对飞书语音气泡形态有强需求的企业用户

常规风险:

  • Token 过期导致发送失败需重试
  • 网络波动引起文件上传中断
  • 多账户配置错误引发权限拒绝(错误码 99992361)

安全解读

核心用法

该 Skill 提供完整的语音消息发送解决方案,将文本转换为自然语音并推送至多种即时通讯平台。核心流程分为两步:首先通过 edge-tts 引擎合成语音文件,再针对不同平台的 API 特性进行精准投递。

语音生成:使用 scripts/gen_voice.sh 调用 Microsoft Edge TTS,支持多语言音色(默认中文 XiaoxiaoNeural、英文 JennyNeural),输出标准 OGG/Opus 格式。脚本自动处理文本编码和文件清理,支持通过参数指定目标音色。

平台适配发送:

  • 通用渠道(Telegram、Signal、WhatsApp):直接通过 message 工具设置 asVoice=true 发送
  • 飞书/ Lark:因平台限制无法使用通用接口,必须通过原生 API 两步走(上传文件获取 file_key,再以 msg_type=audio 发送),脚本自动处理 duration 检测和参数组装
  • Discord:需额外生成波形数据(waveform)并设置消息 flags(8192 = IS_VOICE_MESSAGE),脚本提供 gen_waveform.py 辅助生成符合要求的元数据

显著优点

1. 平台覆盖全面:一套技能打通国内外主流 IM 平台,尤其解决了飞书「语音变文件」的痛点,避免用户收到非预期的附件消息
2. 语音质量优秀:采用微软 Edge 在线 TTS 引擎,中文自然度接近真人,支持多情感风格

3. 工程实践规范:多账号配置支持(channels.feishu.accounts.<agent>)、凭证分级读取(优先匹配当前 agent 配置)、权限安全提示(配置文件 0600 建议)

4. 零敏感硬编码:所有 API 凭证均从本地配置文件动态读取,符合安全最佳实践

5. 依赖成熟稳定:仅依赖 edge-tts、ffmpeg 等社区广泛验证的开源工具,无黑箱组件

潜在缺点与局限性

1. 外部工具依赖:必须预先安装 edge-tts(Python)、ffmpeg/ffprobe,环境配置门槛对非技术用户不友好
2. 网络依赖:Edge TTS 需调用微软在线服务,离线环境或网络受限场景无法使用

3. 平台 API 变更风险:飞书、Discord 等平台的语音消息接口参数较为精细(如 file_type 必须为 opus、flags 必须为 8192),官方调整可能导致功能异常

4. 多账号配置复杂度:虽然支持多账号,但需要用户理解 openclaw.json 的结构层级,配置错误会导致 99992361 open_id cross app 错误

5. 无语音转文字逆向功能:纯单向 TTS,不支持语音消息识别回文本

适合的目标群体

  • 自动化运营团队:需要将通知、告警以语音形式推送到企业 IM(尤其适合飞书用户,解决原生工具不支持语音气泡的问题)
  • 开发者与 DevOps:构建 ChatOps 机器人,为 CI/CD 流程、监控告警增加语音播报能力
  • 多平台内容创作者:统一管理 Telegram、Discord 频道的语音内容分发
  • 企业 IT 管理员:需要跨平台消息触达方案,且关注数据安全(无云上传敏感凭证)

使用风险

1. 凭证管理风险:虽然 Skill 本身不存储密钥,但依赖 ~/.openclaw/openclaw.json 中的明文配置,需确保文件权限严格限制(建议 0600),避免共享环境或容器中的凭证泄露
2. 依赖版本兼容性:ffmpeg 版本差异可能导致 duration 检测失败或编码格式不兼容,建议锁定 tested 版本(如 5.x 或 6.x)

3. API 速率限制:频繁发送可能触发飞书、Discord 的流控,生产环境需自行实现退避重试逻辑

4. 微软 TTS 服务稳定性:Edge TTS 非官方稳定 API,存在服务变更或限制风险,关键业务建议准备备选 TTS 方案

5. 日志敏感信息:调试时可能将 access_token 输出到日志,需确保日志收集系统的脱敏策略

总结

voice-message 是一款功能聚焦、工程扎实的语音消息发送技能,特别适合需要跨平台语音触达且优先使用飞书的企业场景。其安全设计(无硬编码凭证、本地配置隔离)和平台适配深度(飞书原生语音气泡、Discord waveform)体现了社区项目的成熟度。建议用户在部署前完成依赖环境标准化,并建立 API 变更的监控机制。

Voice Message 内容

references文件夹
scripts文件夹
手动下载zip · 5.4 kB
voices.mdtext/markdown
请选择文件