Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions jarvis_assistant/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# JARVIS(ASSISTANT)

## Objective
Our virtual assistant will able to do the followings things-

Weather forecasting, Launch Windows Applications, Open Websites, tells you about almost everything you ask, tells you date and time, greetings, news, etc.

You can interact with your laptop’s microphone/console. The response generated by the assistant will display on the console or as a speech via the speaker
## Commands(You have to speak)
- wikipedia "what you want to search"
- open youtube
- open stackoverflow
- play music (you should change the path with your local storage - Line number 88)
- the time
- open code (you should change the path with your local storage - Line number 98)
- email to anshul (replace your email with mine - Line number 57 ,58 and 105)
## Requirements
```pip install requirements.txt```

## How to run the ASSISTANT?
``` python script.py ```

## Version
Python 3.7.4
pip 20.2.3
2 changes: 2 additions & 0 deletions jarvis_assistant/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
__author__ = "Anshul Singh"
__version__ = "0.1"
3 changes: 3 additions & 0 deletions jarvis_assistant/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pyttsx3==2.7
speechRecognition==3.8.1
wikipedia==1.4.0
101 changes: 101 additions & 0 deletions jarvis_assistant/script.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
import pyttsx3 # pip install pyttsx3
import speech_recognition as sr # pip install speechRecognition
import datetime
import wikipedia # pip install wikipedia
import webbrowser
import os
import smtplib

engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)


def speak(audio):
engine.say(audio)
engine.runAndWait()


def wishMe():
hour = int(datetime.datetime.now().hour)
if hour >= 0 and hour < 12:
speak("Good Morning!")
elif hour >= 12 and hour < 18:
speak("Good Afternoon!")
else:
speak("Good Evening!")
speak("I am Jarvis Sir. Please tell me how may I help you")


def takeCommand():

r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
audio = r.listen(source)

try:
print("Recognizing...")
query = r.recognize_google(audio, language='en-in')
print(f"User said: {query}\n")
except Exception:
print("Say that again please...")
return "None"
return query


def sendEmail(to, content):
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login('youremail@gmail.com', 'your-password')
server.sendmail('youremail@gmail.com', to, content)
server.close()


if __name__ == "__main__":
wishMe()
while True:
query = takeCommand().lower()
if 'wikipedia' in query:
speak('Searching Wikipedia...')
query = query.replace("wikipedia", "")
results = wikipedia.summary(query, sentences=2)
speak("According to Wikipedia")
print(results)
speak(results)

elif 'open youtube' in query:
webbrowser.open("youtube.com")

elif 'open google' in query:
webbrowser.open("google.com")

elif 'open stackoverflow' in query:
webbrowser.open("stackoverflow.com")

elif 'play music' in query:
music_dir = 'D:\\Non Critical\\songs\\Favorite Songs2'
songs = os.listdir(music_dir)
os.startfile(os.path.join(music_dir, songs[0]))

elif 'the time' in query:
strTime = datetime.datetime.now().strftime("%H:%M:%S")
speak(f"Sir, the time is {strTime}")

elif 'open code' in query:
# change this path according to you
codePath = "/path/to/vscode/executable"
os.startfile(codePath)

elif 'email to anshul' in query:
try:
speak("What should I say?")
content = takeCommand()
to = "singhanshul28007@gamil.com"
sendEmail(to, content)
speak("Email has been sent!")
except Exception as e:
print(e)
speak("Sorry Anshul, I am not able to send this email")