WS-Min-ASR / README.md
ASLP-lab's picture
Simplify usage examples and link training recipes
4bf1c22 verified
|
Raw History Blame Contribute Delete
3.49 kB
---
pipeline_tag: automatic-speech-recognition
language:
- nan
- zh
base_model:
- Qwen/Qwen3-ASR-1.7B
- FireRedTeam/FireRedASR2-AED
tags:
- wenetspeech-min
- minnan
- speech-recognition
- paired-transcript-asr
---
# WenetSpeech-Min ASR Models
ASR models for Minnan transcription, Mandarin transcription, and paired-transcript
recognition, described in [WenetSpeech-Min](https://arxiv.org/abs/2609.36834).
The corpus contains around 10,000 hours of Minnan speech, with paired Minnan
and Mandarin transcripts for each utterance.
## Available Models
| Model | Task | Framework |
| --- | --- | --- |
| [Qwen3-ASR-WSM-Min](https://huggingface.co/ASLP-lab/WS-Min-ASR/tree/main/Qwen3-ASR-WSM-Min) | Minnan transcription | ms-swift |
| [Qwen3-ASR-WSM-Mandarin](https://huggingface.co/ASLP-lab/WS-Min-ASR/tree/main/Qwen3-ASR-WSM-Mandarin) | Mandarin transcription | ms-swift |
| [FireRedASR2-AED-WSM](https://huggingface.co/ASLP-lab/WS-Min-ASR/tree/main/FireRedASR2-AED-WSM) | Paired-transcript recognition | WeNet |
## Installation
Follow the official installation guides:
- [Qwen3-ASR](https://github.com/QwenLM/Qwen3-ASR#environment-setup), including the vLLM backend for inference.
- [ms-swift](https://swift.readthedocs.io/en/latest/GetStarted/SWIFT-installation.html) for Qwen fine-tuning.
- [WeNet](https://github.com/wenet-e2e/wenet#install-for-training--deployment) for FireRed fine-tuning and inference.
## Usage
### Qwen3-ASR
Select `Qwen3-ASR-WSM-Min` for Minnan output or `Qwen3-ASR-WSM-Mandarin`
for Mandarin output. Both take Minnan audio as input.
```python
from huggingface_hub import snapshot_download
from qwen_asr import Qwen3ASRModel
if __name__ == "__main__":
subfolder = "Qwen3-ASR-WSM-Min" # Or "Qwen3-ASR-WSM-Mandarin"
model_root = snapshot_download(
repo_id="ASLP-lab/WS-Min-ASR",
allow_patterns=[f"{subfolder}/*.safetensors", f"{subfolder}/*.json",
f"{subfolder}/*.txt", f"{subfolder}/*.jinja",
"examples/G1216S0004.wav"],
)
model = Qwen3ASRModel.LLM(
model=f"{model_root}/{subfolder}",
gpu_memory_utilization=0.8,
max_model_len=8192,
max_new_tokens=1024,
)
results = model.transcribe(
audio=f"{model_root}/examples/G1216S0004.wav", # Or your audio path
language=None,
)
print(results[0].text)
```
### FireRedASR2-AED-WSM
Download the model and run paired-transcript recognition with the GitHub recipe:
```bash
git clone https://github.com/ASLP-lab/WenetSpeech-Min-Repo.git
cd WenetSpeech-Min-Repo
bash FireRedASR2-AED-WSM/setup_wenet.sh
hf download ASLP-lab/WS-Min-ASR --include "FireRedASR2-AED-WSM/*" \
--local-dir pretrained_models/WS-Min-ASR
CUDA_VISIBLE_DEVICES=0 bash FireRedASR2-AED-WSM/infer.sh \
--model-dir pretrained_models/WS-Min-ASR/FireRedASR2-AED-WSM \
--task both
```
Use `--task minnan` or `--task mandarin` for a single transcript.
Add `--audio /path/to/audio.wav` to use your own audio; otherwise the included
example is used. Paired output contains `text_minnan` and `text_mandarin`.
## Training
- [Minnan transcription: Qwen3-ASR-WSM-Min](https://github.com/ASLP-lab/WenetSpeech-Min-Repo/tree/main/Qwen3-ASR-Min)
- [Mandarin transcription: Qwen3-ASR-WSM-Mandarin](https://github.com/ASLP-lab/WenetSpeech-Min-Repo/tree/main/Qwen3-ASR-Mandarin)
- [Paired-transcript recognition: FireRedASR2-AED-WSM](https://github.com/ASLP-lab/WenetSpeech-Min-Repo/tree/main/FireRedASR2-AED-WSM)