Python Распознавание речи, как извлечь только основную стенограмму с включенным show_all - PullRequest
0 голосов
/ 30 мая 2020

Я пытаюсь научиться распознавать речь для программы, которую я создаю. В настоящее время он постоянно слушает и отображает то, что я говорю.


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, потому что, если я поверну его при выключенном состоянии снова появятся ошибки.

...