核心用法
Feishu Voice TTS 技能通过 edge-tts 引擎将文本转换为语音,经 FFmpeg 转码为飞书兼容的 Opus/OGG 格式,最终调用飞书开放平台 API 发送音频消息。主要解决"直接发送语音文件被系统降级为普通文本"的问题,确保消息以原生 audio 形式触达用户。
执行流程:
1. 使用 edge-tts 生成 MP3 语音文件
2. FFmpeg 转码为 16k 单声道 Opus 编码的 OGG 容器
3. 获取飞书 tenant_access_token
4. 上传文件获取 file_key
5. 调用 /im/v1/messages 发送 msg_type=audio 消息
显著优点
- 高可达性保障:绕过飞书文件降级机制,确保语音以原生音频形式呈现
- 自动化闭环:单脚本完成 TTS→转码→上传→发送全流程,无需人工干预
- 音色可配置:支持 edge-tts 多音色切换(默认 zh-CN-YunxiNeural)
- 环境变量友好:支持通过环境变量覆盖配置,便于 CI/CD 集成
潜在缺点与局限性
- 依赖链较长:需同时满足 ffmpeg、edge-tts、Python 环境及飞书配置四重要求
- 仅限飞书生态:channel=feishu 时才触发,无法跨平台复用
- 无持久化存储:临时文件生命周期依赖脚本执行,失败时排查需查看原始 JSON 错误
- 网络依赖重:tenant token 获取、文件上传、消息发送均需稳定访问飞书开放 API
适合人群
- 需要向飞书用户发送语音通知的运维/运营人员
- 构建语音播报型工作流的自动化工程师
- 对消息可达性有强要求的 IM 集成开发者
常规风险
- 凭证泄露风险:FEISHU_APP_ID/APP_SECRET 若硬编码或日志打印可能导致企业信息泄露
- API 限流风险:高频调用可能触发飞书开放平台频率限制
- 临时文件残留:脚本未显式清理中间 MP3/OGG 文件,长期运行可能占满磁盘
- edge-tts 服务依赖:微软 edge-tts 为第三方服务,存在服务可用性风险