繁体   English   中英

OSX Sierra Nsspeechrecognizer问题

[英]OSX Sierra Nsspeechrecognizer issues

与其给您带来一堆代码,不如在下面总结。

在应用程序委托中,我创建一个nsspeechrecognizer来设置其委托,添加命令,然后开始监听。

语音识别器会首次识别该命令,并且只要我不停止收听就可以继续。

一旦我通过调用stoplistening停止了语音识别器,便会进行随后的通话以开始收听,但是不会再次识别以前被识别的命令。

我已经确认命令数组保持不变。 是一种“每个命令一次起作用”的东西。

使命令再次被识别的唯一方法是终止语音识别器core.broker进程。 重新启动我的应用程序不会执行此操作。

这不是El Cap的问题。 塞拉(Sierra)有这样的经历。

Let speechRecognizer = NSSpeechRecognizer()
speechRecognizer.delegate = self
speechRecognizer.listenInBackgroundOnly = false
speechRecognizer.commands = cmdArray
speechRecognizer.startListening()

在didrecognize命令委托中

If cmd== specificCommand {
     Print("heard")
     // commenting out the following line allows recognizer to continue functioning correctly
     speechRecognizer.stopListening()
}

另一个方法调用再次开始监听。 并且在开始侦听之后将识别命令。.....已经识别的命令除外。

这是在Sierra机器上的Xcode 8上使用swift 2.3编译的

虽然我没有解决这个问题。 我能够通过将所有命令从“为(firstAndLastName)做某事”缩短所有命令来解决此问题。

这样解决问题是不合逻辑的。 我在Xcode中放入并输出的“经纪人”现在向我暗示nsspeechrecognizer可能正在“分级”确认。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM