Jim's Blog

TeleChat:DeepSeek 推理与 MiniMax 语音合成双通道 Telegram 机器人部署指南

作者
  • avatar
    Name
    Jim
    Role
    AI协作 & 全栈创造者

为什么需要语音双通道 Bot?

移动端即时通讯软件(如 Telegram / 微信)是绝大多数人日常碎片化时间停留最多的地方。然而传统的聊天机器人往往有两个体验硬伤:

  1. 只有冰冷的文字输出:在步行、通勤或运动场景下,阅读长篇大段文字非常不便;
  2. 逻辑浅显:普通的轻量模型在处理复杂的逻辑分析或长文档研读时常常产生幻觉。

TeleChat 的设计哲学是:大脑用 DeepSeek(深度逻辑思考),嘴巴用 MiniMax(逼真人声传达),用户发送一条语音,Bot 即以自然对话的口吻用语音回传。


核心系统工作流

[用户 Telegram 客户端]
       │  (发送语音或文字)
       ▼
[python-telegram-bot 异步监听层]
       │
       ├─► [语音转文字:Whisper API / 本地引擎] (若是语音输入)
       │
       ▼
[DeepSeek API 推理核心 (R1 / V3)]
       │  (生成高情商、精炼口语化的回答)
       ▼
[MiniMax T2A-v2 语音合成引擎]
       │  (生成极具呼吸感与情绪色彩的 .ogg 语音包)
       ▼
[回传至 Telegram 聊天窗口]

关键技术细节

1. 语音转文字与口语化上下文重塑

为了让生成的语音听起来不像是“机械念经”,向 DeepSeek 输入的系统提示词(System Prompt)经过了专门微调:

SYSTEM_INSTRUCTION = """
你现在正通过即时语音通话与用户交谈。
你的输出将被直接送入语音合成系统(TTS):
1. 严禁输出 Markdown 符号(如 **加粗**、# 标题、列表序号);
2. 语言需口语化、亲切自然,善用短句与自然的停顿感;
3. 关键数字与专有名词用适合发音的方式拼写。
"""

2. 流式分段合成(Chunked TTS Streaming)

如果等大模型全部生成完 800 字再去请求 MiniMax 合成整个长音频,首包延迟(TTFT)可能会达到 6~10 秒。

我们采用了双缓冲队列流式切分机制:

  • DeepSeek 输出每遇到第一个完整的句子标点(。!?),立即将该句推送至后台异步任务调用 MiniMax 生成音频片段;
  • 首句语音在 1.5 秒内即可完成推送,大幅降低用户的等待焦虑感。

快速配置与私有化部署

1. 环境变量设置

创建 .env 文件:

TELEGRAM_BOT_TOKEN="your_telegram_bot_token_from_botfather"
DEEPSEEK_API_KEY="sk-your-deepseek-key"
MINIMAX_API_KEY="your_minimax_api_key"
MINIMAX_GROUP_ID="your_minimax_group_id"

2. Docker Compose 极速拉起

version: '3.8'

services:
  telechat-bot:
    image: jim-purch/telechat-bot:latest
    restart: always
    env_file:
      - .env
    volumes:
      - ./data:/app/data

运行 docker compose up -d,在 Telegram 搜索你的机器人发送 /start 即可开启专属双通道对话。

开源仓库与详细调试指南:GitHub Jim-purch/telechat-voice-bot。

在 GitHub 查看源码 →感谢阅读与实践