-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgramma copy.py
130 lines (104 loc) · 3.48 KB
/
Programma copy.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
from tkinter.constants import X
from typing import Container, Text
import pyttsx3 #pip install pyttsx3
import datetime
import speech_recognition as sr #pip install SpeechRecognition
import wikipedia #pip install wikipedia
from wikipedia.wikipedia import summary
engine = pyttsx3.init()
voiceRate = 170 #La velocità della voce di Azzurra
engine.setProperty('rate', voiceRate)
wikipedia.set_lang("it")
#- - - - - - - - - FUNZIONI AURORA - - - - - - - -
#La funzione per dare comandi ad Azzurra
def listen():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Sono in ascolto...")
r.pause_threshold = 1
audio = r.listen(source)
try:
print("Cerco di capire...")
query = r.recognize_google(audio, language="it-IT")
query = query.replace("azzurra", "") #Rimuove il suo nome dalla stringa
except Exception as e:
print(e)
speak("Non ho capito. Ripeti, per favore.")
return "None"
return query
#La funzione per far parlare Azzurra
def speak(audio):
engine.say(audio)
engine.runAndWait()
def activation():
hour = datetime.datetime.now().hour
if hour >= 6 and hour < 12:
speak("Buongiorno")
elif hour >= 12 and hour < 18:
speak("Buon pomeriggio")
else:
speak("Buona sera")
speak("Come posso aiutarti?")
#La funzione per verificare che ore sono
def nowTime():
time = datetime.datetime.now().strftime("%H:%M") #Prende l'orario attuale e lo rende una stringa
time = "Sono le " + time
speak(time)
#La funzione per verificare che giorno è
def nowDay():
year = int(datetime.datetime.now().year)
month = int(datetime.datetime.now().month)
day = int(datetime.datetime.now().day)
#Converte numeri in mesi
if month == 1:
month = "Gennaio"
elif month == 2:
month = "Febbraio"
elif month == 3:
month = "Marzo"
elif month == 4:
month = "Aprile"
elif month == 5:
month = "Maggio"
elif month == 6:
month = "Giugno"
elif month == 7:
month = "Luglio"
elif month == 8:
month = "Agosto"
elif month == 9:
month = "Settembre"
elif month == 10:
month = "Ottobre"
elif month == 11:
month = "Novembre"
elif month == 12:
month = "Dicembre"
speak("Oggi è il " + str(day) + " " + month + " del " + str(year))
#La funzione per cercare qualcosa su wikipedia
def wikiSearch(searchTitle):
speak("Certamente...")
print(searchTitle)
try:
searchTitle = searchTitle.replace("wikipedia", "") #Rimpiazza la parola "wikipedia" dalla stringa
wiki = wikipedia.summary(searchTitle, sentences = 2)
speak(wiki)
except Exception as e:
print(e)
speak("Non ho trovato alcun risultato. Prova a riformulare la richiesta.")
#- - - - - - - - - MAIN - - - - - - - -
def main():
activation()
while True:
query = listen().lower() #Associa a query il risultato di ciò che Azzurra sente
print(query)
#Verifica il contenuto della query
if "ora" in query or "ore" in query:
nowTime()
elif "giorno" in query or "quanto ne abbiamo" in query:
nowDay()
elif "spegniti" in query or "riposa" in query or "dormi" in query or "offline" in query:
speak("Buonanotte.")
quit()
elif "wikipedia" in query:
wikiSearch(query)