Instructions to use JacobLinCool/TEA-ASR-1.1-mini with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use JacobLinCool/TEA-ASR-1.1-mini 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-mini")# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("JacobLinCool/TEA-ASR-1.1-mini") model = AutoModelForMultimodalLM.from_pretrained("JacobLinCool/TEA-ASR-1.1-mini") - Notebooks
- Google Colab
- Kaggle
TEA-ASR-1.1-mini · 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.
TEA-ASR-1.1-mini is the 780M compact model (best accuracy-per-parameter) of the second generation. For the
2B flagship, see JacobLinCool/TEA-ASR-1.1. Compared with the
first-generation TEA-ASR-1-mini, this release substantially improves code-switching — ASCEND and CSZS drop by
1.29 and 0.70 points absolute — with CommonVoice roughly level.
What's new in 1.1-mini
- 🔀 Code-switch leap — ASCEND 12.49 → 11.20, CSZS 13.21 → 12.51; embedded English is transcribed, not translated.
- 🏷️ Format tags — trained with output-convention tags: an optional decoder-prefix control that biases toward verbatim English and a chosen numeral style (see Format tags).
- 🪶 Still a single drop-in checkpoint,
< 10 hoursof public training audio, no runtime post-processing.
Quick start
pip install qwen-asr
from qwen_asr import Qwen3ASRModel
model = Qwen3ASRModel.from_pretrained("JacobLinCool/TEA-ASR-1.1-mini")
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). 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-mini vs TEA-ASR-1-mini (780M, same protocol, lower is better):
| Benchmark | TEA-ASR-1.1-mini | TEA-ASR-1-mini | Δ |
|---|---|---|---|
| CommonVoice 19 (zh-TW) | 5.12 | 5.14 | −0.02 |
| ASCEND (zh-en) | 11.20 | 12.49 | −1.29 |
| CSZS (zh-en) | 12.51 | 13.21 | −0.70 |
| NTUML2021 | 7.53 | 7.37 | +0.16 |
How to read this. 1.1-mini delivers most of the 2B flagship's quality at well under half the parameters (780M vs 2B) and leads every 0.6B-class system in the table. Against the first-generation mini it is a clear code-switch upgrade (ASCEND −1.29, CSZS −0.70), trading a small step back on the in-domain lecture set (NTUML2021 +0.16). 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.
Format tags
TEA-ASR-1.1-mini was trained with output-convention format tags — an optional prefix, in the same channel as
the language hint, that steers formatting without changing the recognition:
keep-en— transcribe embedded English verbatim (do not translate dense code-switch).digits/zh-num— force Arabic (123) or Chinese (一二三) numerals.
Plain decoding (no tag) works well by default; the tags are for callers who need a specific convention. Try them interactively in the Space.
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. Evaluation runs on the full, untouched test splits; CSZS is not used in training at all. Every number above is leak-free.
How it was built
- Base
Qwen/Qwen3-ASR-0.6B(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), with general + code-switch replay and English-preservation training so dense code-switch is transcribed, not translated, plus error-analysis-driven targeted supplements and the format-tag conditioning above.
- Localization: Traditional-script + Taiwan-lexicon output is rendered through the model's own tokenizer (baked once at build time); there is no post-processing at inference.
- 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
- Compact-model trade-off: on the hardest code-switch sets and on in-domain lectures the 780M mini trails the
2B
TEA-ASR-1.1; for the best accuracy prefer the flagship. - Scope: validated on the Qwen3-ASR family; loads via the
qwen-asrpackage exactly like the base.
Acknowledgements
- Base model: Qwen3-ASR by Alibaba Cloud (Apache-2.0; underlying weights remain subject to the Apache-2.0 license and its attribution/NOTICE terms).
- TaiMECS (CC-BY-4.0).
- Benchmarks: Common Voice (Mozilla), ASCEND (CAiRE), CSZS, NTU ML2021.
Citation
@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.
- Downloads last month
- 44
Model tree for JacobLinCool/TEA-ASR-1.1-mini
Base model
Qwen/Qwen3-ASR-0.6B