技能标识:voice-tts
语音输入(Whisper ASR)+ 语音输出(Edge TTS)技能,支持 agent 专属音色,可调用 send_voice_reply.mjs 发送 Telegram 语音消息。
语音输入(ASR)+ 语音输出(TTS)技能,完整替代 OpenClaw 内置 tts 工具处理中文内容。
| 方向 | 技术 | 说明 |
|---|---|---|
| 语音 → 文字 | Whisper(本地) | 接收语音,自动转文字 |
| 文字 → 语音 |
用户发来语音消息 → voice-asr.mjs 转写为文字 → 触发 agent 处理。
语音识别在 OpenClaw 工具层自动完成,agent 收到的是文字。
agent 回复文字后,如需以语音发送,调用 sendvoicereply.mjs 手动发送 Telegram 语音消息:
bash
node /path/to/voice-tts/scripts/sendvoicereply.mjs \
--text 你的回复内容 \
--chat-id 8317347201 \
--agent main
bash
bash
pip install edge-tts whisper click
brew install ffmpeg # macOS
sudo apt install -y ffmpeg # Ubuntu
安装完成后运行冒烟测试:
bash
bash tests/smoke.sh
config.default.json 已包含所有默认值,不填配置可直接使用。
如需自定义 agent 音色映射或 ASR 参数,在 openclaw.json 的 skills.entries.voice-tts.config 中覆盖:
json
{
skills: {
entries: {
voice-tts: {
enabled: true,
config: {
tts: {
defaultVoice: zh-CN-XiaoxiaoNeural,
agentVoices: {
main: zh-CN-XiaoxiaoNeural,
researcher: zh-CN-YunxiNeural,
product: zh-CN-XiaoyiNeural,
coder: zh-CN-YunyangNeural,
devops: zh-CN-YunjianNeural
}
},
asr: {
defaultInitialPrompt: 以下是中文语音转文字。常见词包括:管家、研究员、邮差、码农、产品、运维、OpenClaw、小爱、Telegram。,
defaultTemperature: 0,
conditionOnPreviousText: true
}
}
}
}
}
}
修改后执行 openclaw gateway restart。
将文字转为语音文件:
bash
可用中文音色:zh-CN-XiaoxiaoNeural(女声,推荐)、zh-CN-YunxiNeural、zh-CN-XiaoyiNeural、zh-CN-YunyangNeural、zh-CN-YunjianNeural、zh-CN-XiaomoNeural
将音频文件转文字:
bash
可用模型:tiny base small turbo large-v3
一键完成文字 → TTS 合成 → Telegram 语音消息发送:
bash
node scripts/sendvoicereply.mjs \
--text 已收到! \
--chat-id 8317347201 \
--agent main
参数说明:
| 参数 | 必填 | 说明 |
|---|---|---|
| --text | ✅ | 要语音播报的文字内容 |
| --chat-id |
Token 自动查找优先级:
voice-tts/
├── SKILL.md # 本文档
├── config.default.json # 默认配置(直接可用,不需修改)
├── install.sh # 一键安装脚本
│
├── bin/
│ ├── voice-tts.mjs # TTS 入口
│ └── voice-asr.mjs # ASR 入口
│
├── lib/
│ ├── config.mjs # 配置读取(支持 openclaw.json 覆盖)
│ ├── errors.mjs # 统一错误码 + 用户兜底消息
│ └── audio.mjs # 音频校验
│
├── scripts/
│ ├── sendvoicereply.mjs # Telegram 语音发送(核心)
│ └── autovoicecheck # 批量处理未处理语音
│
└── tests/
└── smoke.sh # 冒烟测试
注意: scripts/edge_tts 和 scripts/whisper 是内部 Python 封装,非直接入口;直接使用上表中的 bin/ 入口即可。
| 错误码 | 含义 | 用户兜底消息 |
|---|---|---|
| nofilepath | 未提供音频文件 | 抱歉,没有收到音频文件,请重试。 |
| filenotfound |
voice-asr.mjs 成功转写后,自动将原文件从 ~/.openclaw/media/inbound/ 复制到 agent workspace media/inbound/,然后删除原文件。
bash
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 voice-tts-1776067744 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 voice-tts-1776067744 技能
skillhub install voice-tts-1776067744
文件大小: 15.33 KB | 发布时间: 2026-4-15 14:52