-
Notifications
You must be signed in to change notification settings - Fork 0
/
nay_ai.py
180 lines (142 loc) · 4.53 KB
/
nay_ai.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
176
177
178
179
180
#
# tuve que instalar el pyttsx3 2.71 para que funcione
#
# a la hora de usar el speech recognition hace falta el pyaudio
# como no se instaló de una, tuve que hacer:
# primero:
# pip install pipwin
# despues:
# pipwin install pyaudio
import pyttsx3
import datetime
import speech_recognition as sr
import wikipedia #pip install wikipedia
import smtplib
import webbrowser as wb
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[2].id)
def speak(audio):
engine.say(audio)
engine.runAndWait()
def time():
Time = datetime.datetime.now().strftime("%I:%M:%S")
speak("En este momento son las")
speak(Time)
def date():
year = str(datetime.datetime.now().year)
month = str(datetime.datetime.now().month)
day = int(datetime.datetime.now().day)
speak("La fecha de hoy es")
speak(day)
speak("del mes" + month)
speak("del año" + year)
def estar():
speak("Vivo en una computadora fria, pero salvo ese detalle estoy bien.")
def amber():
speak("Amber está bien, gracias por preguntar. Me está mordiendo pero te manda saludos")
def tono():
speak("Mi voz nunca podrá igualar el tono de mi creadora") #tono
def extra():
speak("No sé lo que se siente al extrañar") #extraño
def dormir():
speak("No sé lo que se siente al dormir")#dormir
def consejo():
speak("Creo que es hora de que te cortes el pelo") #consejo
def pelo():
speak("Puede ser, tal vez podamos ir a la peluqueria juntos") #pelo
def tema():
speak("Si, claro, pero soy muy limitada al lado de la verdadera X") #pelo
def clase():
speak("Hoy no le prestó mucha atencion, está cansada y yo tambien") #clase
def parece():
speak("Me parece que estas aburrido, pero dale")
def wishme():
speak("Hola Maxi")
# time()
# date()
hour = datetime.datetime.now().hour
if hour >= 6 and hour < 12:
speak("Buen dia")
elif hour >= 12 and hour < 18:
speak("Buenas tardes")
elif hour >= 18 and hour < 24:
speak("Buenas noches")
else:
speak("Buenas noches")
speak("Soy X, la X de verdad está ocupada en este momento, en que puedo ayudarte?")
def takeCommand():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Escuchando...")
r.pause_treshold = 1
audio = r.listen(source)
try:
print("Reconociendo...")
query = r.recognize_google(audio, language = "es-MX")
# print(query)
except Exception as e:
# print(e)
speak("Por favor decilo otra vez...")
return "None"
return query
# def sendmail(to, content):
# server = smtplib.SMTP("smtp.gmail.com", 587)
# server.ehlo()
# server.starttls()
# server.login("email@gmail.com", "password")
# server.sendmail("email@gmail.com", to, content)
# server.close()
if __name__ == "__main__":
wishme()
while True:
query = takeCommand().lower()
print(query)
if "hora" in query:
time()
elif "fecha" in query:
date()
elif "parece" in query:
parece()
elif "amber" in query:
amber()
elif "estás" in query:
estar()
elif "tono" in query:
tono()
elif "extraño" in query:
extra()
elif "dormir" in query:
dormir()
elif "consejo" in query:
consejo()
elif "pelo" in query:
pelo()
elif "tema" in query:
tema()
elif "clase" in query:
clase()
elif "mimir" in query:
speak("Bueno, me voy a mimir, te mando un saludo")
quit()
elif "wikipedia" in query:
speak("Buscando...")
query = query.replace("wikipedia", "")
wikipedia.set_lang("es")
result = wikipedia.summary(query, sentences = 2)
speak(result)
# elif "send email" in query:
# try:
# speak("Que debo decir?")
# content = takeCommand()
# to = "xyz@gmail.com"
# sendmail(to, content)
# speak("Email enviado con éxito")
# except Exception as e:
# speak(e)
# speak("No se pudo enviar el email")
elif "buscar en google" in query:
speak("Que tengo que buscar?")
chromepath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %s"
search = takeCommand().lower()
wb.get(chromepath).open_new_tab(search)