Python中的实时离线语音识别

Eli*_*N-d 7 python speech-recognition real-time

我已经在一个月的大部分时间里使用Python语音识别,成为一个类似JARVIS的助手.我已经将语音识别模块与Google Speech API和Pocketsphinx一起使用,我直接使用Pocketsphinx而没有其他模块.虽然识别是准确的,但我很难处理这些软件包处理语音所花费的大量时间.它们的工作方式是从一个静音点录制到另一个点,然后将录音传递给STT引擎.在处理录音时,没有其他声音可以录制用于识别,如果我试图串行发出多个复杂命令,这可能是一个问题.

在查看Google智能助理语音识别,Alexa的语音识别或Mac OS High Sierra的离线识别时,我看到单词被识别出来,因为我说它们没有任何停顿记录.我已经看到这个叫做实时识别,流识别和逐字识别.有没有办法在Python中执行此操作,最好是在不使用客户端的情况下离线?

我尝试(失败)通过更改SpeechRecognition识别器的暂停阈值,发言权阈值和非发言阈值来实现此目的,但这只会导致音频奇怪地分段,并且在每次识别之后仍然需要一秒钟才能再次录制.

Bud*_*hen 15

首先,有一个名为 VOSK 的 Python 库。要将其安装在您的计算机上,请输入以下命令

\n
pip3 install vosk\n
Run Code Online (Sandbox Code Playgroud)\n

欲了解更多详情,请访问:

\n

https://alphacephei.com/vosk/install

\n

现在我们必须下载该模型,请访问此网站并选择您喜欢的模型并下载:

\n

https://alphacephei.com/vosk/models\n这里我使用“ vosk-model-small-en-us-0.15”作为我的模型

\n

下载后,你可以看到它是一个压缩文件,将其解压到你的根文件夹中,就像这样

\n
speech-recognition/\n    \xe2\x94\x9c\xe2\x94\x80 vosk-model-small-en-us-0.15 ( Unzip follder ) \n    \xe2\x94\x9c\xe2\x94\x80 offline-speech-recognition.py ( python file )\n
Run Code Online (Sandbox Code Playgroud)\n

这是完整的代码:

\n
pip3 install vosk\n
Run Code Online (Sandbox Code Playgroud)\n

有关更多详细信息,您可以阅读我写的这篇文章:\nhttps://buddhi-ashen-dev.vercel.app/posts/offline-speech-recognition

\n


Nik*_*rev 5

Pocketsphinx 可以处理流,见这里

来自麦克风的 Python 口袋狮身人面像识别

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

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

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

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