Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Speech Recognition UnknownValueError

Tags:

python

I have tried it on python shell 3.5.8

import speech_recognition as sr
import webbrowser as wb

chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe 
%s'


# obtain audio from the microphone  
r = sr.Recognizer()  
with sr.Microphone() as source:  
   print("Please wait. Calibrating microphone...")  
   # listen for 5 seconds and create the ambient noise energy level  
   r.adjust_for_ambient_noise(source, duration=5)  
   print("Say something!")  
   audio = r.listen(source)  

# recognize speech 
try:
    text = r.recognize_google(audio)
    print("I thinks you said '" + r.recognize_google(audio) + "'")

    f_text='https://www.google.co.in/search?q=' + text
    wb.get(chrome_path).open(f_text)
#except sr.UnknownValueError:  
#  print("I could not understand audio")  
except sr.RequestError as e:  
   print("error; {0}".format(e))

except Exception as e:
   print (e)
File "C:\Users\manoj\AppData\Local\Programs\Python\Python35\lib\site- 
packages\speech_recognition\__init__.py", line 858, in recognize_google
if not isinstance(actual_result, dict) or 
len(actual_result.get("alternative", [])) == 0: raise UnknownValueError()
speech_recognition.UnknownValueError
like image 407
manoj Avatar asked May 29 '19 11:05

manoj


2 Answers

try this out

try:
    text = r.recognize_google(audio, language = 'en-IN', show_all = True )
    print("I thinks you said '" + r.recognize_google(audio) + "'")

    f_text='https://www.google.co.in/search?q=' + text
    wb.get(chrome_path).open(f_text)

I think this is happen because of noise interrupts algorithm. due to noise it gives UnknownValueError

like image 137
Urvish Talaviya Avatar answered Oct 17 '22 19:10

Urvish Talaviya


Try below code.

import speech_recognition as sr
from os import walk

r = sr.Recognizer()
#optional
#r.energy_threshold = 300

def startConvertion(path = 'file.wav', lang = 'en-IN'): 
    with sr.AudioFile(path) as source:
        #print('Fetching File')
        audio_file = r.record(source)
        print(r.recognize_google(audio_file, language=lang))
startConvertion()
like image 31
marcin2x4 Avatar answered Oct 17 '22 19:10

marcin2x4