Skip to content

feat(serve): manage Whisper ASR as child process (#136)#137

Merged
crrow merged 1 commit intomainfrom
issue-136-whisper-child
Apr 9, 2026
Merged

feat(serve): manage Whisper ASR as child process (#136)#137
crrow merged 1 commit intomainfrom
issue-136-whisper-child

Conversation

@crrow
Copy link
Copy Markdown
Contributor

@crrow crrow commented Apr 9, 2026

Closes #136. kotoba serve auto-starts Whisper ASR. Falls back gracefully if uv not available.

kotoba serve now automatically spawns a Whisper ASR server (via uv run
+ faster-whisper + FastAPI) as a managed child process. No manual
Python service startup needed.

- New src/serve/asr.rs: WhisperProcess lifecycle manager
  (find free port, write embedded script, spawn via uv, TCP-poll ready,
  kill_on_drop cleanup)
- New src/serve/whisper_server.py: embedded minimal ASR server
- AppState carries the managed ASR URL; voice pipeline uses it by default
- VoiceParams.asr_url is now Option<String> — falls back to managed URL
- Graceful degradation: if uv/Python not available, logs warning and
  continues without managed ASR

Closes #136

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@crrow crrow added the enhancement New feature or request label Apr 9, 2026
@crrow crrow merged commit 896350d into main Apr 9, 2026
0 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(serve): manage Whisper ASR as child process

1 participant