【问题标题】:Error During Speech-Recognition Safety Loop语音识别安全循环中的错误
【发布时间】:2019-08-18 22:50:43
【问题描述】:

我正在使用 PocketSphinx 语音到文本引擎来执行某项任务(我认为添加并不重要)。

我希望它在我说某些词时做出反应(它确实如此),但是,我想创建一种“安全循环”,我将程序放入一个循环中,只有当我说它时它才能退出另一个词,以防万一它不小心让我说出最初的词并在我不想要的时候执行动作。不过,我的循环有问题。循环在函数的末尾,但它是一个循环函数,所以函数会不断被调用,直到我物理关闭它。

def listen(): #Definition of listen() function.
    wait = 0
    print ("Listening!")
    for word in speech:
        word_string = str(word)
        if (word_string == "START"): #Listens for the word "Start."
            print("Primary Function Executed.")
        if (word_string == "REST"): #Listens for the word "Rest."
            print ("In loop")
            wait = 1
            while (wait == 1): #Safety loop.
                for cap in speech:
                    cap_string = str(cap)
                    if (cap_string == "OKAY"):
                        listen()

所以,我已经尝试了这个循环(最后 8 行),而没有将变量“wait”重新分配给值“1”。但是,它只是忽略了循环,我可以说“开始”或“休息”,只要说出这些话,它就会执行这两个功能,这是我不想要的。我想说“休息”进入循环,然后“好的”退出循环,但是当我说“休息”时,我得到另一个窗口(这是视觉工作室 2019 顺便说一句),称为中断模式,并且它说

“没有兼容的代码在运行。选定的调试引擎不支持在当前线程上执行的任何代码(例如,只有本机运行时代码正在执行)。”

还有另一个窗口,标题为“异常未处理”,内容如下:

“Ad___enter__returned-1”。

我知道问题出在循环,因为如果我忽略循环,它会运行顺利,并且还会打印“In loop”,所以我知道“if”语句也可以正常运行。

【问题讨论】:

    标签: python speech-recognition speech-to-text pocketsphinx


    【解决方案1】:

    Ad___enter__returned-1

    是解决问题的关键。它告诉你,pocketsphinx 引擎由于某种原因崩溃了。您可以查看日志找到更多详细信息(默认情况下应转到 stderr)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多