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:
| Tahap | Deskripsi |
|---|---|
| Masukan Audio | Audio mentah direseplek menjadi 16 kHz mono |
| Mel Spectrogram | 128- bin mel fitur filterbank diekstrak dari bentuk gelombang |
| Enkoder Audio | 18-layer transformator dengan blok perhatian, proses mel frame ke dalam penggelapan audio |
| Pengganti Teks | 28-layer Qwen3 transformate dengan pengelompokan -query attention (GQA) dan posisi rotary menggelapkan (RoPE), secara autoregreatly menghasilkan token teks |
Penampilan
| Backend | RTF | Memori Puncak | Catatan |
|---|---|---|---|
| Qwen3-ASR 1.7B MLX 5- bit | 0.027 | 1.92 GB | WER 1.32% (pemimpin akurasi baru) |
| Qwen3-ASR 1.7B MLX 8-bit | 0.033 | 2.7 GB | WER 1.52% |
| Qwen3-ASR 0.6B MLX 8-bit | 0.015 | 1.3 GB | WER 1.82% |
| Qwen3-ASR 0.6B MLX 5- bit | 0.014 | 1.03 GB | WER 1.74% (near-8-bit di ~ 4- sedikit RAM) |
| Qwen3-ASR 0.6B MLX 4-bit | 0.012 | 1.0 GB | WER 2.20% |
| Qwen3-ASR 0.6B CoreML INT8 | 0.098 | 1.4 GB | WER 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
| Model | Backend | Ukuran | HuggingFace |
|---|---|---|---|
| Qwen3-ASR-0.6B (4- bit) | MLX | 680 MB | aufklarer / Qwen3-ASR-0.6B-MLX-4bit |
| Qwen3-ASR-0.6B (5- bit) | MLX | 1.0 GB | aufklarer / Qwen3-ASR-0.6B-MLX-5bit |
| Qwen3-ASR-0.6B (8- bit) | MLX | 1.0 GB | aufklarer / Qwen3-ASR-0.6B-MLX-8bit |
| Qwen3-ASR-0.6B (CoreML INT8) | CoreML | 180 MB | aufklarer / Qwen3-ASR-CoreML |
| Qwen3-ASR-1.7B (4- bit) | MLX | 2.1 GB | aufklarer / Qwen3-ASR-1.7B-MLX-4bit |
| Qwen3-ASR-1.7B (5- bit) | MLX | 2.3 GB | aufklarer / Qwen3-ASR-1.7B-MLX-5bit |
| Qwen3-ASR-1.7B (8- bit) | MLX | 3.2 GB | aufklarer / 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.
- WAV - PCM tidak dikompresi
- M4A - Audio AAC- dikodekan
- MP3 - MPEG Lapis III
- CAF - Format Audio Inti Apple
Model diunduh dari HuggingFace pada penggunaan pertama dan cache di ~/Library/Caches/qwen3-speech/4-bit 0.6B model adalah sekitar 1.5 GB.
Parakeet TDT speech- to-text · CosyVoice3 voice clone · Kokoro-82M TTS
Butuh panduan keputusan yang fokus? Qwen3-ASR vs Whisper: akurasi, kecepatan, dan memori.
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()