chrome.tts.speak字符限制

时间:2015-01-08 23:41:57

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

我在扩展程序中使用Chrome的tts服务。 根据{{​​3}}文档:

  

文本的最大长度为32,768个字符。

然而,当我传递超过250个字符的字符串时,引擎将无法读取所有话语(它将停止在单词的中间读取它)。我现在想知道这是一个错误还是这个设计。 Web语音API具有chrome.tts中描述的类似字符限制,其行为方式相同。

我想知道我做错了什么,或者它只取决于浏览器中的TTS引擎而且我无法用它做任何事情?

1 个答案:

答案 0 :(得分:3)

我已阅读官方文件,以及您如何报告该文件:

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

也许他们引用SSML文件的最大长度!

我使用了chrome api一段时间,我可以告诉你:

  • 只有在声音不是原生声音的情况下才能打破话语,
  • 剪切通常发生在200-300个字符之间, 当它确实破坏时你可以通过执行speechSynthesis.cancel();
  • 来解冻它
  • 'onend'事件有时会决定不发射。一个奇怪的解决方法就是在发言之前先将console.log()输出到话语对象中。我还发现在setTimeout回调中包装发言调用有助于解决这些问题。

我解决了分割文字的问题:

  • 首先是句子(试图不分裂并维持韵律);
  • 如果第一步不够,则在子句中再次分割句子;

所以我建议以这种方式解决问题。