Reply To: Error in generateLanguageModelFromArray call

Home Forums OpenEars Error in generateLanguageModelFromArray call Reply To: Error in generateLanguageModelFromArray call

#1029960
maxgarmar
Participant

I should add: The error happens with all the simulators.
You can reproduce it:

Creating a viewController which is loaded from other one.
Initialize openEars every time the view is created in viewDidLoad like this:

 //Arreglar
        lmGenerator = [[OELanguageModelGenerator alloc] init];
        
        fliteController = [[OEFliteController alloc] init];
        
        [[OEPocketsphinxController sharedInstance] setActive:TRUE error:nil];
        
        
         //[OEPocketsphinxController sharedInstance].verbosePocketSphinx = TRUE;
         
         [OELogging startOpenEarsLogging];
         
         //lmGenerator.verboseLanguageModelGenerator = TRUE;
        
        
        
        
        
        
        [[OEPocketsphinxController sharedInstance] setSecondsOfSilenceToDetect:0.7];
        
        if([voiceLanguage isEqualToString:@"AcousticModelSpanish"]){
            
            //supresion de sonido en español
            
            if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
            {
                [[OEPocketsphinxController sharedInstance] setVadThreshold:2.0];
            }
            else
            {
                [[OEPocketsphinxController sharedInstance] setVadThreshold:3.5];
            }
            
            
        }else{
            
            //supresion de sonido en ingles
            if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
            {
                [[OEPocketsphinxController sharedInstance] setVadThreshold:2.0];
            }
            else
            {
                [[OEPocketsphinxController sharedInstance] setVadThreshold:3.5];
            }
            
            
            
        }
        
        //NSError* err=[self reloadAcousticModel];
        
        NSMutableArray *words = [[NSMutableArray alloc]init];
        NSMutableDictionary *listProduct = [[NSMutableDictionary alloc]init];
        
        [listProduct setObject:@"AGUA" forKey:@"1"];
        [listProduct setObject:@"SAL" forKey:@"2"];
        [listProduct setObject:@"COCACOLA" forKey:@"3"];
        [listProduct setObject:@"DETERGENTE" forKey:@"4"];
        [listProduct setObject:@"PEGAMENTO" forKey:@"5"];
        [listProduct setObject:@"ZUMO NARANJA" forKey:@"6"];
        [listProduct setObject:@"PAPEL HIGIENICO" forKey:@"7"];
        [listProduct setObject:@"ZUMO PIÑA" forKey:@"8"];
        [listProduct setObject:@"ZUMO MELOCOTON" forKey:@"9"];
        [listProduct setObject:@"ZUMO PERA" forKey:@"10"];
        [listProduct setObject:@"CEMENTO" forKey:@"11"];
        
        for (NSString* key in listProduct) {
            NSString* value =[listProduct objectForKey:key];
            NSError *error = nil;
            NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[-*/_;.()',+]" options:NSRegularExpressionCaseInsensitive error:&error];
            NSString *modifiedString = [regex stringByReplacingMatchesInString:value options:0 range:NSMakeRange(0, [value length]) withTemplate:@" "];
            [words addObject: [modifiedString uppercaseString]];
        }
        //    NSArray* palabras = [[NSArray alloc]initWithArray:words];
        
        NSString *name = @"NameIWantForMyLanguageModelFiles";
        NSError *err;
        
        if([words count]>0){
            err = [lmGenerator generateLanguageModelFromArray:words withFilesNamed:name forAcousticModelAtPath:[OEAcousticModel pathToModel:voiceLanguage]]; // Change "AcousticModelEnglish" to "AcousticModelSpanish" to create a Spanish language model instead of an English one.
        }else{
            
            [words addObject:@"VACIO"];
            
            err = [lmGenerator generateLanguageModelFromArray:words withFilesNamed:name forAcousticModelAtPath:[OEAcousticModel pathToModel:voiceLanguage]]; // Change "AcousticModelEnglish" to "AcousticModelSpanish" to create a Spanish language model instead of an English one.
            
            
        }
        
        // Call this once before setting properties of the OEPocketsphinxController instance.
        
        if([err code] == noErr) {
            
            self.pathToFirstDynamicallyGeneratedLanguageModel = [lmGenerator pathToSuccessfullyGeneratedLanguageModelWithRequestedName:@"NameIWantForMyLanguageModelFiles"];
            self.pathToFirstDynamicallyGeneratedDictionary =  [lmGenerator pathToSuccessfullyGeneratedDictionaryWithRequestedName:@"NameIWantForMyLanguageModelFiles"];
            
            
        } else {
            NSLog(@"Error: %@",[err localizedDescription]);
        }
        
        ///FIN openEars
        
        [self.openEarsEventsObserver setDelegate:self];
        
        //********arrancando el OpenEars********

Xcode Version 7.3 (7D175)

I hope it helps

Maxi