【问题标题】:How to load multiple languages to IVONA SDK - text to speech如何将多种语言加载到 IVONA SDK - 文本到语音
【发布时间】:2012-06-18 17:31:15
【问题描述】:

我想加载多种语言以使用 IVONA SDK 和 SSML for iPhone。 Xcode/objective-C 中没有使用文档,只给出了 SDK 本身和几个 C/java 示例。

如何使用适用于 iOS 的 IVONA SDK 加载多种语言的文本讲话?

编辑 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 在 iOS 上的一个流媒体中加载多种语言?

【问题讨论】:

  • 由于这里没有人可以帮助您,我猜您可以写信给 Ivona 开发人员。 TwitterFacebook
  • 您有 XLog 语句的输出日志吗?可能添加到数组 allVoices 的对象不符合预期的 initWithVoices 数组:...您是否有机会查看错误?
  • @john 做你的评论作为答案,然后我可以标记它。这是问题的正确位置,我在数组中添加了错误的对象。谢谢。

标签: objective-c ios text-to-speech multiple-languages


【解决方案1】:

可能添加到数组 allVoices 中的对象不符合预期的 initWithVoices 数组:...

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 1970-01-01
    • 2011-02-14
    • 2018-05-02
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    相关资源
    最近更新 更多