Whisper Flow 是一个基于 OpenAI Whisper实时语音转文字(Streaming Transcription)框架

GitHubhttps://github.com/dimastatz/whisper-flow


核心定位

普通 Whisper 是批量模式(把整个音频文件上传后一次性转录),而 Whisper Flow 支持流式处理

  • 持续接收音频数据块(chunks)
  • 实时返回增量转录结果
  • 适合需要低延迟的实时应用(会议、直播、语音助手等)

它使用 Tumbling Window 方式对音频流进行分段处理,并根据自然停顿或说话人变化切分结果。


主要特点

  • 实时流式转录:通过 WebSocket 持续推送部分结果(partial)和最终结果
  • 低延迟:在 MacBook Air M1 上测试,平均延迟约 275ms(多数情况 < 500ms)
  • 较好的准确率:在 LibriSpeech 测试集上 WER 约 7%
  • 支持作为库使用:可轻松集成到自己的 FastAPI 应用中
  • Docker 支持

结果示例(流式返回):

Transcript EndTime IsPartial
Reality 0.55 True
Reality is created 1.05 True
Reality is created by the mind 2.65 False

快速开始

1
2
3
4
5
6
7
8
9
10
11
git clone https://github.com/dimastatz/whisper-flow.git
cd whisper-flow

# 安装依赖并运行测试
./run.sh -local

# 激活虚拟环境
source .venv/bin/activate

# 启动服务(端口 8181)
./run.sh -run-server

服务端点:

  • WebSocket 实时转录:ws://localhost:8181/ws
  • 健康检查:http://localhost:8181/health
  • 批量 PCM 转录:POST /transcribe_pcm_chunk

也可用 Docker:

1
./run.sh -docker

作为 Python 库使用

1
pip install whisperflow

支持在自己的 FastAPI 应用中快速接入 WebSocket 流式转录。

音频要求

  • 采样率:16 kHz
  • 单声道
  • 16-bit PCM(int16)

依赖要求

  • Python ≥ 3.8(测试过 3.12)
  • PortAudio(PyAudio 需要)

适合场景

  • 实时会议字幕
  • 直播/播客实时转写
  • 语音助手 / 语音控制应用
  • 需要低延迟语音识别的自定义服务

注意:实时模式通常会在速度和准确率之间做权衡,批量模式(完整文件)准确率通常更高。