Seien wir ehrlich: Irgendwann in unserem Leben hätten wir gerne unseren eigenen Jarvis. Einen persönlichen Sprachassistenten zu haben, der uns mit Informationen versorgt, unsere Termine verwaltet und uns einfach im Alltag hilft, hat etwas unglaublich Tolles.
In diesem Artikel werden wir mit Python eine Grundlage schaffen, die Sie verwenden können, um Ihren eigenen persönlichen Sprachassistenten zu erstellen.
So funktioniert der Sprachassistent
Die Grundlage unseres Programms wird eine Spracherkennungsbibliothek und eine Text-to-Speech-Bibliothek (TTS) sein, die es uns ermöglicht, mit unserem Skript ausschließlich über Audio zu kommunizieren.
Das Skript wird in einer Schleife von ausgeführt:
Warten auf einen Befehl des Benutzers Verstehen und Ausführen eines Befehls Wir fügen einige grundlegende Beispiele hinzu, um Smalltalk zu führen, die Uhrzeit zu sagen, Anwendungen zu öffnen und einige andere Dinge. Diese Grundlage kann sehr einfach erweitert werden, um jede beliebige Funktionalität hinzuzufügen, die Sie sich von Ihrem Assistenten wünschen. Wenn Sie es in Python können, können Sie es auch dem Bot beibringen.
Einrichtung
Installieren Sie in einem neuen Python-Projekt zunächst die Spracherkennungsbibliothek mit:
pip install SpeechRecognition
Und installieren Sie die TTS-Bibliothek mit:
pip install pyttsx3
Der Kodex
In einer Python-Datei werden wir dann zu:
- Laden Sie unsere Importe ein
- Konfigurieren Sie die Text-zu-Sprache-Funktion
- Definieren Sie unsere Sprachfunktion
import speech_recognition as sr
import pyttsx3
import random
from datetime import datetime
import os
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)
def speak(audio):
engine.say(audio)
engine.runAndWait()
def takeCommand():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Now listening")
r.pause_threshold = 1
audio = r.listen(source)
try:
print("Deciphering")
query = r.recognize_google(audio, language ='en-in')
print("You Said: " + query)
except Exception as e:
print(e)
print("Did not hear anything")
return "None"
return query
while True:
command = takeCommand()
#Conversational
if 'how are you' in command:
speak("I'm doing well")
if 'thank you' in command:
speak("Anytime")
#Tasks
if 'time' in command:
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
speak("The Current Time is " + current_time)
if 'random number' in command:
randInt = random.randint(0, 10)
speak("A random number between 0 and 10 is " + str(randInt))
if 'open slack' in command:
os.system('open /Applications/Slack.app')
speak("Opening Slack")
if 'close slack' in command:
os.system('open /Applications/Slack.app')
speak("Closing Slack")
Der obige Bot kann die folgenden Befehle ausführen:
- Sag die Zeit
- Geben Sie eine Zufallszahl an
- Schlupf öffnen und schließen
Gebäude Mehr
Welche Aufgaben Sie auch immer von Ihrem Assistenten erledigen lassen wollen, Sie können jetzt einfach eine weitere Bedingung in die Liste aufnehmen!
Natürlich kann man noch viel mehr Komplexität hinzufügen:
- Macht den Assistenten mit Conversational AI über Rasa
- Musikwiedergabe mit der Spotify-API
- Informationen aus Wikipedia über Web Scraping ziehen Das war's für heute!