knoveleng/polyglot-lion-1.7b
<div align="center">
Polyglot-Lion-1.7B: High-accuracy multilingual ASR for Singapore โ English, Mandarin, Tamil & Malay
  
</div>
<div align="center"> <img src="https://knoveleng.github.io/polyglot-lion/assets/overall-error-rate.png" alt="Average error rate comparison across models" width="900"/> </div>
About
Polyglot-Lion-1.7B was developed by Quy-Anh Dang and Chris Ngo at Knovel Engineering and presented in the report "Polyglot-Lion: Efficient Multilingual ASR for Singapore via Balanced Fine-Tuning of Qwen3-ASR".
The model is obtained by fine-tuning Qwen3-ASR-1.7B exclusively on publicly available speech corpora covering Singapore's four official languages. It utilizes a balanced sampling strategy that equalizes the number of training utterances per language and deliberately omits language-tag conditioning, allowing the model to learn to identify languages implicitly from audio.
Polyglot-Lion-1.7B achieves an average error rate of 14.85 โ competitive with MERaLiON-2-10B-ASR (14.32), a model 6ร larger and 20ร faster inference.
- Parameters: 1.7B
- Languages: English, Mandarin, Tamil, Malay
- Training cost: $81 on a single NVIDIA RTX PRO 6000 (48 h)
- Inference speed: ~0.10 s/sample on RTX PRO 4500
Results
WER (%) for English, Tamil, and Malay; CER (%) for Mandarin. Lower is better. Bold = best overall.
Quick Start
Polyglot-Lion uses the qwen-asr package for inference.
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create environment and install
uv venv --python 3.12 && source .venv/bin/activate
uv pip install qwen-asr hf_transferTransformers
import torch
from qwen_asr import Qwen3ASRModel
model = Qwen3ASRModel.from_pretrained(
"knoveleng/polyglot-lion-1.7b",
dtype=torch.bfloat16,
device_map="cuda:0",
max_new_tokens=256,
)
results = model.transcribe(audio="path/to/audio.wav", language=None)
print(results[0].language, results[0].text)vLLM (faster)
from qwen_asr import Qwen3ASRModel
if __name__ == "__main__":
model = Qwen3ASRModel.LLM(
model="knoveleng/polyglot-lion-1.7b",
gpu_memory_utilization=0.7,
max_new_tokens=4096,
)
results = model.transcribe(audio=["audio1.wav", "audio2.wav"], language=None)
for r in results:
print(r.language, r.text)For batch inference, timestamps, streaming, and server deployment, see the Qwen3-ASR documentation.
Citation
@misc{dang2026polyglotlion,
title={Polyglot-Lion: Efficient Multilingual ASR for Singapore via Balanced Fine-Tuning of Qwen3-ASR},
author={Quy-Anh Dang and Chris Ngo},
year={2026},
eprint={2603.16184},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2603.16184},
}