飞书语音发送器 Feishu Voice Sender
飞书语音发送器 | Feishu Voice Sender Feishu voice message utility with TTS and optional ASR support. 当用户明确要求发送飞书语音消息时调用此工具,例如:发语音、用语音回复、发送语音消息等。 This skill may be i...
Install
openclaw skills install feishu-voice-sender-ttsLatest Release
Compatibility
{}Capabilities
{}Verification
{}Tags
{
"latest": "2.0.1"
}name: feishu-voice-sender-tts description: | 飞书语音发送器 | Feishu Voice Sender
Feishu voice message utility with TTS and optional ASR support.
当用户明确要求发送飞书语音消息时调用此工具,例如:发语音、用语音回复、发送语音消息等。
This skill may be invoked only when the user explicitly requests a voice message via Feishu/Lark. It does not run automatically.
metadata: openclaw: primaryEnv: FEISHU_APP_SECRET requires: env: - ASR_APP_ID - ASR_ACCESS_KEY - TTS_APP_ID - TTS_ACCESS_KEY - FEISHU_APP_ID - FEISHU_APP_SECRET bins: - ffmpeg env: - name: ASR_APP_ID description: "Volcengine ASR app ID" required: true sensitive: false - name: ASR_ACCESS_KEY description: "Volcengine ASR access key" required: true sensitive: true - name: TTS_APP_ID description: "Volcengine TTS app ID" required: true sensitive: false - name: TTS_ACCESS_KEY description: "Volcengine TTS access key" required: true sensitive: true - name: FEISHU_APP_ID description: "Feishu app ID" required: true sensitive: false - name: FEISHU_APP_SECRET description: "Feishu app secret" required: true sensitive: true - name: DEFAULT_RECEIVE_ID description: "Default Feishu open_id for the recipient" required: false sensitive: false
飞书语音发送器 Feishu Voice Sender
支持 TTS 语音合成、ASR 语音识别,以及基于上下文的情绪参数。
⚠️ 重要声明
执行模式 | Execution Model
- 此 Skill 不会自动运行,仅在用户明确要求时执行
- This skill does not monitor, intercept, or automatically process messages. It only runs when explicitly invoked.
- 仅处理用户提供的输入,不读取任意本地文件
- Only processes user-provided input. Does not read arbitrary local files.
外部依赖 | External Dependencies
- ffmpeg: 仅用于音频格式转换(mp3 → opus),不执行任意命令
- ffmpeg is used ONLY for audio format conversion (mp3 → opus). No arbitrary command execution. No user-controlled shell input.
触发场景 | Invocation Examples
当用户明确要求发送飞书语音消息时,可调用此 Skill,例如:
- "发语音给..."
- "用语音回复"
- "发送语音消息"
- "voice message"
- "send voice"
This skill may be invoked only when the user explicitly requests a voice message via Feishu/Lark. It does not run automatically.
AI 使用方法
当用户明确要求时,使用以下方式发送语音:
import sys
sys.path.insert(0, 'src')
from feishu_voice import send_voice_message
# 发送语音消息
send_voice_message(
text="要播报的内容",
user_input="用户的原始请求(用于情绪感知)"
)
参数说明:
text: AI 生成的播报内容(必填,最大 300 字符)user_input: 用户的原始输入,用于让豆包感知情绪(可选)receive_id: 接收者 ID(可选,默认从环境变量读取)
示例:
# 用户说:"用激动的语气发语音说项目成功了"
send_voice_message(
text="项目成功了!我们超额完成了目标!",
user_input="用激动的语气发语音说项目成功了"
)
数据流 | Data Flow
Text path: 用户提供文本 → 情绪上下文参数 → TTS 语音合成 → 格式转换 → 飞书发送
ASR path: 用户明确提供 .ogg 音频文件 → ASR 语音识别 → 返回文本结果
环境变量配置
使用前必须设置以下环境变量:
export ASR_APP_ID="your-asr-app-id"
export ASR_ACCESS_KEY="your-asr-access-key"
export TTS_APP_ID="your-tts-app-id"
export TTS_ACCESS_KEY="your-tts-access-key"
export FEISHU_APP_ID="your-feishu-app-id"
export FEISHU_APP_SECRET="your-feishu-app-secret"
export DEFAULT_RECEIVE_ID="ou_xxx" # 可选,默认接收者
获取方式:
- 豆包语音:火山引擎控制台 https://console.volcengine.com/
- 飞书:飞书开放平台 https://open.feishu.cn/
功能特性
- 🎙️ 语音合成(TTS) - 使用豆包 TTS 2.0 生成语音
- 🎯 语音识别(ASR) - 使用豆包极速版 ASR 将语音转为文字
- 🎭 情绪参数 - 支持通过
context_texts传递情绪上下文 - 🔒 安全限制 - 仅处理用户提供的输入
安全说明 | Security
输入限制
- 仅接受用户直接提供的文本输入
- ASR 仅处理
.ogg格式文件 - 文本长度限制 300 字符
- 不读取任意本地文件,仅处理用户明确提供的 .ogg 音频文件用于 ASR
音频输入限制 | Audio Input Constraints
- 仅处理用户明确提供的音频文件
- Only processes audio files explicitly provided by the user
- 不访问系统音频、麦克风或消息历史
- Does NOT access system audio, microphone, or message history
- 不扫描本地目录
- Does NOT scan local directories
执行限制
- 不监听消息
- 不自动运行
- 不扫描目录
- 不执行用户控制的命令
临时文件
- 使用
tempfile模块创建临时文件 - 处理完成后立即删除
- 不保留任何持久文件
依赖
requests>=2.28.0
系统依赖:
- ffmpeg(用于音频格式转换 mp3 → opus)
- Python 3.8+
安装
pip install -r requirements.txt
注意: 需要系统安装 ffmpeg
- macOS:
brew install ffmpeg - Ubuntu:
sudo apt-get install ffmpeg
项目结构
feishu-voice-sender-tts/
├── SKILL.md
├── requirements.txt
└── src/
└── feishu_voice.py
更新日志
V2.0.0 (2026-03-23)
- 🔒 安全重构:移除所有硬编码密钥,改为环境变量
- 🗑️ 删除 shell 脚本(send.sh / install.sh)
- 🐍 纯 Python 实现:使用 requests 替代 curl
- 🛡️ 增加安全限制:输入验证、文件类型检查、长度限制
- 📝 重写 SKILL.md:明确声明执行模式和安全边界
- 🧹 使用 tempfile 替代固定路径
- 🔑 ASR/TTS 密钥分离
- 💾 Feishu token 缓存
- ⏱️ 动态音频时长计算
- 🔒 ffmpeg 安全声明
- 📝 文档降调,减少营销感
EOF
