RealtimeSTT
几行代码实现低延迟实时语音转文字,支持本地运行无需云端
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
几行代码实现低延迟实时语音转文字,支持本地运行无需云端
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你正在开发一款语音助手,用户话音刚落,文字就出现在屏幕上——没有延迟、没有服务器往返。这听起来像是商业语音识别服务的专属能力,但 KoljaB/RealtimeSTT 正试图把它变成每一个开发者都能拥有的开源工具。
在 RealtimeSTT 出现之前,语音转文字的主流方案有两个选择:要么用云服务(Google、Whisper API),依赖网络和付费配额;要么用本地模型但延迟感人,用户体验差。KoljaB 的开发初衷很简单——做一个延迟低、精度高、资源占用合理的本地语音转文字库,让开发者不用联网也能拥有流畅的实时转写体验。
如果把 Python 程序比作一个人,那 RealtimeSTT 就是给这个人装上了一对灵敏的"顺风耳"——它能听懂麦克风里的声音,并实时把听到的内容"说"成文字供程序使用。这个过程分三层:
RealtimeSTT 的设计哲学是极简接入。标准麦克风模式只需几行代码:
from RealtimeSTT import AudioToTextRecorder
if __name__ == "__main__":
with AudioToTextRecorder() as recorder:
print("Speak now")
print(recorder.text())
项目还提供了多种示例,涵盖 FastAPI 服务端、浏览器 WebSocket 客户端、独立 Web 服务器等场景。docker-compose 配置了 GPU 版本(CUDA 12.8)和纯 CPU 版本,并内置 nginx 提供 Web 界面。

图1:RealtimeSTT 实际运行效果,支持实时转写和波形可视化
多引擎架构:RealtimeSTT 并不绑定某一特定 ASR 模型,而是设计了一个灵活的引擎抽象层。目前支持的主流引擎包括:
| 引擎 | 特点 | 适用场景 |
|---|---|---|
| faster-whisper(默认) | CTranslate2 加速版 Whisper,GPU 高效 | 通用场景首选 |
| OpenAI Whisper | OpenAI 原生实现 | 追求最新模型 |
| Silero | CPU 高效,轻量 | 低配机器 |
| kroko-onnx | 本地流式 ASR,延迟极低 | 实时性要求高 |
唤醒词支持:内置唤醒词检测功能,可以在特定词触发后才开始转写,适合智能家居、语音控制等场景。

图2:RealtimeSTT 多引擎架构示意,支持 VAD + ASR 多引擎自由组合
RealtimeSTT 对新手比较友好,但有几个硬性要求:
推荐配置:Python 3.11 以上(当前 pinned 依赖集基于此版本),Linux 系统需要安装 portaudio19-dev(sudo apt-get install portaudio19-dev),macOS 需要 brew install portaudio。GPU 加速需要 NVIDIA 显卡 + CUDA 环境。
Docker 部署:项目提供了完整的 Dockerfile(GPU/CPU 双阶段构建)和 docker-compose.yml,支持一条命令启动浏览器客户端:docker compose up。但需要注意的是,浏览器客户端需要 HTTPS 环境才能正常使用麦克风(浏览器安全策略要求),本地裸跑会有权限限制。
CPU vs GPU 性能差距:faster-whisper 在 GPU 上运行比纯 CPU 快 5-10 倍,且内存占用更低。如果做实时转写,GPU 几乎是必须的。
RealtimeSTT 不是一个完美的解决方案,存在一些需要注意的问题:
环境依赖复杂:portaudio 依赖在某些 Linux 发行版上可能遇到编译问题,项目 issue 中有不少关于安装失败的求助。虽然 Docker 方案可以规避,但增加了容器化的学习成本。
多进程限制:README 明确要求 Windows 用户在 if __name__ == "__main__": 下运行,这是因为 RealtimeSTT 使用 multiprocessing 加载模型,Windows 的 spawn 模式与某些场景有兼容性问题。
无独立 Web UI:项目本身是 Python 库,没有独立的 Web 管理界面。所谓的"Web 支持"依赖 example_browserclient,需要自行配置 HTTPS,不算开箱即用的 Web 应用。
精度依赖模型:转写质量完全由底层 ASR 模型决定,RealtimeSTT 本身不提供任何模型优化能力,选错模型(如用了小模型处理专业术语)会导致结果质量下降。
RealtimeSTT 在 GitHub 上已积累超过 9800 颗星,增长曲线稳健。这个数字背后反映的是一个真实需求:在本地运行的、延迟可接受的语音转文字工具。
随着 Whisper 模型的开源和 faster-whisper 等加速方案的出现,本地语音识别从"不可行"变成了"勉强可用",RealtimeSTT 则在这个基础上进一步封装,提供了开箱即用的开发者体验。它的增长与以下几个趋势高度吻合:
如果你在构建需要语音输入的 AI 应用(助手、笔记工具、无障碍应用),RealtimeSTT 是一个值得优先测试的选项——它的 API 设计简洁,示例丰富,社区活跃,遇到问题容易找到解答。