Skip to content

DebasmitaBose0/AIVA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

184 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 AIVA — Artificially Intelligent Voice Assistant 🎙️

A full-stack, JARVIS-inspired voice assistant web application.


🏗️ Architecture

  • 🔙 Backend — Node.js + Express server with API key authentication, CORS, and REST APIs
  • 🖥️ Frontend — Next.js application with futuristic UI and voice interaction

✨ Features

  • 🗣️ 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:
    1. Internal specialized modules (Weather, Sports, News)
    2. Gemini 2.5 Flash (Primary)
    3. Llama 3.3 70B via Groq (Secondary)
    4. Tavily AI Web Search (Tertiary)
    5. 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-key header (bypassed in dev mode)
  • 🎨 Futuristic glassmorphic theme — featuring a stunning deep rose and hot pink color palette

🚀 Setup

🔙 Backend

  1. 📂 Navigate to backend/ directory
  2. 📦 Install dependencies: npm install
  3. ⚙️ 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
  4. ▶️ Run: node server.js

🖥️ Frontend

  1. 📂 Navigate to frontend/ directory
  2. 📦 Install dependencies: npm install
  3. ▶️ Run: npm run dev
  4. 🌐 Open http://localhost:3000 in your browser

🔌 API Endpoints

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-key header. Development mode skips the check.

🔄 Frontend /api/voice is a proxy to the backend. Set BACKEND_URL environment variable if running the backend elsewhere.


🛠️ Tech Stack

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

💡 Philosophy

Voice-first interaction, intelligent and responsive behavior.


📜 License

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.


👩‍💻 Debasmita Bose

GitHub LinkedIn Email

👨‍💻 Babin Bid

GitHub LinkedIn Email

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors