A full-stack, JARVIS-inspired voice assistant web application.
- 🔙 Backend — Node.js + Express server with API key authentication, CORS, and REST APIs
- 🖥️ Frontend — Next.js application with futuristic UI and voice interaction
- 🗣️ Voice command input using Web Speech API (speech recognition)
- 🔊 Text-to-speech replies with dynamic voices
- 🌍 Multilingual greetings — Hindi, Bengali, Tamil, Telugu, Marathi, Gujarati, Kannada, Malayalam, Punjabi & English
- 🎯 Smart voice selection — voices grouped by language with Indian accent prioritization
- 🌦️ Enhanced weather lookup with WeatherAPI & OpenWeatherMap fallback
- 🏏 Live Sports Scores — CricketData & API-Football integration
- 📰 Headlines Delivery via GNews & NewsAPI.org fallback
- 🧠 Dynamic AI Search Hierarchy:
- Internal specialized modules (Weather, Sports, News)
- Gemini 2.5 Flash (Primary)
- Llama 3.3 70B via Groq (Secondary)
- Tavily AI Web Search (Tertiary)
- Google Custom Search Engine (Quaternary Backup)
- ⌨️ Dynamic Input Modes — Switch between Voice Mode and Text/Type Mode by speaking (e.g., "enable type mode")
- 💬 Chat-centric UI — mic embedded in input bar, suggestion chips, timestamps, copy/clear
- 🔒 Secure API via
x-api-keyheader (bypassed in dev mode) - 🎨 Futuristic glassmorphic theme — featuring a stunning deep rose and hot pink color palette
- 📂 Navigate to
backend/directory - 📦 Install dependencies:
npm install - ⚙️ Configure
.env:PORT=5000 GEMINI_API_KEY=your_gemini_key GROQ_API_KEY=your_groq_api_key_here OPENWEATHER_API_KEY=your_openweather_key WEATHER_API_KEY=your_weatherapi_key CRICKET_API_KEY=your_cricket_key SPORTS_API_KEY=your_sports_key NEWS_API_KEY=your_gnews_key TVLY_API_KEY=your_tavily_key GOOGLE_SEARCH_API_KEY=your_google_key GOOGLE_SEARCH_CX=your_cx_engine_id
▶️ Run:node server.js
- 📂 Navigate to
frontend/directory - 📦 Install dependencies:
npm install ▶️ Run:npm run dev- 🌐 Open http://localhost:3000 in your browser
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/voice |
🗣️ Process a voice command and get an AI response |
Request body: { "command": "string" }
Response: { "response": "string", "action?": "string", "voiceName?": "string" }
🔐 All endpoints require the
x-api-keyheader. Development mode skips the check.
🔄 Frontend
/api/voiceis a proxy to the backend. SetBACKEND_URLenvironment variable if running the backend elsewhere.
| Layer | Technology |
|---|---|
| 🖥️ Frontend | Next.js 14, React 18, Lucide Icons |
| 🔙 Backend | Express.js, OpenAI SDK (Groq) |
| 🧠 AI Model | Gemini 2.5 Flash & Llama 3.3 70B |
| 🌐 APIs | Gemini, Groq, wttr.in, Open-Meteo, DuckDuckGo, Wikipedia |
| 🗣️ Speech | Web Speech API (Recognition + Synthesis) |
| 🔤 Fonts | Chakra Petch, Space Grotesk, Orbitron, JetBrains Mono |
Voice-first interaction, intelligent and responsive behavior.
This project is licensed under the MIT License - see the LICENSE file for details.
Developed with ❤️ for the future of Voice AI
AIVA is a continuous exploration into building responsive, smart, and accessible voice interfaces.