objective-c - NSSpeechSynthesizer、stopSpeaking 和 Nuance 语音

标签 objective-c xcode macos cocoa text-to-speech

我使用 Nuance TTS 发现了这个奇怪的问题。 startSpeakingString:startSpeakingString:toURL: 工作找到,但 stopSpeakingAtBoundary 似乎在 startSpeakingString:toURL: 中失败案例。

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

此问题似乎仅在使用 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 语音也将正确停止说话。

关于objective-c - NSSpeechSynthesizer、stopSpeaking 和 Nuance 语音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25308489/

相关文章:

objective-c - 以编程方式调用 Storyboard 场景(无需转场)?

xcode - CGContextSaveGState : invalid context 0x0 (Xcode 7 GM)

ios - 执行 segue 时线程 1 : signal SIGABRT,

objective-c - -[NSCFNumber 计数] : unrecognized selector

iphone - 如何更有效地编写一些条件代码?

iphone - iCloud 使用户可以访问 "steal"应用内消耗品

c++ - 如何修复 'Undefined symbols for architecture x86_64: "_get_driver_instance"' 链接器错误

javascript - HTML5 <audio> 流 OSX Safari 错误

iphone - iPhone应用程序的声音字节

xcode - 有什么方法可以禁用 UITextField 的听写支持吗?