Automatic Speech Recognition
Transformers
Safetensors
Chinese
English
qwen3_asr
taiwan-mandarin
traditional-chinese
code-switching
qwen3-asr
speech
Instructions to use JacobLinCool/TEA-ASR-1.1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use JacobLinCool/TEA-ASR-1.1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="JacobLinCool/TEA-ASR-1.1")# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("JacobLinCool/TEA-ASR-1.1") model = AutoModelForMultimodalLM.from_pretrained("JacobLinCool/TEA-ASR-1.1") - Notebooks
- Google Colab
- Kaggle
| 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**. | |