Repolode
antirez

antirez/whisperbot

用 C 语言编写的 Telegram 机器人,可借助 whisper.cpp 或 qwen-asr 将语音消息转为文字。

Star
168
Fork
12
未关闭 Issue
1
最近提交
8个月前

这是什么?

Whisperbot 是一个 Telegram 机器人,用于转写语音消息。用户把语音发给机器人后,它会下载音频、用 ffmpeg 转为 WAV,再以外部进程方式调用所选的语音识别后端,并在文字生成过程中不断编辑回复消息,将转写结果流式返回。

它支持两种后端:whisper.cpp(通过 whisper-cli 调用)和 qwen-asr,后者是 Qwen3-ASR 的纯 C 推理实现。后端需在编译前于 whisperbot.c 中通过宏选择。项目基于 botlib 构建,采用每请求一线程的模型,并用互斥锁管理等待队列,以避免多个高负载转写同时运行。队列变长时会切换到更快的模型,队列满后则拒绝新请求。

最长音频时长、队列上限和进程超时等参数都是源码顶部的常量。后端路径和模型同样写死在代码中,重启后排队中的请求会丢失。

核心功能

  • 01将 Telegram 语音消息转写后回复文字。
  • 02可在 whisper.cpp 与 qwen-asr 两种语音识别后端之间选择。
  • 03转写过程中边识别边编辑消息,流式输出结果。
  • 04请求队列变长时自动切换到更快的模型。
  • 05队列已满时拒绝新请求,并提示用户稍后重试。

适用场景

  • 在小型自建服务器上运行个人或团队使用的语音转文字机器人。
  • 在不把音频交给第三方云服务的前提下,转写 Telegram 聊天中的语音消息。
  • 在聊天界面背后试用不同的本地语音识别后端。

快速上手

  1. 1

    构建所需的ASR后端并下载其模型

  2. 2

    编辑 whisperbot.c,选择一个后端并设置其路径

  3. 3

    通过 @BotFather 创建机器人,并将API密钥保存到 apikey.txt

  4. 4

    编译并运行机器人

    make ./whisperbot

使用前须知

  • 后端和模型路径是硬编码的,需要修改源码并重新编译。
  • 没有持久化:机器人重启后,排队中的请求会丢失。
  • 需要单独安装ASR后端程序和模型以及ffmpeg,部署有一定门槛。

标签

常见问题

whisperbot 是什么?
用 C 语言编写的 Telegram 机器人,可借助 whisper.cpp 或 qwen-asr 将语音消息转为文字。 Whisperbot 是一个 Telegram 机器人,用于转写语音消息。用户把语音发给机器人后,它会下载音频、用 ffmpeg 转为 WAV,再以外部进程方式调用所选的语音识别后端,并在文字生成过程中不断编辑回复消息,将转写结果流式返回。
whisperbot 可以免费使用吗?用的什么许可证?
whisperbot 没有声明许可证。代码虽然公开,但没有许可证就没有明确的使用授权,正式使用前建议先联系作者。
whisperbot 还在维护吗?
超过半年未提交。whisperbot 最近一次提交是在 2026年2月12日。
whisperbot 适合用来做什么?
在小型自建服务器上运行个人或团队使用的语音转文字机器人。 在不把音频交给第三方云服务的前提下,转写 Telegram 聊天中的语音消息。 在聊天界面背后试用不同的本地语音识别后端。
whisperbot 怎么安装和运行?
构建所需的ASR后端并下载其模型 编辑 whisperbot.c,选择一个后端并设置其路径 通过 @BotFather 创建机器人,并将API密钥保存到 apikey.txt 编译并运行机器人: make ./whisperbot
在哪里获取 whisperbot?
源代码和安装说明在 GitHub 上:https://github.com/antirez/whisperbot

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目