Course Content
What is Python?
Introduction of Python and Its setup
0/2
Control Statement
Control statements are used to control the flow of execution depending upon the specified condition/logic.
0/4
File Handling
File handling is an important component of any application. Python has multiple functions for creating, reading, updating, and deleting files.
0/2
Examples
Following are the examples of python scripts to try hands-on, you are ready to start your python journey.
0/7
Python
About Lesson

Overview

In this tutorial, you will learn, How to build a virtual assistant for your desktop using Python.

The steps are required to build a virtual assistant is given below:

1)Import all modules

2)Speak function

3)Start Virtual assistant

4)Get Query function

5)Recognize user’s 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’s 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()