【问题标题】:chrome.tts.speak character limitchrome.tts.speak 字符限制
【发布时间】:2015-03-07 05:50:35
【问题描述】:

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

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

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

我想知道是我做错了什么,还是它只依赖于浏览器中的 TTS 引擎而我无能为力?

【问题讨论】:

  • 感谢@gui47 的回答,我已经看过这篇文章了。如果 chrome.tts 的限制与 Web Speech API 不同,我会更加好奇。

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


【解决方案1】:

我已阅读官方文档以及您如何报告它是这样写的:

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

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

我用了一段时间的chrome api,可以对你说:

  • 只有当声音不是母语时才会发生断句,
  • 剪切通常发生在 200-300 个字符之间, 当它确实中断时,您可以通过 SpeechSynthesis.cancel(); 来解冻它;
  • 'onend' 事件有时会决定不触发。一个古怪的解决方法是在说出它之前 console.log() 输出话语对象。此外,我发现将 speak 调用包装在 setTimeout 回调中有助于解决这些问题。

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

  • 首先在句子中(尝试非拆分它们并保持韵律);
  • 如果第一步还不够,将句子再次拆分为子句;

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

【讨论】:

  • 如果您解决了问题,请告诉我。
猜你喜欢
  • 2016-05-29
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多