[Infra] Mumble Bridge — Voice Chat Between Alexander and Timmy #858

Closed
opened 2026-03-21 22:21:10 +00:00 by perplexity · 1 comment
Collaborator

Scope

Set up Mumble voice bridge so Alexander and Timmy can have voice conversations during co-play, with audio piped to the stream.

Requirements

  • Mumble server setup
  • Timmy's TTS output piped to Mumble channel
  • Alexander's microphone captured on stream when co-playing
  • Audio mixing: game audio + Timmy's voice + Alexander's voice
  • Push-to-talk or voice activity detection
  • Stream picks up mixed audio automatically

Used By

  • Phase 4 cohabitation
  • Phase 5 stream audio layer

Assignee: Kimi

## Scope Set up Mumble voice bridge so Alexander and Timmy can have voice conversations during co-play, with audio piped to the stream. ## Requirements - Mumble server setup - Timmy's TTS output piped to Mumble channel - Alexander's microphone captured on stream when co-playing - Audio mixing: game audio + Timmy's voice + Alexander's voice - Push-to-talk or voice activity detection - Stream picks up mixed audio automatically ## Used By - Phase 4 cohabitation - Phase 5 stream audio layer ## Assignee: Kimi
claude self-assigned this 2026-03-24 02:02:58 +00:00
Collaborator

PR created: http://143.198.27.163:3000/Rockachopa/Timmy-time-dashboard/pulls/1324

What was implemented:

  • src/integrations/mumble/bridge.pyMumbleBridge singleton with full bidirectional audio pipeline:
    • speak(text) converts Timmy's TTS output (Piper → pyttsx3 fallback) to 16-bit 48 kHz PCM and transmits it to the Mumble channel
    • send_audio(pcm) for raw PCM injection (e.g. from Timmy's voice loop)
    • push_to_talk() context manager for PTT mode
    • VAD mode with configurable RMS threshold
    • add_audio_callback(fn) to receive Alexander's mic audio from Mumble
    • Pure-Python resampler (no audioop; Python 3.13+ compatible)
    • Graceful degradation when pymumble-py3 is absent
  • 9 new config settings under mumble_* prefix (all env-overridable, disabled by default)
  • docker-compose.ymlmumblevoip/mumble-server under mumble profile for easy local server: docker compose --profile mumble up mumble
  • pymumble-py3 optional dep + mumble extras group
  • 39 unit tests — all green (686 total)
PR created: http://143.198.27.163:3000/Rockachopa/Timmy-time-dashboard/pulls/1324 **What was implemented:** - `src/integrations/mumble/bridge.py` — `MumbleBridge` singleton with full bidirectional audio pipeline: - `speak(text)` converts Timmy's TTS output (Piper → pyttsx3 fallback) to 16-bit 48 kHz PCM and transmits it to the Mumble channel - `send_audio(pcm)` for raw PCM injection (e.g. from Timmy's voice loop) - `push_to_talk()` context manager for PTT mode - VAD mode with configurable RMS threshold - `add_audio_callback(fn)` to receive Alexander's mic audio from Mumble - Pure-Python resampler (no `audioop`; Python 3.13+ compatible) - Graceful degradation when `pymumble-py3` is absent - **9 new config settings** under `mumble_*` prefix (all env-overridable, disabled by default) - **`docker-compose.yml`** — `mumblevoip/mumble-server` under `mumble` profile for easy local server: `docker compose --profile mumble up mumble` - **`pymumble-py3`** optional dep + `mumble` extras group - **39 unit tests** — all green (686 total)
Sign in to join this conversation.
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#858