0

而不是给你一堆代码,我会在下面总结它。OSX Sierra Nsspeechrecognizer问题

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

语音辨识器可识别的命令在第一时间,并继续只要我不从听制止。

一旦我通过调用的stopListening停止语音识别,后续调用开始收听由但没有先前已识别的命令被视为第二次。我已经确认命令数组保持不变。它是一种“每个命令都有效”的类型的东西。

让命令再次被识别的唯一方法是杀掉语音识别器。经纪过程。重新启动我的应用程序不会这样做。

这不是el cap上的问题。有没有人经历过与塞拉利昂这样的怪事。

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() 
} 

另一种方法调用开始再次聆听。除了已识别的命令之外,命令在启动侦听之后被识别。

这是编译塞拉利昂机

回答

1

使用上的Xcode 8 SWIFT 2.3虽然我没有解决这个问题。我能够通过缩短所有命令来为“(昵称)”从“为(firstAndLastName)做些事情”来解决此问题。

问题由此解决是不合逻辑的。我在Xcode中放置并输出的“经纪人”现在向我表明,nsspeechrecognizer可能是“分级”识别。