This commit is contained in:
iamdoubz
2026-06-30 22:17:30 -05:00
parent aae22a0e23
commit 02834e9cd2
38 changed files with 15517 additions and 203 deletions
+8 -4
View File
@@ -28,10 +28,14 @@ low-overhead NFRs. Pairs cleanly with Tauri via Vite. → **ADR-0002.**
### Audio capture — WASAPI loopback in Rust ✅
The `wasapi` crate provides safe Rust access to WASAPI including a **loopback** example
(capture system output without a meeting bot). `cpal` is the cross-platform fallback. Known
constraint: `AUDCLNT_STREAMFLAGS_LOOPBACK` and `AUDCLNT_STREAMFLAGS_EVENTCALLBACK` cannot be
combined, so the capture loop must **poll** rather than rely on event callbacks. This shapes
the audio thread design in `docs/02-architecture.md`. → **ADR-0001 / architecture.**
(capture system output without a meeting bot). `cpal` is the cross-platform fallback.
**Correction (Phase 1 implementation, verified against `wasapi` v0.15 source and current
Windows):** `AUDCLNT_STREAMFLAGS_LOOPBACK` and `AUDCLNT_STREAMFLAGS_EVENTCALLBACK` **can** be
combined — the crate wires both flags together for a render-device-opened-as-capture client, and
the capture loop waits on the WASAPI event handle (with a short timeout so it can also notice a
stop/pause request) rather than busy-polling. The pre-implementation note below describing a
polling-only design was inaccurate; `docs/02-architecture.md`'s "Audio thread" section has been
corrected to match.
### Transcription — whisper-rs (+ ONNX for NPU) ✅
`whisper-rs` wraps **whisper.cpp** with feature-gated acceleration: **CUDA** (NVIDIA),