In this article i will explain you step by step how you can create voice assistant using python
Step 1: Install necessary python library which gonna help in creating voice assistant in python
- Install pyttsx3 this is text to speech conversion library in python
pip install pyttsx3
- Install SpeechRecognition library this library will recognize our voice and convert to text
pip install SpeechRecognition
- Install webbrowser library this library helps in searching from google
pip install webbrowser
- Install pyaudio this library is dependency of SpeechRecognition API
#To install on linux ubuntu
#To install pyaudio if you are using linux ubuntu run this command
sudo apt-get install portaudio19-dev python-pyaudio
#After running above command run the following command
sudo pip3 install PyAudio
# To install on windows and macos user
pip3 install pyaudio
Step 2: Once all the library installed successfully copy paste following code
-
Importing python library and initilizing pytsx3
#importing all the required library import pyttsx3 import speech_recognition as sr import webbrowser #initializing pyttsx3 and setting voice language as english engine = pyttsx3.init() voices = engine.getProperty('voices') en_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0" engine.setProperty('voice', en_voice_id)
-
Defining function which we would call on the basis of required work to be done
#this function would turn text to audio using pyAudio engine which we have initialized above def audioOutput(audio): engine.say(audio) engine.runAndWait() #this function would take audio input and convert it to text and return that text def audioInput(): r = sr.Recognizer() with sr.Microphone() as source: print("Listening...") r.pause_threshold = 1 audio = r.listen(source) try: print("Recognizing...") query = r.recognize_google(audio, language ='en-in') print(f"User said: {query}\n") except Exception as e: print(e) print("Unable to Recognize your voice.") return "None" return query #this function would be called first to welcome and greet user def greetUser(): audioOutput("Hi, I am your Assistant, How may i help you today?") if __name__ == '__main__': greetUser() while True: query = audioInput().lower() if 'search on google' in query speak("Searching on google\n") webbrowser.open("google.com")