Build a Virtual Assistant Using Python - GeeksforGeeks (2024)

import pyttsx3

import speech_recognition as sr

import webbrowser

import datetime

import wikipedia

# this method is for taking the commands

# and recognizing the command from the

# speech_Recognition module we will use

# the recongizer method for recognizing

def takeCommand():

r = sr.Recognizer()

# from the speech_Recognition module

# we will use the Microphone module

# for listening the command

with sr.Microphone() as source:

print('Listening')

# seconds of non-speaking audio before

# a phrase is considered complete

r.pause_threshold = 0.7

audio = r.listen(source)

# Now we will be using the try and catch

# method so that if sound is recognized

# it is good else we will have exception

# handling

try:

print("Recognizing")

# for Listening the command in indian

# english we can also use 'hi-In'

# for hindi recognizing

Query = r.recognize_google(audio, language='en-in')

print("the command is printed=", Query)

except Exception as e:

print(e)

print("Say that again sir")

return "None"

return Query

def speak(audio):

engine = pyttsx3.init()

# getter method(gets the current value

# of engine property)

voices = engine.getProperty('voices')

# setter method .[0]=male voice and

# [1]=female voice in set Property.

engine.setProperty('voice', voices[0].id)

# Method for the speaking of the assistant

engine.say(audio)

# Blocks while processing all the currently

# queued commands

engine.runAndWait()

def tellDay():

# This function is for telling the

# day of the week

day = datetime.datetime.today().weekday() + 1

#this line tells us about the number

# that will help us in telling the day

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]

print(day_of_the_week)

speak("The day is " + day_of_the_week)

def tellTime():

# This method will give the time

time = str(datetime.datetime.now())

# the time will be displayed like

# this "2020-06-05 17:50:14.582630"

#nd then after slicing we can get time

print(time)

hour = time[11:13]

min = time[14:16]

speak(self, "The time is sir" + hour + "Hours and" + min + "Minutes")

def Hello():

# This function is for when the assistant

# is called it will say hello and then

# take query

speak("hello sir I am your desktop assistant. /

Tell me how may I help you")

def Take_query():

# calling the Hello function for

# making it more interactive

Hello()

# This loop is infinite as it will take

# our queries continuously until and unless

# we do not say bye to exit or terminate

# the program

while(True):

# taking the query and making it into

# lower case so that most of the times

# query matches and we get the perfect

# output

query = takeCommand().lower()

if "open geeksforgeeks" in query:

speak("Opening GeeksforGeeks ")

# in the open method we just to give the link

# of the website and it automatically open

# it in your default browser

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

# this will exit and terminate the program

elif "bye" in query:

speak("Bye. Check Out GFG for more exciting things")

exit()

elif "from wikipedia" in query:

# if any one wants to have a information

# from wikipedia

speak("Checking the wikipedia ")

query = query.replace("wikipedia", "")

# it will give the summary of 4 lines from

# wikipedia we can increase and decrease

# it also.

result = wikipedia.summary(query, sentences=4)

speak("According to wikipedia")

speak(result)

elif "tell me your name" in query:

speak("I am Jarvis. Your desktop Assistant")

if __name__ == '__main__':

# main method for executing

# the functions

Take_query()

Build a Virtual Assistant Using Python - GeeksforGeeks (2024)
Top Articles
Latest Posts
Article information

Author: Pres. Carey Rath

Last Updated:

Views: 5907

Rating: 4 / 5 (41 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Pres. Carey Rath

Birthday: 1997-03-06

Address: 14955 Ledner Trail, East Rodrickfort, NE 85127-8369

Phone: +18682428114917

Job: National Technology Representative

Hobby: Sand art, Drama, Web surfing, Cycling, Brazilian jiu-jitsu, Leather crafting, Creative writing

Introduction: My name is Pres. Carey Rath, I am a faithful, funny, vast, joyous, lively, brave, glamorous person who loves writing and wants to share my knowledge and understanding with you.