Home › Forums › OpenEars › Error in generateLanguageModelFromArray call › Reply To: Error in generateLanguageModelFromArray call
April 7, 2016 at 12:22 am
#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