Commit Graph
47 Commits
Author SHA1 Message Date
Lucas WintherandClaude 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 WintherandClaude 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 WintherandClaude 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 WintherandClaude 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 WintherandClaude 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 WintherandClaude 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 WintherandClaude 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 WintherandClaude 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 WintherandClaude 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 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 7040f031a6 Usability and test infrastructure updates. 2026-07-29 09:20:43 +02:00
Lucas Winther 214a9ef714 Better error handling 2026-07-29 07:59:16 +02:00
Lucas Winther 78e99fc415 Fixed for decoder dl speed and mobile warnings on low memory devices. 2026-07-29 07:47:42 +02:00
Lucas Winther 1a1a162c53 Bugfixes for server-based microphone decoding.. 2026-07-28 07:37:22 +02:00
Lucas Winther a0ef5548af Optimize max peak memory usage and add warnings on mobile for higher models 2026-07-28 07:23:37 +02:00
Lucas Winther f6019b3a42 Prefer WASM on firefox cause WebGPU is incredibly slow there. 2026-07-17 16:35:49 +02:00
Lucas Winther 74858f63fc Enhanced transcription usability. 2026-07-17 15:18:15 +02:00
Lucas Winther 770cfc9ff7 Allow txt export with timestampts 2026-07-17 14:14:43 +02:00
Lucas Winther a5cfd219f6 Implement speedups for transcription. 2026-07-15 14:45:40 +02:00
Lucas Winther 742053144e Fix output text not working. 2026-07-15 14:13:59 +02:00
Lucas Winther 0bd5d326a5 Focus on speedup and not hanging on large audio files. 2026-07-15 13:01:22 +02:00
Lucas Winther ce189b2967 Only show big models when using server. 2026-07-14 21:49:57 +02:00
Lucas Winther dc4eec2e9e Describe clearly you don't need to download models on the server. 2026-07-14 20:38:25 +02:00
Lucas Winther 8464f0e492 Better model download management 2026-07-14 20:35:03 +02:00
Lucas Winther 42fe27d2dd Add live transcription via remote server. 2026-07-14 20:21:48 +02:00
Lucas Winther 695b97be76 Fix model selection. 2026-07-14 19:55:20 +02:00
Lucas WintherandClaude Fable 5 8f2da530e2 Transcript export (.txt/.srt) and model storage manager (M6)
Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-14 19:41:47 +02:00
Lucas Winther 0084e0435a Add cancel + progress UI, EngineToggle, and Docker deployment 2026-07-14 19:32:10 +02:00
Lucas Winther be82ecfe57 Better tests and more user feedback while doing transcription; WIP. 2026-07-14 14:44:01 +02:00
Lucas Winther 18acead43c Improvements and tests for live transcription. 2026-07-14 14:14:01 +02:00
Lucas Winther e4be47f707 fix bun dev not starting correctly. 2026-07-14 12:38:24 +02:00
Lucas Winther 2dff7512ac Try fixing bad live transcription performance. 2026-07-10 11:43:29 +02:00
Lucas Winther db7b8a22c4 WebNN support initial 2026-07-10 11:18:03 +02:00
Lucas Winther 71cb61cd90 subpath bugfixes 2026-07-10 10:24:04 +02:00
Lucas Winther 135a1aebb6 subpath bugfixes 2026-07-10 10:20:23 +02:00
Lucas Winther 076efc2101 subpath feature 2026-07-10 10:13:37 +02:00
Lucas Winther 2d668b3fb8 Start on live transcription and python sidecar (faster-whisper) 2026-07-10 09:41:02 +02:00
Lucas Winther 033ea32968 Start on live transcription and python sidecar (faster-whisper) 2026-07-10 09:28:42 +02:00
Lucas Winther 15bf14728a Allow changing port via env 2026-07-10 05:38:00 +02:00
Lucas Winther c2de4241a4 fix flags.ts not found 2026-07-10 05:26:54 +02:00
Lucas Winther 71d9e6e781 Login feature flag - the rest. 2026-07-10 04:50:42 +02:00
Lucas Winther 71d1730284 Login feature flag added. 2026-07-10 04:50:25 +02:00
Lucas Winther 5246fb6b31 fix WASM (cpu) 2026-07-10 04:37:01 +02:00
Lucas Winther a7e46be474 update name 2026-07-10 04:21:27 +02:00
Lucas WintherandClaude Fable 5 9f39a82982 WIP: M3 PWA/offline implementation, M4 auth (backend + frontend), D-013 faster-whisper
- M3: hand-rolled service worker (precache + runtime /ort caching), precache
  manifest injection, SW registration/update toast, manifest + generated icons,
  production build script, offline indicator in ModelPicker (D-005/D-007)
- M4 backend: bun:sqlite users/sessions (D-009), Passport local strategy behind
  connect-compat adapter (D-008), /api/auth routes wired into dev+prod serving,
  Bun.password Argon2id, 38 auth tests
- M4 frontend: AuthForms + useAuth + framework-free authClient, session-aware
  header, anonymous-first fail-silent offline handling, 18 client tests
- D-013: server engine (M5) will use faster-whisper via Python sidecar;
  browser side stays Transformers.js (CTranslate2 has no WASM build)
- bun test: 83 pass / tsc --noEmit clean
- Note: M3 doc closeout (WorkBreakdown/Architecture/tests/offline.md) still in
  flight from a background agent; follow-up commit will finish docs

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-10 04:02:28 +02:00
Lucas Winther eb72a2e646 Agent completed work jubii 2026-07-09 08:07:32 +02:00