1 Audio, Speech and Language Processing Group (ASLP@NPU), School of Computer Science, Northwestern Polytechnical University, Xi'an, China 2 WeNet Community 3 NEXDATA TECHNOLOGY INC.
This repository hosts the released CN-MultiDialect-ASR checkpoint, adapted from Qwen3-ASR-1.7B with a three-stage pipeline: continual pre-training (CPT), dialect supervised fine-tuning (SFT), and On-Policy Self-Distillation (OPSD). The goal is to improve Chinese dialect recognition without raising Mandarin CER.
Overview of the staged adaptation pipeline. Top: base model, CPT, SFT, and OPSD. Bottom: OPSD with student on-policy prefixes, a frozen teacher conditioned on the reference transcript as privileged context, soft targets qt, and token-level KL.
Demo
Video demo with live waveforms and model transcriptions for Mandarin, English, four core dialects, and 15 ChinaVoices dialects.
Key Features
Mandarin–dialect balanced adaptation: improves Chinese dialect ASR while retaining Mandarin recognition.
Three-stage pipeline: CPT strengthens the Chinese ASR foundation, dialect SFT specializes for dialects, and OPSD refines the final checkpoint.
On-Policy Self-Distillation: trains on student-decoded prefixes with soft teacher targets, reducing the train–test mismatch of teacher-forced ASR training.
Drop-in inference: compatible with the official qwen-asr package.
Quickstart
Inference is compatible with Qwen3-ASR. We recommend installing the official qwen-asr package in a clean environment.
Load the model with Qwen3ASRModel.from_pretrained and call transcribe:
python
1import torch
2from qwen_asr import Qwen3ASRModel
34model = Qwen3ASRModel.from_pretrained(5"ASLP-lab/CN-MultiDialect-ASR",# or "./CN-MultiDialect-ASR" for a local path6 dtype=torch.bfloat16,7 device_map="cuda:0",8# attn_implementation="flash_attention_2",9 max_inference_batch_size=32,10 max_new_tokens=256,11)1213results = model.transcribe(14 audio="path/to/audio.wav",15 language="Chinese",# or None for automatic language detection16)1718print(results[0].language)19print(results[0].text)
Batch inference is also supported:
python
1results = model.transcribe(2 audio=[3"path/to/mandarin.wav",4"path/to/dialect.wav",5],6 language=["Chinese","Chinese"],7)89for r in results:10print(r.language, r.text)
For vLLM backend, streaming inference, and forced alignment, see the Qwen3-ASR repository.
Method Overview
Stage
Training data
Goal
Objective
CPT
Full Mandarin-dialect collection (~100k hours)
Build a stronger Chinese ASR foundation
Cross-entropy
SFT
Same sources with higher dialect sampling weight and a small Mandarin anchor
Lower dialect CER
Cross-entropy
OPSD
Dialect refinement subset (~5k hours)
Improve dialect recognition without hurting Mandarin
Token-level KL
At inference time, only the student pathway is used.
Performances
Dialect Overview
Side-by-side radar of 1-CER on public and internal dialect sets
Higher is better. Left: 5 public dialect sets; right: 18 internal dialects. Both panels use the same radial scale (0.2–1.0). The figure compares the Qwen3-ASR baseline with the released CN-MultiDialect-ASR (OPSD) checkpoint.
Public Dialect CER (%)
Evaluation set
Dialect
Qwen3-ASR
CN-MultiDialect-ASR
WenetSpeech-Yue Long
Cantonese
9.99
8.80
WenetSpeech-Yue Short
Cantonese
6.93
5.31
WenetSpeech-Chuan Easy
Sichuan
12.38
11.86
WenetSpeech-Chuan Hard
Sichuan
21.79
21.74
WenetSpeech-Wu
Wu
25.74
16.26
Dialect Avg.
15.37
12.79
Internal Dialect CER (%)
Dialect
Qwen3-ASR
CN-MultiDialect-ASR
Anhui
18.95
13.08
Cantonese
10.06
7.74
Changsha
14.79
10.23
Chaoshan
45.59
25.21
Dongbei
6.45
5.80
Henan
8.46
5.99
Kejia
60.47
28.60
Minnan
30.03
18.59
Nanchang
33.41
15.58
Nanjing
13.37
9.33
Shanxi
28.53
18.69
Shaanxi
9.68
6.28
Shandong
8.78
7.64
Shanghai
15.78
12.07
Sichuan
5.99
5.38
Suzhou
50.35
20.73
Wuhan
11.30
7.59
Xuzhou
6.12
5.04
Internal Avg.
21.01
12.42
Mandarin CER (%)
Evaluation set
Qwen3-ASR
CN-MultiDialect-ASR
AISHELL-1
1.57
1.38
AISHELL-2
2.79
2.52
KeSpeech
5.11
4.56
SpeechIO-1
0.75
0.86
SpeechIO-2
3.83
3.39
SpeechIO-3
1.39
1.27
Test_Meeting
6.74
6.85
Test_Net
5.46
5.30
Mandarin Avg.
3.46
3.27
Citation
If you use this model, please cite:
bibtex
1@misc{wang2026onpolicyselfdistillationmultidialectasr,
2 title={On-Policy Self-Distillation for Multi-Dialect ASR: Mastering Dialects, Retaining Mandarin},
3 author={Shuiyuan Wang and Bingshen Mu and Pengshen Zhang and Chengyou Wang and Yujie Liao and Chengdong Liang and Binbin Zhang and Qiangze Feng and Lei Xie},
4 year={2026},
5 eprint={2608.11898},
6 archivePrefix={arXiv},
7 primaryClass={eess.AS},
8 url={https://arxiv.org/abs/2608.11898}
9}