Introduction
Have you ever been in an uncomfortable situation with no way out, wishing that a friend would just randomly call you? According to a survey done by Stop Street Harassment in 2024, 73% of women have experienced some kind of harassment in public spaces, and 50% of women feel unsafe walking alone after dark. Therefore, we believed that HackHer, hosted by Queen’s Women in Computing, would be the perfect opportunity to address this issue with our app – Get Me Out. It's an offline app that uses local speech recognition to detect safe-words and stage a perfectly-timed, realistic decoy call the moment you need a quick exit.
Inspiration
With this year’s theme centered around safety, we wanted to try to make women feel more comfortable when they are alone. This is why we created Get Me Out: to address a larger issue on women’s safety using the power of the digital age. Our software allows women all over the world to remove themselves from a situation without risking their safety by manually calling a personal contact. Using realistic voiceovers and a subtle list of safe words was our way of ensuring the escape is discreet, yet impactful.
What it does
Get Me Out listens continuously to your microphone using Vosk, a lightweight offline speech recognition engine, transcribing audio locally so nothing ever leaves your device. When it detects one of your custom trigger keywords in the transcript, it waits a configurable delay long enough to feel natural and then hijacks your screen with a fake incoming call overlay. The decoy caller screen mimics a real FaceTime call with a caller ID and a live call timer once "accepted," and can play back a pre-recorded audio file through the call to make it even more convincing. Everything runs on a background thread, so the UI stays responsive, and if Vosk or PyAudio aren't available, it falls back to a demo mode automatically.
How we built it
Get Me Out is a Python desktop app built with CustomTkinter for the UI and Vosk for offline, real-time speech recognition via PyAudio. The app runs a background audio listener thread that continuously transcribes microphone input and watches for user-defined trigger keywords. When one is detected, an adjustable delay is triggered before launching a fake incoming call overlay, complete with a connected call timer and decoy audio playback through Pygame. We kept all speech processing fully local using a lightweight Vosk model, so no audio ever leaves the device, which was important for a safety-focused tool. The UI is built around a muted coloured dashboard where users can customize their trigger keywords, choose a fake caller identity from a preset list, and tune the trigger delay with a slider. Since Vosk and PyAudio aren't always available in every environment, we built in a demo mode that simulates a trigger automatically so the core UX can always be tested.
Challenges we ran into
Our biggest challenge was making the app "listen" in the background without freezing the screen. We also struggled with fussy audio libraries that didn't always work on every computer, which is why we built a "demo mode" to keep the app reliable. Beyond the code, merging our separate files into one finished project was a huge headache. We had to spend a lot of extra time restarting and troubleshooting version issues to make sure all our features actually worked together in the final version.
Accomplishments that we're proud of
Going through with our initial idea despite the challenges and setbacks we faced. Our GUI interface and our pitch were both carefully thought out and executed! We are also proud of creating an offline, locally based model successfully!
What we learned
Learned and became more proficient in GitHub, implementing API models, collaborating through GitHub, debugging, learning how to implement and adjust GUIs in Python, and using different Python libraries.
What's next for GMO - Get Me Out
Making the Mic On feature work, creating a more customizable caller experience, and porting GMO onto other devices.

Log in or sign up for Devpost to join the conversation.