Views
No views yet
| Component | Details |
|---|---|
| Audio Encoder | 3-layer Conv2D stem + 24-layer Transformer (d_model=1024, 16 heads) |
| Decoder | Qwen3 1.7B — 28 layers, hidden=2048, 16 GQA heads (8 KV) |
| Aligner | conv_out (7680→1024) + proj1 (1024→1024) + proj2 (1024→2048) |
| Router | Mini Transformer (d_model=256, 4 layers, 4 heads) — binary audio quality classifier |
pip install mega-asr-mlxhuggingface-cli download carloshuang1224/mega-asr-mlx --local-dir ./mega-asr-mlxmega-asr --audio speech.wav --language English1from mega_asr_mlx import MegaASRMLX
2
3model = MegaASRMLX("./mega-asr-mlx")
4text = model.transcribe("speech.wav", language="English")
5print(text)1from mega_asr_mlx import MegaASRMLX
2
3model = MegaASRMLX(
4 "./mega-asr-mlx",
5 use_lora=True, # always use LoRA (pre-merged)
6 router_threshold=0.5, # audio quality routing threshold
7 max_new_tokens=256, # max generated tokens
8)
9
10# Transcribe with routing info
11result = model.transcribe("speech.wav", return_route_info=True)
12# {"text": "...", "use_lora": True, "degraded_prob": 0.12}
13
14# Transcribe numpy array
15import soundfile as sf
16audio, sr = sf.read("speech.wav")
17text = model.transcribe(audio, sr=sr)mega-asr-mlx/
├── decoder.safetensors # Qwen3 decoder weights (3.8 GB)
├── encoder.safetensors # Audio encoder weights (606 MB)
├── router.safetensors # Audio quality router (2.3 MB)
├── config.json # Model configuration
├── decoder_config.json # Decoder architecture config
├── router_config.json # Router architecture config
├── preprocessor_config.json # Audio preprocessing (Whisper-style mel)
├── generation_config.json # Generation defaults
├── tokenizer_config.json # Qwen2 tokenizer config
├── vocab.json # Token vocabulary
├── merges.txt # BPE merges
└── chat_template.json # Qwen3-ASR chat templatemega-asr-mlx pip package. After installing it, the source is available in the mega_asr_mlx/ directory.src/inference.py — End-to-end transcription scriptsrc/model.py — MegaASRMLX class with full pipelinesrc/audio_encoder.py — MLX audio encoder implementationsrc/router.py — Audio quality routersrc/convert.py — Weight conversion from PyTorch to MLX<|im_start|>user\n<|audio_start|> [encoder_outputs] <|audio_end|><|im_end|>\n<|im_start|>assistant\n