2012-06-15 3 views
4

Я хочу загрузить несколько языков для использования IVONA SDK с SSML для iPhone. Нет документации для использования в Xcode/object-C, предоставляется только сам SDK и несколько примеров C/java.Как загрузить несколько языков в IVONA SDK - текст в речь

Как вы можете загружать несколько языков для текста, чтобы говорить с IVONA SDK для iOS?

EDIT 1: см мой код ниже

нагрузки голоса в первом:

- (NSInteger) loadVoice: (NSString*) vox { 

if(voice != nil) { 
    XLog(@"(voice != nil)"); 
    [voice unload]; 
    voice = nil; 
} 


NSString *pathIvona = [[NSString alloc] initWithFormat:@"%@", vox]; 

self.paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
self.documentsDirectory = [self.paths objectAtIndex:0]; 
self.path = [self.documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", pathIvona]]; 



voice = [[IvonaVoice alloc] init:instance withLibrary:self.path withVox:self.path]; 

[pathIvona release]; 

if (voice == nil) { 
    XLog(@"Cannot load voice"); 
    [self setTtsError: @"Cannot load voice"]; 
    return 0; 
} 
[voice setParam:@"vol" withInteger: 99]; 
return 1; 
} 

пытается загрузить несколько языков в один стример с (стример по-прежнему отсутствует, оно не изменение):

NSArray *allVoices = [self getAvaliableVoxes]; 

/** 
* Here the streamer is still nil, 
* i cant find the mistake here. 
* 
*/ 
IvonaStreamer *streamer = [[IvonaStreamer alloc] initWithVoices:allVoices 
withText:[NSString stringWithContentsOfFile:self.path 
encoding:NSUTF8StringEncoding error:&error] atSpeed:[NSNumber numberWithFloat:-1]]; 

Метод getAvailableVoices:

- (NSArray*)getAvaliableVoxes { 
XLog(@"-----------------------------------entered"); 


self.paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
self.documentsDirectory = [self.paths objectAtIndex:0]; 


NSFileManager *manager = [NSFileManager defaultManager]; 
NSArray *fileList = [manager contentsOfDirectoryAtPath:[self.paths objectAtIndex:0] error:nil]; 
for (NSString *s in fileList){ 
    //XLog(@"s: %@", s); 
} 


NSMutableArray *pathsIvona = [[NSMutableArray alloc] init]; 
NSEnumerator *e = [fileList objectEnumerator]; 
NSString *vox; 
while (vox = [e nextObject]) { 

if([[vox lastPathComponent] hasPrefix:@"vox_"]) { 
     XLog(@"vox: %@", vox); 
     [pathsIvona addObject: [vox lastPathComponent]]; 
     XLog(@"pathsIvona: %@", pathsIvona); 
    } 

} 

XLog(@"pathsIvona: %@", pathsIvona); 

return [pathsIvona autorelease]; 
} 

Как вы можете загрузить несколько языков в одном серпантине на прошивке с IVONA SDK?

+0

Поскольку никто здесь может помочь вам, вы можете написать разработчик IVONA, я думаю. [Twitter] (https://twitter.com/#!/ivonatts) [Facebook] (http://www.facebook.com/ivonatts) –

+1

У вас есть журнал выходных данных из операторов XLog? возможно, объекты, добавленные в массив allVoices, не соответствуют ожидаемому массиву initWithVoices: ... любой шанс, что вы посмотрели на ошибку? –

+0

@john do yor comment как ответ, тогда я могу отметить его. это было правильное место для выпуска, я добавил неправильные объекты в массив. Спасибо. – brush51

ответ

1

возможно объекты добавляются в массив Allvoices не соответствует ожидаемому массиву initWithVoices: ...