File size: 3,978 Bytes
14497b0
 
 
d31b683
14497b0
 
43f9232
c122fdc
14497b0
 
 
 
 
d31b683
14497b0
 
 
 
 
 
 
 
d31b683
 
14497b0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83126d9
d31b683
6e93f44
3bf6bfe
 
 
 
 
14497b0
 
 
 
 
 
d31b683
14497b0
 
37bc125
14497b0
 
 
 
 
 
 
c122fdc
 
14497b0
 
 
 
 
 
 
 
d31b683
14497b0
 
d31b683
14497b0
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
---
license: cc-by-nc-nd-4.0
---
# Vietnamese Streaming Speech-to-Text (ASR) β€” ZipFormer-30M-RNNT-Streaming-6000h

## πŸ” Overview
The **Vietnamese Streaming Speech-to-Text (ASR)** model is built on the **ZipFormer architecture with chunk size 16,32,64** β€” an improved variant of the Conformer β€” featuring only **30 million parameters** yet.  
On CPU, the model can transcribe a **1-second audio chunk in just 0.05 seconds**, designed for streaming-based tasks with low latency requirements.

---

## πŸš€ Online Demo

You can test the streaming and none-streaming model directly here:  
πŸ‘‰ https://huggingface.co/spaces/hynt/k2-automatic-speech-recognition-demo

---

## βš™οΈ Model Architecture and Training strategy:
- **Architecture:** ZipFormer  
- **Parameters:** ~30M  
- **Language:** Vietnamese  
- **Loss Function:** RNN-Transducer (RNNT Loss)
- **Chunk Size:** 16, 32, 64  
- **Framework:** PyTorch + k2
- **Training strategy**: Carefully preprocess the data, apply an augmentation strategy based on the distribution of out-of-vocabulary (OOV) tokens and refine the transcriptions using Whisper.  
- **Optimized for:** High-speed CPU inference  

---

## 🧠 Training Data
The model was trained on approximately **6000 hours of high-quality Vietnamese speech** collected from various public datasets:

| Dataset |  |  |
|----------|----------|----------|
| VLSP2020 | VLSP2021 | VLSP2023-voting-pseudo-labeled |
| VLSP2023 | FPT | VIET_BUD500 |
| VietSpeech | FLEURS | VietMed_Labeled |
| Sub-GigaSpeech2-Vi | ViVoice | Sub-PhoAudioBook |

---

## πŸ§ͺ Evaluation Results

| **Dataset** | **ZipFormer-30M-6000h** | **ZipFormer-30M-Streaming-chunk32-6000h** | **ChunkFormer-110M-3000h** | **PhoWhisper-Large-1.5B-800h** | **VietASR-ZipFormer-68M-70.000h** |
|--------------|--------------------------|------------------------------------|-----------------------------|--------------------------------|---------------------------------|
| **VLSP2020-Test-T1** | **12.29** | 16.68 | 14.09 | 13.75 | 14.45 |
| **VLSP2023-PublicTest** | **10.40** | 14.29 | 16.15 | 16.83 | 14.70 |
| **VLSP2023-PrivateTest** | **11.10** | 14.36 | 17.12 | 17.10 | 15.07 |
| **VLSP2025-PublicTest** | **7.97** | 12.70 | 15.55 | 16.14 | 13.55 |
| **VLSP2025-PrivateTest** | **8.10** | 12.80 | 16.07 | 16.31 | 13.97 |
| **GigaSpeech2-Test** | 7.56 | 9.72 | 10.35 | 10.00 | **6.88** |

> Lower is better (WER %)

---

## πŸ† Achievements
By training this none-streaming model architecture on 4,000 hours of data, I **won First Place** in the **Vietnamese Language Speech Processing (VLSP)** competition **2025**.
Comprehensive details about **training data**, **optimization strategies**, **architecture improvements**, and **evaluation methodologies** are available in the paper below:

πŸ‘‰ [Read the full paper on ACL](https://aclanthology.org/2025.vlsp-1.4.pdf)

---

## ⚑ Inference Speed

| **Device** | **Audio Length** | **Inference Time** |
|-------------|------------------|--------------------|
| CPU (Hugging Face Basic) | 1 seconds audio chunk | **0.05 s** |
| GPU (RTX 3090) | 1 seconds audio chunk | **< 0.01 s** |

---

## βš™οΈ How to Run This Model

Please refer to the following guides for instructions on how to run and deploy this model:  
- **For Torch JIT Script:** [https://k2-fsa.github.io/sherpa/](https://k2-fsa.github.io/sherpa/)  
- **For ONNX:** [https://k2-fsa.github.io/sherpa/onnx/](https://k2-fsa.github.io/sherpa/onnx/)
- **For Streaming Web Test:**: [https://github.com/k2-fsa/sherpa/tree/master/sherpa/bin](https://github.com/k2-fsa/sherpa/tree/master/sherpa/bin)

## πŸ’¬ Summary
The **ZipFormer-30M-RNNT-6000h** and **ZipFormer-30M-RNNT-Streaming-6000h** model demonstrates that a lightweight architecture can still achieve state-of-the-art accuracy for Vietnamese ASR.  
It is designed for **fast deployment on CPU-based systems**, making it ideal for **real-time speech recognition**, **callbots**, and **embedded speech interfaces**.

---