SuperAPI AI 工具集

telegram-offline-voice

办公与效率

查看项目

更新于 10-16 08:51

技能介绍

telegram-offline-voice 是一个在本地生成 Telegram 语音消息的技能,核心特点是无需 API Token,完全离线处理。它使用 Microsoft Edge-TTS 生成高质量中文语音,再通过 FFmpeg 转换为符合 Telegram 语音气泡标准的格式。

用途

该技能用于把文本转换为可直接在 Telegram 中作为语音气泡发送的音频文件。由于不依赖 OpenAI、Google、Azure 等云服务的 Token,适合希望避免申请 API Key、控制成本或在本地完成语音生成的场景。

主要能力

  • 完全本地:无需任何云服务 Token。
  • 零成本:Edge-TTS 免费使用,无调用限制。
  • 高质量声线:默认使用微软晓晓(zh-CN-XiaoxiaoNeural)。
  • Telegram 原生支持:输出格式符合语音气泡标准。
  • 支持语速调节,例如加速 5% 或减速 10%。
  • 支持查看并选择多种中文声线。

安装依赖

Edge-TTS:

pip install edge-tts

FFmpeg(Debian/Ubuntu):

apt install ffmpeg

使用方式

第一步,生成原始音频:

edge-tts --voice zh-CN-XiaoxiaoNeural --rate=+5% --text "你好,这是测试" --write-media raw.mp3

第二步,转换为 Telegram 语音格式:

ffmpeg -y -i raw.mp3 -c:a libopus -b:a 48k -ac 1 -ar 48000 -application voip voice.ogg

文本格式清洗

生成语音前需清洗文本,避免朗读出标记符号。需移除的内容包括:Markdown 标记(如 加粗、代码、# 标题)、URL 链接(如 https://example.com)、特殊符号(如 ---、***、>>>)。

清洗示例:

# 简单清洗(去除常见 Markdown)
TEXT=$(echo "$RAW_TEXT" | sed 's/\*\*//g; s/`//g; s/^#\+ //g')

Telegram 语音气泡格式

Telegram 要求语音消息使用 OGG Opus 格式,否则会显示为文件而非语音气泡:

ffmpeg -i input.mp3 -c:a libopus -b:a 48k -ac 1 -ar 48000 -application voip output.ogg

参数说明:

  • -c:a:libopus,Telegram 要求的编码器。
  • -b:a:48k,音频比特率。
  • -ac:1,单声道(语音标准)。
  • -ar:48000,采样率 48kHz。
  • -application:voip,针对语音优化。

可用声线

查看所有中文声线:

edge-tts --list-voices | grep zh-CN

推荐声线:

  • zh-CN-XiaoxiaoNeural — 女声,自然亲和(默认)。
  • zh-CN-YunxiNeural — 男声,沉稳专业。
  • zh-CN-XiaoyiNeural — 女声,活泼年轻。

语速调节

# 加速 5%
edge-tts --rate=+5% --text "..." --write-media out.mp3

# 减速 10%
edge-tts --rate=-10% --text "..." --write-media out.mp3

适用场景

适合需要在 Telegram 中发送中文语音消息、又希望避免使用云服务 Token 的用户。可用于本地批量生成语音、控制语速与声线,以及将文本内容转为语音气泡发送。

限制

资料未提供除 Edge-TTS 与 FFmpeg 之外的其他依赖要求,也未说明支持的操作系统范围、并发或批量处理能力、音频时长上限等信息。使用前需自行完成文本清洗,否则可能朗读出 Markdown 标记、URL 或特殊符号。语音气泡效果依赖输出为 OGG Opus 格式,格式不符时会显示为文件而非语音气泡。