VoiceTransit AI is a next-generation public transport solution designed to make commuting accessible for everyone. By combining real-time GPS tracking with Generative AI and Multilingual Voice Support, it empowers users to track buses, ask natural language questions, and receive voice updates in their native language—bridging the digital divide for non-tech-savvy and visually impaired users.
- 📍 Real-Time Live Tracking: Interactive map interface showing live bus locations, routes, and ETAs.
- 🤖 AI Bus Assistant: Powered by Perplexity AI & ElevenLabs, giving users the ability to ask natural questions like "Where is bus 12?" and hear the answer back.
- 🗣️ Multilingual Voice Support: Full support for English, Hindi, and Tamil. Users can even receive phone calls with bus status updates in their preferred language via Twilio.
- 🎨 Premium Glassmorphism UI: A sleek, modern interface with dark mode support, smooth animations (Framer Motion), and a clutter-free design.
- 📱 Accessibility First: Voice-first interactions designed for users who cannot read maps or use complex apps.
- Frontend: React.js, Leaflet (Maps), Framer Motion (Animations), Lucide React (Icons), CSS Modules.
- Backend: FastAPI (Python), Uvicorn.
- AI & Services:
- Perplexity AI: For Natural Language Understanding and Translation.
- ElevenLabs: For hyper-realistic Text-to-Speech (TTS).
- Twilio API: For programmable voice calls and IVR.
Follow these steps to run the project locally.
- Node.js & npm installed.
- Python 3.8+ installed.
- API Keys for Perplexity, ElevenLabs, and Twilio.
Navigate to the backend directory and activate the virtual environment:
cd busroute/backend
# Windows
python -m venv venv
.\venv\Scripts\activate
# Install dependencies
pip install -r requirements.txtConfigure Environment Variables:
Create a .env file in busroute/backend/ and add:
PERPLEXITY_API_KEY=your_key_here
ELEVENLABS_API_KEY=your_key_here
TWILIO_ACCOUNT_SID=your_sid
TWILIO_AUTH_TOKEN=your_token
TWILIO_PHONE_NUMBER=your_twilio_number
VERIFIED_NUMBER=your_personal_number
NGROK_URL=your_ngrok_urlRun the Server:
uvicorn main:app --reloadThe backend will start at http://127.0.0.1:8000
Open a new terminal and navigate to the client directory:
cd busroute/busroute-client
# Install dependencies
npm install
# Start the application
npm startThe app will open at http://localhost:3000
To enable voice calls, you must expose your local backend to the internet using Ngrok:
ngrok http 8000Copy the generated URL (e.g., https://xxxx.ngrok-free.app) and update the NGROK_URL in your .env file.
This project is open-source and free to use for educational purposes.
Built with ❤️ by the Yashwanth R