Mega-ASR / README.md
zhifeixie's picture
Update model card
952fade verified
---
license: apache-2.0
language:
- en
- zh
tags:
- automatic-speech-recognition
- speech-recognition
- audio
- robust-asr
- qwen3-asr
pipeline_tag: automatic-speech-recognition
---
# Mega-ASR
Mega-ASR is a robust automatic speech recognition system designed for real-world audio with severe acoustic degradation. It targets noisy, reverberant, clipped, band-limited, overlapping, and otherwise difficult recording conditions where standard ASR systems often produce empty outputs, omissions, repetitions, or hallucinated text.
The release contains the Qwen3-ASR-1.7B foundation model files, Mega-ASR adaptation weights, and an audio quality router. The router decides whether to use the robust Mega-ASR path or the base recognition path for each input, which helps preserve clean-speech recognition quality while improving robustness on degraded speech.
## Model Details
- **Model name:** Mega-ASR
- **Task:** Automatic speech recognition
- **Backbone:** Qwen3-ASR-1.7B
- **Primary use case:** In-the-wild ASR under challenging acoustic conditions
- **Default decoding:** Greedy decoding
- **Default max new tokens:** 256 in the Mega-ASR inference wrapper
- **Router:** Audio quality classifier with a default threshold of 0.5
- **License:** Apache-2.0
## Repository Contents
```text
Mega-ASR/
β”œβ”€β”€ Qwen3-ASR-1.7B/ # Backbone model, tokenizer, processor, and generation config
β”œβ”€β”€ mega-asr-merged/ # Mega-ASR adaptation weights used by the inference wrapper
β”œβ”€β”€ audio_quality_router/ # Audio quality router checkpoint
└── README.md # Model card
```
## Intended Use
Mega-ASR is intended for speech-to-text transcription of real-world audio, especially audio affected by compound acoustic distortions. Example scenarios include far-field recording, environmental noise, reverberation, low-quality microphones, compression artifacts, partial signal corruption, and mixed acoustic conditions.
## Quick Start
Install the Mega-ASR codebase and dependencies:
```bash
git clone https://github.com/xzf-thu/Mega-ASR.git
cd Mega-ASR
conda create -n mega-asr python=3.10 -y
conda activate mega-asr
pip install -r requirements.txt
```
Place this checkpoint directory at:
```text
ckpt/Mega-ASR
```
Run inference:
```bash
python infer.py --audio /path/to/audio.wav --ckpt_dir ckpt/Mega-ASR
```
Disable routing if you want to always use the robust recognition path:
```bash
python infer.py --audio /path/to/audio.wav --ckpt_dir ckpt/Mega-ASR --routing false
```
Python usage:
```python
from MegaASR.model.megaASR import MegaASR
model = MegaASR(
model_path="ckpt/Mega-ASR/Qwen3-ASR-1.7B",
router_checkpoint="ckpt/Mega-ASR/audio_quality_router/best_acc_model.pt",
routing_enabled=True,
)
result = model.infer("/path/to/audio.wav", return_route=True)
print(result)
```
## Decoding Defaults
The Mega-ASR wrapper uses Qwen3-ASR generation defaults unless explicitly overridden. In the provided wrapper, `max_new_tokens` is set to 256.
The default generation configuration is deterministic:
```text
do_sample: false
num_beams: 1
repetition_penalty: 1.0
top_p: 1.0
top_k: 50
```
Because `do_sample` is false, decoding is greedy by default and sampling controls such as temperature, top-p, and top-k do not affect normal inference.
## Training Summary
Mega-ASR is trained for robust speech recognition in realistic acoustic environments. The training pipeline uses acoustic-to-semantic supervised fine-tuning, where the model is exposed to progressively harder speech examples and learns to recover both local acoustic details and sentence-level semantics under degradation.
The system is designed to improve recognition robustness on difficult audio while using a routing mechanism to reduce unnecessary changes on clean audio.
## Evaluation
Mega-ASR is evaluated on standard ASR benchmarks, noisy robustness benchmarks, and in-the-wild compound acoustic scenarios. The recommended evaluation metrics are:
- **WER** for English and whitespace-tokenized languages
- **CER** for Chinese and character-based evaluation
The Mega-ASR repository includes an evaluation script:
```bash
python src/MegaASR/eval/evaluate_wer.py \
--ckpt_dir ckpt/Mega-ASR \
--input_jsonl examples/test.jsonl \
--output_jsonl outputs/pred_with_wer.jsonl
```
Input JSONL format:
```json
{"audio": "examples/audio/noise.wav", "answer": "I usually take the quieter road home because the main street gets crowded after work."}
```
## Citation
If you use Mega-ASR, please cite the project:
```bibtex
@misc{xie2026megaasrinthewild2speechrecognition,
title={Mega-ASR: Towards In-the-wild^2 Speech Recognition via Scaling up Real-world Acoustic Simulation},
author={Zhifei Xie and Kaiyu Pang and Haobin Zhang and Deheng Ye and Xiaobin Hu and Shuicheng Yan and Chunyan Miao},
year={2026},
eprint={2605.19833},
archivePrefix={arXiv},
primaryClass={cs.SD},
url={https://arxiv.org/abs/2605.19833},
}
```
## Acknowledgements
Mega-ASR builds on Qwen3-ASR. We thank the Qwen3-ASR team and the creators of public speech and audio datasets used in the project.