Open In App

Python - Get Today's Current Day using Speech Recognition

Last Updated : 09 Aug, 2021
Comments
Improve
Suggest changes
Like Article
Like
Report

We often don't remember the day of the date due to our load of work we are doing. So, here is a Python program with the help of which we can find the day of the date with just a simple chat with our laptop or mobile.

Modules Needed

  • DateTime: This is a Library in Python with the help of which we can manipulate the date and time. It comes preinstalled with python so we don't have to install.
  • pyttsx3: This is text to speech conversion library. It helps in communicating with the user. This module does not come built-in with Python. To install it type the below command in the terminal.
pip install pyttsx3
  • SpeechRecognition: It helps in Speech Recognition. Speech recognition is the process of converting audio into text. This module does not come built-in with Python. To install it type the below command in the terminal.
pip install SpeechRecognition

Now Let's Code The program for telling date with the help of Speech Recognition.

Step 1:  Make the method for taking the commands. So that our program can take our commands.

Python3
import datetime
import pyttsx3
import speech_recognition as sr


def take_commands():
    
    # Making the use of Recognizer and Microphone
    # Method from Speech Recognition for taking
    # commands
    r = sr.Recognizer()
    
    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)
        try:
            print("Recognizing")
            
            # for listening the command in indian english
            Query = r.recognize_google(audio, language='en-in')
            
            # for printing the query or the command that we give
            print("the query is printed='", Query, "'")
        except Exception as e:
            
            # this method is for handling the exception 
            # and so that assistant can ask for telling 
            # again the command
            print(e)  
            print("Say that again sir")
            return "None"
        
    return Query

 
 

Step 2: Make the Speak method so that our Program can speak to us.

Python3
def Speak(audio):
    
    # initial constructor of pyttsx3
    engine = pyttsx3.init()
    
    # getter and setter method
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[1].id)
    engine.say(audio)
    engine.runAndWait()

Step 3: Tell the day method

Python3
def tellDay():
    
    # the weekday method is a method from datetime
    # library which helps us to an integer 
    # corresponding to the day of the week
    # this dictionary will help us to map the
    # integer with the day and we will check for
    # the condition and if the condition is true
    # it will return the day
    day = datetime.datetime.today().weekday() + 1
    
    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)

 
 

Step 4: The main method which will help us to execute the program

Python3
if __name__ == '__main__': 
    command=take_commands()
    
    if "day" in command:
        tellDay()

 
 

Whole Program:

Python3
import datetime
import pyttsx3
import speech_recognition as sr


def take_commands():
    
    # Making the use of Recognizer and Microphone
    # Method from Speech Recognition for taking
    # commands
    r = sr.Recognizer()
    
    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)
        try:
            print("Recognizing")
            
            # for listening the command in indian english
            Query = r.recognize_google(audio, language='en-in')
            
            # for printing the query or the command that we give
            print("the query is printed='", Query, "'")
        except Exception as e:
            
            # this method is for handling the exception 
            # and so that assistant can ask for telling 
            # again the command
            print(e)  
            print("Say that again sir")
            return "None"
        
    return Query

def Speak(audio):
    
    # initial constructor of pyttsx3
    engine = pyttsx3.init()
    
    # getter and setter method
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[1].id)
    engine.say(audio)
    engine.runAndWait()

def tellDay():
    
    # the weekday method is a method from datetime
    # library which helps us to an integer 
    # corresponding to the day of the week
    # this dictionary will help us to map the
    # integer with the day and we will check for
    # the condition and if the condition is true
    # it will return the day
    day = datetime.datetime.today().weekday() + 1
    
    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)

# Driver Code
if __name__ == '__main__': 
    command=take_commands()
    
    if "day" in command:
        tellDay()

Output:

Listening
Recognizing
the query is printed=' today's day '
Wednesday

Note: A voice generated output is also created.


 


Next Article
Practice Tags :

Similar Reads

  翻译: