Instructions to use Ar4ikov/VibeVoice-ASR-Streaming-1.5B-DFlash2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- VibeVoice
How to use Ar4ikov/VibeVoice-ASR-Streaming-1.5B-DFlash2 with VibeVoice:
import torch, soundfile as sf, librosa, numpy as np from vibevoice.processor.vibevoice_processor import VibeVoiceProcessor from vibevoice.modular.modeling_vibevoice_inference import VibeVoiceForConditionalGenerationInference # Load voice sample (should be 24kHz mono) voice, sr = sf.read("path/to/voice_sample.wav") if voice.ndim > 1: voice = voice.mean(axis=1) if sr != 24000: voice = librosa.resample(voice, sr, 24000) processor = VibeVoiceProcessor.from_pretrained("Ar4ikov/VibeVoice-ASR-Streaming-1.5B-DFlash2") model = VibeVoiceForConditionalGenerationInference.from_pretrained( "Ar4ikov/VibeVoice-ASR-Streaming-1.5B-DFlash2", torch_dtype=torch.bfloat16 ).to("cuda").eval() model.set_ddpm_inference_steps(5) inputs = processor(text=["Speaker 0: Hello!\nSpeaker 1: Hi there!"], voice_samples=[[voice]], return_tensors="pt") audio = model.generate(**inputs, cfg_scale=1.3, tokenizer=processor.tokenizer).speech_outputs[0] sf.write("output.wav", audio.cpu().numpy().squeeze(), 24000) - Notebooks
- Google Colab
- Kaggle
VibeVoice-ASR-Streaming-1.5B-DFlash2
VibeVoice-ASR-Streaming-1.5B, the original BF16 weights as Microsoft published them, with its
DFlash 2 drafter bundled in drafter/:
one download, and vibevoice.c
decodes with speculative decoding -- the drafter proposes 8 tokens in one
pass, the model checks them in one pass and keeps the ones it agrees with.
The check is exact: every checked row is computed with the arithmetic of
the model's own decode step, so the transcript is byte-for-byte the one
without the drafter.
Use
Needs vibevoice.c with DFlash 2 support: branch dflash2
(PR #48), in the next
release. A model directory's drafter/ is used without asking:
vv_cli --model ./VibeVoice-ASR-Streaming-1.5B-DFlash2 --audio talk.wav # with the drafter
vv_cli --model ./VibeVoice-ASR-Streaming-1.5B-DFlash2 --audio talk.wav --draft none # plain decoding
vv_cli serve --model ./VibeVoice-ASR-Streaming-1.5B-DFlash2 --slots 4 # streaming sessions (WebSocket, SSE) too
vibevoice.c runs BF16 weights as dense FP16 (about 19 GB of VRAM for a 7B,
drafter included); --quant int4 quantizes them at load, and the drafter
works with that too.
Results
vibevoice.c b72be15 (branch dflash2), RTX 3090, greedy decoding, decode tokens per second:
| plain | drafted | speedup | tokens per block | same transcript | |
|---|---|---|---|---|---|
| 2-minute file | 208 tok/s | 408 tok/s | 1.96x | 3.26 | yes |
| 32-minute file | 186 tok/s | 358 tok/s | 1.92x | 3.10 | yes |
BF16 weights run as dense FP16; streaming sessions (22 + 4 frames a chunk). Plain = the same model with --draft none; --draft-check exact.
Inside
- The model: the files of microsoft/VibeVoice-ASR-Streaming-1.5B
at revision
4262d23d, unchanged (5.65 GB) -- its card has the model, the evaluation and the license. drafter/: Ar4ikov/VibeVoice-ASR-Streaming-1.5B-DFlash2-Drafter at revision264812a6(0.45 GB): 5 Qwen3-style layers reading the model's layers 1/7/13/19/25, a candidate selector, a 32768-id draft vocabulary; BF16, held as INT4 by default at load (--draft-quant f16keeps FP16). Its card has the architecture and the training.
License
MIT, like VibeVoice.
- Downloads last month
- -
Model tree for Ar4ikov/VibeVoice-ASR-Streaming-1.5B-DFlash2
Base model
microsoft/VibeVoice-ASR-Streaming-1.5B