0

I am trying to make simple helper class for my app that will load open ears defaults.The problem is everything seems to be normal but when i create new helper object and run method startListening it does not make anything.

I think the problem is setting the delegate but I cant figure it out

OpenEarsHelper.h

#import <Foundation/Foundation.h>
#import <OpenEars/PocketsphinxController.h>
#import <OpenEars/LanguageModelGenerator.h>
@interface OpenEarsHelper : NSObject<OpenEarsEventsObserverDelegate>{
    OpenEarsEventsObserver *openEarsEventsObserver;
    PocketsphinxController *pocketsphinxController;
}
@property (strong, nonatomic) OpenEarsEventsObserver *openEarsEventsObserver;
@property (strong, nonatomic) PocketsphinxController *pocketsphinxController;
-(void)prepare;
@end

OpenEarsHelper.m

#import "OpenEarsHelper.h"

@implementation OpenEarsHelper
@synthesize openEarsEventsObserver;

-(void)prepare{

    [self.openEarsEventsObserver setDelegate:self];//Problem should be here

    LanguageModelGenerator *lmGenerator = [[LanguageModelGenerator alloc] init];
    NSArray *words = [NSArray arrayWithObjects:@"WORD", @"STATEMENT", @"OTHER WORD", @"A PHRASE", nil];
    NSString *name = @"NameIWantForMyLanguageModelFiles";
    NSError *err = [lmGenerator generateLanguageModelFromArray:words withFilesNamed:name];


    NSDictionary *languageGeneratorResults = nil;
    NSString *lmPath = nil;
    NSString *dicPath = nil;
    languageGeneratorResults = [err userInfo];
    lmPath = [languageGeneratorResults objectForKey:@"LMPath"];
    dicPath = [languageGeneratorResults objectForKey:@"DictionaryPath"];
    [self.pocketsphinxController startListeningWithLanguageModelAtPath:lmPath dictionaryAtPath:dicPath languageModelIsJSGF:NO];
}

- (void) pocketsphinxDidReceiveHypothesis:(NSString *)hypothesis recognitionScore:(NSString *)recognitionScore utteranceID:(NSString *)utteranceID {
    NSLog(@"The received hypothesis is %@ with a score of %@ and an ID of %@", hypothesis, recognitionScore, utteranceID);
}

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

- (OpenEarsEventsObserver *)openEarsEventsObserver {
    if (openEarsEventsObserver == nil) {
        openEarsEventsObserver = [[OpenEarsEventsObserver alloc] init];
        openEarsEventsObserver.delegate = self;
    }
    return openEarsEventsObserver;
}
@end

I am using it in viewDidLoad method like

 OpenEarsHelper *helper=[[OpenEarsHelper alloc]init];
  [helper prepare];
Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
Ercan
  • 2,699
  • 10
  • 53
  • 60
  • Hi, you need to @synthesize pocketsphinxController as well as openEarsEventsObserver. – Halle Sep 18 '12 at 21:24
  • @Halle it does not work. – Ercan Sep 19 '12 at 17:33
  • OK, I can help you troubleshoot it at the OpenEars forums if you want to come by, but this kind of troubleshooting isn't a good match for StackOverflow's format. – Halle Sep 19 '12 at 18:35

0 Answers0