We all believed the Sandy Hook/Newtown, CT elementary school shooting would provoke some reform or progress to curbing mass shootings in the US. 6 years later, the US struggles enormously with dealing with gun violence. More than half a decade later, it's reasonable to believe that some progress in public policies should have addressed these issues (besides only "thoughts and prayers"). Rather than relying on public policy improvements in Congress, our team has chosen to merge our skills and leverage technology and contribute to mitigating gun violence.

What it does

Mandatory fire alarm systems installed in buildings warn occupants of potential danger. Our project mimic these early-detection system to combat the growing dire circumstance of public school shootings. The idea is to identify the threat of an active shooter before any humans reasonably can using machine learning. A neural net is fed 8000+ samples of actual gunshot sounds and non-gunshot sounds in order to train itself in identifying the sound of shots. If any of the sensors positively identifies a threat, an automated alert is distributed to police authorities and school administration to take immediate action. These early triggers gives potential victims a substantial chance in fleeing/protecting themselves.

How we built it

Python, Javascript: An assortment of technologies were applied together. Our implementation primarily involved Python, however JavaScript (back-end) and Bash scripts (data set manipulation for training a model) facilitated some of the auxiliary functions.

Tensorflow: 4

Raspberry Pi Zero W: The Raspberry PI Zero W, the size of three quarters, complemented by a mic sensor serves as our input data. 3 second sampling data are taken of the ambient surroundings. Taking advantage of multiprocessing, the neural network model we trained given NYU's Urban data-set evaluates the sample while a new 3 second sample takes place (eliminating any gaps in sampling). The default settings operates the connected Raspberry Pi's from 6AM to 6pm from Monday to Friday arbitrarily to conserve energy usage and is capable of putting the devices to sleep and awake on command.

StdLib Serverless SMS Service: In the event that an event that an actual gunshot triggers an emergency, the StdLib SMS Service function easily alerts the appropriate contacts stored in Google Cloud with a warning message. The reduced response time by alerting law enforcement and school administrators substantially protects potential victims.

React.js: After warning the proper authorities, we've added a front-end website facilitated by React.js provide supplemental information. On this site, the map of campus and status of each sensor such as whether it identified an active shooter and if the sensor is actively analyzing the ambient surrounding is labeled and accessible by all personnel. Because each Raspberry Pi capture a timestamp of the gunshot detection, we're able to triangulate the shooter's precise location. Announcements and contact lists of personnel can be added through this portal.

Firebase back end: Real-time database stores critical information shown in the UI display. Without refreshing the web app, users can observe live data without refreshing the page. The backend also serves as the hub storing.

Challenges we ran into

High learning curve for mastering the nuances React (states/containers management) Finding audio files to mimic gunshots Editing sound data at scale (8000+) into the neural network

What's next for Sound Guardian

Apply Sound Guardian in the field testing with actual guns

Share this project: