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ạnMô 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 thanhTransformer 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ảnTransformer 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

BackendRTFBộ nhớ đỉnhGhi chú
MLX (GPU)~0.06~2.2 GBMặc định, mô hình đơn nhanh nhất
CoreML + MLX (lai)~0.09~400 MB (bộ mã hoá)Bộ mã hoá trên Neural Engine, bộ giải mã trên GPU

M2 Max, 64 GB. RTF < 1.0 = nhanh hơn thời gian thực.

Biến thể mô hình

Mô hìnhBackendKích thướcHuggingFace
Qwen3-ASR-0.6B (4-bit)MLX680 MBaufklarer/Qwen3-ASR-0.6B-MLX-4bit
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 (8-bit)MLX3.2 GBaufklarer/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

# Dùng mô hình lớn hơn 1.7B
.build/release/speech transcribe recording.wav --model 1.7b

# Chỉ định ngôn ngữ
.build/release/speech transcribe recording.wav --language en

# Chế độ streaming với kết quả từng phần
.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

// Tải mô hình (tải về từ HuggingFace ở lần dùng đầu tiên)
let model = try await Qwen3ASRModel.loadFromHub()

// Phiên âm một tệp âm thanh
let result = try await model.transcribe(audioFile: "recording.wav")
print(result.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.

# Streaming với kích thước segment mặc định
.build/release/speech transcribe recording.wav --stream

# Điều khiển thời lượng tối đa của segment
.build/release/speech transcribe recording.wav --stream --max-segment 15

# Hiển thị kết quả từng phần (đang xử lý) khi chúng đến
.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.

Lưu ý quan trọng

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.