从语音识别的音频流中创建单词数组

时间:2018-01-25 02:28:44

标签: python speech-recognition pyaudio

所以我现在正在使用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()

2 个答案:

答案 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就可以处理翻译的长度。当一个线程完成监听时,它将允许一个新线程进入,然后它将进行翻译,依此类推。