Terjemahan mesin · Versi asli bahasa Inggris

Qwen3-ASR

MLX dan CoreML gunakan fitur masukan Whisper- gaya yang sama: 128 Slaney-normalisasi tempat-tempat mel dari tepat 400-point STFT di 16 kHz, dengan 160-sample hop dan jendela periodik Hann.

Qwen3-ASR adalah model pengenalan otomatis oleh negara bagian -the-art multibahasa. Ini dijalankan pada -device menggunakan Metal GPU percepatan via MLX, dengan 4-bit, 5-bit, atau 8-bit kuantisasi untuk penggunaan memori efisien. Tersedia dalam 0.6B dan 1.7Parameter B varian. 5-bit adalah akurasi baru / memori manis spot - lihat benchmarks.

Baris pipa

Proses pipa inferensi Qwen3-ASR proses audio melalui empat tahap:

TahapDeskripsi
Masukan AudioAudio mentah direseplek menjadi 16 kHz mono
Mel Spectrogram128- bin mel fitur filterbank diekstrak dari bentuk gelombang
Enkoder Audio18-layer transformator dengan blok perhatian, proses mel frame ke dalam penggelapan audio
Pengganti Teks28-layer Qwen3 transformate dengan pengelompokan -query attention (GQA) dan posisi rotary menggelapkan (RoPE), secara autoregreatly menghasilkan token teks

Penampilan

BackendRTFMemori PuncakCatatan
Qwen3-ASR 1.7B MLX 5- bit0.0271.92 GBWER 1.32% (pemimpin akurasi baru)
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 5- bit0.0141.03 GBWER 1.74% (near-8-bit di ~ 4- sedikit RAM)
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-rebuilding)

Apple M5 Pro, 48 GB. Test librispek -clean n =200, yang terisolasi mesin. RTF < 1.0 = Lebih cepat dari waktu asli.

Variants Model

ModelBackendUkuranHuggingFace
Qwen3-ASR-0.6B (4- bit)MLX680 MBaufklarer / Qwen3-ASR-0.6B-MLX-4bit
Qwen3-ASR-0.6B (5- bit)MLX1.0 GBaufklarer / Qwen3-ASR-0.6B-MLX-5bit
Qwen3-ASR-0.6B (8- bit)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- bit)MLX2.1 GBaufklarer / Qwen3-ASR-1.7B-MLX-4bit
Qwen3-ASR-1.7B (5- bit)MLX2.3 GBaufklarer / Qwen3-ASR-1.7B-MLX-5bit
Qwen3-ASR-1.7B (8- bit)MLX3.2 GBaufklarer / Qwen3-ASR-1.7B-MLX-8bit

Penggunaan CLI

Translate file audio dengan model Qwen3-ASR baku:

.build/release/speech transcribe recording.wav

Opsi

# 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

Gunakan Qwen3ASR modul untuk menerjemahkan program audio:

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 Encoder (Neural Engine)

Jalankan enkoder audio pada Neural Engine via CoreML, dengan decoder teks pada GPU via MLXHibrida ini pendekatan menurunkan konsumsi daya dan membebaskan GPU untuk loads concurt.

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 paletized (180 MB, cosinus kesamaan > 0.999) adalah bakar. sebuah INT4 varian (90 MB) juga tersedia untuk penempatan size- dibatasi.

Mode Streaming

Mode stream menggunakan VAD (deteksi aktivitas suara) untuk segmen audio menjadi potongan dan menuliskannya secara bertahap. Ini berguna untuk rekaman panjang atau pemrosesan waktu nyata.

# 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

The --max-segment flag mengontrol durasi chunk maksimum dalam detik. The --partial flag memungkinkan hasil sebagian keluaran, menampilkan kata-kata karena mereka diterjemahkan.

Format Yang Didukung

Qwen3-ASR menerima format audio berikut. Semua masukan secara otomatis diresepkan ke 16 kHz secara internal.

Penting

Model diunduh dari HuggingFace pada penggunaan pertama dan cache di ~/Library/Caches/qwen3-speech/4-bit 0.6B model adalah sekitar 1.5 GB.

Kooperatif pembatalan

Untuk transkripsi MLX, Qwen3ASRModel.transcribeCheckingCancellation(audio:sampleRate:options:) throw CancellationError ketika pembatalan tugas diamati sebelum fitur extract, encoding, decoder prefill, atau sebuah langkah decoding. GPU bekerja telah dimasukkan dapat selesai. Sinkronisasi transcribe dan transcribeBatch APIS mempertahankan perilaku non-melempar mereka dan mengabaikan pembatalan tugas. speech-server menggunakan titik masukan yang dapat di batalkan untuk Qwen3-ASR.

MLX budget cache

Memuat Qwen3-ASR batasan proses-lebar MLX pool dari penggunaan ulang Metal buffer: min(1 GiB, RAM / 8) untuk 0.6B dan min(4 GiB, RAM / 4) 1.7B. Model MLX lainnya berbagi kolam ini.

Batas efektif adalah terendah dari penelepon yang ada MLX.Memory.cacheLimit dan setiap langit-langit ASR yang dimuat. Misalnya dapat membongkar dalam urutan apapun; pembongkaran terakhir atau contoh menyimpan kembali anggaran penelepon. Batas yang diatur ketat oleh penelepon sementara model dimuat dipertahankan.

Transkripsi masukan tunggal membersihkan penyangga yang dapat digunakan ulang ketika decoder kembali atau melempar, termasuk pembatalan di dalam decoder. Array dan bobot model aktif tetap dimuat. Serat yang serakah tetap dimuat. transcribeBatch Decoder mempertahankan kolam terbatas antara batch. API pilihan atau tanda CLI berubah.

Membersihkan kolam penyangga menurunkan memori tapi membutuhkan alokasi baru pada permintaan selanjutnya, jadi permintaan singkat dapat memakan waktu lebih lama. Menunggu pekerjaan decoder yang diajukan untuk menyelesaikan membuat deterministik, termasuk pembatalan. Latensi aktual dan memori proses tergantung pada perangkat keras, model, dan audio.

Pemilik model opsional

SpeechRuntime menyediakan muatan bersama, penerimaan FIFO yang dapat dibatalkan dan eksekusi serialisasi. Qwen3ASRRuntime memilih MLX atau penuh CoreML melalui deskriptor eksplisit; bendera APIs dan CLI asli masih tersedia.

Server audio memiliki satu ijin eksekusi melalui setiap permintaan lengkap, termasuk keluaran streaming, dengan hingga 32 permintaan menunggu. ASR gagal menghasilkan kesalahan HTTP atau WebSocket kesalahan terjadi; transkrip kosong tetap sukses. Pemutaran mempertahankan sampel overflow. Model cache dan audio putar menunggu masih menempati memori.

Mengelola CoreML transkripsi rilis penyangga sementara setelah setiap permintaan, termasuk panggilan berulang dari tugas latar belakang.

import Qwen3ASRRuntime

let runtime = Qwen3ASRRuntime(descriptor: Qwen3ASRDescriptors.small)
let text = try await runtime.transcribe(audio: samples, sampleRate: 16000)
try await runtime.unload()