Overivew
In this tutorial you will learn, How to build a virtual assistant for your desktop using Python.
The steps are required to build virtual assistant is given below:
- Import all modules
- Speak function
- Start Virtual assistant
- Get Query function
- Recognize user voice
Import all modules
Make sure to install all the required libraries and dependencies before running the code.
# import libraries
import pyttsx3
import speech_recognition as sr
import webbrowser
import wikipedia
Speak function
This function will make the virtual assistant speak.
def speak(audio):
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)
engine.say(audio)
engine.runAndWait()
def hello():
speak("""Hello there I am your assistant. Tell me how may I help you""")
Start Virtual assistant
if __name__ == '__main__':
# main method for executing the functions
take_query()
Get Query function
You can add more queries such as tell me a date
or time
etc.
def take_query():
hello()
while(True):
query = take_command().lower()
if "Hello How are you" in query:
speak("I am fine")
elif "open google" in query:
speak("Opening Google")
webbrowser.open("https://www.google.com")
elif "bye" in query:
speak("OK Bye")
exit()
elif "from wikipedia" in query:
speak("Checking in Wikipedia")
query = query.replace("wikipedia", "")
result = wikipedia.summary(query, sentences=2)
speak("According to Wikipedia")
speak(result)
Recognize user voice
This function will recognize the what is your speaking.
def take_command():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening")
r.pause_threshold = 0.7
audio = r.listen(source)
try:
print("Recognizing ...")
query = r.recognize_google(audio, language='en-in')
print("The command is printed = ", query)
except Exception as e:
print(e)
print("Please say it again!")
return "None"
return query
Complete Source Code
# import libraries
import pyttsx3
import speech_recognition as sr
import webbrowser
import wikipedia
def speak(audio):
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)
engine.say(audio)
engine.runAndWait()
def hello():
speak("""Hello there I am your assistant. Tell me how may I help you""")
def take_command():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening")
r.pause_threshold = 0.7
audio = r.listen(source)
try:
print("Recognizing ...")
query = r.recognize_google(audio, language='en-in')
print("The command is printed = ", query)
except Exception as e:
print(e)
print("Please say it again!")
return "None"
return query
def take_query():
hello()
while(True):
query = take_command().lower()
if "Hello How are you" in query:
speak("I am fine")
elif "open google" in query:
speak("Opening Google")
webbrowser.open("https://www.google.com")
elif "bye" in query:
speak("OK Bye")
exit()
elif "from wikipedia" in query:
speak("Checking in Wikipedia")
query = query.replace("wikipedia", "")
result = wikipedia.summary(query, sentences=2)
speak("According to Wikipedia")
speak(result)
if __name__ == '__main__':
# main method for executing the functions
take_query()