Python中的Raspberry Pi异步/连续语音识别

Python中的Raspberry Pi异步/连续语音识别,python,asynchronous,raspberry-pi,speech-recognition,Python,Asynchronous,Raspberry Pi,Speech Recognition,我想用Python为Raspberry Pi创建一个语音识别脚本,需要一个异步/连续语音识别库。异步意味着我需要无休止地运行识别,直到语音匹配到一组单词,而无需任何键盘输入,然后向终端显示语音并重新启动识别。我已经看过PocketSphinx了,但在谷歌搜索了几个小时后,我没有发现任何关于它的异步识别 你知道有哪家图书馆能做到这一点吗?你可以在树莓皮上使用Pocketsphinx。您需要下载最新版本的5prealpha 它可以听多个关键短语。代码应该是这样的: import sys, os fr

我想用Python为Raspberry Pi创建一个语音识别脚本,需要一个异步/连续语音识别库。异步意味着我需要无休止地运行识别,直到语音匹配到一组单词,而无需任何键盘输入,然后向终端显示语音并重新启动识别。我已经看过PocketSphinx了,但在谷歌搜索了几个小时后,我没有发现任何关于它的异步识别


你知道有哪家图书馆能做到这一点吗?

你可以在树莓皮上使用Pocketsphinx。您需要下载最新版本的5prealpha

它可以听多个关键短语。代码应该是这样的:

import sys, os
from pocketsphinx import *
import pyaudio

modeldir = "../../../model"

# Create a decoder with certain model
config = Decoder.default_config()
config.set_string('-hmm', os.path.join(modeldir, 'en-us/en-us'))
config.set_string('-dict', os.path.join(modeldir, 'en-us/cmudict-en-us.dict'))
config.set_string('-kws', 'keyphrase.list')

p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=1024)
stream.start_stream()

# Process audio chunk by chunk. On keyword detected perform action and restart search
decoder = Decoder(config)
decoder.start_utt()
while True:
    buf = stream.read(1024)
    decoder.process_raw(buf, False, False)
    if decoder.hyp() != None:
        print "Detected keyword", decoder.hyp(), "restarting search"
        decoder.end_utt()
        decoder.start_utt()
keypharse.list
文件应该如下所示,每行一个短语加上阈值

open the door /1e-40/
close the door /1e-40/
how are you /1e-30/

必须为每个关键短语调整阈值,以平衡假警报和误检测。

好吧,您可以将Jasper的更改为其他内容。也许,甚至是一个空字符串。

你是说像Jasper?是的,但可能(如果可能)没有关键字(Jasper是项目中的关键字还是我把它弄混了),如果可能的话,如果没有互联网连接也能工作就好了,但不必了解更多。好吧,你可以将Jasper的更改为其他内容。也许,甚至是一个空字符串。谢谢!我要试试看!你只需要说一次Jasper的名字,所以不会有太大的不便,因为你仍然需要启动Pi并输入用户名和密码。就个人而言,我会坚持使用该名称,并占用额外的设置时间。你不是每次评论后都要说一次名称吗?不,每次会话只说一次。我明天会测试它,如果它有效,我会接受你的答案,好吗?谢谢你的回答,你真的帮助了我!:)贾斯珀是口袋狮身人面像更容易衍生出来的。