我使用Nuance TTS发现了这个奇怪的问题。 startSpeakingString:startSpeakingString:toURL:可以找到,但是stopSpeakingAtBoundarystartSpeakingString:toURL:情况下似乎失败。

为了测试这一点,我实现了委托,并在willSpeakWord...中放置了一个简单的NSLog()方法来查看要说的单词。调用stopSpeakingAtBoundary后,将继续调用NSLog(),这意味着TTS引擎未响应stop命令。

似乎仅使用Nuance声音会出现此问题,例如Alice(IT)或Daniel(如果我记得的话,是美国)。使用语音的压缩版本时也会发生这种情况。

例如,使用Alex,当我调用stop方法时,单词打印过程也会立即停止

代码很简单

    NSSpeechSynthesizer* synth;
    synth = [NSSpeechSynthesizer alloc] init];
    // setting voice parameters
    [synth startSpeakingString:@"a quite long message..." toURL:aURL];


在另一种方法中,将文本转换为音频时...

    [synth stopSpeakingAtBoundary:NSSpeechImmediateBoundary];


你们中有人遇到过这个问题吗?你知道怎么解决吗?还是任何人都可以建议我解决方法?

非常感谢您的帮助...

最佳答案

好吧,这为我解决了问题...问题是由NSSpeechImmediateBoundary停止样式触发的。改为使用NSSpeechWordBoundary,Nuance和infoVox iVox语音也将正确停止讲话。

10-05 20:17