A Portuguese-specialised automatic speech recognition (ASR) model,
fine-tuned from Qwen/Qwen3-ASR-0.6B. It outputs
cased, punctuated Portuguese text and works as a drop-in replacement for
the base model.
Update. v2 release. The v1 run (synthetic_pt_high_quality, 6 epochs) converged at epoch ~1.9 of 6 with -33%/-32% relative WER vs zero-shot on CV17/CV22-pt test. For this final release we fold CV22-pt train + validation together with the WAVe-filtered synthetic_transcript_pt corpus into one training set to maximise the data the model sees, train for just 3 epochs (the point at which v1 had converged), and validate only on the held-out CV17-pt and CV22-pt test sets. The goal is the strongest possible 0.6B Portuguese model for production use, not another methodological ablation.
On Common Voice 17 (test) it reaches 11.37% WER (down from 17.91% zero-shot, -36.5% relative).
📊 Results
WER and CER on held-out Common Voice test sets — same samples, same protocol,
no test-time tricks. "Zero-shot" is the base
Qwen/Qwen3-ASR-0.6B called with
language="Portuguese". The fine-tuned numbers are bold.
Test set
Samples
Zero-shot WER
Fine-tuned WER
Δ WER
CER (zero-shot → fine-tuned)
Common Voice 17 (test)
9,467
17.91
11.37
-6.54 (-36.5%)
5.43 → 3.66
Common Voice 22 (test)
9,641
18.26
11.85
-6.41 (-35.1%)
5.53 → 3.83
Lower is better. Both held-out test sets see roughly a one-third relative
reduction in word error rate versus the already-strong base model.
🔬 Reproducibility note. Both the zero-shot baseline and the fine-tuned
numbers above were measured with the same evaluation function
(train_qwen3_asr.evaluate_model), the same greedy decoding settings, and
the same reference normalisation (see next section). This is an
apples-to-apples comparison.
🧹 Reference / target normalisation
Common Voice transcripts are crowd-sourced and inconsistent in casing and
trailing punctuation. To give the model a clean, predictable target
distribution we apply a small, deterministic written-form normalisation
to every reference at load time, both during training and during evaluation:
Capitalise the first letter if it is lowercase.
Collapse trailing dots — any sequence of ., …, .., ... at the
end is replaced with a single ..
Append a terminal period if the sentence does not already end in
terminal punctuation (. ! ? …) or a closing bracket / quote
() ] } " ' etc.).
The exact function lives in src/evaluation/score_written_form.py of the
project repository. Concretely:
Raw reference
Normalised
bom dia
Bom dia.
o gato dorme...
O gato dorme.
como estás?
Como estás?(unchanged)
"oi"
"Oi"(closing quote → no .)
Because the same normalisation is applied to references used for the
zero-shot baseline above, the gain reported in the results table reflects the
fine-tune itself — not a metric quirk caused by mismatched references.
🚀 How to use
Install the official qwen-asr package, then load this model exactly the
same way you would load the base Qwen3-ASR:
Batch inference, automatic language detection, streaming, and vLLM serving
all work identically to the base model — see the
upstream Qwen3-ASR documentation for
details.
🛠️ Training
Dataset:yuriyvnv/synthetic_transcript_pt + fsicoli/common_voice_22_0 (pt) — Common Voice 22 Portuguese train + validation combined with synthetic_transcript_pt (cv_high_quality, WAVe-filtered CV17-Portuguese), shuffled with the run seed.
After duration filtering and transcript-length filtering: 61,579
training samples and 9,641 validation samples.
Trained on a single H100. The best checkpoint was selected by validation
loss.
⚠️ Limitations
Trained on Common Voice — read-speech dominated. Conversational,
overlapping-speaker, far-field, or strongly accented audio may degrade
accuracy.
Outputs Portuguese text. Cross-lingual or code-switched audio is not
targeted.
Punctuation and casing are best-effort and inherit the inconsistencies of
the Common Voice reference transcripts (mitigated, but not eliminated, by
the normalisation step above).
🙏 Acknowledgements
This model would not exist without the work of others. Thank you to:
The Mozilla Common Voice community for collecting and releasing the
Portuguese speech corpus used for training and evaluation
(Common Voice 22,
Common Voice 17 mirror).
Every contributor who recorded, validated, or transcribed a clip in
Common Voice. This model is, very literally, your voices.
📚 Citation
If this model is useful in your work, please cite the base Qwen3-ASR report: