Qwen3-ASR
Qwen3-ASR là mô hình nhận dạng giọng nói tự động đa ngôn ngữ thuộc hàng tiên tiến nhất hiện nay. Mô hình chạy ngay trên thiết bị với khả năng tăng tốc GPU Metal qua MLX, lượng tử hoá 4-bit để sử dụng bộ nhớ hiệu quả. Có sẵn ở hai biến thể 0.6B và 1.7B tham số.
Pipeline
Pipeline suy luận của Qwen3-ASR xử lý âm thanh qua bốn giai đoạn:
| Giai đoạn | Mô tả |
|---|---|
| Đầu vào âm thanh | Âm thanh thô được lấy mẫu lại về 16 kHz mono |
| Mel Spectrogram | Đặc trưng mel filterbank 128 bin được trích xuất từ dạng sóng |
| Bộ mã hoá âm thanh | Transformer 18 lớp với block attention, xử lý các khung mel thành embedding âm thanh |
| Bộ giải mã văn bản | Transformer Qwen3 28 lớp với grouped-query attention (GQA) và rotary position embeddings (RoPE), sinh token văn bản theo cách tự hồi quy |
Hiệu năng
| Backend | RTF | Bộ nhớ đỉnh | Ghi chú |
|---|---|---|---|
| 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 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 rebuild) |
Apple M5 Pro, 48 GB. LibriSpeech test-clean n=200, isolated per-engine. RTF < 1.0 = nhanh hơn thời gian thực.
Biến thể mô hình
| Mô hình | Backend | Kích thước | HuggingFace |
|---|---|---|---|
| Qwen3-ASR-0.6B (4-bit) | MLX | 680 MB | aufklarer/Qwen3-ASR-0.6B-MLX-4bit |
| 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 (8-bit) | MLX | 3.2 GB | aufklarer/Qwen3-ASR-1.7B-MLX-8bit |
Sử dụng CLI
Phiên âm một tệp âm thanh bằng mô hình Qwen3-ASR mặc định:
.build/release/speech transcribe recording.wav
Tuỳ chọn
# 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
API Swift
Dùng module Qwen3ASR để phiên âm âm thanh từ mã nguồn:
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)
Bộ mã hoá CoreML (Neural Engine)
Chạy bộ mã hoá âm thanh trên Neural Engine qua CoreML, còn bộ giải mã văn bản chạy trên GPU qua MLX. Cách tiếp cận lai này giúp giảm tiêu thụ điện năng và giải phóng GPU cho các tác vụ chạy song song.
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
Biến thể INT8 palettized (180 MB, độ tương đồng cosine > 0.999) là lựa chọn mặc định. Còn có biến thể INT4 (90 MB) cho các triển khai bị giới hạn về kích thước.
Chế độ streaming
Chế độ streaming dùng VAD (phát hiện hoạt động giọng nói) để chia âm thanh thành các chunk và phiên âm tăng dần. Cách này hữu ích cho bản ghi dài hoặc xử lý thời gian thực.
# 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
Cờ --max-segment điều khiển thời lượng tối đa của chunk tính bằng giây. Cờ --partial bật xuất kết quả từng phần, hiển thị các từ khi chúng vừa được giải mã.
Định dạng được hỗ trợ
Qwen3-ASR chấp nhận các định dạng âm thanh sau. Mọi đầu vào đều được tự động lấy mẫu lại về 16 kHz mono ở bên trong.
- WAV — PCM không nén
- M4A — âm thanh mã hoá AAC
- MP3 — MPEG Layer III
- CAF — Apple Core Audio Format
Các mô hình được tải xuống từ HuggingFace ở lần dùng đầu tiên và được lưu cache tại ~/Library/Caches/qwen3-speech/. Mô hình 0.6B ở định dạng 4-bit có dung lượng xấp xỉ 1.5 GB.