Qwen3-ASR mishandles invalid, short, and no-speech audio inputs
Author: ainergizCreated Aug 29, 2026Updated Aug 29, 2026
Problem
Qwen3-ASR preprocessing loses the distinction between invalid or short input and mlx-audio's default min_chunk_duration=1.0 padding:
- A zero-frame array is padded and sent to the model, which can hallucinate text.
- NaN and infinite samples are not rejected before preprocessing.
- A valid 10 ms clip is reported with a 1.0-second segment end after padding.
- An empty
language None<asr_text>response exposes the literal languageNoneinstead of an empty no-speech result. - Auto-detected language from one chunk is reused as the request for later chunks, so a silent chunk can corrupt following transcription.
Expected behavior
- Reject empty and non-finite Qwen3-ASR audio before inference.
- Keep minimum-length padding for valid short clips, but report their original duration.
- Parse
language None<asr_text>as empty language and text. - Keep automatic language detection independent for every chunk.
A real-model check reproduced the empty-input hallucination and padded duration. Tested on current main at 246e233.
Source: Blaizzy/mlx-audio