JARVIS (Basic to Advance)
This was my attempt to make a voice assistant similar to JARVIS (in iron man movie)
Let's be honest, it's not as intelligent as in the movie, but it can do a lot of cool things and automate your daily tasks you do on your personal computers/laptops.
Built with
Jarvis From Basic to Advance
- Part - 1
- Part - 2 under-working
- Part - 3 under-working
- Part - 4 under-working
Features
YouTube video
For a cool demo of this project watch thisIt can do a lot of cool things, some of them being:
- Greet user
- Tell current time and date
- Launch applications/softwares
- Open any website
- Tells about weather of any city
- Open location of any place plus tells the distance between your place and queried place
- Tells your current system status (RAM Usage, battery health, CPU usage)
- Tells about your upcoming events (Google Calendar)
- Tells about any person (via Wikipedia)
- Can search anything on Google
- Can play any song on YouTube
- Tells top headlines (via Times of India)
- Plays music
- Send email (with subject and content)
- Calculate any mathematical expression (example: Jarvis, calculate x + 135 - 234 = 345)
- Answer any generic question (via Wolframalpha)
- Take important note in notepad
- Tells a random joke
- Tells your IP address
- Can switch the window
- Can take screenshot and save it with custom filename
- Can hide all files in a folder and also make them visible again
- Has a cool Graphical User Interface
API Keys
To run this program you will require a bunch of API keys. Register your API key by clicking the following links
Installation
- First clone the repo
- Make a config.py file and include the following in it:
" email_password = " " wolframalpha_id = " " "> email = "
" email_password = " " wolframalpha_id = " " - Copy the config.py file in Jarvis>config folder
- Make a new python environment If you are using anaconda just type
conda create -n jarvis python==3.8.5
in anaconda prompt - To activate the environment
conda activate jarvis
- Navigate to the directory of your project
- Install all the requirements by just hitting
pip install -r requirements.txt
- Install PyAudio from wheel file by following instructions given here
- Run the program by
python main.py
- Enjoy !!!!
Code Structure
├── driver
├── Jarvis # Main folder for features
│ ├── config # Contains all secret API Keys
│ ├── features # All functionalities of JARVIS
│ └── utils # GUI images
├── __init__.py # Definition of feature's functions
├── gui.ui # GUI file (in .ui format)
├── main.py # main driver program of Jarvis
├── requirements.txt # all dependencies of the program
- The code structure if pretty simple. The code is completely modularized and is highly customizable
- To add a new feature:
- Make a new file in features folder, write the feature's function you want to include
- Add the function's definition to init.py
- Add the voice commands through which you want to invoke the function
Future Improvements
- Arduino interaction / Serial Comunication
- Node MCU interaction
- Generalized conversations can be made possible by incorporating Natural Language Processing
- GUI can be made more nicer to look at and functional
- More functionalities can be added