JacobLinCool/TEA-ASR-1.1-mini

🤗 Hugging Face sourceautomatic-speech-recognitionmit782M params1.6 GBsafetensors✓ 1 checksumupdated today
Submit in one command

Run it next to your model folder. It makes the torrent, checks your files against Hugging Face, and submits it. You just start seeding and paste your key from your account. It only reads your files and never changes them. Read the script first if you like.

curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo JacobLinCool/TEA-ASR-1.1-mini ./model-folder
Needs a seeder →

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.

Need a controllable numeral style? The TEA-ASR-1.1-mini-fmt variant adds a numeral-convention dial for formatting-sensitive, Mandarin-dominant audio (it trades dense code-switch robustness — see its card). This model stays the best compact pick for recognition.

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 hours of 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-asr package 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.