Reproducible recipe

Parakeet WGSL browser ASR

Test whether long-form ASR can run locally in Chrome through WebGPU.. Browser audio ingestion may be too slow, too large, nondeterministic, or network-dependent.

Status
closed experiment
Learning path
browser and mac runtime
Regression slices
7
Execution
Fresh experiment required

Target

Test whether long-form ASR can run locally in Chrome through WebGPU.

Failure this recipe addresses

Browser audio ingestion may be too slow, too large, nondeterministic, or network-dependent.

Data contract

Eight pinned LibriSpeech test-clean clips: 34.365 seconds, 82 normalized words, eight speakers/chapters, and exact audio hashes.

Method or policy

Run the official pinned Parakeet v3 engine on real Apple WebGPU and WhisperKit large-v3 turbo through Core ML on the identical seeded clip order, then score both with one deterministic ruler.

Evaluation contract

Paired WER within 2 points plus median browser RTFx >=50, no repetition regression, exact proper-noun reporting, and zero warm external requests.

  • cold download
  • warm runtime
  • Chrome
  • Safari
  • WER
  • domain terms
  • memory

Budget and stop rule

34.365 seconds of audio, 652.7 MiB browser download, and one bounded browser/native run.

Stop on software GPU fallback, model/fixture drift, warm external requests, or any resource cap.

Decision rule

Reject under the frozen conjunction because median short-clip RTFx was 33.84x; preserve the 0.0% WER and 3.51x native-latency wins.

Learning exercise

Re-score the two prediction files, identify which WhisperKit errors come from numeric normalization, and compare aggregate with median per-clip RTFx.

Explain why 0.0% WER and a 3.51x paired latency win can coexist with a correct reject decision under the frozen 50x gate.

How to read this dossier

This canonical page separates the retained repository decision from the material that informed it. A source may describe an external claim, historical measurement, local observation, or planned procedure; those evidence classes are not interchangeable. Follow the provenance links before reusing a number or method.

Status and disposition describe what PostTrainLLM retained when this record was indexed. They are not a live product promise, a newly run benchmark, or permission to restart historical work. Unknown or unmeasured fields remain unknown rather than being treated as zero.

To reuse the record, first name the exact claim you need and trace it to the linked source. Then check whether the original environment, model revision, data split, evaluator, hardware, and budget match the proposed use. If they do not, treat the record as a hypothesis or design reference and run the smallest fresh comparison that can falsify it. Preserve negative outcomes and regressions beside any improvement; a local win on one slice does not silently become a general capability claim.

Source provenance

The normalized record comes from docs/recipes/registry.json. The links below are the tracked evidence and explanatory sources preserved with the record.