0

私はSDKを使用しているため、ネットワークがない場合に自分の声を認識する音声認識アプリケーションを作成していますOpenEars。私はそれのサンプル コードを取得し、同様のサンプル コードのアプリを作成しましたが、私のコードではopenearsEventDelegateメソッドが呼び出されません。私はプロトコルを採用し<openEarsEventObserverDelegate> 、私のviewDidLoad方法で設定しopenEarseventObserver.delegate=selfました。

何か不足している場合はご案内ください。ありがとうございました。

4

2 に答える 2

1

これ以上のコードがなければ、あなたの問題が何であるかを正確に言うのは難しいですが、ここに私が試してみたいことがいくつかあります:

デリゲートを設定するときは、OpenEarsEventObserver オブジェクトが nil でないことを確認してください。

        OpenEarsEventsObserver* openEarsEventsObserver = [[OpenEarsEventsObserver alloc] init];
        [openEarsEventsObserver setDelegate:self];

あなたの pocketphinxController が nil ではなく、正しくリッスンを開始していることを確認してください。これには、遅延インスタンス化を使用します。

   - (PocketsphinxController *)pocketsphinxController {
      if (_pocketsphinxController == nil) {
          _pocketsphinxController = [[PocketsphinxController alloc] init];
          }
     return _pocketsphinxController;
    }

次に、音声使用の認識を開始したい場合:

      [self.pocketsphinxController startListeningWithLanguageModelAtPath:<#(NSString *)#> dictionaryAtPath:<#(NSString *)#> acousticModelAtPath:<#(NSString *)#> languageModelIsJSGF:<#(BOOL)#>];
     // Change "AcousticModelEnglish" to "AcousticModelSpanish" to perform Spanish recognition instead of English.

この情報はすべて、OpenEars チュートリアルで見つけることができます。

于 2013-09-28T22:41:25.153 に答える
0

私も同じ問題を抱えていました。リッスンを開始する前にデリゲートを設定しようとしたときは、リッスンself.openEarsEventsObserverを開始する前にデリゲートnilが nil かどうかを確認し、新しい OpenEarsEventsObserver インスタンスをプロパティに設定することができました。それは私にとって迅速な修正でした。

于 2014-04-09T10:45:56.903 に答える