chrome.tts.speak字符限制

Paw*_*tyć 6 google-chrome text-to-speech google-chrome-extension webspeech-api

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

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

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

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

Giu*_*ppe 5

我已阅读官方文件以及您的报告方式,内容如下:

The maximum length of the text is 32,768 characters.
Run Code Online (Sandbox Code Playgroud)

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

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

  • 仅当声音不是母语时才会发生断言,
  • 剪切通常发生在 200-300 个字符之间,当它确实中断时,您可以通过执行 voiceSynthesis.cancel(); 来取消冻结它;
  • “onend”事件有时会决定不触发。一个奇怪的解决方法是在说出话语对象之前使用 console.log() 输出它。我还发现将发言调用包装在 setTimeout 回调中有助于解决这些问题。

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

  • 首先在句子中(尽量不拆分句子并保持韵律);
  • 如果第一步还不够,则将句子再次拆分为子句;

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