[claude] Mumble voice bridge — Alexander ↔ Timmy co-play audio (#858) #1324

Merged
claude merged 1 commits from claude/issue-858 into main 2026-03-24 02:19:20 +00:00

1 Commits

Author SHA1 Message Date
Alexander Whitestone
317669a21e feat: add Mumble voice bridge for Alexander–Timmy co-play audio (#858)
Some checks failed
Tests / lint (pull_request) Failing after 32s
Tests / test (pull_request) Has been skipped
Implements a bidirectional Mumble voice bridge so Alexander and Timmy can
have voice conversations during co-play sessions, with audio piped to the
stream.

Changes:
- src/integrations/mumble/bridge.py — MumbleBridge class with:
  - Connect/disconnect lifecycle (graceful degradation when pymumble-py3 absent)
  - speak(text) — converts Timmy's TTS output to PCM and sends to Mumble
  - send_audio(pcm) — raw 16-bit 48 kHz mono PCM transmit
  - push_to_talk() context manager for PTT mode
  - VAD mode (voice activity detection with configurable RMS threshold)
  - on_audio callbacks for audio received from Alexander's mic
  - Pure-Python resampling / stereo-to-mono (no audioop, Python 3.13+ compat)
  - Piper TTS → pyttsx3 TTS fallback chain
- src/config.py — 9 new Mumble settings (host, port, user, password,
  channel, audio_mode, vad_threshold, silence_ms, enabled)
- pyproject.toml — pymumble-py3 optional dep + mumble extras group
- docker-compose.yml — mumblevoip/mumble-server under mumble profile
  (ports 64738 TCP+UDP; start with: docker compose --profile mumble up)
- tests/integrations/test_mumble_bridge.py — 39 unit tests
- src/integrations/CLAUDE.md — document mumble module

Fixes #858

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 22:18:01 -04:00