Install
openclaw skills install li-feishu-audioClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
飞书语音交互技能。支持语音消息自动识别、AI 处理、语音回复全流程。需要配置 FEISHU_APP_ID 和 FEISHU_APP_SECRET 环境变量。使用 faster-whisper 进行语音识别,Edge TTS 进行语音合成,自动转换 OPUS 格式并通过飞书发送。适用于飞书平台的语音对话场景。
openclaw skills install li-feishu-audio本技能提供完整的飞书语音交互能力:
用户语音 → faster-whisper 识别 → AI 处理 → Edge TTS 合成 → OPUS 转换 → 飞书发送
脚本: scripts/fast-whisper-fast.sh
用法:
./scripts/fast-whisper-fast.sh <音频文件.ogg>
配置:
FAST_WHISPER_MODEL_DIR).venv(自动创建)脚本: scripts/tts-voice.sh
用法:
./scripts/tts-voice.sh "文本内容" [输出文件.mp3]
配置:
.venv(自动创建)脚本: scripts/feishu-tts.sh
用法:
./scripts/feishu-tts.sh <音频文件.mp3> [用户 ID]
配置:
脚本: scripts/cleanup-tts.sh
用法:
./scripts/cleanup-tts.sh [保留数量]
定时任务: 每天凌晨 2 点自动执行
fast-whisper-fast.sh 识别tts-voice.sh 生成语音sendMediaFeishu 自动转换为 OPUS# Python
Python 3.11+
uv 包管理器
# 音频处理
ffmpeg (支持 OPUS 编码)
jq (JSON 处理)
# 飞书 API
飞书开放平台应用凭证
# 虚拟环境
技能目录/.venv (自动创建)
# 已安装包
faster-whisper==1.2.1
edge-tts==7.2.7
# 语音识别模型
$FAST_WHISPER_MODEL_DIR/models--Systran--faster-whisper-tiny/
方法 1: 环境变量(推荐)
创建 .env 文件:
export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="xxx"
方法 2: openclaw.json
{
"channels": {
"feishu": {
"enabled": true,
"appId": "cli_xxx",
"appSecret": "xxx"
}
}
}
⚠️ 安全提示:不要将凭证提交到版本控制系统!
在 .env 文件中配置:
# 模型目录(默认:$HOME/.fast-whisper-models)
export FAST_WHISPER_MODEL_DIR="/opt/fast-whisper-models"
# 虚拟环境目录(默认:技能目录/.venv)
export VENV_DIR="/path/to/venv"
# 临时文件目录(默认:/tmp)
export TEMP_DIR="/tmp"
# 日志目录(默认:技能目录/logs)
export LOG_DIR="/path/to/logs"
# OpenClaw 配置路径(默认:$HOME/.openclaw/openclaw.json)
export OPENCLAW_CONFIG="$HOME/.openclaw/openclaw.json"
{
"messages": {
"tts": {
"auto": "always",
"provider": "edge",
"edge": {
"enabled": true,
"voice": "zh-CN-XiaoxiaoNeural",
"lang": "zh-CN"
}
}
}
}
#!/bin/bash
# 语音识别脚本
export HF_ENDPOINT=https://hf-mirror.com # 国内镜像
VENV_PYTHON="技能目录/.venv/bin/python" # 由 install.sh 自动配置
# 用法
./fast-whisper-fast.sh <音频文件>
输出格式:
[0.00s -> 2.32s] 识别的文本内容
#!/bin/bash
# TTS 语音生成脚本
export HF_ENDPOINT=https://hf-mirror.com
VENV_PYTHON="技能目录/.venv/bin/python"
# 用法
./tts-voice.sh "文本内容" [输出文件.mp3]
#!/bin/bash
# 飞书语音发送脚本
# 自动转换 MP3 → OPUS
# 用法
./feishu-tts.sh <音频文件.mp3> [用户 ID]
转换参数:
ffmpeg -y -i input.mp3 -acodec libopus -ar 48000 -ac 1 output.opus
#!/bin/bash
# TTS 临时文件清理脚本
# 用法
./cleanup-tts.sh [保留数量] # 默认保留 10 个
# 定时任务(crontab)
0 2 * * * ./cleanup-tts.sh 10
问题: 无法识别语音内容
检查:
ls $FAST_WHISPER_MODEL_DIR/技能目录/.venv/bin/python --versionexport HF_ENDPOINT=https://hf-mirror.com问题: 无法生成语音文件
检查:
uv pip list -p 技能目录/.venv | grep edge问题: 语音消息发送失败
检查:
echo $FEISHU_APP_ID| 操作 | 耗时 |
|---|---|
| 语音识别 (tiny) | ~8-10 秒 |
| TTS 生成 | ~3-5 秒 |
| OPUS 转换 | <1 秒 |
| 飞书上传 | ~2-3 秒 |
| 总计 | ~15 秒 |
编辑 tts-voice.sh:
# 中文男声
communicate = edge_tts.Communicate(TEXT, "zh-CN-YunxiNeural")
# 英文女声
communicate = edge_tts.Communicate(TEXT, "en-US-MichelleNeural")
# 在 edge_tts 中调整
communicate = edge_tts.Communicate(
TEXT,
"zh-CN-XiaoxiaoNeural",
rate="+10%", # 语速
pitch="-5%" # 音调
)
修改 fast-whisper-fast.sh:
# 多语言识别
model.transcribe("$AUDIO_FILE", language="auto")
.env 文件或 openclaw.jsonscripts/FAST_WHISPER_MODEL_DIR,默认 $HOME/.fast-whisper-models)TEMP_DIR,默认 /tmp)VENV_DIR,默认 技能目录/.venv)LOG_DIR,默认 技能目录/logs)| 变量名 | 必需 | 说明 |
|---|---|---|
FEISHU_APP_ID | ✅ | 飞书应用 ID (cli_xxx) |
FEISHU_APP_SECRET | ✅ | 飞书应用密钥 |
FAST_WHISPER_MODEL_DIR | ❌ | 模型目录,默认 ~/.fast-whisper-models |
VENV_DIR | ❌ | 虚拟环境目录,默认技能目录下 .venv |
TEMP_DIR | ❌ | 临时文件目录,默认 /tmp |
OPENCLAW_CONFIG | ❌ | OpenClaw 配置路径 |
LOG_DIR | ❌ | 日志目录,默认技能目录下 logs |
HuggingFace 镜像: 默认使用 https://hf-mirror.com 加速国内下载,可通过环境变量 HF_ENDPOINT 修改。
uv 安装: install.sh 会在未安装 uv 时提示安装命令。建议从官方源验证后再执行。
Microsoft Edge TTS: TTS 服务调用微软 Azure 语音服务,需要网络访问。
.env 提交到版本控制.env 加入 .gitignore/tmp/