telegram-offline-voice 🎙️
本地生成,一键封装 — 使用 Microsoft Edge-TTS 生成高质量中文语音,完全离线处理。
💡 为什么需要这个升级?
原生的 TTS 方案通常只能生成 MP3 附件,且无法处理 Markdown 标记和超长文本。本项目通过工程化封装,将“语音合成”进化为“语音交互”:
- 告别标记音:自动识别并清洗
**,#,[link]等 Markdown 符号,避免 AI 读出这些“代码噪音”。 - 智能对话流:超长文本不再是一读到底,而是按句号、感叹号自动切分为多个语音气泡,听感更像真人在发语音。
- 并发安全:针对多代理/子代理并行调用的场景,使用 UUID 隔离临时文件,彻底杜绝文件读写冲突。
- 零token消耗:完全基于 Edge-TTS 本地生成,无需 OpenAI/Azure 的付费 Token。
✨ 特性
- 🔒 隐私保护:100% 本地音频处理,不经过任何额外云端 TTS 提供商。
- 💰 零token消耗:使用免费的 Edge-TTS 引擎,省下昂贵的 API 额度。
- 🎯 一键生成:内置
voice_gen.py脚本,自动完成“文本->MP3->OGG”的全过程。 - 🧹 自动清洗:自动剔除 Markdown 符号和 URL 链接,让朗读更自然。
- ✂️ 智能分段:超长文本自动按标点符号切分为多个语音气泡。
- 🛡️ 安全并发:使用 UUID 命名临时文件,支持多代理同时调用。
🛠️ 安装依赖
# 需要 Python 环境和 FFmpeg
sudo apt update && sudo apt install ffmpeg python3-pip -y
# 推荐安装 uv 以极速运行封装脚本
curl -LsSf https://astral.sh/uv/install.sh | sh
🚀 使用方法 (推荐)
直接调用封装脚本,一键生成 Telegram 原生语音气泡路径:
uv run {baseDir}/scripts/voice_gen.py --text "您的待播报内容"
⚙️ 技术细节
参数说明
--text/-t: 待生成的文本(必填)。--voice: 声线选择,默认zh-CN-XiaoxiaoNeural(晓晓)。--rate: 语速调节,默认+5%。--outdir: 临时文件存放目录,默认/tmp。
自动化清洗规则
脚本会自动移除以下内容以确保朗读流畅:
- Markdown 符号:**, *, _, `, #
- 链接逻辑:[文本](url) 以及所有 http/https 开头的链接
- 分割线:---, *** 等
👨💻 关于作者
由 @sanwe 调优并维护。 欢迎关注我的推特获取更多 OpenClaw 进阶玩法:https://x.com/sanwe