当前位置: 首页 > 知识库问答 >
问题:

NSSpeechSynthesizer,停止说话和Nuance声音

景育
2023-03-14

我使用Nuance TTS发现了这个奇怪的问题startSpeakingString:startSpeakingString:toURL:工作查找,但是stopspeakingaboundarystartSpeakingString: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];

你们有人遇到过这个问题吗?你知道怎么才能修好吗?或者你们谁能建议我一个变通方法?

非常感谢你的帮助。。。

共有1个答案

胥和悌
2023-03-14

嗯,这解决了我的问题...该问题是由NSSpeechImmedia ateBoundary停止样式触发的。使用NSSpeechWordBoundary,Nuance和infoVox iVox声音也会正确地停止说话。

 类似资料:
  • 如何在曲目播放期间添加CSS类“playSound”?

  • 问题内容: 这将每5秒钟发出一个滴答声。 要停止它,您可以使用 但是,所有调度程序都停止了,以后无法继续进行滴答。如何停止并“优雅地”继续发射? 问题答案: 这是一种可能的解决方案:

  • 本文档叙述了在类Unix系统上如何停止和重启Apache 。 Windows NT/2000/XP/2003的用户请参见以服务方式运行Apache ,Windows 9x/ME用户则参见在控制台中运行Apache 。 简介 为了停止或者重新启动Apache ,你必须向正在运行的httpd进程发送信号。有两种发送信号的方法。第一种方法是直接使用UNIX的kill命令向运行中的进程发送信号。你也许你会

  • 我已经在上安装了Sonar,所有先决条件都是Mysql和Java。在控制台模式下启动服务时,将出现以下错误消息: 甚至,wrapper.properties文件中也配置了Java环境变量,但问题仍然存在。 来人,帮我解决这个问题。 在下面的wrapper.java.command(wrapper.properties)中设置Java路径后,将出现错误。 正在运行索纳库贝...包装器-->包装器作为

  • 我们的Jenkins构建在一夜之间开始失败,错误如下: Jenkins服务器仍然运行Java6,但我们没有改变任何东西。 发生了什么,我们如何解决?

  • 我已经尝试了一周来修复它,但我无法尝试阻止apache停止服务并转到 xampp\apache\apache\u uninstallservice.bat 并卸载 然后通过重新安装 xampp\apache\apache_installservice.bat