Voice Message

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

跨平台语音消息发送方案,基于Edge-TTS实现文本转语音,支持Telegram、Discord、飞书等多渠道原生语音气泡格式,解决asVoice兼容性问题

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

使用说明

核心功能

voice-message 是一个跨平台语音消息自动化工具,通过整合微软Edge-TTS语音合成与ffmpeg音频处理,实现文本到语音消息的一站式转换与投递。核心工作流分为三步:文本→OGG/Opus语音文件生成→渠道特定API调用。

显著优势

多平台深度适配:不仅提供通用asVoice=true方案(Telegram/WhatsApp/Signal),更针对飞书、Discord等平台开发了原生API对接脚本,解决asVoice参数不兼容导致的文件附件降级问题。飞书方案完整实现了tenant_access_token多账号管理、duration精确计算、audio消息类型等关键参数链,确保语音气泡正确渲染。

企业级飞书支持:独特价值在于飞书多租户架构适配——通过~/.openclaw/openclaw.json的accounts配置实现多Bot隔离,避免open_id cross app错误;严格区分opus上传与audio发送的API组合,杜绝文件附件误发送。

Discord语音消息完整实现:集成waveform波形生成(Python脚本计算Base64波形数据)与flags:8192标志位,符合Discord语音消息协议要求,避免50161错误。

局限与风险

外部依赖较重:依赖edge-tts(Python包)、ffmpeg/ffprobe系统二进制,部署环境需预装配置。

凭证管理复杂:飞书tenant_token需实时获取(2小时有效期),且多账号场景下需动态读取JSON配置,增加调用链路复杂度。

平台API耦合度高:飞书/Discord方案硬编码API路径与参数结构,平台接口变更将导致功能失效。

安全风险点:脚本涉及appSecret提取与curl明文传输,需确保openclaw.json文件权限管控;tenant_token缓存策略缺失,高频调用可能触发限流。

适用场景

  • 多平台客服Bot语音消息推送
  • 飞书企业工作流语音通知(需原生语音气泡体验)
  • Discord社区自动化语音交互

建议

生产环境建议封装token缓存层,增加API降级策略(失败时转文件附件),并对openclaw.json实施600权限管控。

安全解读

核心用法

voice-message 是一款专注于多平台语音消息发送的 Agent Skill。其核心工作流程分为两步:首先通过 scripts/gen_voice.sh 调用 edge-tts 将文本转换为 OGG/Opus 格式的音频文件,再利用 ffmpeg/ffprobe 进行格式转换和时长检测;随后根据目标平台选择对应的发送方式——Telegram、Signal、WhatsApp 等平台可直接使用 asVoice=true 参数发送,而飞书(Feishu/Lark)和 Discord 则需调用专属脚本绕过平台限制,实现真正的语音气泡效果。

对于飞书平台,该 Skill 提供了完整的双步发送方案:先上传音频文件获取 file_key,再发送 msg_type=audio 消息。特别注意需从 ~/.openclaw/openclaw.json 读取对应 Agent 的 appId 和 appSecret 以获取 tenant_access_token,并严格使用 file_type=opus 参数确保生成语音气泡而非文件附件。Discord 端则需额外生成波形数据(waveform)并设置 flags: 8192 标志位。

显著优点

1. 多平台统一封装:将 Telegram、飞书、Discord、WhatsApp 等主流平台的语音消息发送差异抽象为统一接口,显著降低开发者的接入成本。

2. 本地化 TTS 引擎:采用微软 Edge TTS(edge-tts),支持中文(zh-CN-XiaoxiaoNeural)、英文(en-US-JennyNeural)等多语言音色,无需调用云端 API 即可生成自然语音。

3. 平台特性深度适配:针对飞书不支持 asVoice=true 的限制、Discord 需要波形数据的特殊要求,提供了经过验证的 workaround 方案,确保语音消息在各平台呈现为原生气泡样式。

4. 多账户支持:飞书配置支持 accounts 字段下的多 Agent 隔离,避免跨应用授权错误(99992361 open_id cross app)。

潜在缺点与局限性

1. 外部依赖繁重:强制依赖 edge-tts、ffmpeg、ffprobe 三个系统级工具,Windows 环境配置复杂度高,且需用户自行维护版本兼容性。

2. 飞书配置门槛高:需手动创建飞书应用、获取 appId/appSecret、配置多账户映射,对非技术人员友好度较低;Token 获取流程涉及 Python 脚本解析 JSON,增加了故障排查难度。

3. 平台 API 耦合风险:飞书和 Discord 的 API 参数要求极为严格(如 file_type=opus 与 file_type=stream 的区别、msg_type=audio 与 file 的区别),一旦平台更新 API 规范,现有脚本可能失效。

4. 缺乏输入验证:当前脚本对用户输入参数缺乏长度限制和字符白名单检查,存在潜在的命令注入风险(尽管未直接使用用户输入拼接命令)。

5. Discord 波形生成依赖 Python:需要额外调用 Python 脚本生成波形,增加了运行时复杂度。

适合的目标群体

  • 企业协作场景运维人员:需要在飞书机器人中集成语音播报、语音通知功能的内部系统开发者。
  • 多平台社区运营者:管理跨 Telegram、Discord 的社群,希望统一语音内容发布流程的运营团队。
  • 自动化工作流构建者:使用 OpenClaw 等 Agent 框架搭建告警通知、定时播报等自动化场景的开发者。

使用风险

1. 配置文件泄露风险:~/.openclaw/openclaw.json 包含飞书应用的敏感凭证,若权限设置不当(未设为 600)可能导致 tenant_access_token 泄露,进而被恶意利用访问企业数据。

2. 临时文件残留:语音文件生成过程中使用 /tmp 目录,若进程异常中断可能导致临时文件残留,长期运行可能占用磁盘空间。

3. API 配额与速率限制:频繁调用飞书 tenant_access_token 接口或 Discord 消息接口可能触发平台限流,影响服务稳定性。

4. 网络请求静默失败:curl 使用 -s 静默模式且未强制 --fail,部分网络错误可能被忽略,导致消息发送失败却无明确报错。

5. 依赖工具版本兼容性:edge-tts 和 ffmpeg 的版本差异可能导致音频格式或编码参数不兼容,建议在容器化环境中锁定工具版本。

Voice Message 内容

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