Instructions to use JacobLinCool/TEA-ASR-1.1-fmt with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use JacobLinCool/TEA-ASR-1.1-fmt 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-fmt")# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("JacobLinCool/TEA-ASR-1.1-fmt") model = AutoModelForMultimodalLM.from_pretrained("JacobLinCool/TEA-ASR-1.1-fmt") - Notebooks
- Google Colab
- Kaggle
TEA-ASR-1.1-fmt · Taiwan Everyday Audio 🍵 (format-controllable)
TEA-ASR-1.1-fmt is the output-convention-controllable variant of
TEA-ASR-1.1. Same drop-in Taiwan-Mandarin ASR —
native Traditional Chinese, Taiwan vocabulary, Mandarin–English code-switch — plus a working
numeral-style dial: a decoder-prefix format tag that switches the SAME audio between Arabic
(digits → 108年) and Chinese (zh-num → 一百零八年) numeral renderings.
Which one should I use?
- Formatting-sensitive, Mandarin-dominant work (subtitles, meeting/agency records, call-center logs that must follow one numeral convention) → this model.
- Heavy Mandarin–English code-switching → use TEA-ASR-1.1, which posts the best code-switch error rates of the family (this variant trades a measured amount of dense-code-switch robustness for the format control — see the table).
Format control
The tag rides the same decoder-prefix channel as the language hint:
from qwen_asr import Qwen3ASRModel
m = Qwen3ASRModel.from_pretrained("JacobLinCool/TEA-ASR-1.1-fmt")
# plain (recommended default): natural convention per domain
m.transcribe(audio="utt.wav", language="Chinese")
# force a numeral convention via the forced decoder prefix:
# language Chinese format digits<asr_text> -> Arabic numerals (108年)
# language Chinese format zh-num<asr_text> -> Chinese numerals (一百零八年)
# append keep-en to bias embedded English toward verbatim transcription
(The public transcribe(language=...) API validates the language string, so pass the full prefix
through the forced-prefix path — see the demo Space
source for a 20-line reference implementation.)
Measured control strength (multi-digit test panels, deterministic first-30 selection;
scripts/probe_numeral_flip.py):
| Panel (audio) | pair flip (both directions honored) | digits compliance |
zh-num compliance |
|---|---|---|---|
| CommonVoice zh-TW (Chinese-numeral speech) | 0.63 | 0.67 | 0.93 |
| NTUML2021 (digit-convention lectures) | 0.53 | 0.60 | 0.80 |
(Measured on this released checkpoint.)
The dial is a strong bias, not a hard switch: expect it to flip most multi-digit renderings and
to leave single digits (是1 / 是一) and decimals/percentages to the domain's natural convention.
keep-en biases embedded English toward verbatim output; plain decoding already preserves English
well, so its per-utterance effect is modest.
Benchmark results
Mixed Error Rate (MER%, lower is better), same protocol as the TEA-ASR-1.1 card (content fold: OpenCC t2s + lowercase + punctuation strip; full test splits; single self-measured run).
| Benchmark | TEA-ASR-1.1-fmt | TEA-ASR-1.1 | Qwen3-ASR-1.7B | Breeze-ASR-25 | Whisper-large-v3 |
|---|---|---|---|---|---|
| CommonVoice 19 (zh-TW) | 3.96 | 3.58 | 3.90 | 8.03 | 10.17 |
| ASCEND (zh-en) | 9.63 | 9.60 | 10.57 | 17.53 | 19.61 |
| CSZS (zh-en) | 11.29 | 10.94 | 11.03 | 12.18 | 23.24 |
| NTUML2021 | 6.57 | 6.67 | 10.12 | 7.50 | 9.68 |
How to read this. The fmt variant matches the flagship on lectures (best-in-family 6.57) and ASCEND, and pays a measured premium on CommonVoice (+0.38) and dense code-switch (CSZS +0.35) for the numeral dial — the training mass that makes the tag causal necessarily shifts the conditioned output space. If you don't need convention control, use TEA-ASR-1.1.
Evaluation, data, and packaging
Identical to TEA-ASR-1.1: same leak-free
train/test protocol, < 10 hours of public training audio (CommonVoice zh-TW, ASCEND, NTUML2021,
TaiMECS), rank-16 decoder LoRA + low-LR encoder LoRA merged into a single drop-in checkpoint,
Traditional output rendered by the model's own tokenizer (no runtime post-processing; decode
verified bit-exact on 152k+ sequences). The fmt recipe additionally trains numeral-convention
counterfactual pairs — the same real audio supervised under both conventions with opposite tags —
mined from the same public corpora (no extra audio budget).
Acknowledgements & license
Same as TEA-ASR-1.1: adapted from Qwen3-ASR (Apache-2.0); TaiMECS (CC-BY-4.0); benchmarks: Common Voice, ASCEND, CSZS, NTU ML2021. Released under the MIT License.
@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}
}
- Downloads last month
- 21