How tolgaozuygur/speech_jammer works
This repository provides delayed auditory feedback (DAF) speech jammers: a Raspberry Pi version controlled by a Bluetooth gamepad, plus separate Ubuntu and Windows desktop alternatives. The Pi workflow detects the controller, responds to button events by starting or stopping delayed audio, and supports a held-button shutdown; its LED signals status. Desktop versions use either terminal input with ALSA loopback or a sounddevice callback stream. The README documents Raspberry Pi hardware and startup use; wiring beyond the sampled source is not assumed.
Main entry points: speech_jammer.py Gamepad event loop · speech_jammer_ubuntu.py Ubuntu terminal loop · speech_jammer_win.py Windows stream control
Components 16
Raspberry Pi
- Pi entry and setup
speech_jammer.py - Controller discovery
speech_jammer.py - Gamepad event loop
speech_jammer.py - Delayed audio control
speech_jammer.py - Safe shutdown
speech_jammer.py
Desktop alternatives
- Ubuntu terminal loop
for_desktop/speech_jammer_ubuntu.py - Ubuntu loopback control
for_desktop/speech_jammer_ubuntu.py - Windows stream control
for_desktop/speech_jammer_win.py - Audio pass-through
for_desktop/speech_jammer_win.py
Other components
- User
- Bluetooth gamepad
- Status LED
- ALSA loopback
- System shutdown
- ALSA loopback
- Sounddevice audio stream
Connections 19
- User → Pi entry and setup: starts
- Pi entry and setup → Controller discovery: calls
- Controller discovery → Bluetooth gamepad: scans devices
- Controller discovery → Status LED: blinks while waiting
- Controller discovery → Gamepad event loop: starts on connect
- Bluetooth gamepad → Gamepad event loop: sends events
- Gamepad event loop → Delayed audio control: toggles on button
- Delayed audio control → ALSA loopback: starts or terminates
- Gamepad event loop → Status LED: sets status
- Gamepad event loop → Safe shutdown: checks held buttons
- Safe shutdown → Status LED: flashes before shutdown
- Safe shutdown → System shutdown: invokes
- User → Ubuntu terminal loop: enters commands
- Ubuntu terminal loop → Ubuntu loopback control: toggles on input
- Ubuntu loopback control → ALSA loopback: starts or terminates
- User → Windows stream control: enters commands
- Windows stream control → Sounddevice audio stream: opens stream
- Sounddevice audio stream → Audio pass-through: invokes
- Audio pass-through → Sounddevice audio stream: passes audio through