Я пытаюсь научиться распознавать речь для программы, которую я создаю. В настоящее время он постоянно слушает и отображает то, что я говорю.
def record():
repeat = True
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source)
while repeat:
audio = r.listen(source)
user = r.recognize_google(audio, language= 'en-US', show_all = True)
print(str(user))
Код работает, но иногда, когда он меня не понимает или я создаю звуковой эффект (кашляю или чихаю), он выводит с этой ошибкой:
Traceback (most recent call last):
File "main.py", line 57, in <module>
record()
File "main.py", line 24, in record
user = r.recognize_google(audio, language= 'en-US')
File "C:\Users\vorte\AppData\Local\Programs\Python\Python38-32\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
Я исправил это, изменив user = r.recognize_google(audio, language= 'en-US')
на user = r.recognize_google(audio, language= 'en-US', show_all = True)
Но теперь проблема в том, что я получаю смешанную строку кортежа, списка, словаря с ненужной информацией, которая отображает то, что, по его мнению, я сказал + все альтернативы.
{'alternative': [{'transcript': 'Sun even working anymore', 'confidence': 0.88974512}, {'transcript': 'son even working anymore'}, {'transcript': 'some even working anymore'}, {'transcript': 'send even working anymore'}, {'transcript': 'Saint even working anymore'}], 'final': True}
Мой вопрос в том, есть ли какой-либо способ вытащить или получить стенограмму с максимальной уверенностью, пока включен show_all, потому что, если я поверну его при выключенном состоянии снова появятся ошибки.