gpt4 book ai didi

objective-c - 如何将多种语言加载到 IVONA SDK - 文本到语音

转载 作者:可可西里 更新时间:2023-11-01 06:11:46 25 4
gpt4 key购买 nike

我想加载多种语言以将 IVONA SDK 与适用于 iPhone 的 SSML 一起使用。没有在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 上的一个流媒体中加载多种语言?

最佳答案

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

关于objective-c - 如何将多种语言加载到 IVONA SDK - 文本到语音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11054170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com