Skip to content

This is my capstone project for final year of diploma in computer science from Government Polytechnic,Achulpure

License

Notifications You must be signed in to change notification settings

faizeraza/Jarvis-Virtual-Assistant

Repository files navigation

This was my attempt to make a voice assistant.

--A voice-based virtual assistant-- An AI-powered application that can understand natural language and perform various tasks. This readme file will guide you on how to use this virtual assistant.

Built with

#GUI DEMO

Features

It 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
  • Can respond to any command

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 = "<your_email>"
    email_password = "<your_email_password>"
    wolframalpha_id = "<your_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
          ├──Friday_blueprint.py            # GUI Main Window
          ├──bot_voice.py                   # Sub Window bot voice button
│   └── utils                               # GUI images
├── __init__.py                             # Definition of feature's functions
├── 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

Contribute

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.

License

This project is licensed under MIT License

Future Improvements

  • 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

About

This is my capstone project for final year of diploma in computer science from Government Polytechnic,Achulpure

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages