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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
2026-10-30 01:56:57 +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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
# 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 <noreply@anthropic.com >
# 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 <noreply@anthropic.com >
# 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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
# 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 <noreply@anthropic.com >
# 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 <noreply@anthropic.com >
# Conflicts:
# docs/Decisions.md
2026-10-30 01:15:05 +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 <noreply@anthropic.com >
2026-10-30 01:12:28 +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 <noreply@anthropic.com >
2026-10-30 00:45:46 +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 <noreply@anthropic.com >
2026-10-30 00:23:55 +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 <noreply@anthropic.com >
2026-10-30 00:19:08 +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 <noreply@anthropic.com >
2026-10-30 00:07:05 +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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
2026-10-29 23:51:47 +01:00
Lucas Winther and Claude Opus 5.5
dc15623f62
WIP: uncommitted work at pause (session limit)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
2026-10-29 22:59:35 +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 <noreply@anthropic.com >
2026-10-29 22:28:48 +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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
2026-10-29 22:10:51 +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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
2026-10-29 21:58:03 +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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
2026-10-29 21:48:39 +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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
2026-10-29 21:44:06 +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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
2026-10-29 21:42:25 +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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
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 <noreply@anthropic.com >
2026-10-29 21:36:21 +01:00