而不是給你一堆代碼,我會在下面總結它。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()
}
另一種方法調用開始再次聆聽。除了已識別的命令之外,命令在啓動偵聽之後被識別。
這是編譯塞拉利昂機