File size: 8,987 Bytes
b8188d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bda08df
 
 
 
 
 
b8188d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
344a623
 
 
 
b8188d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
---
base_model: Qwen/Qwen3-ASR-1.7B
license: mit
library_name: transformers
pipeline_tag: automatic-speech-recognition
language:
  - zh
  - en
tags:
  - automatic-speech-recognition
  - taiwan-mandarin
  - traditional-chinese
  - code-switching
  - qwen3-asr
  - speech
---

# TEA-ASR-1.1 · Taiwan Everyday Audio 🍵

**TEA-ASR is an open, drop-in speech-recognition model purpose-built for Taiwan Mandarin.** It turns real speech
into natural **Traditional Chinese** with authentic **Taiwan vocabulary**, and it stays robust through the everyday
**Mandarin–English code-switching** common in Taiwan. Adapted from the state-of-the-art **Qwen3-ASR** foundation and
merged into a single self-contained checkpoint, TEA-ASR **loads and runs exactly like stock Qwen3-ASR** — no
converters, no post-processing — while matching or surpassing both a dedicated Taiwan specialist and a large
multilingual model on every public benchmark we evaluate.

`TEA-ASR-1.1` is the **2B second-generation flagship (best accuracy)** and **improves on TEA-ASR-1 across every
benchmark**. A companion **TEA-ASR-1.1-mini** shares the recipe at 780M — see
[`JacobLinCool/TEA-ASR-1.1-mini`](https://huggingface.co/JacobLinCool/TEA-ASR-1.1-mini).

> **Need a controllable numeral style?** The
> [`TEA-ASR-1.1-fmt`](https://huggingface.co/JacobLinCool/TEA-ASR-1.1-fmt) variant adds a verified
> numeral-convention dial (`digits` 108年 / `zh-num` 一百零八年) for formatting-sensitive,
> Mandarin-dominant use, trading a small measured amount of dense-code-switch robustness. This
> flagship stays the best pick for recognition quality and heavy code-switching.

## What's new in 1.1

- 🔀 **Code-switch leap** — ASCEND 10.59 → **9.60**, CSZS 10.98 → **10.94**; the English side of code-switch
  (ASCEND-en) improves most.
- 🎯 **Better on everything** — CommonVoice, NTUML2021 lectures, and both code-switch sets all move down versus
  TEA-ASR-1, on the same protocol.
- 🪶 Still a **single drop-in checkpoint**, `< 10 hours` of public training audio, no runtime post-processing.

## Key features

- 🎯 **Built for Taiwan Mandarin** — Traditional script **and** Taiwan-style word choice, produced by the model
  itself.
- 🔀 **Code-switch robust** — handles natural zh-en mixing instead of translating Mandarin into English.
- 🧩 **Drop-in Qwen3-ASR compatible** — same loading and inference API as the base model; nothing else to install
  or call.
- 🪶 **Lightweight adaptation** — a small decoder LoRA on a frozen audio encoder, trained on a few hours of public
  audio, then merged for deployment.

## Quick start

```bash
pip install qwen-asr
```

```python
from qwen_asr import Qwen3ASRModel

model = Qwen3ASRModel.from_pretrained("JacobLinCool/TEA-ASR-1.1")
result = model.transcribe(audio="utterance.wav", language="Chinese")[0]
print(result.text)   # -> Traditional Chinese with Taiwan lexicon
```

Set `language="Chinese"` for Taiwan speech (recommended). You can also pass a `context=` string of hotwords
(names, jargon) for contextual biasing, exactly as with the base Qwen3-ASR.

## Benchmark results

Mixed Error Rate (MER%, **lower is better**), all numbers from a **single self-measured run under one protocol**
(see [Evaluation](#evaluation)). Columns: the two TEA-ASR-1.1 models, the original (unadapted) **Qwen3-ASR** bases,
and two references — **Breeze-ASR-25** (a Taiwan-specialist ASR) and **Whisper-large-v3**. **Bold = this model.**

| Benchmark | TEA-ASR-1.1 | TEA-ASR-1.1-mini | Qwen3-ASR-1.7B | Qwen3-ASR-0.6B | Breeze-ASR-25 | Whisper-large-v3 |
|---|---|---|---|---|---|---|
| CommonVoice 19 (zh-TW) | **3.58** | 5.12 | 3.90 | 5.79 | 8.03 | 10.17 |
| ASCEND (zh-en) | **9.60** | 11.20 | 10.57 | 12.54 | 17.53 | 19.61 |
| CSZS (zh-en) | **10.94** | 12.51 | 11.03 | 16.03 | 12.18 | 23.24 |
| NTUML2021 | **6.67** | 7.53 | 10.12 | 11.03 | 7.50 | 9.68 |

**Generational improvement — TEA-ASR-1.1 vs TEA-ASR-1** (2B flagship, same protocol, lower is better):

| Benchmark | TEA-ASR-1.1 | TEA-ASR-1 | Δ |
|---|---|---|---|
| CommonVoice 19 (zh-TW) | **3.58** | 3.64 | −0.06 |
| ASCEND (zh-en) | **9.60** | 10.59 | −0.99 |
| CSZS (zh-en) | **10.94** | 10.98 | −0.04 |
| NTUML2021 | **6.67** | 6.80 | −0.13 |

**How to read this.** **TEA-ASR-1.1** is the flagship model on this page and posts the best error rate on every
benchmark in the suite — ahead of the Taiwan-specialist Breeze-ASR-25, far ahead of Whisper-large-v3, and below its
own predecessor TEA-ASR-1 on all four sets. **TEA-ASR-1.1-mini** delivers most of that quality at well under half
the parameters (780M vs 2B). The metric **folds away script differences** (see Evaluation), so it does *not* reflect
the decisive practical change: TEA-ASR emits **Traditional script and Taiwan vocabulary natively**, whereas the base
produces Simplified script.

## Evaluation

- **Metric — Mixed Error Rate (MER).** Character Error Rate for Chinese and Word Error Rate for the English tokens,
  computed jointly per utterance and micro-averaged.
- **Content fold (applied uniformly to every dataset and every system).** Before scoring, both the reference and
  the hypothesis are normalized to a common form — **converted to Simplified Chinese with OpenCC (`t2s`)**,
  lowercased, and stripped of punctuation. This isolates *recognition* from *script style*, so a Simplified-output
  model and a Traditional-output model (TEA-ASR) are compared fairly on content. (TEA-ASR's actual output is
  Traditional; the fold is only for scoring.)
- **Decoding.** TEA-ASR and Qwen3-ASR are decoded with `language=Chinese`; Whisper-large-v3 and Breeze-ASR-25 use
  their own automatic language detection. All systems are scored with the **same code on the same public splits**;
  we do not import numbers reported elsewhere.

| Dataset | What it tests | Eval split (n) |
|---|---|---|
| **CommonVoice 19 (zh-TW)** | Read Taiwan-Mandarin speech | full test (5013) |
| **ASCEND** | Spontaneous Mandarin–English code-switch conversation | full test (1315) |
| **CSZS (zh-en)** | Zero-resource code-switch benchmark | full test (3176) |
| **NTUML2021** | Mandarin lecture speech (university ML course) | test[:2000] |

- **No train/test leakage.** Fine-tuning used **only** the *training* pools, disjoint from every evaluation split:
  the NTUML2021 *train* split, the ASCEND *train* split, and a CommonVoice slice drawn from
  `validated_without_test` (CommonVoice's official non-test pool, disjoint from its *test* split). Evaluation
  therefore runs on the **full, untouched** CommonVoice / ASCEND / NTUML2021 *test* splits; CSZS is a separate
  dataset not used in training at all. Every number above is leak-free.

## How it was built

- **Base** `Qwen/Qwen3-ASR-1.7B` (AuT audio encoder + Qwen3 decoder).
- **Adaptation**: a rank-16 **decoder LoRA** (plus a low-LR encoder LoRA) trained on **under 10 hours of public
  audio** (CommonVoice zh-TW, ASCEND, NTUML2021, and [TaiMECS](https://huggingface.co/datasets/JacobLinCool/TaiMECS)),
  with general + code-switch **replay** to preserve the base model's broad and bilingual ability. The 1.1 recipe
  adds error-analysis-driven targeted supplements and English-preservation training so dense code-switch is
  *transcribed*, not translated.
- **Localization**: Traditional-script + Taiwan-lexicon output is rendered through the model's **own tokenizer**
  (the surface mapping is baked once at build time); there is **no post-processing at inference** — the Traditional
  output comes straight from the model's own tokenizer decode.
- **Packaging**: the adapter is **merged** into the base and the localized tokenizer is shipped with it, so the
  release is a single drop-in checkpoint that loads like stock Qwen3-ASR (decode verified bit-exact on 152k+
  sequences).
- **Decoding tip**: pass `language="Chinese"` for Taiwan speech; this also prevents translation-style outputs on
  dense code-switch.

## Limitations

- **Scope**: validated on the Qwen3-ASR family (0.6B and 1.7B); the released models load via the `qwen-asr` package,
  exactly like the base.
- **Compact model trade-off**: the 780M TEA-ASR-1.1-mini trails the 2B flagship on the hardest code-switch sets; for
  heavy Mandarin–English mixing prefer TEA-ASR-1.1.

## Acknowledgements

- Base model: [Qwen3-ASR](https://huggingface.co/Qwen/Qwen3-ASR-1.7B) by Alibaba Cloud (Apache-2.0; underlying
  weights remain subject to the Apache-2.0 license and its attribution/NOTICE terms).
- [TaiMECS](https://huggingface.co/datasets/JacobLinCool/TaiMECS) (CC-BY-4.0).
- Benchmarks: Common Voice (Mozilla), ASCEND (CAiRE), CSZS, NTU ML2021.

## Citation

```bibtex
@misc{teaasr2026,
  title  = {Tokenizer-First Adaptation of Mandarin ASR to Taiwan Mandarin},
  author = {TEA-ASR contributors},
  year   = {2026},
  note   = {TEA-ASR (Taiwan Everyday Audio); adapted from Qwen3-ASR}
}
```

The TEA-ASR adaptation and this checkpoint are released under the **MIT License**.