-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPersonal Alexa [MAIN].py
175 lines (132 loc) · 5.03 KB
/
Personal Alexa [MAIN].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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
import pyttsx3
import datetime
import speech_recognition as sr
import wikipedia
import os
import webbrowser
import random
import smtplib
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
# print(voices[0].id)
engine.setProperty('voice', voices[1].id)
def speak(audio):
engine.say(audio)
engine.runAndWait()
def greet():
h = int(datetime.datetime.now().hour)
if h >= 0 and h < 12:
speak("Good Morning!")
elif h >= 12 and h <= 18:
speak("Good Afternoon!")
else:
speak("Good evening!")
speak("I am alexa your virtual assistant. Please tell me how may i help you")
def listen():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening....")
audio = r.listen(source)
try:
print("Recognizing....")
query = r.recognize_google(audio, language='en-in')
print(f"User said : {query}")
speak(query)
except Exception:
# speak("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("praveenchandra273v@gmail.com", "<password>")
server.sendmail("praveenchandra273v@gmail.com", to, content)
server.close()
if __name__ == '__main__':
speak("Opening..")
greet()
# while True:
for i in range(2):
query = listen().lower()
if 'time' in query:
st = datetime.datetime.now().strftime("%I:%M:%S %p")
speak(f"Sir the time is {st}")
elif 'search on wikipedia about' in query:
speak('Serching wikipedia...')
try:
query = query.replace("search on wikipedia about", "")
res = wikipedia.summary(query, sentences=2)
print(res)
speak('according to wikipedia' + res)
except Exception as e:
speak('Sorry sir, unable to get infomation')
break
elif 'play music' in query:
music_dir = 'F:\\SONGS\\English'
songs = os.listdir(music_dir)
a = random.randint(0, 164)
os.startfile(os.path.join(music_dir, songs[a]))
break
elif 'open vs code' in query:
path = "C:\\Users\\PRAVEEN Chandra\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe"
os.startfile(path)
break
elif 'open spotify' in query:
path = "C:\\Users\\PRAVEEN Chandra\\AppData\\Roaming\\Spotify\\Spotify.exe"
os.startfile(path)
break
elif 'open youtube' in query:
webbrowser.get('C:/Program Files/Google/Chrome/Application/chrome.exe %s'
).open('youtube.com')
break
elif 'play lo-fi music' in query:
webbrowser.get('C:/Program Files/Google/Chrome/Application/chrome.exe %s'
).open('https://www.youtube.com/watch?v=tgY1b0AX7B8&ab_channel=AudioFurix')
break
elif 'play lofi music' in query:
webbrowser.get('C:/Program Files/Google/Chrome/Application/chrome.exe %s'
).open('https://www.youtube.com/watch?v=tgY1b0AX7B8&ab_channel=AudioFurix')
break
elif 'open google' in query:
webbrowser.get('C:/Program Files/Google/Chrome/Application/chrome.exe %s'
).open('google.com')
break
elif 'open stack overflow' in query:
webbrowser.get('C:/Program Files/Google/Chrome/Application/chrome.exe %s'
).open('https://stackoverflow.com/')
break
elif 'search' in query:
speak("What do you want to search")
search = listen()
search=search.replace("about","")
url = "https://google.com/search?q=" + search
webbrowser.get('C:/Program Files/Google/Chrome/Application/chrome.exe %s'
).open(url)
break
elif 'find location' in query:
speak("Name the location")
loc = listen()
url = "https://google.nl/maps/place/" + loc + '/&'
webbrowser.get('C:/Program Files/Google/Chrome/Application/chrome.exe %s'
).open(url)
break
elif 'send email' in query:
try:
speak("Please tell me the content of your email")
content = listen()
to = ""
sendEmail(to, content)
speak("Email has been sent!")
except Exception:
speak("Sorry sir unable to send email")
break
elif 'quit program' in query:
speak("Quitting sir, Thankyou for your time")
exit()
elif 'exit program' in query:
speak("Thankyou for your time")
exit()
else:
# print("sorry")
speak("Sorry sir i didn't get that please repeat")