-
Notifications
You must be signed in to change notification settings - Fork 0
/
Artificial Intelligence.py
137 lines (108 loc) · 4.07 KB
/
Artificial Intelligence.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#all modules
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')
#print(voices[1].id)
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. 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 as e:
print(e)
print("Unable to Recognize your voice.")
return "None"
return query
def sendEmail(to, content):
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login('[email protected]', 'your-password')
server.sendmail('[email protected]', to, content)
server.close()
if __name__ == "__main__": #main function
wishMe()
while True:
# if 1:
query = takeCommand().lower()
# Logic for executing tasks based on query
if 'search' 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:
speak("Opening youtube for you sir")
webbrowser.open("youtube.com")
elif 'open google' in query:
speak("Opening google for you sir")
webbrowser.open("google.com")
elif 'open stack overflow' in query:
speak("Opening stack overflow for you sir")
webbrowser.open("stackoverflow.com")
elif 'play music' in query:
music_dir = "" #Music directory path
songs = os.listdir(music_dir)
print(songs)
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:
codePath = "" #Code path
os.startfile(codePath)
elif 'email' in query:
try:
speak("What should I say?")
content = takeCommand()
to = "[email protected]"
sendEmail(to, content)
speak("Email has been sent!")
except Exception as e:
print(e)
speak("Sorry Sir. I am not able to send this email")
speak("I will make sure to troubleshoot this problem.")
elif 'what are you doing' in query:
speak("I got no plans today so I was resting.")
elif 'rude' in query:
speak("I'm sorry sir. Please accept my appology.")
elif 'got any plans' in query:
speak("No meetings or important tasks assigned for today. You can rest.")
elif 'how are you' in query:
speak("I'm feeling great sir, Thank you. What about you? How are you feeling today?")
elif 'feeling good' in query:
speak("Glad to hear that!")
elif 'thank you' in query:
speak("Glad I could be helpful.")
elif 'you are smart' in query:
speak("I know that. But thanks anyway.")
#to exit from the program with a voice command
elif 'go back to sleep' in query:
speak("thank you for talking with me, have a good day.")
exit()