Reggaeton Be Gone项目全解析:从概念到实现的完整指南
【免费下载链接】reggaetonBeGone 项目地址: https://gitcode.com/GitHub_Trending/re/reggaetonBeGone
Reggaeton Be Gone是一个创新性开源项目,它结合了机器学习与硬件控制技术,能够自动检测并干扰播放雷鬼顿(Reggaeton)音乐的蓝牙音箱。本指南将从项目背景、硬件组成、软件架构到实际部署,全面解析这个充满创意的解决方案。
项目概述
Reggaeton Be Gone诞生于对公共空间噪音污染的应对需求,特别是针对雷鬼顿音乐的自动识别与干预。项目由Roni Bandini开发,采用MIT许可证开源,主要通过以下方式工作:
- 使用机器学习模型识别雷鬼顿音乐
- 当检测到目标音乐时,通过技术手段干扰蓝牙音箱
- 提供可视化界面显示系统状态
项目核心文件包括:
硬件组成
该项目需要以下硬件组件搭建完整系统:
核心组件清单
| 组件 | 描述 | 连接方式 |
|---|---|---|
| Raspberry Pi 3 | 主控制器 | 运行核心识别与控制逻辑 |
| DFRobot Oled 128x32 | 显示屏 | 显示系统状态与检测结果 |
| 按键 | 系统启动触发器 | 用于手动激活检测功能 |
| 蓝牙音频接收器 | 测试目标设备 | 验证干扰功能有效性 |
| 杜邦线 | 电路连接 | 连接各硬件模块 |
电路连接图
项目采用I2C接口连接OLED显示屏,GPIO接口连接控制按键,具体接线方式如下:
- OLED SDA -> Rpi GPIO 2
- OLED SCL -> Rpi GPIO 3
- OLED VCC -> Rpi VCC
- OLED GND -> Rpi GND
- 按键引脚1 -> GPIO26
- 按键引脚2 -> GND
软件架构
系统工作流程
核心功能模块
-
音频识别模块
- 基于Edge Impulse平台训练的机器学习模型
- 实时音频分析与分类
- 检测阈值可配置(默认0.95)
-
蓝牙干扰模块
- 提供三种干扰方法:
- 方法1:通过rfcomm连接请求
- 方法2:使用l2ping发送数据包
- 方法3:预留扩展接口
- 提供三种干扰方法:
-
用户界面模块
- OLED屏幕显示系统状态
- 自定义字体whitrabt.ttf显示
- 状态信息与检测结果可视化
-
日志系统
- 记录系统启动、检测与干扰事件
- 时间戳格式化记录
- 存储于log.txt文件
安装与配置
环境准备
-
克隆项目仓库:
git clone https://gitcode.com/GitHub_Trending/re/reggaetonBeGone cd reggaetonBeGone -
安装依赖库:
pip install edge_impulse_linux RPi.GPIO Adafruit_SSD1306 Pillow
硬件连接
按照电路连接图完成所有硬件接线,确保:
- OLED显示屏正确连接I2C接口
- 按键正确连接GPIO26与GND
- 电源供应稳定(建议5V 3A)
系统配置
修改reggaetonBeGone.py中的配置参数:
threshold:调整检测灵敏度(默认0.95)method:选择干扰方法(1-3)targetAddr:设置目标蓝牙设备地址packagesSize:配置干扰数据包大小threadsCount:设置并发干扰线程数
使用指南
基本操作流程
- 连接电源启动Raspberry Pi
- 系统初始化完成后按下按键启动检测
- OLED屏幕显示"Listening..."表示系统开始工作
- 当检测到雷鬼顿音乐时自动触发干扰
- 干扰过程中屏幕显示"Firing speaker"及置信度
状态指示
| 屏幕显示 | 系统状态 | 操作建议 |
|---|---|---|
| Reggaeton BeGone | 系统启动中 | 等待初始化完成 |
| Waiting for button | 等待按键触发 | 按下启动按钮 |
| Listening... | 音频检测中 | 保持设备运行 |
| Is reggaeton? X% | 检测到疑似音乐 | 无需操作,系统自动判断 |
| Firing speaker | 正在干扰 | 观察目标设备状态 |
日志查看
系统运行日志保存在log.txt中,可通过以下命令查看:
tail -f log.txt
日志格式示例:
2024-02-15 14:30:00,Started
2024-02-15 14:30:05,Listening
2024-02-15 14:32:10,Firing with method #2, pkg 800, target ::
2024-02-15 14:32:10,Firing threshold: 0.97
高级功能
实验版本特性
项目提供多个实验版本,包含增强功能:
- 2.0版本:为Nerdearla Chile研讨会开发,包含多项改进
- 3.0版本:为Ekoparty研讨会开发,新增功能包括:
- 设备扫描功能
- 防误报机制
- 优化的机器学习模型
- 3D打印外壳设计
自定义开发
如需扩展功能,可关注以下开发方向:
-
模型优化:
- 使用Edge Impulse平台重新训练模型
- 提高识别准确率或添加新音乐类型识别
-
硬件扩展:
- 添加电池供电模块实现便携化
- 增加蓝牙扫描功能自动发现目标设备
-
软件增强:
- 开发移动应用远程监控
- 添加Wi-Fi连接实现数据上传
故障排除
常见问题解决
-
OLED屏幕无显示
- 检查I2C接口是否启用
- 确认接线正确(SDA-GPIO2, SCL-GPIO3)
- 验证电源供应是否稳定
-
无法触发干扰
- 检查目标蓝牙设备地址配置
- 确认蓝牙服务正常运行
- 尝试更换不同干扰方法
-
误检测问题
- 调整
threshold参数提高灵敏度 - 重新训练机器学习模型
- 增加环境噪音样本数据
- 调整
系统日志分析
通过查看log.txt文件了解系统运行状态,关键日志条目包括:
- "Started":系统启动成功
- "Listening":开始音频检测
- "Firing with method...":干扰机制触发
- "Interrupted":系统被手动终止
总结
Reggaeton Be Gone项目展示了如何将机器学习与硬件控制相结合,创造出有趣且实用的解决方案。通过本指南,您应该能够理解项目的工作原理、搭建自己的系统并进行功能扩展。
无论您是对音乐识别技术感兴趣的开发者,还是想要解决公共空间噪音问题的创客,这个项目都提供了丰富的学习资源和实践机会。如有任何问题或改进建议,欢迎参与项目讨论与贡献。
项目持续更新中,更多功能与优化请关注最新代码提交与版本发布。
【免费下载链接】reggaetonBeGone 项目地址: https://gitcode.com/GitHub_Trending/re/reggaetonBeGone
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





