ronibandini/reggaetonBeGone
Detects reggaeton genre with Machine Learning and sends packets to disable BT speakers (hopefully)
🎧 Reggaeton Be Gone – Edge‑AI gadget that silences a Bluetooth speaker playing reggaeton
What it does – A Raspberry Pi 3 continuously listens to ambient sound with a USB microphone. An Edge Impulse audio‑classification model decides whether the music is reggaeton. When the confidence exceeds a user‑set threshold (default 95 %), the device launches a Bluetooth “test routine” that attacks a pre‑configured speaker, effectively cutting off the unwanted music. All activity (confidence scores, trigger events, errors) is logged and shown on a tiny 128 × 32 SSD1306 OLED screen.
Why it exists – The author built it as a playful, hardware‑centric answer to a noisy neighbour’s Bluetooth speaker. It demonstrates how TinyML can run locally on inexpensive edge hardware and interact with other peripherals (GPIO button, OLED, Bluetooth).
Key components
- Hardware: Raspberry Pi 3, USB microphone (or audio interface), SSD1306 128×32 OLED, push‑button (GPIO 26), optional Bluetooth adapter, 3‑D‑printed enclosure.
- Software: Python 3, Edge Impulse Linux SDK (
AudioImpulseRunner), PyAudio/PortAudio,Adafruit_SSD1306for the display,RPi.GPIOfor the button, BlueZ for Bluetooth. - Model: Tiny audio classifier trained on 16 kHz mono WAV windows (4 s) with MFE features. Two labels –
reggaetonandotros. The model is distributed as an Edge Impulse.eimfile and also hosted on Hugging Face (trained on only six songs, so users are encouraged to expand the dataset).
How it works
- Power on → OLED shows target speaker and selected Bluetooth method.
- Wait for the physical button press.
- Load the
.eimmodel withAudioImpulseRunner. - Continuously capture audio, run inference, and display the current confidence.
- If
reggaetonconfidence > threshold (orforceFireis set), log the event and execute the chosen Bluetooth routine against the configured MAC address.
Configuration knobs (editable near the top of reggaetonBeGone.py)
selectedDeviceId– USB audio device index.threshold– confidence required to fire (default 0.95).targetAddr– Bluetooth speaker MAC.method– selects one of several experimental Bluetooth attack scripts.packagesSize,threadsCount– parameters for the Bluetooth routine.forceFire– manual override for testing.
Typical use‑case – A hobbyist or maker who wants a self‑contained, on‑device solution to detect a specific music genre and automatically disrupt a nearby Bluetooth speaker. Because all inference runs locally, no cloud connectivity is needed, preserving privacy and keeping latency low.
Project maturity – Version 1.0 (Feb 2024) is fully documented and includes hardware wiring diagrams, software setup steps, and a sample log. Later versions (2.0, 3.0) add 64‑bit support, on‑device Bluetooth scanning, a strike‑system to reduce false positives, and updated models, but those are distributed via workshop links rather than this repository.
Resources
- Source code:
reggaetonBeGone.py(main application) plus assets (logo, font, sample log). - Model:
reggaetonbgone-linux-armv7-v4.eimon Hugging Face. - Full build guide: Hackster.io tutorial, Medium article, and several video workshops (Nerdearla, Ekoparty).
- License: MIT.
Bottom line – Reggaeton Be Gone is a concrete example of TinyML on a Raspberry Pi, blending audio classification, simple UI, and Bluetooth actuation to create a quirky, purpose‑built anti‑reggaeton device.
Related
- Dispatch
- Dispatch
- Project
- Project
- Dispatch