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

Creating an array of words from a stream of audio from speech-recognition

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

比较我的工作和你的工作,我会将 try 块放在 of/on 与 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) package, which uses the NLTK platform (http://www.nltk.org/) 。您可能对解析结果感兴趣。

我使用了 multi-threading 并将每个线程可以录制的音频量限制为 5 秒,以便 Google 可以处理翻译的长度。当一个线程完成监听后,它会允许一个新的线程进入,然后它会进行翻译,依此类推。