Jan-12-2022, 04:34 PM
Hello,
I am trying to add a wake word to my voice assistant script but I don't know where to add it or how to get it working properly.
I have created a variable name called
where 'baxter' will be used as the wake word.
The part I'm having trouble with is, where do I put a statement that allows the code to only listen when the wake word is said (and what statement do I use? Should it be a while or Boolean? )
I have this chunk of code here where I think the statement should go, but I don't know how/where to implement the wake word.
Any help is greatly appreciated.
Thanks in advance.
Here is the full code:
I am trying to add a wake word to my voice assistant script but I don't know where to add it or how to get it working properly.
I have created a variable name called
1 |
AI_Name = 'baxter' |
The part I'm having trouble with is, where do I put a statement that allows the code to only listen when the wake word is said (and what statement do I use? Should it be a while or Boolean? )
I have this chunk of code here where I think the statement should go, but I don't know how/where to implement the wake word.
1 2 3 4 5 6 |
def listenCommand(): command = 0 hear = sr.Recognizer() with sr.Microphone() as source: print ( "Listening..." ) audio = hear.listen(source) |
Thanks in advance.
Here is the full code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
#!/usr/bin/env python3 import json import random import datetime import operator import os import time from time import process_time import requests from bs4 import BeautifulSoup from Weather import * import wikipedia import wolframalpha import pyttsx3 import espeakng import speech_recognition as sr #------------------------------------------------------------------------------------- #Commander Name (You) and A.I Name #------------------------------------------------------------------------------------- Commander = "Commander" AI_Name = 'baxter' #------------------------------------------------------------------------------------- print ( "Initializing B.A.X.T.E.R..." ) def speak(text): mySpeaker = espeakng.Speaker() #mySpeaker.say('Initializing Baxter') def wishMe(): hour = int (datetime.datetime.now().hour) if hour> = 0 and hour< 12 : speak( "Good Morning" + Commander) print ( "Good Morning " + Commander) elif hour> = 12 and hour< 18 : speak( "Good Afternoon" + Commander) print ( "Good Afternoon " + Commander) else : speak( "Good Evening" + Commander) print ( "Good Evening " + Commander) speak( "How may I be of service?" ) print ( "How may I be of service?" ) #--------------------------- # Listens for commands through mic def listenCommand(): command = 0 hear = sr.Recognizer() with sr.Microphone() as source: print ( "Listening..." ) audio = hear.listen(source) #--------------------------- # Uses google API to listen -> STT (Speech To Text) try : print ( "Recognizing..." ) command = hear.recognize_google(audio, language = 'en-in' ) print ( f '{Commander} : {command}\n' ) except : pass return command #-------------------------------- speak( "Initializing Baxter.........." ) wishMe() def main(): command = listenCommand() command = str (command).lower() #------------------------------------------------------------------------------------- #Search Wikipedia (General Info) #------------------------------------------------------------------------------------- if ( 'weather' not in command): if ( 'who is' in command) or ( 'what is the' in command) or ( 'what is a' in command): if ( 'time' not in command): speak( 'Searching Wikipedia...' ) command = command.replace( "who is" ,"") command = command.replace( "what is the" ,"") command = command.replace( "what is a" ,"") results = wikipedia.summary(command, sentences = 2 ) print ( "Baxter:" ,results) return speak(results) #------------------------------------------------------------------------------------- #Search Wolfram Alpha (Math/Conversions, Definitions) #------------------------------------------------------------------------------------- elif ( 'calculate' in command) or ( 'what is' in command) or ( 'define' in command): speak( 'Searching Wolfram Alpha...' ) command = command.replace( "calculate" ,"") command = command.replace( "what is" ,"") command = command.replace( "define" ,"") # Wolframalpha App Id appId = 'JH9XHR-W9J76L7H5A' # Wolfram Instance client = wolframalpha.Client(appId) res = client.query(''.join(command)) results = next (res.results).text print ( "Baxter:" ,results) return speak(results) #------------------------------------------------------------------------------------- #Search News #------------------------------------------------------------------------------------- if ( 'news' in command): speak( 'Searching news networks...' ) command = command.replace( "news" ,"") url = 'https://www.google.com/search?q=windsor+news&client=firefox-b-d&source=lnms&tbm=nws&sa=X&ved=2ahUKEwjFr5SwoJb1AhXELs0KHdabBAEQ_AUoAXoECAEQAw&biw=1024&bih=486' results = requests.get(url) soup = BeautifulSoup(results.text, 'html.parser' ) headlines = soup.find( 'body' ).find_all( 'h3' ) for x in headlines: print ( "Baxter:" ,x.text.strip()) return speak(results) #------------------------------------------------------------------------------------- #Search Weather #------------------------------------------------------------------------------------- if ( 'weather' in command): if ( 'week' in command): speak( 'Searching weather networks...' ) command = command.replace( "weather for the week" ,"") #Call weather data for the week: displayWeeksWeatherData() else : speak( 'Searching weather networks...' ) command = command.replace( "weather" ,"") #Call weather data for today: displayWeatherData() #------------------------------------------------------------------------------------- #Tell Time #------------------------------------------------------------------------------------- elif ( 'time' in command): speak( 'Scanning local clock networks...' ) command = command.replace( "time" ,"") strTime = datetime.datetime.now().strftime( "%I:%M%P" ) speak( "The time is {strTime}" ) print ( "Baxter:" , "The time is" , strTime) #------------------------------------------------------------------------------------- #Enter the Matrix (Easter Egg) #------------------------------------------------------------------------------------- elif ( 'matrix' in command): speak( 'Entering the matrix...' ) print ( "Baxter:" , "Taking the red pill..." ) command = command.replace( "matrix" ,"") time.sleep( 2 ) os.system( "cmatrix" ) #------------------------------------------------------------------------------------- #------------------------------------------------------------------------------------- #Stop Program/Script Command #------------------------------------------------------------------------------------- elif ( 'stop' in command) or ( 'shutdown' in command) or ( 'quit' in command): speak( "Shutting Down..." ) return exit() else : return 0 #------------------------------------------------------------------------------------- while True : main() |