BailMeOut is a cross-platform intelligent personal safety app built with React Native (Expo). It actively listens to your environment in the background, transcribes audio in real-time using ElevenLabs, and analyzes the context using Google Gemini. If it detects a threat such as verbal aggression or a specific trigger word, it automatically gives you a realistic fake phone call to give you a valid excuse to exit the situation.
- 🎙️ Background Audio Monitoring: continuously listens to audio even when the app is minimized (Android).
- 📝 Real-time Transcription: Uses ElevenLabs Scribe v2 (via WebSocket) for ultra-low latency speech-to-text. You can see the live transcript on screen.
- 🧠 AI Safety Context Analysis: Google Gem3 1.5 Flash analyzes conversation context for a specific topic or situation. For example, if it detects aggression or a threat, it triggers the fake call.
- 🆘 Trigger Word: Instant activation when you say your custom trigger word.
- 📱 Fake Call Simulation: A realistic incoming call screen with sound effects that give you an excuse to leave the situation!
- Framework: Expo (React Native)
- Speech-to-Text: ElevenLabs Realtime API
- Intelligence: Google Gemini API
- State Management: Zustand
- Audio:
expo-av - File System:
expo-file-system
You need API keys for the following services:
- ElevenLabs: An API key with access to Realtime/Scribe models.
- Google Gemini: An API key from Google AI Studio.
-
Clone the repository:
git clone https://github.com/yourusername/BailMeOut.git cd BailMeOut -
Install dependencies:
npm install
-
Configure Environment Variables (Optional):
- Create a
.envfile in the root directory:ELEVEN_LABS_API_KEY=your_key GEMINI_API_KEY=your_key
- Alternatively, you can configure these keys directly in the app's Settings screen after installation.
- Create a
Run the Expo development server:
npx expo startThen scan the QR code with the Expo Go app (Android/iOS) or press:
a- open on Android emulator/devicei- open on iOS simulatorw- open in web browser
-
Development Build:
npx expo run:android
This builds and runs the app on a connected Android device or emulator.
-
Production APK (local build):
eas build --platform android --profile preview --local
-
Production Build (EAS Build for Play Store):
eas build --platform android --profile production
-
Development Build:
npx expo run:ios
This builds and runs the app on an iOS simulator or connected device (requires Xcode and macOS).
-
Production Build (EAS Build for App Store):
eas build --platform ios --profile production
Note: For iOS production builds, you'll need an Apple Developer account and proper provisioning profiles configured in EAS.
- Open the app on your device.
- Tap "Show Settings".
- Configure Keys and Trigger Word:
- Enter your ElevenLabs API Key
- Enter your Gemini API Key
- Set a Trigger Word
- Tap "Hide Settings".
- Start Monitoring: Tap the big "Start Monitoring" button. The functionality works in the background (check permissions).
- Live Transcript: Watch the real-time transcript appear on screen.
- Trigger:
- Context: If someone threatens you or the conversation turns aggressive, the AI will trigger the fake call.
- Trigger Word: Say your trigger word clearly to trigger the call immediately.
- Bail Out: When the fake call rings, answer it and use it as your excuse to leave!
This application records audio and sends it to third-party APIs (ElevenLabs, Google) for processing. Ensure you comply with local laws regarding audio recording and consent. This app is a proof-of-concept for safety demonstration purposes.