0

コードの束であなたを退屈させるのではなく、以下でそれを要約します。OSX Sierra Nsspeechrecognizerの問題

アプリケーションデリゲートでは、nsspeechrecognizerを作成してデリゲートを設定し、コマンドを追加してリスニングを開始します。

スピーチレコグナイザは、最初にコマンドを認識し、リスニングを止めない限り継続します。

ストップストリステニングを呼び出すことによって音声認識装置を停止すると、その後のリスン開始呼び出しが行われますが、以前に認識装置であったコマンドは認識されません。

私はコマンド配列が同じままであることを確認しました。それは、 "それぞれのコマンドが一度動作する"というものです。

もう一度コマンドを認識させる唯一の方法は、音声認識cartore.brokerプロセスを強制終了することです。私のアプリをリニューアルすることはこれをしません。

これはエルキャップの問題ではありませんでした。シエラとのこのような奇妙な体験があります。

didrecognizeコマンドデリゲートで
Let speechRecognizer = NSSpeechRecognizer() 
speechRecognizer.delegate = self 
speechRecognizer.listenInBackgroundOnly = false 
speechRecognizer.commands = cmdArray 
speechRecognizer.startListening() 

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

呼び出しが再び聴き始めるもう一つの方法。すでに認識されているコマンドを除き、スタートリスニングが.....と呼ばれた後にコマンドが認識されます。

これは、私は、この問題を解決しませんでしたがシエラ・マシン

答えて

1

上のXcode 8にSWIFT 2.3を使用してコンパイルしています。私はすべてのコマンドを "ニックネームのために何かをする"ように短縮することで問題を回避することができました。

このような問題は解決されていません。私がXcodeに入れて出力した "ブローカー"は、nsspeechrecognizerが "格付け"のレコンニケーションであるかもしれないことを私に示唆しています。

関連する問題