0

我正在制作一个语音识别应用程序,它可以在没有网络的情况下识别我的声音,为此我正在使用OpenEarssdk。我已经获取了它的示例代码,并且我制作了一个类似的示例代码应用程序,但是在我的代码中我的openearsEventDelegate方法没有被调用。我采用了协议<openEarsEventObserverDelegate> ,并在我的viewDidLoad方法中设置了openEarseventObserver.delegate=self.

如果我遗漏了什么,请指导我。谢谢你。

4

2 回答 2

1

如果没有更多代码,很难确切地说出您的问题是什么,但这里有一些我会尝试的事情:

设置委托时确保您的 OpenEarsEventObserver 对象不为零:

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

确保你的 pocketsphinxController 不是 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.openEarsEventsObservernil,您可以在开始收听之前检查它是否为 nil,然后为您的属性设置一个新的 OpenEarsEventsObserver 实例。这对我来说是一个快速修复。

于 2014-04-09T10:45:56.903 回答