# VibeVoice-ASR-Streaming
**VibeVoice-ASR-Streaming** transcribes while the audio is still arriving, instead of waiting for it to end. It emits text once per audio chunk, so a transcript appears as the speaker talks.
**Non-streaming:** [VibeVoice-ASR](./vibevoice-asr.md)
**vLLM:** [vLLM-asr-streaming](./vibevoice-vllm-asr-streaming.md)
## Installation
We recommend using NVIDIA Deep Learning Container to manage the CUDA environment.
1. Launch docker
```bash
# NVIDIA PyTorch Container 24.07 ~ 25.12 verified.
# Previous versions are also compatible.
sudo docker run --privileged --net=host --ipc=host --ulimit memlock=-1:-1 --ulimit stack=-1:-1 --gpus all --rm -it nvcr.io/nvidia/pytorch:25.12-py3
## If flash attention is not included in your docker environment, you need to install it manually
## Refer to https://github.com/Dao-AILab/flash-attention for installation instructions
# pip install flash-attn --no-build-isolation
```
2. Install from github
```bash
git clone https://github.com/microsoft/VibeVoice.git
cd VibeVoice
pip install -e .
```
3. Install ffmpeg, which both usages below need to decode audio
```bash
apt update && apt install ffmpeg -y
```
## Usages
### Usage 1: Launch the FastAPI demo
```bash
python demo/vibevoice_asr_streaming_fastapi_demo.py --model_path [add the checkpoint path here]
```
Open `http://localhost:7870`, then record from the microphone or pick a file. The page keeps a WebSocket open for the whole recording, so text appears while you are still speaking.
### Usage 2: Inference from files directly
```bash
python demo/vibevoice_asr_streaming_inference_from_file.py --model_path [add the checkpoint path here] --audio_files [add an audio path here]
```
Each chunk is printed as soon as the model emits it. Add `--context_info "Microsoft,VibeVoice"` to bias recognition toward specific terms, the same way hotwords work on the non-streaming model.
The chunk and lookahead are read from the checkpoint's `preprocessor_config.json`, so a checkpoint always runs at the chunk it was trained on.
## 📄 License
This project is licensed under the [MIT License](../LICENSE).