Python中的实时离线语音识别

时间:2018-07-25 18:41:14

标签: python real-time speech-recognition

我已经使用Python语音识别近一个月了,成为了一个类似于JARVIS的助手。我已经将语音识别模块与Google Speech API和Pocketsphinx一起使用,并且我直接在没有其他模块的情况下使用了Pocketsphinx。尽管识别是准确的,但我很难处理这些程序包处理语音所花费的大量时间。他们似乎工作的方式是从一个静默点录制到另一个静默点,然后将记录传递给STT引擎。在处理录音时,无法录制其他声音以进行识别,如果我要连续发出多个复杂的命令,这可能是个问题。

在查看Google Assistant语音识别,Alexa的语音识别或Mac OS High Sierra的脱机识别时,我看到的单词被识别为是我说的,在录音中没有任何暂停。我已经看到了这种称为实时识别,流识别和逐词识别的方法。有什么方法可以在Python中做到这一点,最好是不使用客户端就可以离线吗?

我尝试(未成功)通过更改SpeechRecognition识别器的暂停阈值,语音阈值和非语音阈值来完成此操作,但这只是导致音频发生奇怪的分割,每次识别后仍需要一秒钟才能录制再次。

1 个答案:

答案 0 :(得分:2)

Pocketsphinx可以处理流,请参见此处

Python pocketsphinx recognition from the microphone

Kaldi也可以处理流(比Pocketsphinx更准确)

https://github.com/alphacep/kaldi-websocket-python/blob/master/test_local.py

Google Speech API也可以处理流,请参见此处:

Google Streaming Speech Recognition on an Audio Stream Python