Lucas Winther and Claude Opus 5.5
80f8004963
Close moot backlog items; refresh verified commands and suite timing
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 14:37:24 +01:00
Lucas Winther and Claude Opus 5.5
978743a36e
Record that batched Opus-MT is still broken on Transformers.js 4.3.2
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 14:36:51 +01:00
Lucas Winther and Claude Opus 5.5
dd9dfc628b
Detect the language once for auto-detect file passes on the chunked path (D-053)
...
Transformers.js has no Whisper language detection and silently decoded
Danish as English whenever "Skip silence" was off or unavailable.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 14:35:09 +01:00
Lucas Winther and Claude Opus 5.5
3583d60847
Reject task=translate on the server for models that cannot translate (D-044)
...
The UI already hid it; a direct API call to POST /api/transcribe or the live
WebSocket could still get the source language back labelled as a translation.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 14:33:08 +01:00
Lucas Winther and Claude Opus 5.5
96d100bd45
Turn "Skip silence" on by default (opt-out, D-052)
...
Owner's decision: the long-form pipeline's gain on the long real recording
outweighs the spec's strict every-clip rollout rule. A stored "off" still wins.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 01:56:57 +01:00
Lucas Winther and Claude Opus 5.5
0207ff5a3d
Spec 001 implemented; remove the coordination plan
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 01:49:43 +01:00
Lucas Winther and Claude Opus 5.5
0632f7843b
Renumber spec 001 decision placeholders to D-040–D-051; record the Danish publication
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 01:47:27 +01:00
Lucas Winther
30969e86b7
Merge feat/parakeet-engine: Parakeet TDT 0.6B v3 English engine (spec 001 workstream 7)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
# Conflicts:
# AGENTS.md
# bun.lock
# docs/Decisions.md
# src/lib/models.ts
# src/worker/inference.worker.ts
# src/worker/protocol.ts
# tests/models.test.ts
2026-10-30 01:46:51 +01:00
Lucas Winther
9c89ab047f
Merge feat/longform-pipeline: VAD long-form pipeline, opt-in (spec 001 workstream 3)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
# Conflicts:
# docs/Architecture.md
# docs/Decisions.md
# src/App.tsx
# src/index.css
# src/lib/engine.ts
# src/worker/inference.worker.ts
# src/worker/protocol.ts
# tests/engine.test.ts
# tests/live-real-model.test.ts
# tests/offline.md
# tests/protocol.test.ts
2026-10-30 01:39:17 +01:00
Lucas Winther
2c87471fdc
Merge feat/vocabulary-hint: names-and-terms decoder prompt (spec 001 workstream 2)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
# Conflicts:
# docs/Architecture.md
# docs/Decisions.md
# docs/WorkBreakdown.md
# server-py/sidecar.py
# src/App.tsx
# src/server/live.ts
# src/server/transcribe.ts
# tests/fixtures/fake_sidecar.py
# tests/transcribe.test.ts
2026-10-30 01:35:28 +01:00
Lucas Winther and Claude Opus 5.5
5f335c3e41
Publish only whisper-small-danish under lucasw89; drop the turbo Danish entries
...
The owner chose to publish just the small fine-tune: the turbo fine-tunes
showed no clear gain over stock turbo on da_festuge (D-WS6a).
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 01:32:30 +01:00
Lucas Winther
aa7ae93c0c
Merge feat/server-batched-vad: faster-whisper batched + VAD (spec 001 workstream 5)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
# Conflicts:
# docs/Decisions.md
2026-10-30 01:27:55 +01:00
Lucas Winther
439d099279
Merge feat/danish-models: Danish fine-tune catalog entries (spec 001 workstream 6)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
# Conflicts:
# docs/Decisions.md
# docs/WorkBreakdown.md
2026-10-30 01:27:45 +01:00
Lucas Winther
c94689e2e0
Merge feat/translate: canTranslate + Opus-MT transcript translation (spec 001 workstream 4)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
# Conflicts:
# docs/Decisions.md
2026-10-30 01:15:05 +01:00
Lucas Winther and Claude Opus 5.5
316f64609b
Merge chore/transformers-4.3: Transformers.js 4.3.2 (spec 001 workstream 1)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 01:14:22 +01:00
Lucas Winther and Claude Opus 5.5
498e361b8a
Remove the workstream 6 plan now that the Danish models work is done
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 01:13:27 +01:00
Lucas Winther and Claude Opus 5.5
19228297f1
Record the Danish conversions' measurements, dtype choice and pending upload in D-WS6a
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 01:13:27 +01:00
Lucas Winther and Claude Opus 5.5
951aad8f55
Default the Danish conversions to q4 on WASM, as measured on the converted files
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 01:12:28 +01:00
Lucas Winther and Claude Opus 5.5
7b65f1f727
Remove the finished Transformers.js 4.3.2 upgrade plan
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 01:04:18 +01:00
Lucas Winther and Claude Opus 5.5
cc8e031d6b
Run WASM sessions at the default graph optimization level now that ort-web 1.31 loads the 8-bit decoders
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:45:46 +01:00
Lucas Winther and Claude Opus 5.5
cb80ab5f9d
Remove plan 001-3; spec 001 and D-WS3a/D-WS3b are the record
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:43:51 +01:00
Lucas Winther and Claude Opus 5.5
215035e383
Assert whole-file WER per clip in the real-model test (plan 001-3 Tasks 8-9 done)
...
Chunked file path and long-form (explicit and auto language) held to the
per-clip bars; full real-model test green under the heavy-job lock.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:43:51 +01:00
Lucas Winther and Claude Opus 5.5
7fb8dde423
Remove the finished server batched-VAD plan; spec 001 and D-WS5a are the record
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:24:06 +01:00
Lucas Winther and Claude Opus 5.5
07753a496b
Tick the finished server batched-VAD plan
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:24:06 +01:00
Lucas Winther and Claude Opus 5.5
104c1c4e4d
Record the batched-VAD measurements and check heartbeat, bursts and cancel against the real sidecar
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:23:55 +01:00
Lucas Winther and Claude Opus 5.5
ab45e686a4
Record the long-form pipeline measurements, rollout and VAD model (D-WS3a, D-WS3b)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:23:21 +01:00
Lucas Winther and Claude Opus 5.5
b88f406ac6
Remove the workstream 4 plan now that it is complete
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:19:24 +01:00
Lucas Winther and Claude Opus 5.5
160298197e
Reuse the language-detection encoder pass in long-form decodes
...
Whisper's generate() keeps only forward_params from its kwargs, and that
list omits encoder_outputs, so the precomputed encoder output was dropped
and auto-detect cost three encoder passes for a one-chunk clip. The
real-model test now pins one encoder pass per decoded chunk.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:19:08 +01:00
Lucas Winther and Claude Opus 5.5
c0528af082
Wrap transcript card actions under the title on narrow screens
...
Polish pass on the translate panel: the four export buttons overflowed
both transcript cards at 390 px. Also record the headless-Chrome
translation run and a re-measured bench in D-WS4b.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:19:04 +01:00
Lucas Winther and Claude Opus 5.5
6b338a2c58
Remove the finished workstream 2 plan (vocabulary hint)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:13:42 +01:00
Lucas Winther and Claude Opus 5.5
4e65e322ce
Tick plan 001-2 Task 7: real-model file runs green under the lock (7 pass, 920 s)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:13:42 +01:00
Lucas Winther and Claude Opus 5.5
1c1806840e
Tune the server engine's Silero VAD so batched file transcription stops dropping quiet speech
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 00:07:05 +01:00
Lucas Winther and Claude Opus 5.5
b66ba7e577
Remove the workstream 7 plan now that the Parakeet engine path is done
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:52:39 +01:00
Lucas Winther and Claude Opus 5.5
f540f8952d
Keep the noticed-not-fixed list contiguous
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:52:35 +01:00
Lucas Winther and Claude Opus 5.5
378aff6a7b
Record D-WS2a: hint measurements, the 120-token truncation rule, no faster-whisper hotwords
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:52:29 +01:00
Lucas Winther and Claude Opus 5.5
fdc9b500c0
Check Parakeet chunks export to .srt and timestamped text, and record the headless Chrome run
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:52:05 +01:00
Lucas Winther and Claude Opus 5.5
edb9b332b9
Cap the hint prompt at 120 tokens: a full 223-token prompt garbles small models
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:51:47 +01:00
Lucas Winther and Claude Opus 5.5
9b37c7d26c
Tick the server batched-VAD plan up to the committed Bun and sidecar work
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:48:14 +01:00
Lucas Winther and Claude Opus 5.5
28201bcd17
Reconcile plan 001-2 with the work done before the pause
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:34:36 +01:00
Lucas Winther and Claude Opus 5.5
7ff23628e3
Tick the Parakeet plan steps already landed before the pause
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:34:28 +01:00
Lucas Winther and Claude Opus 5.5
8ac81baf54
Tick plan 001-3 steps already done before the pause
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:34:13 +01:00
Lucas Winther and Claude Opus 5.5
dc15623f62
WIP: uncommitted work at pause (session limit)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:03:27 +01:00
Lucas Winther and Claude Opus 5.5
826bcd2e49
WIP: uncommitted work at pause (session limit)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:03:27 +01:00
Lucas Winther and Claude Opus 5.5
ec7ed36426
WIP: uncommitted work at pause (session limit)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 23:03:27 +01:00
Lucas Winther and Claude Opus 5.5
9f1d58c0b7
Keep max_new_tokens: 440 on Transformers.js 4.3.2 and pin the seek-loop condition it avoids
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:59:35 +01:00
Lucas Winther and Claude Opus 5.5
7dc77978a9
Classify a silent translate-worker crash as out of memory
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:51:47 +01:00
Lucas Winther and Claude Opus 5.5
9cd92b4920
Record D-WS7a: Parakeet runtime decision, engine path and CPU measurements vs Large v3 Turbo
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:32:22 +01:00
Lucas Winther and Claude Opus 5.5
cd9aa48b83
Record what the Transformers.js 4.3.2 upgrade changes on the WebGPU side and what needs a browser check
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:30:29 +01:00
Lucas Winther and Claude Opus 5.5
8e0ecdaf85
Add the synthetic meeting fixture and long-form measurement script
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:28:48 +01:00
Lucas Winther and Claude Opus 5.5
a569b4003c
Tick completed workstream 4 plan steps
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:11:56 +01:00
Lucas Winther and Claude Opus 5.5
0684122f45
Document transcript translation: decision, architecture, manual offline check
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:11:37 +01:00
Lucas Winther and Claude Opus 5.5
c110c9203f
Add the Translate transcript panel with its own exports
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:10:51 +01:00
Lucas Winther and Claude Opus 5.5
a0748b5fa6
Translate transcripts with Opus-MT in a dedicated translation worker
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:10:51 +01:00
Lucas Winther and Claude Opus 5.5
12e0f6678b
Offer Parakeet in the picker as English-only, hide it on phones, and explain the missing language controls
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:08:08 +01:00
Lucas Winther and Claude Opus 5.5
708fae5778
Run Parakeet TDT in the inference worker via parakeet.js on the shared onnxruntime-web
...
Adds parakeet.js 1.4.4 (MIT) as a devDependency bundled into the worker
only; a build plugin keeps its own onnxruntime-web copy out of the bundle.
Includes an opt-in real-model test (PARAKEET_REAL=1).
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:08:05 +01:00
Lucas Winther and Claude Opus 5.5
f55ea6ecf8
Run browser file transcription through the long-form pipeline when asked and the VAD model is available
...
Adds an Advanced "Skip silence in uploaded files" option (off by default
pending measurement), the vad/longForm protocol fields, the old-path
fallback when the VAD model is missing, and a plain message for files
with no speech.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:02:47 +01:00
Lucas Winther and Claude Opus 5.5
0c3a83c23c
Run Silero VAD and Whisper decodes for the long-form pipeline on Transformers.js
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:02:47 +01:00
Lucas Winther and Claude Opus 5.5
2a4f5b16a5
Add Danish fine-tune catalog entries under a single pending Hugging Face owner constant
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 22:00:33 +01:00
Lucas Winther and Claude Opus 5.5
f7d0525423
Wait for the PCM payload, not just the request, in the live WebSocket test (race under load)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:58:03 +01:00
Lucas Winther and Claude Opus 5.5
d6c3d1ff70
Add the optional "Names and terms" field and send it with every file and live pass
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:57:30 +01:00
Lucas Winther and Claude Opus 5.5
8236ea3504
End the hint prompt in a full stop: an unterminated list made Whisper drop punctuation and loop
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:55:48 +01:00
Lucas Winther and Claude Opus 5.5
c5a57cd33a
Keep Parakeet on WASM unless WebGPU is chosen explicitly, and never offer it on phones
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:51:26 +01:00
Lucas Winther and Claude Opus 5.5
827e9a8dae
Add a Cache-API model file downloader that reports load progress and caches only complete files
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:50:40 +01:00
Lucas Winther and Claude Opus 5.5
c9fdab1726
Add Parakeet window planning, word-to-chunk mapping, vocab tokenizer and pinned asset URLs
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:49:52 +01:00
Lucas Winther and Claude Opus 5.5
d554162a2c
Add a model family field and the Parakeet v3 catalog entry with exact file sizes
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:48:39 +01:00
Lucas Winther and Claude Opus 5.5
c3a490548a
Plan workstream 7: Parakeet TDT engine path
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:47:11 +01:00
Lucas Winther and Claude Opus 5.5
19318a56f2
Add the long-form transcription pipeline behind transcribeLongForm
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:46:16 +01:00
Lucas Winther and Claude Opus 5.5
1c5952f212
Validate the vocabulary hint server-side and pass it to faster-whisper as initial_prompt
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:45:39 +01:00
Lucas Winther and Claude Opus 5.5
ad2eb10a28
Add compression-ratio and log-prob quality checks for decode fallback
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:44:41 +01:00
Lucas Winther and Claude Opus 5.5
221ac594eb
Let the transcribe progress tracker follow variable-length windows
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:44:19 +01:00
Lucas Winther and Claude Opus 5.5
753ea03979
Upgrade @huggingface/transformers to 4.3.2 and carry the sequential-session patch
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:44:18 +01:00
Lucas Winther and Claude Opus 5.5
313892b6df
Carry the vocabulary hint as prompt from the engines through the worker into every window
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:44:06 +01:00
Lucas Winther and Claude Opus 5.5
99b9cd71cd
Type the prompt wrapper's tensor slice for open-ended ranges
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:43:29 +01:00
Lucas Winther and Claude Opus 5.5
87617bef4c
Fix a type error in the hint truncation test
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:43:19 +01:00
Lucas Winther and Claude Opus 5.5
e0a4b2796f
Add pure VAD speech-timestamp and chunking functions for the long-form pipeline
...
Port of faster-whisper 1.2.1 vad.py (checked identical on a random
20 000-window probability trace for both min-silence settings).
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:43:18 +01:00
Lucas Winther and Claude Opus 5.5
e6de097cfd
Feed Whisper a decoder prompt through the ASR pipeline and strip it from the output
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:43:11 +01:00
Lucas Winther and Claude Opus 5.5
942799d3cb
Add the vocabulary hint's normalization, storage and prompt truncation rule
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:42:25 +01:00
Lucas Winther and Claude Opus 5.5
438af265b4
Add plan 001-3 for the browser long-form pipeline
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:42:07 +01:00
Lucas Winther and Claude Opus 5.5
225634c165
Plan workstream 2: vocabulary hint
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:41:45 +01:00
Lucas Winther and Claude Opus 5.5
82ed34c7f9
Plan transcript translation units and sentence pieces for Opus-MT
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:39:37 +01:00
Lucas Winther and Claude Opus 5.5
02a5eab119
Offer Whisper's Translate to English only on models trained for it (canTranslate)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:37:28 +01:00
Lucas Winther and Claude Opus 5.5
afce794cbf
Mark server-live sidecar passes as live mode and cover the stream heartbeat with a test
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:37:01 +01:00
Lucas Winther and Claude Opus 5.5
dc64bb8198
Run server-engine file transcriptions through faster-whisper's batched pipeline with VAD
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:36:21 +01:00
Lucas Winther and Claude Opus 5.5
036635e854
Add workstream 4 plan: canTranslate and Opus-MT transcript translation
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:35:49 +01:00
Lucas Winther and Claude Opus 5.5
f8ce3120fe
Plan workstream 6: Danish fine-tuned Whisper conversions and catalog entries
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:35:40 +01:00
Lucas Winther and Claude Opus 5.5
bbcc123124
Add plan for server engine batched + VAD inference (spec 001, workstream 5)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:35:05 +01:00
Lucas Winther and Claude Opus 5.5
9607c8558f
Add plan for the Transformers.js 4.3.2 upgrade (workstream 1)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:34:15 +01:00
Lucas Winther and Claude Opus 5.5
9159e2ab5e
Coordination plan: assign the synthetic meeting fixture
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:29:11 +01:00
Lucas Winther and Claude Opus 5.5
2642462e33
Add coordination plan for spec 001
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:28:52 +01:00
Lucas Winther and Claude Opus 5.5
3d9c7bfd34
Approve spec 001
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:27:32 +01:00
Lucas Winther and Claude Opus 5.5
2bef4cb80a
Draft spec 001: transcription quality and speed
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:27:01 +01:00
Lucas Winther and Claude Opus 5.5
e195883b45
Record the product audience and copy tone in PRODUCT.md
...
Primary users are non-technical people who want Whisper without docs or
ML setup; technical users must keep full control as if running it on
their own device.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 21:14:41 +01:00
Lucas Winther and Claude Opus 5.5
4942461f79
Add typecheck + CI checks, light theme with self-hosted Inter, fix real-model test
...
- Typecheck: typescript 7 devDependency, `bun run typecheck`; CI gains a
`check` stage (install, typecheck, fast tests) gating image builds (D-038).
- Light theme: every colour is a token; prefers-color-scheme: light
overrides them. Inter Variable self-hosted from @fontsource-variable/inter,
kept out of Bun's CSS inlining and precached (scripts/fonts.ts, D-037).
Backend select no longer overflows on narrow phones.
- tests/live-real-model.test.ts: time budget scales with clip length and
en_alien gets a measured WER bar; it had failed since July (D-039).
- Delete the temporary isolate_wer2.ts; fix icon "not checked in" comments
and the README's model-weights location.
- Agent docs: branch naming, typecheck, CI, Bun CSS gotcha, permissions.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 20:52:13 +01:00
Lucas Winther and Claude Opus 5.5
0ece4b3a2a
Bootstrap agent-ready docs and permissions (D-036)
...
Root AGENTS.md is now the single source of truth for coding agents;
CLAUDE.md, GEMINI.md and docs/CLAUDE.md are pointers. The product spec
moves from docs/CLAUDE.md to PRODUCT.md, DESIGN.md records the shipped
visual system, and docs/PERMISSIONS.md defines agent permission tiers
rendered to .claude/, .codex/ and .gemini/. Adds docs/specs/ and
docs/plans/, logs issues noticed (not fixed) in WorkBreakdown.md.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 19:51:30 +01:00
Lucas Winther and Claude Opus 5.5
c1b710cb23
Remove AU branding
...
Rename the app from "AU Whisper Web" to "Whisper Web" in the README
title and app header, rename the package to whisper_web, and drop the
au_ prefix from the transformers patch comment and the scratch path in
isolate_wer2.ts.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-29 19:15:58 +01:00
Lucas Winther
7ab41f4299
Document D-035: whisper-tiny multilingual vs .en speed gap is a content-dependent hallucination-loop effect, not a config bug
...
Measured with the ort-web-under-Bun harness: no reliable speed difference on
clean, language-matched audio. On out-of-distribution audio (wrong/undetected
language), the multilingual model's extra forced task token measurably
changes how long its repetition-loop hallucination runs before EOS (434 vs 67
tokens on the da_festuge fixture), which is where the reported slowness comes
from. Both models resolve to identical, merged, KV-cache-enabled decoders at
the same dtype — no catalog/config fix applies here. Documents the mechanism
and flags a future no_repeat_ngram_size/repetition_penalty mitigation as the
actionable follow-up if this recurs.
2026-07-30 08:31:58 +02:00
Lucas Winther
500cf3b36e
Don't show the live "recording"/listening indicator until the model is ready
...
startLive()'s browser-engine branch flipped liveStatus to "listening" (the
red live-dot, "Listening..." hint) the instant the mic was granted, even if
the Whisper pipeline was still loading — the user saw an active-looking
session while nothing was being transcribed yet. transcribeLiveSegment()
already correctly awaits the model-ready gate before posting a segment, so
this was purely a misleading-status bug.
Adds a "loading-model" LiveStatus between "starting" and "listening";
startLive() now waits on the same browserModelReady() gate the transcribe
path uses before claiming "listening", with race-safe cleanup if the load
fails while waiting. Server-engine live is unaffected.
Adds Decisions.md D-034; updates tests/live.md's manual verification steps.
2026-07-30 08:31:23 +02:00
Lucas Winther
c5d193600a
Show "Loading model from cache" instead of "Downloading" when weights are already cached
...
Transformers.js's progress_callback always fires status:"download" regardless
of whether the file is actually served from the Cache API — there's no
cacheHit signal for the worker to forward. Since App.tsx already tracks which
models are downloaded (for ModelPicker's badges), it now checks that before
starting a load and threads a loadedFromCache flag into ModelLoadProgress, so
the heading/hint reflect reality for the common already-cached case.
Adds Decisions.md D-033.
2026-07-30 08:30:19 +02:00
Lucas Winther
bb77185e3f
Merge remote-tracking branch 'origin/main'
2026-07-29 09:20:50 +02:00
Lucas Winther
7040f031a6
Usability and test infrastructure updates.
2026-07-29 09:20:43 +02:00