Instructions to use P2Enjoy/VibeVoice-ASR-BitNet-slim with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use P2Enjoy/VibeVoice-ASR-BitNet-slim with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf P2Enjoy/VibeVoice-ASR-BitNet-slim # Run inference directly in the terminal: llama cli -hf P2Enjoy/VibeVoice-ASR-BitNet-slim
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf P2Enjoy/VibeVoice-ASR-BitNet-slim # Run inference directly in the terminal: llama cli -hf P2Enjoy/VibeVoice-ASR-BitNet-slim
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf P2Enjoy/VibeVoice-ASR-BitNet-slim # Run inference directly in the terminal: ./llama-cli -hf P2Enjoy/VibeVoice-ASR-BitNet-slim
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf P2Enjoy/VibeVoice-ASR-BitNet-slim # Run inference directly in the terminal: ./build/bin/llama-cli -hf P2Enjoy/VibeVoice-ASR-BitNet-slim
Use Docker
docker model run hf.co/P2Enjoy/VibeVoice-ASR-BitNet-slim
- LM Studio
- Jan
- Ollama
How to use P2Enjoy/VibeVoice-ASR-BitNet-slim with Ollama:
ollama run hf.co/P2Enjoy/VibeVoice-ASR-BitNet-slim
- Unsloth Studio
How to use P2Enjoy/VibeVoice-ASR-BitNet-slim with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for P2Enjoy/VibeVoice-ASR-BitNet-slim to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for P2Enjoy/VibeVoice-ASR-BitNet-slim to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for P2Enjoy/VibeVoice-ASR-BitNet-slim to start chatting
- Docker Model Runner
How to use P2Enjoy/VibeVoice-ASR-BitNet-slim with Docker Model Runner:
docker model run hf.co/P2Enjoy/VibeVoice-ASR-BitNet-slim
- Lemonade
How to use P2Enjoy/VibeVoice-ASR-BitNet-slim with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull P2Enjoy/VibeVoice-ASR-BitNet-slim
Run and chat with the model
lemonade run user.VibeVoice-ASR-BitNet-slim-{{QUANT_TAG}}List all available models
lemonade list
- Atomic Chat
VibeVoice-ASR-BitNet-slim
A repack of microsoft/VibeVoice-ASR-BitNet with a redundant tensor removed. No retraining, no re-quantisation of the ternary weights β the transformer body is byte-for-byte the original.
| LM | VAE | Total | |
|---|---|---|---|
| microsoft/VibeVoice-ASR-BitNet | 992.9 MB | 703.1 MB | 1.70 GB |
| this repo | 526.1 MB | 703.1 MB | 1.23 GB |
What changed
The released LM GGUF carries output.weight as F16, 466.7 MB β 47% of the file,
next to token_embd.weight already stored as Q6_K at 191.4 MB.
In the source checkpoint tie_word_embeddings is true, and lm_head.weight is
bit-identical to embed_tokens.weight. So the F16 tensor is the same matrix a
second time, at higher precision than the copy the file already holds.
llama.cpp loads LLM_TENSOR_OUTPUT as TENSOR_NOT_REQUIRED and falls back to
token_embd when it is absent, so the tensor can simply be dropped. The output
projection then runs through the Q6_K copy instead of the F16 one β the only
numerical change in this repack.
Removing it also takes 466.7 MB off the memory read on every decoded token, which was roughly half the LM's per-token bandwidth.
What it costs
Not nothing. Moving the output projection from F16 to Q6_K is measurable. FLEURS, 24 clips per language, greedy decoding, 2 threads, numbers spelled out on both sides before scoring:
| Language | microsoft/VibeVoice-ASR-BitNet | this repo | Ξ |
|---|---|---|---|
| Spanish | 6.47 | 6.47 | +0.00 |
| English | 8.23 | 8.58 | +0.34 |
| Portuguese | 8.90 | 8.57 | β0.33 |
| Italian | 9.67 | 9.52 | β0.16 |
| German | 14.63 | 14.98 | +0.35 |
| French | 34.08 | 35.88 | +1.81 |
| corpus | 14.31 | 14.69 | +0.38 |
So: about +0.4 WER for β47% LM size. Two languages improve, one is unchanged, three get worse. At ~400 reference words per language a Β±0.3 swing is inside the noise; French's +1.81 is roughly seven word errors and sits at the edge of it.
Take the trade if size or decode bandwidth matters to you, and don't if you need every last point of accuracy.
Bit budget
| Component | Type | Weights | MB | bits/wt |
|---|---|---|---|---|
| transformer body | I2_S | 1,310,195,712 | 327.6 | 2.00 |
| token embedding | Q6_K | 233,373,696 | 191.4 | 6.56 |
| norms / biases | F32 | 144,896 | 0.6 | 32.00 |
| total | 1,543,714,304 | 519.6 | 2.69 |
The released file is 4.44 bits/weight overall; this one is 2.69. Note that the ternary body is packed at exactly 2.000 bits/weight, not logβ3 = 1.585 β I2_S stores four ternary values per byte and leaves one of four codes unused, which is 68 MB of padding (20.8% of the body).
Usage
Drop-in for the released model β same runtime, same flags:
./build/bin/asr_infer \
--vae-model vibeasr-vae-encoder-i8_s.gguf \
--lm-model vibeasr-lm-i2_s-tied.gguf \
--audio input.wav -t 4 --greedy
Languages
VibeVoice-ASR was trained on en, zh, fr, it, ko, pt, vi. Among EU official languages that means English, French, Italian and Portuguese are in-distribution; Spanish and German are not in the training mix but generalise usably. The other EU languages degrade sharply and this repack does not change that β it is a packaging fix, not a capability change.
Speed
Not covered here by design. This card documents the model artifact β what changed in the weights and what it costs in accuracy. CPU inference speed is a property of the runtime, and the fork this model ships with carries substantial kernel work (AVX-512/VNNI dispatch, a register-tiled INT8 GEMM, vectorised quantisation epilogues β RTF well under real time on 4 modest cores). The measured speed tables, the per-stage breakdowns, and the scripts that regenerate them live in the GitHub README:
β‘οΈ martinobettucci/VibeASR-bitnet.cpp β "CPU optimisation on AVX-512"
The WER tables above were produced by that repo's benchmark harness
(bench/run_asr.py, methodology in bench/README.md); the harness documentation is
the reference for how they were scored (FLEURS slices, corpus-level WER, digit runs
spelled out in the clip's language on both sides).
Provenance
Produced with tools/requant_lm_head.cpp --drop from
martinobettucci/VibeASR-bitnet.cpp,
branch claude/asr-cpu-optimization-cztnh9. The VAE encoder and tokenizer files are
copied unmodified from the upstream repo.
Licensed MIT, as upstream.
- Downloads last month
- -
We're not able to determine the quantization variants.
Model tree for P2Enjoy/VibeVoice-ASR-BitNet-slim
Base model
microsoft/VibeVoice-ASR-BitNet