Inspiration
A member of our team has a deep love for theatre, sound and we all share a passion for computer science. This project is the perfect mix of all 3. A program which can be used backstage on theatre shows to monitor the radio microphones of the cast to ensure that any issues can be dealt with before the cast even set foot on stage!
What it does
RF Audio Monitor allows users to effortlessly manage and monitor a variety of audio inputs from a single, intuitive display. Each device is represented by its own dedicated monitoring block, providing a clear overview of all active audio sources.
If any microphone is producing excessive noise, specifically POPPING, the user is alerted with a bright red warning, alerting them to a malfunctioning microphone which must be replaced or fixed.
Users can then click on the monitoring block to listen to the specific audio and investigate further, quickly diagnosing and addressing any problems that arise. It's a seamless, real-time troubleshooting experience, designed for ease of use and efficiency.
How we built it
After raiding the Backstage society's store rooms (with permission), the development of the program began with the backend, built in Python, which connected audio data through the pyaudio libary. We created an API to communicate with the frontend. The backend went on to manage monitoring and sending audio chunks to the machine learning model for processing.
To detect audio pops, we trained the machine learning model with a custom dataset created in-house, allowing it to accurately analyse the sound and identify issues like POPPING. Devices were managed efficiently using threads and queues, ensuring real-time processing of multiple devices.
On the frontend, we used React and JavaScript to build a dynamic interface where users could add devices and monitor audio. A WebSocket server was implemented to allow the frontend to respond to audio POPs detected by the machine learning model. Live playback of monitored audio was also integrated, providing immediate feedback on detected issues.
In summary, the program combines Python for backend processing, machine learning for sound analysis, and React for a responsive user interface, creating an efficient real-time audio monitoring solution.
Challenges we ran into
We encountered an innumerable amount of challenges throughout the development process, including, creating a custom dataset for a niche machine learning algorithm, integrating all the various components, and ensuring the audio processing happened in real time, preventing data being ignored due to overflowing the bounds of the queue.
Accomplishments that we're proud of
Completing the program, despite being a 3 person team.
What we learned
Through the development of the RF Audio Monitor, we've gained invaluable insights into the complexity of real-time audio processing and the power of machine learning. We've learned the importance of seamless integration between backend systems and frontend interfaces, as well as how critical it is to ensure efficiency when managing multiple devices simultaneously. We've also discovered how vital a well-curated dataset is for training machine learning models to accurately detect specific audio anomalies, and how important it is to fine-tune algorithms to work in real-time environments.
What's next for RF Audio Monitor
RF Audio Monitor has a long way to go, but in under a month it will be used backstage on the next musical from the Bath University Student Musical Society to enable the sound engineers to monitor radio microphones in real time, all at once! This is particularly exciting due to the rate of breakages of the microphones in use, and being able to quickly diagnose issues will greatly improve the level of support
Built With
- css
- flask-api
- github
- javascript
- python
- random-forest-classifier
- react
- vscode
Log in or sign up for Devpost to join the conversation.