而不是给你一堆代码,我会在下面总结它。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()
}
另一种方法调用开始再次聆听。除了已识别的命令之外,命令在启动侦听之后被识别。
这是编译塞拉利昂机