Skip to content
PostTrainLLM docs
Esc
navigateopen⌘Jpreview
On this page

parakeet.wgsl browser smoke

Review date: 2026-09-02 Decision: paired quality and native-latency win; reject against the frozen 50x short-clip throughput gate.

Reference-scored browser versus native result

The follow-up used eight fixed LibriSpeech test-clean rows spanning eight speakers and chapters: 34.365 seconds and 82 normalized reference words. Both arms received the identical audio, references, normalization, and seeded execution order. The candidate was the official Parakeet TDT 0.6B v3 browser engine at source revision ab738c92b8a6af0dcdfe51dddd062427a5ec7689; the incumbent was WhisperKit CLI v1.1.0 with the local Whisper large-v3 turbo Core ML model. The frozen protocol is evals/verified-wins/parakeet-asr-v1.json.

Measure Browser Parakeet v3 Native WhisperKit Result
Word errors / 82 0 7 browser wins
WER 0.00% 8.54% −8.54 points
Proper nouns 4/4 4/4 tied
Repetition events 0 0 tied
Total decode 914.7 ms 3,211.8 ms browser 3.51x faster
Aggregate real-time factor 37.57x 10.70x browser wins
Median per-clip real-time factor 33.84x 9.28x below frozen 50x gate

Chrome 151 selected the real Apple/Metal 3 adapter with FP16, subgroups, and the experimental subgroup-matrix feature. It was neither fallback nor software rendering. The browser downloaded 684,385,250 pinned model bytes and made zero external requests during warm inference.

Three of four formal gates passed: WER stayed within two points (and in fact won), repetitions did not regress, and the warm path stayed local. The preregistered median throughput target did not: 33.84x is below 50x. These short 2–7 second clips expose an approximately 80–100 ms fixed dispatch floor, so they are a much harder throughput case than the earlier 17-minute smoke. That is a systems lesson, not permission to replace the gate after seeing the answer.

The compact result is evals/verified-wins/parakeet-asr-result-v1.json. Raw transcripts, native JSON reports, scores, adapter details, and request logs remain under the ignored runs/verified-wins/parakeet-browser-native-paired-v1/ directory; the tracked result records their SHA-256 digests.

Earlier long-form adoption smoke

What was tested

The bounded smoke used upstream source revision 8f654eedd8a19fec48cbbe57f9f3a972fedc96e3, npm package 1.0.1, and the package’s public demo/API boundary. The runtime selected NVIDIA Parakeet TDT 0.6B v2 revision ae9ad07059c7c739ffaf932226a8fe64ae2620b0 through FP16 manifest SHA-256 11a359db3d050fd82b002c745b24a5280f3ff13a76834b548df671c95c786c65.

The source is MIT licensed. The separately hosted converted model package is CC BY 4.0. No model weights, generated cache, or upstream dependency was added to this repository.

The real-browser run used Chrome on the Apple/Metal adapter. Capability selection reported FP16, fixed 32-lane subgroup kernels, no fallback adapter, and no warnings. The input was upstream’s public 3,091,941-byte Kennedy MP3, SHA-256 dc12e3163c0da5f7fdfbfa4b4dfd0219d0d1c6c432d98c3b4a173829419f6f3f, with 1,030.486875 seconds of audio.

Result

The first inference after the cold model load transcribed 17m 10s of audio in 7.225 seconds, or 142.6x real-time. Three subsequent warm runs took 7.80, 7.68, and 7.749 seconds (132.1x, 134.2x, and 133.0x real-time).

The repeated warm transcript was identical across runs: 11,661 characters, SHA-256 d857a2e16257841a1db12a2314209521d57be5b62af15cd0ba7906ac9f1615e4. That establishes runtime repeatability, not accuracy. The transcript was coherent but visibly imperfect, including proper-name errors, phrase errors, and duplicated phrases. No reference transcript or WER scorer was used in this smoke.

The browser cached 29 verified assets totaling 405,252,493 bytes. Runtime diagnostics reported:

  • 405,063,936 packed model-download bytes;
  • 404,930,560 model-runtime GPU bytes;
  • 413,583,616 steady model GPU bytes;
  • a 92,406,272-byte activation arena;
  • 30,740,480 feature-staging bytes;
  • 8,650,752 transient weight-scratch bytes.

These are component metrics, not a unified browser peak-RSS measurement. The cold path started from a zero-byte cache. Polling observed 10.9% download after about 10 seconds, 55.5% after about 40 seconds, inference by about 71 seconds, and a completed result by about 91 seconds. Those are bounds rather than a precise cold-start timer; the package’s totalMs excludes download and model initialization.

During a monitored warm transcription, Chrome emitted only a localhost worker asset request and a local blob: request. No external request was observed. This supports the package’s local-after-download claim for the exercised path, within the scope of main-tab DevTools observation.

The compact receipt is evals/parakeet-wgsl/bounded-browser-smoke-v1.json.

Decision

This is a successful adoption smoke. parakeet.wgsl is now a serious candidate for optional browser audio ingestion: it works through the published package, uses the right Apple WebGPU features, is dramatically faster than real-time on the public long-form sample, and reuses a verified local cache.

That smoke correctly withheld the accuracy claim and led to the paired test above. The controlled comparison now qualifies accuracy on its bounded fixture and shows that browser Parakeet is faster than this native incumbent. It still does not select a product ASR layer because the separately frozen 50x short-clip gate failed. The 652.7 MiB v3 first download must remain explicit and optional. A batching/long-form gate, Safari qualification, larger WER set, or product integration would each be a new experiment rather than unfinished work in this one.

Was this page helpful?