核心用法
该 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 变更的监控机制。