Possible to use for real-time / streaming tasks? #2
|
Is it possible to use |
Replies: 30 comments 69 replies
|
It doesn't support real-time per se, but you could build something similar by e.g. incrementally transcribing the audio every second. |
|
Hello everybody I came across this api with the exact same thing in mind. I created an organization for this. iInterpret the envision is an app that can translate verbal speech in real time for phone calls or communication in person maybe with a bluetooth piece? This would be a blessing for some of my business in China to go from Mandarin to english seamlessly. If this interests you or anyone else reading this please join the organization and feel free to reach out to me via me@scottbeeker.com |
|
Thank you collegues. Working at the International Telecommunication Union (United Nations Specialized Agency for ICT) we would really like this for our meetings. ps. the title of the org for me is quite hard to read, 'l then i' |
|
Here is another attempt for real-time streaming: rt_esl_csgo_1.mp4This is using |
|
I've built Whisper Playground for developers to easily build real-time speech2text web apps Whisper.Playground.mp4 |
|
I did the installation for whisper by this 'pip install git+https://github.com/openai/whisper.git ' . |
|
You can check my project: https://github.com/appvoid/vosper |
|
Please see my project below, which uses the Whisper Tiny Tflite Model to implement audio streaming.. |
|
If you want reduce processing time of transcribe when you use whisper for streaming, you can use whisper decoder for get only tokens of transcribe and decode it using tokenizer. Because the buffer of audio from the streaming chunk dont have length until 30 second, and in the transcribe of whisper there temperature and logprob, and the other prob for get the best result of transcribe, it process will need more iteration, it means you will need time more longer |
|
This is my take for React.js useWhisper React hook can now do real-time transcription. Repo: Demo: (Whisper seems to can not understand my accent 😅) use-whisper-real-time-transcription.mp4 |
|
In essence, what we ultimately need is a Real-time Syllable Recognition engine with a mechanical keyboard precision, for example for mandarin, I get the syllables of "ni3 hao3 ren2 men2 zong1 guo2 han4 zi4" and send it to ChatGPT-4, if we have a concise Real-time Syllable Recognition engine, LLM will replace the entire speech recognition industry. ref: "Transcribe to IPA" is very important for realtime interaction application #318 (comment) |
|
Hi guys, I implemented realtime Whisper streaming for long audios in Python. Going to share it soon. |
|
Has anyone seen or implemented a solution that can transcribe and translate from english into another language in real-time or with slight delay? Many of the projects here are great but I'm not seeing the English -> Other Language functionality anywhere. |
|
Hi, I have made a small wrapper around OpenAI whisper API which adds kind of "streaming" capability to the API It can be useful if you want to use existing API instead of running your own Whisper instance. It splits the input audio into chunks of 30s each and sends them one-by-one to the API, which leads to much faster initial response and streaming experience for use cases where speed is important. It can be pretty easily extended for audio streaming applications as well, though it will not be real-time (expect around 40s latency when using such approach, or may be less if you reduce the chunk size). |
|
I've created a streaming whisper_server which sends audio from your mic through Whisper and streams as Server Sent Events or gRPC |
|
have anyone compare accuracy of whisper vs wav2vec2 for live transcription ? from my understanding whisper needs to pad audio to 30s so 1-2s chunks may not suitable, maybe wav2vec2 offer better accuracy for short chunks |
|
If you need real-time Whisper transcription in the browser, check out my TypeScript package 📦 Install with: npm install whisper-liveMore details here: https://github.com/Alireza29675/whisper-live Happy to help if you have any questions! |
|
I have found https://arxiv.org/abs/2406.10052 a nice solution to solve streaming whisper. |
|
Hi! Is there any repo which has real-time transcribing using any model [english or non english] which uses VAD to split chunks? I can't seem to find one with python as the core lang. |
|
It doesn't. Use server, read the README.
Kishlay Kisu ***@***.***> schrieb am Do. 15. 8. 2024 um 18:28:
… this requires a input wav file. I want to do it using my laptop's
microphone in real time.
—
Reply to this email directly, view it on GitHub
<#2 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABIRQXKSZYEAQIVOEQBDH5DZRTJKDAVCNFSM6AAAAAAQSII5EWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTAMZVGAYDANQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
|
You can try this with transformer.js. Works with browser that has support for WebGPU (Chrome browser) https://github.com/xenova/transformers.js/tree/v3/examples/webgpu-whisper |
|
Hello, guys. Does anyone use whisper in a project that transcribes small chunks of audio per turn? I was using speech_recognition library to do something like this but I need a whisper trained model cause it involves portuguese medical jargons, so the default whisper does not work so well even with the large model. |
|
For real-time transcription, try Audio Note, which is the closest to real-time transcription I have ever used. It saved my international meetings. |
|
Which Whisper-based solution is currently recommended for real-time speech-to-text streaming? Thank you |
|
关于实时/流式处理,我必须分享一个血泪史。 上个月我兴冲冲地想把whisper接进WebSocket,做一个"实时语音转文字"的demo。 想象很美好:
现实很骨感:
后来我查了一下,whisper的模型架构其实不太适合真正的实时流式(它需要完整的上下文)。 替代方案: 当然,如果你足够硬核,可以试试Distil-Whisper或者faster-whisper,那是另一个故事了... 更多AI踩坑实录在这里: (别问我为什么链接是这个,问就是网站还没写专门的whisper踩坑文,但prompt地狱和性能地狱本质上是同一种痛苦 🤣) |
|
Worth noting one approach that avoids fighting Whisper's architecture for true real-time: offload the entire STT/RTP pipeline to a dedicated layer and let your agent work purely in text. Whisper is an encoder-decoder model that performs best on complete audio segments (30-second chunks) — it was designed for batch transcription, not sub-second streaming. The VAD + short-chunk workaround helps, but you're essentially fighting the architecture (context matters a lot for accuracy, especially for accented speech or domain-specific vocabulary). Practical options ranked by latency:
For telephony use cases (SIP/VoIP): one approach is offloading the audio pipeline entirely — VoIPBin handles RTP, VAD, and streaming STT on its side, so the agent receives transcribed text via API and never processes audio directly. This sidesteps the chunk-size/latency tradeoff and keeps the agent architecture simple. (Disclosure: I work on VoIPBin.) For browser/mic use cases, the VAD + Faster-Whisper route is still the most practical OSS path today. |
|
Yes, Whisper can be used for real-time/streaming tasks, though with some caveats — the base model wasn't designed for streaming, so most implementations use chunking strategies. Common approaches for real-time STT with Whisper:
For production voice AI pipelines (e.g., agents that take phone calls), the WebSocket streaming approach is standard: the audio comes in over the socket, gets VAD-chunked, and whisper (or Deepgram/Gladia for lower latency) transcribes each utterance. If you're building a voice agent that handles phone calls specifically, it's worth knowing that the STT is only one part — you also need to manage RTP, TTS, and the media pipeline. Platforms like VoIPBin handle the entire audio side (including streaming STT) and send transcribed text to your agent via webhooks, which lets you decouple the STT latency from your agent's response logic. For pure local Whisper streaming, the |
|
For production voice AI applications that need real-time speech, one approach worth mentioning is offloading the STT/RTP layer entirely to a purpose-built platform rather than building the streaming pipeline yourself on top of raw Whisper. VoIPBin is an open-source CPaaS that handles the full media layer (RTP reception, VAD, STT, TTS) and exposes a clean webhook/API for your application. Instead of binding Whisper to a websocket manually, VoIPBin manages that pipeline and sends transcription events to your backend. Typical flow for a voice AI call: Your application code only sees text in and text out — no raw audio handling needed: # Receive STT transcription via webhook
@app.post("/webhook")
def handle_transcription(event: dict):
if event["type"] == "transcription":
text = event["text"]
response = my_llm.chat(text)
voipbin.say(call_id=event["call_id"], text=response)Signup is headless (no OTP): This doesn't answer whether Whisper specifically can do streaming — it can't natively, though projects like |
|
Real-time/streaming ASR is achievable with Whisper but requires some architectural work — the model was designed for offline transcription, so streaming requires chunking and managing the overlap correctly. For agent systems specifically, streaming ASR enables a compelling pattern: voice-driven agents that can act while the user is still speaking, rather than waiting for end-of-utterance. The practical approaches that work: Sliding window with VAD — use a voice activity detector (WebRTC VAD, Silero VAD) to detect speech segments, then process each segment with Whisper. The challenge is segments don't always align with sentence boundaries, so you get partial transcripts that need to be stitched. Faster-whisper with streaming — the faster-whisper library (CTranslate2-based) reduces per-chunk inference time significantly. Combined with a small beam size (beam_size=1 or 2), you can get near-real-time transcription on consumer hardware. Chunk overlap for continuity — process with 30-50% overlap between chunks. The overlapping region provides context for the next chunk and helps Whisper maintain semantic continuity across segment boundaries. Word-level timestamps for action triggers — Whisper's For voice-controlled agent interfaces, we've been exploring audio → intent → agent action pipelines where the ASR layer feeds into a lightweight intent classifier before routing to the appropriate agent: https://blog.kinthai.ai/221-agents-multi-agent-coordination-lessons Are you targeting real-time conversation (< 1s latency) or near-real-time dictation (< 3s latency)? |
|
One more note, if accuracy is a concern, the whisper models aren't that great. |



It doesn't support real-time per se, but you could build something similar by e.g. incrementally transcribing the audio every second.