Voice Assistant using python
Speech recognition is the process of turning spoken words into text. It is a key part of any voice assistant. In Python the SpeechRecognition module helps us do this by capturing audio and converting it to text. In this guide we’ll create a basic voice assistant using Python.
Step 1: Install Required Libraries
Run the following command in the command prompt to install all necessary libraries:
!pip install SpeechRecognition pyttsx3 wikipedia pyjokes
Step 2: Import All Necessary Modules
After installing we import all the libraries we need like pyttsx3 for speaking out loud, datetime to fetch the current time, wikipedia to search and fetch content and many more.
import speech_recognition as sr
import pyttsx3
import datetime
import wikipedia
import webbrowser
import os
import pyjokes
Step 3: Initialize the Speech Engine
We create a function called speak that accepts a string as input. This function prints and speaks input.
def speak(text):
print(f"Assistant: {text}")
try:
engine = pyttsx3.init()
engine.say(text)
engine.runAndWait()
except:
print("Speech output not supported in Colab.")
Step 4: Wish the User
We then create a wish_user() function to greet the user based on the current time like:
- If it’s before 12 PM, it says “Good Morning”.
- If it’s before 6 PM, it says “Good Afternoon”.
- Otherwise it says “Good Evening”.
This makes the assistant feel more natural and friendly. It also introduces itself and asks how it can help.
def wish_user():
hour = int(datetime.datetime.now().hour)
if hour < 12:
speak("Good Morning!")
elif hour < 18:
speak("Good Afternoon!")
else:
speak("Good Evening!")
speak("I am your voice assistant. How can I help you today?")
Step 5: Simulate User Voice Command
Normally you would talk to the assistant using your microphone. But since Google Colab doesn’t support voice input we use this by creating a list of commands in code. These are just sample phrases like:
"what is python wikipedia"
"open youtube"
"what's the time"
"exit"
This list helps us test how assistant will respond without needing a real voice input.
def take_command():
return input("You (type your command): ").lower()
Step 6: Main Assistant Function
The run_assistant loops through the list of commands and checks what each command is asking for.
def run_assistant():
wish_user()
while True:
query = take_command()
if 'wikipedia' in query:
speak("Searching Wikipedia...")
query = query.replace("wikipedia", "")
try:
result = wikipedia.summary(query, sentences=2)
speak("According to Wikipedia:")
speak(result)
except:
speak("Sorry, I couldn't find anything.")
elif 'open youtube' in query:
speak("Opening YouTube...")
webbrowser.open("https://www.youtube.com")
elif 'open google' in query:
speak("Opening Google...")
webbrowser.open("https://www.google.com")
elif 'time' in query:
strTime = datetime.datetime.now().strftime("%H:%M:%S")
speak(f"The current time is {strTime}")
elif 'joke' in query:
joke = pyjokes.get_joke()
speak(joke)
elif 'exit' in query or 'bye' in query:
speak("Goodbye! Have a nice day!")
break
else:
speak("Sorry, I didn't understand that. Try again.")
Step 7: Run the Assistant
Finally we call the run_assistant() function to start everything. It first greets the user then goes through each command and performs the correct action.
run_assistant()
Output:

This assistant can perform different tasks based on voice commands, such as telling the time, opening websites, sending emails, telling jokes, search on Wikipedia, open websites and many more.
You can download the full code from here