suryatmodulus frontierai commited on
Commit
d67ba6e
·
0 Parent(s):

Duplicate from microsoft/VibeVoice-ASR-BitNet

Browse files

Co-authored-by: Furu Wei <frontierai@users.noreply.huggingface.co>

.gitattributes ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ *.gguf filter=lfs diff=lfs merge=lfs -text
2
+ model-00001-of-00003.safetensors filter=lfs diff=lfs merge=lfs -text
3
+ model-00002-of-00003.safetensors filter=lfs diff=lfs merge=lfs -text
4
+ model-00003-of-00003.safetensors filter=lfs diff=lfs merge=lfs -text
5
+ report_overview.png filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ - zh
5
+ - fr
6
+ - it
7
+ - ko
8
+ - pt
9
+ - vi
10
+ license: mit
11
+ pipeline_tag: automatic-speech-recognition
12
+ tags:
13
+ - ASR
14
+ - quantization
15
+ - cpu-inference
16
+ - gguf
17
+ - bitnet
18
+ - multilingual
19
+ library_name: ggml
20
+ ---
21
+
22
+ ## VibeVoice-ASR-BitNet
23
+
24
+ [![GitHub](https://img.shields.io/badge/GitHub-Repo-black?logo=github)](https://github.com/microsoft/VibeASR.cpp)
25
+ [![Technical Report](https://img.shields.io/badge/arXiv-2607.21075-b31b1b?logo=arxiv)](https://arxiv.org/abs/2607.21075)
26
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
27
+
28
+ **VibeVoice-ASR-BitNet** is a compressed variant of [VibeVoice-ASR](https://huggingface.co/microsoft/VibeVoice-ASR) optimized for **real-time inference on edge CPUs** — no GPU required. Through heterogeneous quantization, the model is compressed from 4.62 GB to **1.58 GB** while achieving **1.6–2.3× faster** inference than Whisper.cpp with real-time capability (RTF < 1) on as few as 3 CPU threads.
29
+
30
+ ➡️ **Code:** [microsoft/VibeASR.cpp](https://github.com/microsoft/VibeASR.cpp)<br>
31
+ ➡️ **Report:** [VibeVoice-ASR-BitNet Technical Report](https://arxiv.org/abs/2607.21075)<br>
32
+ ➡️ **Base Model:** [microsoft/VibeVoice-ASR](https://huggingface.co/microsoft/VibeVoice-ASR)<br>
33
+
34
+ <p align="center">
35
+ <img src="figures/report_overview.png" width="90%"/>
36
+ </p>
37
+
38
+ ---
39
+
40
+ ## 🔥 Key Features
41
+
42
+ - **⚡ Real-time on CPU** — RTF < 1 with 3+ threads on commodity x86 (AVX2) and ARM (NEON) hardware
43
+ - **📦 Compact** — 1.58 GB total (2.9× compression from FP16), fits in edge device memory
44
+ - **🌍 Multilingual** — English, Chinese, French, Italian, Korean, Portuguese, Vietnamese, and more
45
+ - **🔧 Custom SIMD Kernels** — Fused operators within the ggml framework for both ARM and x86 platforms
46
+
47
+ ---
48
+
49
+ ## Quantization Strategy
50
+
51
+ <div align="center">
52
+
53
+ | Component | FP16 | Quantized | Method | Compression |
54
+ |:-:|:-:|:-:|:-:|:-:|
55
+ | VAE Tokenizer | 1.31 GB | 0.65 GB | I8\_S | 2.0× |
56
+ | LM Decoder | 3.32 GB | 0.92 GB | I2\_S + Q6\_K | 3.6× |
57
+ | **Total** | **4.62 GB** | **1.58 GB** | — | **2.9×** |
58
+
59
+ </div>
60
+
61
+ ---
62
+
63
+ ## Evaluation
64
+
65
+ ### Inference Speed
66
+
67
+ <div align="center">
68
+
69
+ | Threads | 1 | 2 | 3 | 4 | 6 | 8 |
70
+ |:-:|:-:|:-:|:-:|:-:|:-:|:-:|
71
+ | RTF | 1.98 | 1.08 | **0.77** | **0.63** | **0.49** | **0.42** |
72
+ | vs. Whisper.cpp | 2.28× | 2.12× | 1.86× | 1.86× | 1.71× | 1.55× |
73
+
74
+ </div>
75
+
76
+ > Benchmarked on AMD EPYC 7V13 (AVX2+FMA) with 20s audio. **Bold** = RTF < 1 (real-time).
77
+
78
+ ### Accuracy (WER%)
79
+
80
+ <div align="center">
81
+
82
+ | Benchmark | VibeVoice-ASR-7B | VibeVoice-ASR-BitNet | Parakeet | Whisper | SenseVoice | FunASR |
83
+ |:-:|:-:|:-:|:-:|:-:|:-:|:-:|
84
+ | MLC-EN | 7.82 | **8.25** | 8.40 | 13.57 | 12.39 | 11.36 |
85
+ | MLC-FR | 16.03 | 17.41 | — | — | — | — |
86
+ | MLC-IT | 15.67 | 17.23 | — | — | — | — |
87
+ | MLC-KO | 9.83 | 11.15 | — | — | — | — |
88
+ | MLC-PT | 22.41 | 24.87 | — | — | — | — |
89
+ | MLC-VI | 20.15 | 22.38 | — | — | — | — |
90
+ | AISHELL4 | 19.83 | 27.45 | — | — | 22.52 | **20.41** |
91
+ | AMI-ihm | 17.42 | **21.36** | 21.92 | 27.07 | 30.81 | 32.07 |
92
+ | AMI-sdm | 24.18 | **25.87** | 26.33 | 36.92 | 48.11 | 40.17 |
93
+ | AliMeeting | 36.21 | 40.58 | — | — | **38.75** | 39.27 |
94
+ | Fleurs-en | 4.73 | 5.21 | 4.09 | **3.99** | 6.84 | 4.93 |
95
+ | Fleurs-zh | 7.92 | 8.35 | — | — | **5.56** | 7.00 |
96
+ | Libri-clean | 2.17 | 2.41 | **1.49** | 1.98 | 2.78 | 1.58 |
97
+ | Libri-other | 5.84 | 6.27 | **3.13** | 3.60 | 6.81 | 4.01 |
98
+ | VoxPopuli | 4.92 | **5.18** | 5.26 | 7.19 | 8.63 | 6.46 |
99
+
100
+ </div>
101
+
102
+ ---
103
+
104
+ ## Model Files
105
+
106
+ <div align="center">
107
+
108
+ | File | Size | Description |
109
+ |:-:|:-:|:-:|
110
+ | `vibeasr-vae-encoder-i8_s.gguf` | 0.65 GB | VAE tokenizer, I8\_S quantized (ready to use) |
111
+ | `vibeasr-lm-i2_s-embed-q6_k.gguf` | 0.92 GB | LM decoder, I2\_S quantized (ready to use) |
112
+ | `model-*.safetensors` | 10.7 GB | Original SafeTensors (for conversion) |
113
+
114
+ </div>
115
+
116
+ ---
117
+
118
+ ## License
119
+
120
+ This project is licensed under the MIT License.
121
+
122
+ ## Contact
123
+
124
+ This project was conducted by members of Microsoft Research. If you have suggestions, questions, or observe unexpected behavior, please contact us at VibeVoice@microsoft.com.
config.json ADDED
@@ -0,0 +1,148 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_attn_implementation_autoset": false,
3
+ "acoustic_tokenizer_config": {
4
+ "causal": true,
5
+ "channels": 1,
6
+ "conv_bias": true,
7
+ "conv_norm": "none",
8
+ "corpus_normalize": 0.0,
9
+ "decoder_depths": null,
10
+ "decoder_n_filters": 32,
11
+ "decoder_ratios": [
12
+ 8,
13
+ 5,
14
+ 5,
15
+ 4,
16
+ 2,
17
+ 2
18
+ ],
19
+ "disable_last_norm": true,
20
+ "dtype": "bfloat16",
21
+ "encoder_depths": "3-3-3-3-3-3-8",
22
+ "encoder_n_filters": 32,
23
+ "encoder_ratios": [
24
+ 8,
25
+ 5,
26
+ 5,
27
+ 4,
28
+ 2,
29
+ 2
30
+ ],
31
+ "fix_std": 0.5,
32
+ "layer_scale_init_value": 1e-06,
33
+ "layernorm": "RMSNorm",
34
+ "layernorm_elementwise_affine": true,
35
+ "layernorm_eps": 1e-05,
36
+ "mixer_layer": "depthwise_conv",
37
+ "model_type": "vibevoice_acoustic_tokenizer",
38
+ "pad_mode": "constant",
39
+ "std_dist_type": "gaussian",
40
+ "vae_dim": 64,
41
+ "weight_init_value": 0.01
42
+ },
43
+ "acoustic_vae_dim": 64,
44
+ "architectures": [
45
+ "VibeVoiceForASRTraining"
46
+ ],
47
+ "decoder_config": {
48
+ "attention_dropout": 0.0,
49
+ "dtype": "bfloat16",
50
+ "hidden_act": "silu",
51
+ "hidden_size": 1536,
52
+ "initializer_range": 0.02,
53
+ "intermediate_size": 8960,
54
+ "layer_types": [
55
+ "full_attention",
56
+ "full_attention",
57
+ "full_attention",
58
+ "full_attention",
59
+ "full_attention",
60
+ "full_attention",
61
+ "full_attention",
62
+ "full_attention",
63
+ "full_attention",
64
+ "full_attention",
65
+ "full_attention",
66
+ "full_attention",
67
+ "full_attention",
68
+ "full_attention",
69
+ "full_attention",
70
+ "full_attention",
71
+ "full_attention",
72
+ "full_attention",
73
+ "full_attention",
74
+ "full_attention",
75
+ "full_attention",
76
+ "full_attention",
77
+ "full_attention",
78
+ "full_attention",
79
+ "full_attention",
80
+ "full_attention",
81
+ "full_attention",
82
+ "full_attention"
83
+ ],
84
+ "max_position_embeddings": 65536,
85
+ "max_window_layers": 28,
86
+ "model_type": "qwen2",
87
+ "num_attention_heads": 12,
88
+ "num_hidden_layers": 28,
89
+ "num_key_value_heads": 2,
90
+ "rms_norm_eps": 1e-06,
91
+ "rope_scaling": null,
92
+ "rope_theta": 1000000.0,
93
+ "sliding_window": null,
94
+ "tie_word_embeddings": true,
95
+ "use_cache": true,
96
+ "use_sliding_window": false,
97
+ "vocab_size": 151936
98
+ },
99
+ "diffusion_head_config": {
100
+ "ddpm_batch_mul": 4,
101
+ "ddpm_beta_schedule": "cosine",
102
+ "ddpm_num_inference_steps": 20,
103
+ "ddpm_num_steps": 1000,
104
+ "diffusion_type": "ddpm",
105
+ "head_ffn_ratio": 3.0,
106
+ "head_layers": 4,
107
+ "hidden_size": 1536,
108
+ "latent_size": 64,
109
+ "model_type": "vibepod_diffusion_head",
110
+ "prediction_type": "v_prediction",
111
+ "rms_norm_eps": 1e-05,
112
+ "speech_vae_dim": 64
113
+ },
114
+ "dtype": "float32",
115
+ "model_type": "vibevoice",
116
+ "semantic_tokenizer_config": {
117
+ "causal": true,
118
+ "channels": 1,
119
+ "conv_bias": true,
120
+ "conv_norm": "none",
121
+ "corpus_normalize": 0.0,
122
+ "disable_last_norm": true,
123
+ "dtype": "bfloat16",
124
+ "encoder_depths": "3-3-3-3-3-3-8",
125
+ "encoder_n_filters": 32,
126
+ "encoder_ratios": [
127
+ 8,
128
+ 5,
129
+ 5,
130
+ 4,
131
+ 2,
132
+ 2
133
+ ],
134
+ "fix_std": 0,
135
+ "layer_scale_init_value": 1e-06,
136
+ "layernorm": "RMSNorm",
137
+ "layernorm_elementwise_affine": true,
138
+ "layernorm_eps": 1e-05,
139
+ "mixer_layer": "depthwise_conv",
140
+ "model_type": "vibevoice_semantic_tokenizer",
141
+ "pad_mode": "constant",
142
+ "std_dist_type": "none",
143
+ "vae_dim": 128,
144
+ "weight_init_value": 0.01
145
+ },
146
+ "semantic_vae_dim": 128,
147
+ "transformers_version": "4.57.6"
148
+ }
figures/report_overview.png ADDED

Git LFS Details

  • SHA256: 25ff476ff353744e5b52d26021cf50a12dd150d1513402f2b0b127355d0e384e
  • Pointer size: 131 Bytes
  • Size of remote file: 223 kB
generation_config.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 151643,
3
+ "do_sample": false,
4
+ "eos_token_id": 151643,
5
+ "max_new_tokens": 2048,
6
+ "transformers_version": "4.37.0"
7
+ }
model-00001-of-00003.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:58cb328634bb4b7e5afcc4f14c43261a0c636c9031b0b085bd3ef53c131aaf19
3
+ size 4996674400
model-00002-of-00003.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:410349401256a9a995424408f8f77a21cad5e53183e07207820d7b25e84682df
3
+ size 4963184724
model-00003-of-00003.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:49c2d7591f9dcbbd6fb37baa58379211f21df30dbd3c6ff39cb8c81473660cdb
3
+ size 1296761656
model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "added_tokens_decoder": {
4
+ "151643": {
5
+ "content": "<|endoftext|>",
6
+ "lstrip": false,
7
+ "normalized": false,
8
+ "rstrip": false,
9
+ "single_word": false,
10
+ "special": true
11
+ },
12
+ "151644": {
13
+ "content": "<|im_start|>",
14
+ "lstrip": false,
15
+ "normalized": false,
16
+ "rstrip": false,
17
+ "single_word": false,
18
+ "special": true
19
+ },
20
+ "151645": {
21
+ "content": "<|im_end|>",
22
+ "lstrip": false,
23
+ "normalized": false,
24
+ "rstrip": false,
25
+ "single_word": false,
26
+ "special": true
27
+ }
28
+ },
29
+ "additional_special_tokens": ["<|im_start|>", "<|im_end|>"],
30
+ "bos_token": null,
31
+ "chat_template": "{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful assistant<|im_end|>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}",
32
+ "clean_up_tokenization_spaces": false,
33
+ "eos_token": "<|endoftext|>",
34
+ "errors": "replace",
35
+ "model_max_length": 32768,
36
+ "pad_token": "<|endoftext|>",
37
+ "split_special_tokens": false,
38
+ "tokenizer_class": "Qwen2Tokenizer",
39
+ "unk_token": null
40
+ }
vibeasr-lm-i2_s-embed-q6_k.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fbe273d8dc2f2433bb25f849e19d77ea65aaa2188d12c20cee987ab6f321e002
3
+ size 992877600
vibeasr-vae-encoder-i8_s.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4941c82608c253ec066b5cc74d3dd11a5c8fef96cccbc5b87359ef0fe4338df6
3
+ size 703080064
vocab.json ADDED
The diff for this file is too large to render. See raw diff