Konekäännös · Englanninkielinen alkuperäinen

Qwen3-ASR

MLX ja CoreML käyttävät samoja Whisper-tyylisiä syöteominaisuuksia: 128 Slaney-normalisoitua mel-astiaa täsmälleen 400-pisteen STFT:stä 16 kHz:n kohdalla, 160-näytteen hyppy ja jaksottainen Hann-ikkuna.

Qwen3-ASR on huippuluokan monikielinen automaattinen puheentunnistus malli. Se toimii laitteen avulla Metal GPU kiihdytys MLX, jonka kanssa 4-Bit. 5- bittiä tai 8-bit kvantitalisaatio tehokas muistin käyttö. Saatavilla 0.6B ja 1.7B-parametrin vaihtoehdot. 5-bit on uusi tarkkuus / muisto makea kohta ... Katso vertailuarvot.

Putkijohto

Qwen3-ASR -päätelmä putkistossa käsitellään ääniä neljässä vaiheessa:

Vaihe Tavaran kuvaus
ÄänisyöteRaa'alla audiolla otettu uudelleen 16 kHz monoon
Mel Spectrogram128-bin mel suodatinpankin ominaisuudet aallonmuodosta
Äänikoodain18-kerroksinen muuntaja lohko huomiota, käsittelee mel kehyksiä audio upotuksia
Tekstinpurkaja28-kerros Qwen3 muuntaja, jossa on ryhmiteltyä huomiota (GQA) ja pyörivää asentoa (RoPE), tuottaa automaattisesti tekstimerkkejä

Tulos

TaustaosaRTF Huippumuisti Huomautuksia
Qwen3-ASR 1,7B MLX 5-bit 0.0271,92 GBWER 1,32% (uusi tarkkuusohjain)
Qwen3-ASR 1,7B MLX 8-bittinen0.0332.7 GBWER 1.52%
Qwen3-ASR 0,6B MLX 8-bittinen0.0151,3 GBWER 1.82%
Qwen3-ASR 0,6B MLX 5-bit0.0141,03 GBWER 1,74% (near-8-bit ~4-bit RAM)
Qwen3-ASR 0,6B MLX 4-bit0.0121.0 GBWER 2.20%
Qwen3-ASR 0,6B CoreML INT80.0981,4 GBWER 3,02% (kaksoisrakentaminen)

Apple M5 Pro, 48 GB. LibriSpeech testipuhdasta n=200, eristetty moottoria kohti. RTF < 1,0 = reaaliaikaista nopeampi.

Mallivaihtoehdot

Malli Taustaosa KokoHuggingFace
Qwen3-ASR-0.6B (4-bit)MLX680 Mtaufklarer/ 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 Mtaufklarer/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

CLI-käyttö

Kirjoita äänitiedosto oletusarvolla Qwen3-ASR:

.build/release/speech transcribe recording.wav

Valinnat

# 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

Käytä Qwen3ASR -moduulia ohjelmoidaksesi audioohjelmoinnin:

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

Suorita äänenkoodauslaite Neural Engine CoreML -laitteella, tekstikooderin GPU -laitteella MLX. Tämä hybridilähestymistapa alentaa tehonkulutusta ja vapauttaa GPU -tehon samanaikaisen työmäärän osalta.

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 paletisoitu (180 MB, kosiinin samankaltaisuus > 0,999) on oletus. An INT4 varianttia (90 MB) on saatavana myös kokorajoitettuihin käyttötarkoituksiin.

Virtaustila

Virtaustilassa käytetään VAD (äänitoiminnan havaitseminen) äänen jakamisessa osiin ja transkriptiossa ne asteittain. Tämä on hyödyllistä pitkän tallennuksen tai reaaliaikaisen käsittelyn kannalta.

# 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 -lipun enimmäiskesto sekunneissa. --partial -lippu mahdollistaa osittaisen tuloslähdön, mikä osoittaa sanat, koska ne on purettu.

Tuetut muodot

Qwen3-ASR hyväksyy seuraavat ääniformaatit. Kaikki syöte otetaan automaattisesti uudelleen 16 kHz:n monoon sisäisesti.

Tärkeää

Mallit ladataan HuggingFace -mallista ja välimuistista ~/Library/Caches/qwen3-speech/. 4-bittinen 0,6B-malli on noin 1,5 GB.

Asiaan liittyvät oppaat

Parakeet TDT:n puhe tekstiviestiltä · CosyVoice3 äänen kloonaus · Kokoro-82M TTS

Tarvitsetko kohdennetun päätöksenteko-oppaan? Katso Qwen3-ASR vs Whisper: tarkkuus, nopeus ja muisti .

Yhteistyön lopettaminen

MLX:n transkriptio Qwen3ASRModel.transcribeCheckingCancellation(audio:sampleRate:options:) heitot CancellationError kun tehtävän peruuntuminen havaitaan ennen ominaisuuden poistoa, koodausta, dekooderien esitäyttöä tai dekoodausvaihetta. GPU:n työ voi valmistua. transcribe sekä transcribeBatch API säilyttää ei-heitto käytöstä ja sivuuttaa tehtävän peruuntuminen. speech-server käyttää Qwen3-ASR:n peruutustietoista tulopistettä.

MLX välimuistibudjetti

Ladattaessa Qwen3-ASR sitoo prosessilaaja-alue MLX uudelleenkäytettävien Metal -puskurit: min(1 GiB, RAM / 8) 0,6B:n ja min(4 GiB, RAM / 4) 1.7B:n osalta. Muut MLX -mallit jakavat tämän puskurin.

Tehokas raja-arvo on alhaisin soittajasta MLX.Memory.cacheLimit ja jokainen ladattu ASResimerkki.Esimerkit voivat purkaa latauksen missä tahansa järjestyksessä; viimeinen lastinpurku tai tapahtumatuho palauttaa soittajan budjetin.

Yksitahtinen transkriptio tyhjentää uudelleenkäytettävät puskurit, kun dekooderi palaa tai heittää, mukaan lukien peruutus dekooderin sisällä. Aktiiviset järjestelmät ja mallin painot pysyvät ladattuna. Ahneus transcribeBatch -dekooderi säilyttää rajoitettua reserviä erien välillä. Ei API -vaihtoehdot tai CLI-liput muuttuvat.

Puskuripoolin tyhjentäminen vähentää muistia, mutta vaatii uusia jakoja myöhempiin pyyntöihin, joten lyhyet pyynnöt voivat kestää kauemmin. Odottaminen lähetetty dekooderityö loppuun tekee puhdistuksen deterministinen, mukaan lukien peruutus. Todellinen latenssi ja prosessin muisti riippuu laitteistosta, malli, ja ääni.

Valinnainen malliomistus

PuheRuntime tarjoaa yhteisen latauksen, peruutettavissa olevan FIFO:n sisäänpääsyn ja sarjatoteutuksen. Qwen3ASRRuntime selecks MLX or full CoreML identifikaatioiden avulla; alkuperäisiä API- ja CLI-lippuja on edelleen saatavilla.

Äänipalvelimella on yksi suorituslupa jokaisen täydellisen pyynnön kautta, myös streamed-ulostulo, jossa on enintään 32 pyyntöä odottamassa. ASR viat tuottavat HTTP-virheitä tai WebSocket virhetapahtumia; voimassa olevat tyhjät transkriptiot pysyvät onnistuneina.

Hallittu CoreML transkriptio vapauttaa kunkin pyynnön jälkeen väliaikaisia puskureita, mukaan lukien toistuvat puhelut taustatehtävästä.

import Qwen3ASRRuntime

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