Erstellen Sie einen virtuellen Assistenten mit Python
Der virtuelle Desktop-Assistent ist eine großartige Sache. Wenn Sie möchten, dass Ihre Maschine auf Ihren Befehl läuft, wie es Jarvis für Tony getan hat. Ja, es ist möglich. Es ist möglich mit Python. Python bietet eine gute Hauptbibliothek, damit wir daraus einen virtuellen Assistenten erstellen können. Windows hat Sapi5 und Linux hat Espeak, was uns helfen kann, die Stimme von unserem Computer zu bekommen. Es ist eine schwache KI
Module benötigt
- pyttsx3: pyttsx ist eine plattformübergreifende Text-zu-Sprach-Bibliothek, die plattformunabhängig ist. Der Hauptvorteil der Verwendung dieser Bibliothek für die Umwandlung von Text in Sprache besteht darin, dass sie offline funktioniert. Um dieses Modul zu installieren, geben Sie den folgenden Befehl in das Terminal ein.
pip install pyttsx3
- Spracherkennung: Damit können wir Audio zur weiteren Verarbeitung in Text umwandeln. Um dieses Modul zu installieren, geben Sie den folgenden Befehl in das Terminal ein.
pip install SpeechRecognition
- Webbrowser: Er bietet eine allgemeine Benutzeroberfläche, über die Benutzer webbasierte Dokumente anzeigen können. Um dieses Modul zu installieren, geben Sie den folgenden Befehl in das Terminal ein.
pip install webbrowser
- Wikipedia: Es wird verwendet, um eine Vielzahl von Informationen von der Wikipedia-Website abzurufen. Um dieses Modul zu installieren, geben Sie den folgenden Befehl in das Terminal ein.
pip install wikipedia
Methoden für Virtual Assistant
1) Sprechmethode
Die Sprechmethode hilft uns dabei, die Stimme von der Maschine zu nehmen. Hier ist die Code-Erklärung der Speak-Methode
def
speak(audio):
engine
=
pyttsx3.init()
voices
=
engine.getProperty(
'voices'
)
engine.setProperty(
'voice'
, voices[
0
].
id
)
engine.say(audio)
engine.runAndWait()
2) Nehmen Sie die Abfragemethode
Diese Methode prüft den Zustand. Wenn die Bedingung erfüllt ist, wird die Ausgabe zurückgegeben. Wir können eine beliebige Zahl hinzufügen, wenn die Bedingungen dafür erfüllt sind und wenn die Bedingung erfüllt ist, erhalten wir die gewünschte Ausgabe.
def
Take_query():
Hello()
while
(
True
):
query
=
takeCommand().lower()
if
"open geeksforgeeks"
in
query:
speak(
"Opening GeeksforGeeks "
)
webbrowser.
open
(
"www.geeksforgeeks.com"
)
continue
elif
"open google"
in
query:
speak(
"Opening Google "
)
webbrowser.
open
(
"www.google.com"
)
continue
elif
"which day it is"
in
query:
tellDay()
continue
elif
"tell me the time"
in
query:
tellTime()
continue
elif
"bye"
in
query:
speak(
"Bye. Check Out GFG for more exicting things"
)
exit()
elif
"from wikipedia"
in
query:
speak(
"Checking the wikipedia "
)
query
=
query.replace(
"wikipedia"
, "")
result
=
wikipedia.summary(query, sentences
=
4
)
speak(
"According to wikipedia"
)
speak(result)
elif
"tell me your name"
in
query:
speak(
"I am Jarvis. Your deskstop Assistant"
)
3) takeCommand-Methode
Diese Methode dient zum Übernehmen der Befehle und zum Erkennen des Befehls aus dem Modul "language_Recognition"
def
takeCommand():
r
=
sr.Recognizer()
with sr.Microphone() as source:
(
'Listening'
)
r.pause_threshold
=
0.7
audio
=
r.listen(source)
try
:
(
"Recognizing"
)
Query
=
r.recognize_google(audio, language
=
'en-in'
)
(
"the command is printed="
, Query)
except
Exception as e:
(e)
(
"Say that again sir"
)
return
"None"
return
Query
*) tellTime-Methode
def
tellTime(
self
):
time
=
str
(datetime.datetime.now())
(time)
hour
=
time[
11
:
13
]
min
=
time[
14
:
16
]
self
.Speak(
self
,
"The time is sir"
+
hour
+
"Hours and"
+
min
+
"Minutes"
)
4) Hallo Methode
Dies wird nur verwendet, um den Benutzer mit einer Hallo-Nachricht zu begrüßen.
def
Hello():
speak("hello sir I am your desktop assistant.
/
Tell me how may I
help
you")
5) Hauptmethode
Die Hauptmethode ist die Methode, bei der alle Dateien ausgeführt werden. Daher rufen wir hier die Take_query-Methode auf, damit sie die gewünschte Ausgabe erkennen und mitteilen oder angeben kann.
if
__name__
=
=
'__main__'
:
Take_query()
Vollständiger Code:
import
pyttsx3
import
speech_recognition as sr
import
webbrowser
import
datetime
import
wikipedia
def
takeCommand():
r
=
sr.Recognizer()
with sr.Microphone() as source:
(
'Listening'
)
r.pause_threshold
=
0.7
audio
=
r.listen(source)
try
:
(
"Recognizing"
)
Query
=
r.recognize_google(audio, language
=
'en-in'
)
(
"the command is printed="
, Query)
except
Exception as e:
(e)
(
"Say that again sir"
)
return
"None"
return
Query
def
speak(audio):
engine
=
pyttsx3.init()
voices
=
engine.getProperty(
'voices'
)
engine.setProperty(
'voice'
, voices[
0
].
id
)
engine.say(audio)
engine.runAndWait()
def
tellDay():
day
=
datetime.datetime.today().weekday()
+
1
Day_dict
=
{
1
:
'Monday'
,
2
:
'Tuesday'
,
3
:
'Wednesday'
,
4
:
'Thursday'
,
5
:
'Friday'
,
6
:
'Saturday'
,
7
:
'Sunday'
}
if
day
in
Day_dict.keys():
day_of_the_week
=
Day_dict[day]
(day_of_the_week)
speak(
"The day is "
+
day_of_the_week)
def
tellTime():
time
=
str
(datetime.datetime.now())
(time)
hour
=
time[
11
:
13
]
min
=
time[
14
:
16
]
speak(
self
,
"The time is sir"
+
hour
+
"Hours and"
+
min
+
"Minutes"
)
def
Hello():
speak("hello sir I am your desktop assistant.
/
Tell me how may I
help
you")
def
Take_query():
Hello()
while
(
True
):
query
=
takeCommand().lower()
if
"open geeksforgeeks"
in
query:
speak(
"Opening GeeksforGeeks "
)
webbrowser.
open
(
"www.geeksforgeeks.com"
)
continue
elif
"open google"
in
query:
speak(
"Opening Google "
)
webbrowser.
open
(
"www.google.com"
)
continue
elif
"which day it is"
in
query:
tellDay()
continue
elif
"tell me the time"
in
query:
tellTime()
continue
elif
"bye"
in
query:
speak(
"Bye. Check Out GFG for more exicting things"
)
exit()
elif
"from wikipedia"
in
query:
speak(
"Checking the wikipedia "
)
query
=
query.replace(
"wikipedia"
, "")
result
=
wikipedia.summary(query, sentences
=
4
)
speak(
"According to wikipedia"
)
speak(result)
elif
"tell me your name"
in
query:
speak(
"I am Jarvis. Your deskstop Assistant"
)
if
__name__
=
=
'__main__'
:
Take_query()
Ausgabe: