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öte | Raa'alla audiolla otettu uudelleen 16 kHz monoon |
| Mel Spectrogram | 128-bin mel suodatinpankin ominaisuudet aallonmuodosta |
| Äänikoodain | 18-kerroksinen muuntaja lohko huomiota, käsittelee mel kehyksiä audio upotuksia |
| Tekstinpurkaja | 28-kerros Qwen3 muuntaja, jossa on ryhmiteltyä huomiota (GQA) ja pyörivää asentoa (RoPE), tuottaa automaattisesti tekstimerkkejä |
Tulos
| Taustaosa | RTF | Huippumuisti | Huomautuksia |
|---|---|---|---|
| Qwen3-ASR 1,7B MLX 5-bit | 0.027 | 1,92 GB | WER 1,32% (uusi tarkkuusohjain) |
| Qwen3-ASR 1,7B MLX 8-bittinen | 0.033 | 2.7 GB | WER 1.52% |
| Qwen3-ASR 0,6B MLX 8-bittinen | 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 ~4-bit 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% (kaksoisrakentaminen) |
Apple M5 Pro, 48 GB. LibriSpeech testipuhdasta n=200, eristetty moottoria kohti. RTF < 1,0 = reaaliaikaista nopeampi.
Mallivaihtoehdot
| Malli | Taustaosa | Koko | HuggingFace |
|---|---|---|---|
| Qwen3-ASR-0.6B (4-bit) | MLX | 680 Mt | 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 Mt | 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 |
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.
- WAV ...
- M4A ...
- MP3 ...
- CAF Apple Core -äänimuoto
Mallit ladataan HuggingFace -mallista ja välimuistista ~/Library/Caches/qwen3-speech/. 4-bittinen 0,6B-malli on noin 1,5 GB.
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()