[claude] Mumble voice bridge — Alexander ↔ Timmy co-play audio (#858) #1324
Reference in New Issue
Block a user
Delete Branch "claude/issue-858"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #858
Summary
src/integrations/mumble/bridge.py—MumbleBridgeclass: connect/disconnect lifecycle,speak(text)(TTS → PCM → Mumble),send_audio(pcm),push_to_talk()context manager, VAD mode, audio receive callbacks, pure-Python resampler (Python 3.13+ compatible — noaudioop), Piper → pyttsx3 TTS fallback chain, graceful degradation whenpymumble-py3is absentsrc/config.py— 9 newmumble_*settings: host, port, user, password, channel, audio_mode, vad_threshold, silence_ms, enabled (opt-in, all env-overridable)pyproject.toml—pymumble-py3optional dependency +mumbleextras group (pip install ".[mumble]")docker-compose.yml—mumblevoip/mumble-serverunder themumbleDocker Compose profile (TCP+UDP 64738); start withdocker compose --profile mumble up mumbletests/integrations/test_mumble_bridge.py— 39 unit tests (all green; 686 total pass)src/integrations/CLAUDE.md— document the new mumble submoduleTest plan
tox -e unitpasses (686 tests)docker compose --profile mumble up mumble— confirm server startsMUMBLE_ENABLED=true+ connect a Mumble client — confirm Timmy joins channelbridge.speak("Hello")— confirm audio plays in channel🤖 Generated with Claude Code