8.8K Star!真正的本地实时 Whisper 开源神器,彻底干翻云端 STT!

大模型智能语音交互机器学习

在项目里想做一个真正实时的语音转文字系统,一般只有两条路。

一是上云端 API:延迟低、断句好,但贵,而且隐私敏感场景根本不敢用。

二是本地跑 Whisper:虽然免费,但延迟高、断句不自然。

结果这两年大家几乎都在问同一个问题:

有没有可能在本地就做出云端级别的实时 ASR 体验?

我最近在 GitHub 上挖到一个宝:WhisperLiveKit

picture.image

它不是简单的 Whisper 包装,而是一套专门为本地流式语音识别优化的全栈解决方案,真正把 Whisper 流式延迟高的痛点给干碎了。

picture.image

GitHub:https://github.com/QuentinFuxa/WhisperLiveKit

主要功能

  • 极速流式处理 :通过优化的 VAD(语音活动检测)和音频切片逻辑,大幅降低延迟。
  • 说话人区分 :内置说话人跟踪、说话人切换检测、自动标注,对团队会议、访谈录音、用户访谈特别有用。
  • 多引擎支持 :支持 NVIDIA 显卡的 faster-whisper,也支持苹果 M 芯片的 mlx-whisper。
  • 实时翻译 :集成了 NLLB 模型,支持 200 种语言的实时互译。
  • 开箱即用 :提供了完整的服务端(Python)和客户端(Web/React)示例。

picture.image

快速入手

WhisperLiveKit 是一个开源的 Python 工具包,使用 pip 命令即可一键安装。


 
 
 
 
   
pip install whisperlivekit

安装成功后,命令行就会有 wlk 命令可使用。

启动转录服务器


 
 
 
 
   
wlk --model base --language en

然后打开浏览器并访问http://localhost:8000。开始说话,即可实时观看你的话语!

wlk 支持各种参数启动,部署参数如下:

picture.image

Python API集成

  
import asyncio  
from contextlib import asynccontextmanager  
from fastapi import FastAPI, WebSocket, WebSocketDisconnect  
from fastapi.responses import HTMLResponse  
from whisperlivekit import AudioProcessor, TranscriptionEngine, parse_args  
transcription_engine = None  
@asynccontextmanager  
async def lifespan(app: FastAPI):  
    global transcription_engine  
    transcription_engine = TranscriptionEngine(model="medium", diarization=True, lan="en")  
    yield  
app = FastAPI(lifespan=lifespan)  
async def handle_websocket_results(websocket: WebSocket, results_generator):  
    async for response in results_generator:  
        await websocket.send_json(response)  
    await websocket.send_json({"type": "ready_to_stop"})  
@app.websocket("/asr")  
async def websocket_endpoint(websocket: WebSocket):  
    global transcription_engine  
    # Create a new AudioProcessor for each connection, passing the shared engine  
    audio_processor = AudioProcessor(transcription_engine=transcription_engine)      
    results_generator = await audio_processor.create_tasks()  
    results_task = asyncio.create_task(handle_websocket_results(websocket, results_generator))  
    await websocket.accept()  
    while True:  
        message = await websocket.receive_bytes()  
        await audio_processor.process_audio(message)        

适用项目

  • 会议纪要系统 :自动分角色、自动断句、自动翻译。
  • 教室/直播实时字幕 :隐私不上云,延迟极低。
  • 本地同声传译 :国外视频会议秒变中文。
  • AI 客服语音识别 :可集成到你的 Agent Pipeline 里。

写在最后

WhisperLiveKit 是我见过的开源项目中,将 Whisper 模型工程化落地做的非常优秀的项目之一。

它没有去卷“谁的模型分更高”,而是踏踏实实解决了“怎么让模型在实际业务中跑得顺畅”的问题。

VAD 截断、流式传输、后端加速,这三板斧直接把本地语音识别的门槛降到了地板上。

如果你受够了云厂商按分钟计费的账单,或者受够了本地部署时的卡顿和延迟,WhisperLiveKit 绝对值得你投入时间去尝试。

开源地址:https://github.com/QuentinFuxa/WhisperLiveKit

picture.image

如果本文对您有帮助,也请帮忙点个 赞👍 + 在看 哈!❤️

在看你就赞赞我!

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 XR 技术的探索与实践
火山引擎开发者社区技术大讲堂第二期邀请到了火山引擎 XR 技术负责人和火山引擎创作 CV 技术负责人,为大家分享字节跳动积累的前沿视觉技术及内外部的应用实践,揭秘现代炫酷的视觉效果背后的技术实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论