Qwen3-ASR

Qwen3-ASR은 최첨단 다언어 자동 음성 인식 모델입니다. MLX를 통한 Metal GPU 가속으로 온디바이스에서 실행되며, 효율적인 메모리 사용을 위해 4비트 양자화를 지원합니다. 0.6B와 1.7B 파라미터 변형으로 제공됩니다.

파이프라인

Qwen3-ASR 추론 파이프라인은 오디오를 4단계로 처리합니다:

단계설명
오디오 입력원본 오디오를 16 kHz 모노로 리샘플링
멜 스펙트로그램파형에서 128 빈 멜 필터뱅크 특징 추출
오디오 인코더블록 어텐션을 사용하는 18 레이어 트랜스포머, 멜 프레임을 오디오 임베딩으로 처리
텍스트 디코더그룹 쿼리 어텐션(GQA)과 로터리 위치 임베딩(RoPE)을 사용하는 28 레이어 Qwen3 트랜스포머, 자동 회귀적으로 텍스트 토큰을 생성

성능

백엔드RTF피크 메모리비고
Qwen3-ASR 1.7B MLX 8-bit0.0332.7 GBWER 1.52%
Qwen3-ASR 0.6B MLX 8-bit0.0151.3 GBWER 1.82%
Qwen3-ASR 0.6B MLX 4-bit0.0121.0 GBWER 2.20%
Qwen3-ASR 0.6B CoreML INT80.0981.4 GBWER 3.02% (chunked-attn rebuild)

Apple M5 Pro, 48 GB. LibriSpeech test-clean n=200, isolated per-engine. RTF < 1.0 = 실시간보다 빠름.

모델 변형

모델백엔드크기HuggingFace
Qwen3-ASR-0.6B (4비트)MLX680 MBaufklarer/Qwen3-ASR-0.6B-MLX-4bit
Qwen3-ASR-0.6B (8비트)MLX1.0 GBaufklarer/Qwen3-ASR-0.6B-MLX-8bit
Qwen3-ASR-0.6B (CoreML INT8)CoreML180 MBaufklarer/Qwen3-ASR-CoreML
Qwen3-ASR-1.7B (4비트)MLX2.1 GBaufklarer/Qwen3-ASR-1.7B-MLX-4bit
Qwen3-ASR-1.7B (8비트)MLX3.2 GBaufklarer/Qwen3-ASR-1.7B-MLX-8bit

CLI 사용법

기본 Qwen3-ASR 모델로 오디오 파일을 전사합니다:

.build/release/speech transcribe recording.wav

옵션

# Use the larger 1.7B model
.build/release/speech transcribe recording.wav --model 1.7b

# Specify language
.build/release/speech transcribe recording.wav --language en

# Streaming mode with partial results
.build/release/speech transcribe recording.wav --stream --partial

Swift API

Qwen3ASR 모듈을 사용하여 프로그래밍 방식으로 오디오를 전사합니다:

import Qwen3ASR

// Load the model (downloads from HuggingFace on first use)
let model = try await Qwen3ASRModel.fromPretrained()

// Transcribe audio samples (16 kHz mono Float)
let text = model.transcribe(audio: audioSamples, sampleRate: 16000)
print(text)

CoreML 인코더 (Neural Engine)

MLX를 통해 텍스트 디코더를 GPU에서 실행하면서, CoreML을 통해 오디오 인코더를 Neural Engine에서 실행합니다. 이 하이브리드 방식은 전력 소비를 낮추고 동시 작업을 위해 GPU를 해방시킵니다.

import Qwen3ASR

let encoder = try await CoreMLASREncoder.fromPretrained()
let model = try await Qwen3ASRModel.fromPretrained()
let text = try model.transcribe(
    audio: samples, sampleRate: 16000,
    coremlEncoder: encoder
)
# CLI
.build/release/speech transcribe recording.wav --engine qwen3-coreml

INT8 팔레타이즈(180 MB, 코사인 유사도 > 0.999)가 기본값입니다. 크기 제약이 있는 배포를 위한 INT4 변형(90 MB)도 제공됩니다.

스트리밍 모드

스트리밍 모드는 VAD(음성 활동 감지)를 사용하여 오디오를 청크로 분할하고 점진적으로 전사합니다. 긴 녹음이나 실시간 처리에 유용합니다.

# Stream with default segment size
.build/release/speech transcribe recording.wav --stream

# Control maximum segment duration
.build/release/speech transcribe recording.wav --stream --max-segment 15

# Show partial (in-progress) results as they arrive
.build/release/speech transcribe recording.wav --stream --partial

--max-segment 플래그는 최대 청크 길이를 초 단위로 제어합니다. --partial 플래그는 디코딩된 단어를 표시하는 부분 결과 출력을 활성화합니다.

지원 포맷

Qwen3-ASR은 다음 오디오 포맷을 수용합니다. 모든 입력은 내부적으로 자동으로 16 kHz 모노로 리샘플링됩니다.

중요

모델은 첫 사용 시 HuggingFace에서 다운로드되어 ~/Library/Caches/qwen3-speech/에 캐시됩니다. 4비트 0.6B 모델은 약 1.5 GB입니다.