diff --git a/docs/plans/001-5-server-batched-vad.md b/docs/plans/001-5-server-batched-vad.md index 65b5bd9..f147d90 100644 --- a/docs/plans/001-5-server-batched-vad.md +++ b/docs/plans/001-5-server-batched-vad.md @@ -47,8 +47,10 @@ Bun side: `SidecarTranscribeRequest.mode`, `createSidecar` forwards it, `live.ts **Files:** `/home/user/ws5-bench/bench.py` (not committed). - [x] Venv `/home/user/venvs/faster-whisper` with requirements + jiwer (under lock); confirm API. -- [ ] large-v3-turbo, both clips: `base` (current sidecar), `vad`, `batched` (vad+bs8), +- [x] large-v3-turbo, both clips: `base` (current sidecar), `vad`, `batched` (vad+bs8), `batched_b1` (beam 1). Record wall, WER (repo normalize), first-segment time, max gap. + Done 2026-10-29 (`/home/user/ws5-bench/turbo-*.jsonl`); VAD-parameter follow-up in + `diag2.out` / `round3-*.jsonl` (threshold 0.2 + pad 800 ms recovers most deletions). - [ ] Live-style passes (clip sliced into 6 s pieces): `live_seq` vs `live_batched` vs `live_vad`. - [ ] medium.en on en_alien: `base` vs `batched` if time allows. - [ ] Decide: beam size, live mode routing. @@ -69,24 +71,24 @@ Bun side: `SidecarTranscribeRequest.mode`, `createSidecar` forwards it, `live.ts inherits env; set `process.env.PYTHONPATH` around the test or pass `env` — add optional `env` arg only if needed). -- [ ] Failing tests: default/`file` → batched with `vad_filter=True batch_size=8`; `live` → +- [x] Failing tests: default/`file` → batched with `vad_filter=True batch_size=8`; `live` → sequential, no `vad_filter`; model switch reloads and pipeline wraps the new model, same model doesn't reload; `slow` + abort → `cancelled: true`, < 20 segments; `silence` → done, 0 segments. -- [ ] Implement in `sidecar.py`; update docstring protocol; cite D-WS5a. -- [ ] Green; commit. +- [x] Implement in `sidecar.py`; update docstring protocol; cite D-WS5a. +- [x] Green; commit. ### Task 3: Bun side — `mode` field, live sends `"live"`, heartbeat test **Files:** `src/server/transcribe.ts`, `src/server/live.ts`, `tests/fixtures/fake_sidecar.py`, `tests/transcribe.test.ts`, `tests/server-live.test.ts` -- [ ] Failing tests: fake sidecar "ok" echoes `mode=`; `createSidecar` default sends `file`, explicit +- [x] Failing tests: fake sidecar "ok" echoes `mode=`; `createSidecar` default sends `file`, explicit `live` forwarded; server-live test asserts the request has `mode: "live"`; HTTP handler passes no mode (⇒ file) — assert `requests[0].mode` undefined or `"file"`. -- [ ] Heartbeat: `TranscribeDeps.heartbeatIntervalMs?` (default 5000); test with 20 ms and a fake +- [x] Heartbeat: `TranscribeDeps.heartbeatIntervalMs?` (default 5000); test with 20 ms and a fake sidecar that waits ~120 ms before the first segment; the response text contains ≥ 2 blank lines before the first segment line. -- [ ] Implement; typecheck; commit. +- [x] Implement; typecheck; commit. ### Task 4: Real-model verification + docs