Могу ли я контролировать время начала и окончания, когда использую распознавание речи в python? - PullRequest
0 голосов
/ 18 мая 2019

Я сделал кодирование, как показано ниже. Однако я хочу знать, есть ли какие-то способы контролировать продолжительность записи. На самом деле, я хочу иметь программу с кнопками начала и окончания, чтобы я мог управлять записью. Я знаю, что это как элементарный вопрос. но мне действительно нужно это решить. помогите мне ~ как мне компенсировать эту проблему?

import speech_recognition as sr

r = sr.Recognizer()
mic = sr.Microphone()

show = input("enter text: ")

print("Read text\a")

with mic as source:
    audio = r.listen(source)

print("recorded\a")
print('Result: ', r.recognize_google(audio, language='ko-KR'))

1 Ответ

0 голосов
/ 19 мая 2019

Согласно документу recognizer_instance.listen это блокирующий вызов (т. Е. Программа не продолжается до завершения), и единственный способ остановить запись - это не говорить recognizer_instance.pause_threshold ( 0,8 с по умолчанию ).

Чтобы иметь возможность делать что-либо еще, когда запись активна, вам нужно использовать recognizer_instance.listen_in_background. Он по-прежнему использует ту же логику распознавания сигнала, но записывает фразы в цикле до тех пор, пока вы не скажете ему остановиться. Это означает, что логика распознавания сигнала должна быть достаточно надежной для всех практических целей. Если это не помогло в вашем случае, вам, вероятно, нужно настроить начальный energy_threshold.

FWIW, вы можете записать вручную с необработанными pyaudio, а затем использовать полученный файл или необработанные данные для построения AudioData.

...