| File | VAE | Embed | Size | Recommended |
|---|---|---|---|---|
vibevoice-asr-bitnet-tq2.gguf | Q8_0 | F16 | 1.55 GB | default |
vibevoice-asr-bitnet-embed-q8.gguf | Q8_0 | Q8_0 | 1.34 GB | |
vibevoice-asr-bitnet-vae-q5.gguf | Q5_0 | F16 | 1.33 GB | |
vibevoice-asr-bitnet-both-q5.gguf | Q5_0 | Q8_0 | 1.12 GB | |
vibevoice-asr-bitnet-vae-q4.gguf | Q4_0 | F16 | 1.26 GB | |
vibevoice-asr-bitnet-aggro.gguf | Q4_0 | Q8_0 | 1.05 GB | smallest |
aggro variant is 35% smaller than the default with zero degradation.| Property | Value |
|---|---|
| Base model | microsoft/VibeVoice-ASR-BitNet (1.5B params) |
| Architecture | Dual VAE encoder + Qwen2 LM decoder |
| LM | 28 layers, 1536 hidden, 12 heads, 2 KV heads |
| VAE | ConvNeXt-style 1D CNN, stride 3200, acoustic (64d) + semantic (128d) |
| Input | 24 kHz mono PCM |
| Languages | English, Chinese, French, Italian, Korean, Portuguese, Vietnamese |
| License | MIT |
s = 1/mean(|w|), round, clamp) and packs into ggml's native TQ2_0 format (2.06 bpw). No custom SIMD kernels needed -- standard ggml mul_mat handles TQ2_0 transparently.| Component | Quant options | Notes |
|---|---|---|
| LM projections | TQ2_0 (all variants) | BitNet ternary, 2 bits/weight |
| VAE encoders | Q8_0 / Q5_0 / Q4_0 | ConvNeXt conv + FFN weights |
| LM embedding | F16 / Q8_0 | Lookup table, Q8_0 is lossless |
| Norms / biases | F32 (all variants) | Numerical stability |
| lm_head | tied to tok_emb (not stored) | Backend falls back automatically |
ANd so, my fellow Americans, ask not what your country can do for you -- ask what you can do for your country..
1# Auto-download (uses the default tq2 variant)
2crispasr -m auto --backend vibevoice-bitnet -f audio.wav
3
4# Or with a specific file
5crispasr -m vibevoice-asr-bitnet-aggro.gguf --backend vibevoice -f audio.wav1#include "vibevoice.h"
2
3vibevoice_context_params params = vibevoice_context_default_params();
4params.n_threads = 4;
5vibevoice_context *ctx = vibevoice_init_from_file("vibevoice-asr-bitnet-aggro.gguf", params);
6char *text = vibevoice_transcribe(ctx, samples_24khz, n_samples);
7printf("%s\n", text);
8free(text);
9vibevoice_free(ctx);1import crispasr
2s = crispasr.Session("vibevoice-asr-bitnet-aggro.gguf", backend="vibevoice")
3result = s.transcribe("audio.wav")
4print(result["text"])1# Default (Q8_0 VAE + F16 embed)
2python models/convert-vibevoice-bitnet-to-gguf.py \
3 --input microsoft/VibeVoice-ASR-BitNet \
4 --output vibevoice-asr-bitnet-tq2.gguf
5
6# Aggressive (Q4_0 VAE + Q8_0 embed, 1.05 GB)
7python models/convert-vibevoice-bitnet-to-gguf.py \
8 --input microsoft/VibeVoice-ASR-BitNet \
9 --output vibevoice-asr-bitnet-aggro.gguf \
10 --vae-quant q4_0 --embed-quant q8_0microsoft.mit. This repository redistributes under the same terms; it grants no rights the upstream licence does not.