-
-
Save GGulati/1ebaeaaa7f7408647fef to your computer and use it in GitHub Desktop.
import speech_recognition | |
import pyttsx | |
speech_engine = pyttsx.init('sapi5') # see http://pyttsx.readthedocs.org/en/latest/engine.html#pyttsx.init | |
speech_engine.setProperty('rate', 150) | |
def speak(text): | |
speech_engine.say(text) | |
speech_engine.runAndWait() | |
recognizer = speech_recognition.Recognizer() | |
def listen(): | |
with speech_recognition.Microphone() as source: | |
recognizer.adjust_for_ambient_noise(source) | |
audio = recognizer.listen(source) | |
try: | |
return recognizer.recognize_sphinx(audio) | |
# or: return recognizer.recognize_google(audio) | |
except speech_recognition.UnknownValueError: | |
print("Could not understand audio") | |
except speech_recognition.RequestError as e: | |
print("Recog Error; {0}".format(e)) | |
return "" | |
speak("Say something!") | |
speak("I heard you say " + listen()) |
I get the following output on the terminal and the prompter stops after 'i'.
ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
What should I do to correct this?
When iḿ running the code on my Ubuntu I am getting this output:
Traceback (most recent call last): File "pycode/jarvis.py", line 4, in <module> speech_engine = pyttsx.init('sapi5') # see http://pyttsx.readthedocs.org/en/latest/engine.html#pyttsx.init File "/usr/local/lib/python2.7/dist-packages/pyttsx/__init__.py", line 39, in init eng = Engine(driverName, debug) File "/usr/local/lib/python2.7/dist-packages/pyttsx/engine.py", line 45, in __init__ self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug) File "/usr/local/lib/python2.7/dist-packages/pyttsx/driver.py", line 64, in __init__ self._module = __import__(name, globals(), locals(), [driverName]) File "/usr/local/lib/python2.7/dist-packages/pyttsx/drivers/sapi5.py", line 19, in <module> import win32com.client ImportError: No module named win32com.client
Why is it trying to do import win32com.client? I am using Ubuntu..
Update
Managed to make it work by removing sapi5 from pyttsx('sapi5')
But after that I got @husanin-ahmad error, I managed to get rid of the bit_audio errors by removing bluez-alsa package.
I'm still working on the unable to open slave error
Same Error as @husanin-ahmad .Kindly Guide
i thought this code running only in windows,because it need win32com.client,or any win32com.client for linux ?
look into the documentation of pyttsx and choose the correct engine corresponding to linux. no need of win32com client. hope it hrlps @kunci115
i think the engine is espeak or you can left that blank like pyttsx.init()
i have installed speech recognition but still i get
Traceback (most recent call last):
File "Jarvis.py", line 1, in
import SpeechRecognition
ImportError: No module named SpeechRecognition
it does not record what i said
The second speak call is not working properly. After saying "I" it stopped saying.