所以我现在正在使用python库' SpeechRecognition'为了从我的麦克风收到的音频暂停之间获取短语。
然而,我需要的是能够在我不断说话时打印每个单词。但我不知道该怎么做。
我最终会达到分析一定数量的单词以寻找关键短语的程度。我的计划是使用多线程来定期分析代码。
这是我当前的代码
import string
import threading
import speech_recognition as sr
from threading import Thread
# obtain audio
def voiceRecognition():
while True:
audioText = ''
r = sr.Recognizer()
with sr.Microphone() as source:
audio = r.listen(source)
try:
audioText = r.recognize_google(audio)
print(audioText)
except sr.UnknownValueError:
pass
if __name__ == '__main__':
Thread(target = voiceRecognition).start()
答案 0 :(得分:0)
将我的工作与您所拥有的工作进行比较,我会将try块放在/ {与with sr.Microphone()...
块相同的级别上,如下所示
with sr.Microphone() as source:
audio = r.listen(source)
try:
audioText = r.recognize_google(audio)
print(audioText)
此外,可能在问题范围之外,但我使用TextBlob(https://pypi.python.org/pypi/textblob)包,它使用NLTK平台(http://www.nltk.org/)。您可能对解析结果感兴趣。
答案 1 :(得分:0)
我使用多线程并将每个线程可录制的音频数量限制为5秒,这样Google就可以处理翻译的长度。当一个线程完成监听时,它将允许一个新线程进入,然后它将进行翻译,依此类推。