我使用Nuance TTS发现了这个奇怪的问题。 startSpeakingString:
和startSpeakingString:toURL:
工作找不到,但stopSpeakingAtBoundary
案例中的startSpeakingString: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];
你们有没有遇到过这个问题?你知道怎么修好的吗?或者你们中的任何人可以建议我一个解决方法吗?
非常感谢您的帮助......
答案 0 :(得分:0)
嗯,这解决了我的问题......这个问题是由NSSpeechImmediateBoundary
停止风格引发的。使用NSSpeechWordBoundary
代替,Nuance和infoVox iVox语音也将正确停止发言。