关于实时:Python中的实时离线语音识别

Realtime offline speech recognition in Python

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

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

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


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

麦克风识别Python Pocketsphinx

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

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

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

音频流Python上的Google流语音识别