Install
openclaw skills install feishu-voice飞书语音消息发送技能。将文本转换为语音并发送到飞书,支持 TTS 生成、格式转换、语速调整、时长读取、文件上传和消息发送。
openclaw skills install feishu-voice将文本转换为语音消息发送到飞书,支持在飞书聊天窗口直接播放。
必需变量:
# 飞书配置(必需)
export FEISHU_APP_ID="cli_xxx" # 飞书应用 ID
export FEISHU_APP_SECRET="your_secret" # 飞书应用密钥
# Coze 配置(用于 TTS)
export COZE_API_KEY="your_coze_key" # Coze API 密钥
可选变量:
# 接收者配置
export FEISHU_RECEIVER="ou_xxx" # 默认接收者 Open ID
# 多应用配置(用于支持多个飞书应用)
export FEISHU_APP_ID_B="cli_xxx" # 应用 B 的 ID
export FEISHU_APP_SECRET_B="your_secret" # 应用 B 的密钥
export FEISHU_RECEIVER_B="ou_xxx" # 应用 B 的接收者
# 工作区路径(用于定位依赖技能)
export OPENCLAW_WORKSPACE="/path/to/workspace" # OpenClaw 工作区目录
ffmpeg - 音频格式转换、语速调整ffprobe - 读取音频信息jq - JSON 处理coze-tts - 文字转语音# 发送语音消息
bash scripts/send_voice.sh "你好,这是一条语音消息"
# 指定 voice_id 和语速
bash scripts/send_voice.sh "你好" 2 1.2
# 参数说明:
# - voice_id: Coze 音色 ID(默认 1)
# - 语速: 0.5-2.0(默认 1.0)
主脚本,完整的语音消息发送流程。
用法:
bash scripts/send_voice.sh <文本> [voice_id] [语速] [接收者]
参数:
文本 (必需): 要转换为语音的文字voice_id (可选): Coze 音色 ID(默认:1)语速 (可选): 0.5-2.0(默认:1.0)接收者 (可选): 飞书 open_id环境变量:
FEISHU_APP_ID: 飞书应用 IDFEISHU_APP_SECRET: 飞书应用密钥FEISHU_RECEIVER: 接收者 Open ID(可选)COZE_API_KEY: Coze API 密钥file_type=opus 和 durationmsg_type=audio 消息飞书语音消息要求:
关键: 必须在上传时提供 duration 参数(整数毫秒),否则时长显示为 0。
# 正确的上传方式
curl -X POST "https://open.feishu.cn/open-apis/im/v1/files" \
-F "file=@voice.opus" \
-F "file_type=opus" \
-F "duration=6000" # ← 关键参数(毫秒)
| 端点 | 用途 |
|---|---|
/auth/v3/tenant_access_token/internal | 获取访问令牌 |
/im/v1/files | 上传文件 |
/im/v1/messages | 发送消息 |
问题: 发送的语音消息时长显示为 0
解决: 确保在上传时传递了 duration 参数(整数毫秒)
# 获取时长(转换为毫秒)
DURATION_MS=$(ffprobe -v error -show_entries format=duration \
-of default=noprint_wrappers=1:nokey=1 voice.opus | awk '{printf "%.0f", $1 * 1000}')
# 上传时带上 duration(毫秒)
curl ... -F "duration=$DURATION_MS"
问题: 语音消息无法播放
可能原因:
file_type 参数错误解决:
# 检查格式
ffprobe voice.opus
# 重新转换
ffmpeg -i input.mp3 -c:a libopus -b:a 24k voice.opus
问题: 上传时返回权限错误
解决: 确保飞书应用有以下权限:
im:messageim:message:send_as_bot# 设置环境变量
export FEISHU_APP_ID="your_app_id_here"
export FEISHU_APP_SECRET="your_app_secret_here"
export COZE_API_KEY="your_coze_key_here"
# 发送语音(默认设置)
bash scripts/send_voice.sh \
"你好,这是一条测试语音消息。"
# 发送语音(指定 voice_id=2,语速 1.2x)
bash scripts/send_voice.sh \
"你好,这是一条测试语音消息。" 2 1.2
coze-tts: 文字转语音coze-asr: 语音转文字2026-03-24: 从 zhipu-tts 迁移到 coze-tts,新增语速调整功能