Skip to content

cxc-2026-waterlose/BailMeOut

Repository files navigation

BailMeOut

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.

Features

  • 🎙️ 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!

Tech Stack

Getting Started

Prerequisites

You need API keys for the following services:

  1. ElevenLabs: An API key with access to Realtime/Scribe models.
  2. Google Gemini: An API key from Google AI Studio.

Build & Run

Initial Setup

  1. Clone the repository:

    git clone https://github.com/yourusername/BailMeOut.git
    cd BailMeOut
  2. Install dependencies:

    npm install
  3. Configure Environment Variables (Optional):

    • Create a .env file 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.

Development Mode

Run the Expo development server:

npx expo start

Then scan the QR code with the Expo Go app (Android/iOS) or press:

  • a - open on Android emulator/device
  • i - open on iOS simulator
  • w - open in web browser

Building for Android

  1. Development Build:

    npx expo run:android

    This builds and runs the app on a connected Android device or emulator.

  2. Production APK (local build):

    eas build --platform android --profile preview --local
  3. Production Build (EAS Build for Play Store):

    eas build --platform android --profile production

Building for iOS

  1. Development Build:

    npx expo run:ios

    This builds and runs the app on an iOS simulator or connected device (requires Xcode and macOS).

  2. 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.

Post-Installation Configuration

  1. Open the app on your device.
  2. Tap "Show Settings".
  3. Configure Keys and Trigger Word:
    • Enter your ElevenLabs API Key
    • Enter your Gemini API Key
    • Set a Trigger Word
  4. Tap "Hide Settings".

Usage

  1. Start Monitoring: Tap the big "Start Monitoring" button. The functionality works in the background (check permissions).
  2. Live Transcript: Watch the real-time transcript appear on screen.
  3. 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.
  4. Bail Out: When the fake call rings, answer it and use it as your excuse to leave!

⚠️ Privacy & Safety Note

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.

About

CXC 2026 submission

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors