从语音识别的音频流中创建单词数组
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 可以处理翻译的长度。当一个线程完成监听后,它会允许一个新的线程进入,然后它会进行翻译,依此类推。
所以我目前正在使用 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 可以处理翻译的长度。当一个线程完成监听后,它会允许一个新的线程进入,然后它会进行翻译,依此类推。