google-chrome - chrome.tts.speak字符数限制

标签 google-chrome google-chrome-extension text-to-speech webspeech-api

我在扩展程序中使用了Chrome的tts服务。
根据chrome.tts文档:

The maximum length of the text is 32,768 characters.



但是,当我传递的字符串超过250个字符时,引擎将无法读取所有语音(它将在单词中间停止读取)。我现在想知道这是错误还是设计使然。 Web语音API的字符限制与spec中所述的相似,并且行为方式相同。

我想知道我是否做错了什么,还是仅取决于浏览器中的TTS引擎,而我对此却无能为力?

最佳答案

我已经阅读了官方文档,并且您如何报告该文档是这样写的:

The maximum length of the text is 32,768 characters.


也许他们指的是SSML文件的最大长度!

我用了chrome api一段时间,我可以对你说:
  • 只有在语音不是 native 语音
  • 时,才发生发声中断
  • 剪切通常发生在200-300个字符之间,
    当它确实破裂时,您可以通过执行speechSynthesis.cancel();来取消卡住。
  • “onend”事件有时决定不触发。一个古怪的解决方法是在说出话语对象之前,将console.log()移出。我还发现将语音调用包装在setTimeout回调中有助于解决这些问题。

  • 我解决了拆分文本的问题:
  • 首先在句子中(尝试不分割它们并保持韵律);
  • 如果第一步还不够,请再次将句子分成子句;

  • 因此,我建议以这种方式解决该问题。

    关于google-chrome - chrome.tts.speak字符数限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27851574/

    相关文章:

    css - 覆盖谷歌浏览器中保存的密码字段的样式

    CSS:如何拥有一个带有动态宽度单元格的可滚动表

    Javascript: native javascript 代码出现 "Cannot read property "名称“未定义”错误

    angularjs - 在 Chrome 中禁用 "Angular Hint: Events, Modules, Controllers"

    android - 通过 Text To Speech 说话时暂停电话铃声,然后继续

    java - setOnUtteranceProgressListener 根本不适用于 API > 21 的文本转语音

    javascript - 将导航固定在滚动条上时如何防止 Chrome 闪烁?

    html - Chrome 径向渐变显示不正确

    jquery - 谷歌浏览器扩展 : dispatchevent in main web page

    java - 从语言显示名称获取语言环境