--- license: apache-2.0 base_model: Qwen/Qwen3-ASR-1.7B base_model_relation: finetune language: - th pipeline_tag: automatic-speech-recognition library_name: qwen-asr datasets: - google/fleurs tags: - automatic-speech-recognition - asr - thai - qwen3-asr - fleurs - finetune metrics: - cer - wer model-index: - name: Qwen3-ASR-1.7B-th-fleurs results: - task: type: automatic-speech-recognition name: Automatic Speech Recognition dataset: name: FLEURS (Thai) type: google/fleurs config: th_th split: test metrics: - type: cer value: 0.0702 name: Character Error Rate - type: wer value: 0.6100 name: Word Error Rate --- # Qwen3-ASR-1.7B-th-fleurs Thai automatic speech recognition model, full fine-tune of [Qwen/Qwen3-ASR-1.7B](https://huggingface.co/Qwen/Qwen3-ASR-1.7B) on the Thai split of [google/fleurs](https://huggingface.co/datasets/google/fleurs). ## Evaluation FLEURS Thai `test` split (1,021 utterances). Reported via the `evaluate` library — raw model output vs reference, no text normalisation. | Model | CER (%) | WER (%) | |---|---:|---:| | Qwen/Qwen3-ASR-1.7B (base) | 8.32 | 79.56 | | **This model** | **7.02** | **61.00** | | Δ relative improvement | **+15.7%** | **+23.3%** | Lower is better. ## Usage ```python import torch from qwen_asr import Qwen3ASRModel model = Qwen3ASRModel.from_pretrained( "PogusTheWhisper/Qwen3-ASR-1.7B-th-fleurs", dtype=torch.bfloat16, device_map="cuda:0", max_inference_batch_size=16, max_new_tokens=256, ) results = model.transcribe(audio="path/to/audio.wav", language="Thai") print(results[0].text) ``` For maximum throughput, use the vLLM backend: ```python model = Qwen3ASRModel.LLM( model="PogusTheWhisper/Qwen3-ASR-1.7B-th-fleurs", gpu_memory_utilization=0.7, max_inference_batch_size=128, max_new_tokens=4096, ) results = model.transcribe(audio="path/to/audio.wav", language="Thai") print(results[0].text) ``` ## Training Full fine-tune (FFT) of the entire 1.7B-parameter base model using the official [QwenLM/Qwen3-ASR `qwen3_asr_sft.py`](https://github.com/QwenLM/Qwen3-ASR/tree/main/finetuning) script. | Hyperparameter | Value | |---|---| | Base model | Qwen/Qwen3-ASR-1.7B | | Method | Full fine-tune (FFT, not LoRA) | | Dataset | google/fleurs (`th_th`, 2,602 train / 1,021 test utterances) | | Label format | `language Thai{{transcript}}` | | Optimizer | AdamW (HF Trainer defaults) | | Learning rate | 2e-5 (Official tested at this lr w/ eff bs 32) | | LR scheduler | cosine (Smoother decay, better final epochs) | | Warmup ratio | 0.05 (0.1 too aggressive for cosine) | | weight_decay | 0.01 (Anti-memorization) | | Effective batch size | 32 (per-device 1 × grad_acc 32) | | Epochs | 5 | | Precision | bfloat16 | | Hardware | 1× NVIDIA RTX 3090 (24 GB) | | Training time | ~25 minutes | ## Limitations - Trained on read-speech only — FLEURS is broadcast / audiobook style. Conversational, noisy, and telephony-audio performance is not measured. - 16 kHz mono audio required (matches the base model). - Code-switched audio (Thai + English) inherits base-model behaviour; not specifically tuned. - Small training set (~7 hours). For production use, consider mixing with Common Voice Thai or your own labelled data. ## Citation ```bibtex @misc{qwen3asr, title = {Qwen3-ASR}, author = {Qwen Team}, year = {2025}, url = {https://huggingface.co/Qwen/Qwen3-ASR-1.7B} } @inproceedings{conneau2023fleurs, title = {FLEURS: Few-shot Learning Evaluation of Universal Representations of Speech}, author = {Conneau, Alexis and Ma, Min and Khanuja, Simran and Zhang, Yu and Axelrod, Vera and Dalmia, Siddharth and Riesa, Jason and Rivera, Clara and Bapna, Ankur}, booktitle = {SLT}, year = {2023} } ```