So I did
pip install espeakng
and got it to install successfully.
But when I run my code I get this error:
Error:
FileNotFoundError: [WinError 2] The system cannot find the file specified
Any way I can fix this?
This is the full error message:
Error:
Traceback (most recent call last):
File "C:\Users\BX-PC\Downloads\BAXTER\BAXTER.py", line 63, in <module>
wishMe()
File "C:\Users\BX-PC\Downloads\BAXTER\BAXTER.py", line 41, in wishMe
speak("Good Evening" + Commander)
File "C:\Users\BX-PC\Downloads\BAXTER\BAXTER.py", line 31, in speak
mySpeaker.say('Initializing Baxter')
File "C:\Users\BX-PC\AppData\Local\Programs\Python\Python39\lib\site-packages\espeakng\__init__.py", line 92, in say
self.prevproc = subprocess.Popen(cmd,
File "C:\Users\BX-PC\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 951, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\BX-PC\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 1420, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified
My full script
#!/usr/bin/env python3
import json
import random
import datetime
import operator
import os
import time
import sys
import requests
from bs4 import BeautifulSoup
from Weather import *
import wikipedia
import wolframalpha
import pyttsx3
import espeakng
import speech_recognition as sr
from Animations import startupAnimation
#-------------------------------------------------------------------------------------
#Commander Name (You) and A.I Name
#-------------------------------------------------------------------------------------
Commander = "Commander"
AI_Name = 'Baxter'
#-------------------------------------------------------------------------------------
def speak(text):
##I put something here because I didn't want to delete this function
#mySpeaker = "Na" #Usless variable (Dummy variable so I don't get errors)
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)
elif hour>=12 and hour<18:
speak("Good Afternoon" + Commander)
else:
speak("Good Evening" + Commander)
def listenCommand():
command=0
hear = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
audio = hear.listen(source)
#---------------------------
# Uses google API to listen
try:
print("Recognizing...")
command = hear.recognize_google(audio, language='en-in')
print(f'{Commander} : {command}\n')
#--------------------------------
except:
pass
return command
wishMe()
speak("How may I be of service?")
#Initiate Start Up Animation
#startupAnimation()
while True:
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) or ("what is" in command):
if ('time' not in command):
if ('news' not in command):
speak('Searching Wikipedia...')
command = command.replace("who is","")
command = command.replace("what is the","")
command = command.replace("what is a","")
command = command.replace("what is","")
results = wikipedia.summary(command, sentences = 2)
#----------------------
#Auto typing animation:
print("Baxter: ", end="")
for i in results:
sys.stdout.write(i)
sys.stdout.flush()
time.sleep(0.05)
print("\n")
#----------------------
speak(results)
#-------------------------------------------------------------------------------------
#Search Wolfram Alpha (Math/Conversions, Definitions)
#-------------------------------------------------------------------------------------
if ('weather' not in command):
if ('news' not in command):
if ('calculate' in command) or ("what's" in command) or ('define' in command):
speak('Searching Wolfram Alpha...')
command = command.replace("calculate","")
command = command.replace("what's","")
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
#----------------------
#Auto typing animation:
print("Baxter: ", end="")
for i in results:
sys.stdout.write(i)
sys.stdout.flush()
time.sleep(0.05)
print("\n")
#----------------------
speak(results)
#-------------------------------------------------------------------------------------
#Search News
#-------------------------------------------------------------------------------------
if ('news' in command):
speak('Searching news networks...')
command = command.replace("news","")
#Gets the news headlines from this url:
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())
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...')
command = command.replace("matrix","")
response = "Taking the red pill..."
#----------------------
#Auto typing animation:
print("Baxter: ", end="")
for i in response:
sys.stdout.write(i)
sys.stdout.flush()
time.sleep(0.2)
print("\n")
#----------------------
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...")
response = "Terminating program..."
#----------------------
#Auto typing animation:
print("Baxter: ", end="")
for i in response:
sys.stdout.write(i)
sys.stdout.flush()
time.sleep(0.2)
print("\n")
#----------------------
exit()
#-------------------------------------------------------------------------------------