Qwen3-ASR 1.7B for Glade
Glade is a native Swift library for on-device speech inference on Apple
silicon. This repository supplies converted model assets and configuration for
Glade's model-specific host runtime. Glade's runtime source is currently private.
Glade conversion of Qwen3-ASR-1.7B
by the Qwen Team, Alibaba Cloud, at source revision
7278e1e70fe206f11671096ffdd38061171dd6e5.
The converted weights retain Apache-2.0 licensing; see LICENSE and NOTICE.
This conversion is not endorsed by the upstream authors.
This repository contains one offline transcription bundle, approximately
2.68 GB, using 30-second chunks and up to eight independent decoder
lanes. It prefers ANE for both the audio encoder and autoregressive text
decoder. W8A16 quantization retains selected sensitive tensors in FP16.
Requires physical Apple silicon with macOS 27 or iOS 27 and Glade's model-specific
host runtime. The .aimodel functions accept features, embeddings and KV
caches, not audio files. The host must implement the frontend, prompt assembly,
greedy generation and tokenization described by the metadata and sidecars.
These assets do not load through Transformers or Core ML's MLModel API.
Bundle and semantics
subsampling.aimodel and audio.aimodel preserve Qwen's frontend and native
eight-second offline audio attention windows. Text attention sees all audio
embeddings within each 30-second chunk.
- Four
text_*.aimodel assets cover all 28 text layers. Each shares source
weights across prefill and one-/eight-lane decode entrypoints.
- Compact KV caches start at 512 positions and expand to 1,024 when needed.
Every valid context position is retained. Exhaustion is an error, not silent
truncation. Independent chunks do not share decoder history.
head.aimodel projects the vocabulary and returns winning partition/local
IDs, preserving exact token IDs despite FP16 tensor transport.
embeddings.f16, tokenizer.json, prompts.json, frontend tensors and
metadata.json complete the runtime. Metadata owns capacities, stage
boundaries, lane counts, language hints and EOS conventions.
The upstream model supports 30 languages and 22 Chinese dialects. The supplied
prompts include its 30 language choices; automatic language selection is also
possible by omitting the language hint. This conversion has English numerical
and recording regression coverage, not a comprehensive evaluation of all
languages and dialects.
No native word timestamps are produced. Applications that need them can run
Qwen3 ForcedAligner
as a separate, optional pass. Its download, preparation, memory and inference
costs are excluded from the ASR measurements below.
Measured performance
JFK's “We choose to go to the Moon” speech: a 20-second excerpt and the
18-minute 15-second recording. Full recordings use 37 contiguous chunks,
with every input sample retained. The M3 is a 16 GB MacBook Air.
| Device |
Audio |
Processing |
Audio / elapsed |
| M3 MacBook Air |
20 seconds |
1.645 s |
12.2× |
| M3 MacBook Air |
18 min 15 s |
38.354 s |
28.6× |
| iPhone 15 Pro Max |
20 seconds |
2.106 s |
9.5× |
| iPhone 15 Pro Max |
18 min 15 s |
55.574 s |
19.7× |
The short Mac result and both phone results are three-run warmed medians. The
full Mac row is one final-package verification pass; the prior three warmed
passes with the same runtime/graphs had a 39.37-second median and identical
tokens. Mac measurements exclude file I/O and preparation. Phone measurements
include bounded file reading, chunking and output delivery, but exclude model
preparation. The long phone runs ranged 51.20–57.71 s, with fair/serious
thermal state after initial compilation; short phone runs were nominal.
Measurements were made September 29–30, 2026.
Peak full-recording memory was 4.51 GB on Mac, combining simultaneous client
and separately attributed ANE allocations. Phone client footprint peaked at
4.46 GB, which already includes its ANE allocation. These measurements do
not reserve memory or guarantee that another app has the same memory allowance.
| Device |
Observed preparation involving specialization |
Cached preparation |
| M3 MacBook Air |
346 s when introducing the compact text graphs |
0.080 s for the final package |
| iPhone 15 Pro Max |
557 s (9 min 17 s) |
1.64–2.47 s |
These are observed loads, not guaranteed clean-device compilation times. The
Mac already had related audio/head graphs cached in the 346-second experiment.
Packaging removes debug locations; its first Mac load took 60.14 s while
reusing existing backend caches. Core AI's underlying caches are not fully
observable, and the OS may invalidate them. The phone's four text assets took
151, 148, 113 and 116 seconds during its initial load.
Qualification
- Original checkpoint tensors were mapped exactly into the native Transformers
reference, including the tied embedding/head values. Layer checks compared
hidden states, KV updates and vocabulary decisions, including the compact
512-to-1,024-position cache transition.
- The final package returned identical tokens to the qualified runtime for
every full-recording chunk. Phone full-recording outputs also matched Mac.
- Whisper-normalized WER was 61/2,220 errors (2.75%) on this recording,
equal to the BF16 Transformers/MPS reference using the same cuts. The source
took 204.60 s in one measured pass. This does not establish parity with
native whole-recording recognition or a general accuracy ranking.
- A complete short phone trace matched 226 model-call scopes to ANE work,
with zero app GPU intervals. Final-package Mac compiler metadata marks
all seven assets fully on ANE. Full-length phone traces had incomplete
signpost coverage, so they are not evidence of complete full-run placement.
Placement evidence is not a measure of ALU utilization or energy efficiency.
Download the complete repository snapshot. Source paths, evaluation audio,
reference tensors and compiled device caches are excluded. Hugging Face's
snapshot metadata supplies file hashes for integrity verification.