在iOS中加速flite TTS

时间:2011-02-03 19:22:14

标签: iphone ios text-to-speech

据我所知,通过删除未使用的声音,可以加速iOS中的TTS。这是怎么做到的?

我有一些文本似乎需要大约45秒才能转换(在iPhone 3G上),但我只有30秒。我正在尽快开始转换并预装AV播放器,但我仍然有点太慢了。

3 个答案:

答案 0 :(得分:2)

这个技巧不会真正加速flite,但会释放设备做其他事情,而flite正在做的事情: 添加此方法:

- (void)speak:(NSString *)message {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    [fliteEngine speakText:message];    
    [pool release];
}

当你想要发言时,请用以下方式打电话:

    [self performSelectorInBackground:@selector(speak:) withObject:@"Text to speak!"];

这将使您的应用程序进入多线程模式,并将呈现语音并将其作为后台线程播放。这将允许您的应用程序在发生这种情况时关闭并执行其他操作。我也注意到它似乎以这种方式使文本更快一些。希望它能为您提供所需的一切。

答案 1 :(得分:1)

删除声音对速度没有影响。一个声音,“cmu_us_kal”比其他声音快得多。我没有对所有其他人进行速度测试,但是kal比我一直使用的“cmu_us_rms”快至少5倍。

答案 2 :(得分:0)

您可以使用较短的句子或短语进行转换。然后开始播放一个转换后的语音段,同时仍然在后台线程中转换其余部分。