Jarvis AI is a powerful voice-controlled personal assistant designed to help you with a wide range of tasks. Inspired by Iron Man's JARVIS, this application can answer your questions, search the internet for real-time information, control your computer, play music, generate images, and much more.
Current digital assistants often fall short in several key areas:
- Limited Integration: Most assistants operate within closed ecosystems
- Privacy Concerns: Cloud-based solutions raise data privacy issues
- Contextual Understanding: Many systems struggle with complex, multi-turn conversations
- Customization Limitations: End users have minimal control over functionality
- Responsiveness: Network-dependent assistants can be slow to respond
Jarvis AI aims to address these gaps by providing a more integrated, responsive, and customizable experience with an architecture that balances cloud capabilities with local processing.
The project addresses several key challenges in personal AI assistants:
- Accessibility: Making advanced AI capabilities accessible to everyday users
- Multifunctionality: Creating a unified interface for diverse digital tasks
- Response Quality: Ensuring responses are both accurate and helpful
- System Integration: Interacting with various applications and services
- User Experience: Minimizing friction in human-AI interaction
- ๐๏ธ Voice Interaction - Natural voice commands and responses
- ๐ง Intelligent Query Processing - Automatically determines if your question needs real-time data or can be answered from existing knowledge
- ๐ฅ๏ธ System Automation - Open/close applications, control your computer
- ๐ Web Search - Real-time information from the internet
- ๐ต Media Control - Play music and videos
- ๐ผ๏ธ Image Generation - Create images based on your descriptions
- ๐ฌ Natural Conversation - Engage in human-like conversations
- ๐๏ธ Screen Analysis - Analyze and describe what's happening on your screen using Google's Gemini Vision AI
- ๐ค Camera Analysis - Analyze your webcam feed using Google's Gemini Vision AI
Jarvis AI is a powerful voice-controlled personal assistant designed to help you with a wide range of tasks. Inspired by Iron Man's JARVIS, this application can answer your questions, search the internet for real-time information, control your computer, play music, generate images, and much more.
Current digital assistants often fall short in several key areas:
- Limited Integration: Most assistants operate within closed ecosystems
- Privacy Concerns: Cloud-based solutions raise data privacy issues
- Contextual Understanding: Many systems struggle with complex, multi-turn conversations
- Customization Limitations: End users have minimal control over functionality
- Responsiveness: Network-dependent assistants can be slow to respond
Jarvis AI aims to address these gaps by providing a more integrated, responsive, and customizable experience with an architecture that balances cloud capabilities with local processing.
The project addresses several key challenges in personal AI assistants:
- Accessibility: Making advanced AI capabilities accessible to everyday users
- Multifunctionality: Creating a unified interface for diverse digital tasks
- Response Quality: Ensuring responses are both accurate and helpful
- System Integration: Interacting with various applications and services
- User Experience: Minimizing friction in human-AI interaction
- ๐๏ธ Voice Interaction - Natural voice commands and responses
- ๐ง Intelligent Query Processing - Automatically determines if your question needs real-time data or can be answered from existing knowledge
- ๐ฅ๏ธ System Automation - Open/close applications, control your computer
- ๐ Web Search - Real-time information from the internet
- ๐ต Media Control - Play music and videos
- ๐ผ๏ธ Image Generation - Create images based on your descriptions
- ๐ฌ Natural Conversation - Engage in human-like conversations
- ๐๏ธ Screen Analysis - Analyze and describe what's happening on your screen using Google's Gemini Vision AI
- Frontend: PyQt5 for the graphical user interface
- Backend:
- AI Models: Groq and Cohere APIs for natural language processing, Google Gemini for vision AI
- Speech Processing: Web Speech API for speech recognition, Edge TTS for text-to-speech
- Web Integration: Selenium for web automation
- Media: Pygame for audio playback
- Computer Vision: OpenCV and MSS for screen capture and analysis
- Response Time: Typically under 2 seconds for commands, 3-5 seconds for knowledge queries
- Memory Usage: ~200MB base, scaling to ~500MB during operation
- CPU Utilization: Moderate during speech recognition, low during idle
- Network: Stable internet connection (1Mbps+ recommended)
- Disk Space: Minimal (<100MB) excluding Python and dependencies
- Processor: Intel Core i3/AMD Ryzen 3 or better
- RAM: 4GB minimum, 8GB recommended
- Storage: 1GB free space
- Audio: Working microphone and speakers/headphones
- Operating System: Windows 10/11 (primary support), adaptable for Linux/macOS
- Python 3.10.10 (recommended)
- The following packages:
python-dotenv
groq
AppOpener
pywhatkit
bs4
selenium
pillow
rich
requests
keyboard
cohere
googlesearch-python
mtranslate
pygame
edge-tts
PyQt5
webdriver-manager
google-generativeai
opencv-python
numpy
mss
playsound
SpeechRecognition
-
Install Python 3.10.10 from python.org
-
Clone the repository:
git clone https://github.com/atharva-shinde7/JARVIS-AI.git cd JARVIS-AI -
Create and activate a virtual environment:
python -m venv .venv # Windows .venv\Scripts\activate # Linux/Mac source .venv/bin/activate -
Install the required packages:
pip install -r Requirements.txt -
Create a
.envfile with the following variables:CohereAPIKey = your_cohere_api_key Username = Your Name Assistantname = Jarvis GroqAPIKey = your_groq_api_key InputLanguage = en AssistantVoice = en-CA-LiamNeural HuggingFaceAPIKey = your_huggingface_api_key GeminiAPIKey = your_gemini_api_key
When deploying Jarvis AI, consider the following:
- Python Environment: Preferably isolate in a virtual environment
- API Keys: Secure storage of API keys (consider environment variables)
- Browser Dependencies: MS Edge WebDriver for speech recognition
- Local Network Deployment: Can be deployed on a home server
- API Usage Limits: Monitor usage of third-party APIs
- Data Storage: Configure chat history retention based on storage constraints
- API Key Protection: Store keys securely, not in source code
- Permission Management: Limit system command execution scope
- Data Privacy: Local storage of conversation history
To start Jarvis AI:
python Main.py
- General Questions: "Who was Albert Einstein?" or "How do stars form?"
- Real-time Information: "What's today's news?" or "Who is the current Prime Minister of India?"
- Open Applications: "Open Chrome" or "Open Notepad"
- Close Applications: "Close Spotify" or "Close Calculator"
- Play Music: "Play Shape of You" or "Play songs by Ed Sheeran"
- Generate Images: "Generate an image of a mountain landscape"
- Web Search: "Google search for AI tutorials" or "YouTube search for cooking recipes"
- Screen Analysis: "Analyze my screen" or "Analyze screen" - Jarvis will enter screen analysis mode and listen for specific screen analysis commands
- Camera Analysis: "Analyze camera" or "What's on my camera?" - Jarvis will analyze your webcam feed
Jarvis AI/
โ
โโโ Main.py # Main application entry point
โ
โโโ Frontend/ # GUI and user interface components
โ โโโ GUI.py # Main GUI implementation
โ โโโ Graphics/ # Icons and visual assets
โ โโโ Files/ # Temporary files for UI state
โ
โโโ Backend/ # Core functionality modules
โ โโโ Model.py # Decision-making model (Cohere)
โ โโโ Chatbot.py # Conversational AI (Groq)
โ โโโ SpeechToText.py # Voice recognition
โ โโโ TextToSpeech.py # Voice synthesis
โ โโโ RealtimeSearchEngine.py # Web search functionality
โ โโโ Automation.py # System control functions
โ โโโ ImageGeneration.py # AI image generation
โ โโโ screen_analysis.py # Screen analysis using Google Gemini Vision AI
โ
โโโ Data/ # Storage for conversation history and settings
โ
โโโ .env # Environment variables and API keys
โ
โโโ Requirements.txt # Python dependencies
- Voice Input: The system listens for your voice commands using the web speech API.
- Query Analysis: Jarvis uses the First Layer Decision-Making Model to classify your query.
- Task Execution:
- For general knowledge questions, it uses the Groq LLM.
- For real-time information, it searches the web.
- For commands, it performs the requested action.
- For screen analysis, it activates the dedicated screen analysis module.
- For camera analysis, it activates the dedicated camera analysis module.
- Response: Jarvis responds both visually (text on screen) and audibly (text-to-speech).
Jarvis AI, while powerful, has several limitations to be aware of:
- API Dependency: Requires active internet for many functions
- Speech Recognition Accuracy: May struggle in noisy environments
- Language Support: Primary support for English, limited multilingual capabilities
- Resource Consumption: Browser-based speech recognition can be resource-intensive
- Command Scope: Limited to pre-defined automation capabilities
- Context Window: Limited memory of previous conversation turns
- Platform Dependence: Optimized for Windows, may require adjustments for other platforms
Jarvis AI employs a multi-layered approach to ensure information credibility:
- Smart Classification: First determines if queries need real-time data or can be answered from knowledge
- Multi-source Integration: Gathers information from multiple search results for balanced perspective
- AI Synthesis: Uses Groq LLM to intelligently synthesize information from various sources
- Time Awareness: Adds current date/time context to every query
- Source Transparency: Includes source titles and descriptions in search results
- Quality Parameters: Uses advanced search parameters to prioritize reliable sources
- Three-stage Verification: Classification โ Search โ LLM Synthesis pipeline
- Source quality metrics and domain authority scoring
- Cross-reference fact verification across multiple sources
- Formal citation generation for academic/professional use
- User feedback integration for continuous improvement
Jarvis AI differentiates itself from commercial AI assistants in several key ways:
| Feature | Jarvis AI | Commercial Assistants |
|---|---|---|
| Customizability | High (open source) | Limited |
| Privacy | Local processing where possible | Cloud-dependent |
| Platform | Cross-platform potential | Often ecosystem-locked |
| Integration | Flexible with any service | Typically vendor-restricted |
| Cost | Free, API costs only | Often subscription-based |
| Transparency | Full code visibility | Black-box algorithms |
- First-layer Decision Making: Unique classification approach before query processing
- Hybrid Architecture: Balance of local functionality and cloud AI
- Extensibility: Easy to add new commands and capabilities
- Independence: Not tied to any specific ecosystem or vendor
The development of Jarvis AI has broader implications:
- Demonstrates the practical integration of multiple AI services into a cohesive system
- Shows how traditional software can be enhanced with AI capabilities
- Provides a framework for building personalized AI assistants
- Increases accessibility to AI technology for everyday users
- Raises questions about AI assistants in daily life and human-AI interaction
- Demonstrates the balance between cloud AI power and local control
- Serves as a learning platform for understanding:
- Natural language processing
- Speech recognition systems
- Multi-threaded application design
- API integration
Jarvis AI is an actively maintained project with regular updates focused on:
- Bug fixes: Addressing issues as they arise
- Feature enhancements: Adding new capabilities based on user feedback
- API updates: Keeping pace with changes in third-party services
- GitHub Issues: Primary channel for bug reports and feature requests
- Documentation: Comprehensive guides for common issues
- Community Support: Growing community of contributors
- Major releases: Quarterly
- Minor updates: Monthly
- Hotfixes: As needed
You can customize Jarvis by modifying these settings in the .env file:
- Username: Your name (how you want Jarvis to address you)
- Assistantname: The assistant's name (default is "Jarvis")
- InputLanguage: Your preferred language for voice input
- AssistantVoice: The voice model for speech synthesis
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Iron Man's JARVIS
- Built with the power of Groq and Cohere AI
- Special thanks to all the open-source libraries that made this possible
Created with โค๏ธ by Atharva Shinde
