Commit Graph

8 Commits

Author SHA1 Message Date
tomatocream 843ec534d1 fix: handle processor.decode returning a list of strings
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-29 03:00:09 +08:00
tomatocream cf18335235 fix: simplify audio callback, use deque for pre-roll, add worker timeout warning
- Remove frame_buf accumulation: blocksize=FRAME_SIZE guarantees indata is
  exactly FRAME_SIZE samples, so buffering was unnecessary. Use indata[:, 0].copy()
  to avoid stale references from sounddevice's buffer reuse.
- Replace pre_roll list with collections.deque(maxlen=PRE_ROLL_FRAMES) to
  eliminate manual bounds-checking (pop(0)) on every frame.
- Warn to stderr if the transcription worker thread outlives its 30s join timeout.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 02:48:51 +08:00
tomatocream 747a4772b6 feat: implement live streaming transcription with VAD
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 02:46:13 +08:00
tomatocream d62fcdd1cd feat: add silence calibration and VAD state machine
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 02:45:09 +08:00
tomatocream 4605be5bc9 refactor: switch to argparse, add --stream and --lang flags
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 02:43:47 +08:00
tomatocream 55a51a7668 Add flake.nix with portaudio + CUDA, microphone support in transcribe.py 2026-05-26 01:55:54 +08:00
tomatocream 8b88489a53 Simplify to audio file input (mic requires PortAudio on NixOS) 2026-05-26 01:49:52 +08:00
tomatocream 82fe21fe41 Add Cohere Transcribe demo with uv + Python 3.14 2026-05-26 01:35:10 +08:00