SpeechSynthesis.getVoices()未在Firefox中列出语音
问题描述:
我正在开发一个应用程序,它要求我在Web浏览器中使用文本到语音。我正在使用HTML5 Speech Synthesis。在谷歌浏览器上,代码运行良好,所有可用语音都使用| getVoices()|列出,但在Firefox中根本没有语音列出。我正在Firefox 56.0(Ubuntu)上测试我的代码。SpeechSynthesis.getVoices()未在Firefox中列出语音
在网上搜索时,我遇到了一个* answer,它提示getVoices()函数应在| onVoiceChanged |事件
window.speechSynthesis.onvoiceschanged = function() {
window.speechSynthesis.getVoices();
...
};
我按照上面提到的方式调用调用,它在Chrome中按照需要运行,但不在Firefox上运行。
另一个*的答案建议我让| media.webspeech.synth.enabled |在Firefox的about:config中,但在我的Firefox中,首选| media.webspeech.synth.enabled |已被设置为true。
我查了MDN文档https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/getVoices这页对我来说在Firefox不运行的例子,但在Chrome运行正常。我发现CanIUse.com列出了SpeechSynthesis在Firefox 55以上版本中支持的功能,但它不适用于我。
也demo由Mozilla开发者网络来演示语音合成失败对我的Firefox浏览器,但在谷歌浏览器运行正常。我在网上广泛搜索了一个解决方案,但找不到一个解决方案。有人可以在这里指出我正确的方向。
答
遇到同样的问题,这是我想通了。
- 不为我在Firefox的Ubuntu 16.04
- VirtualBox上Windows上运行的工作。声音来自Windows。 “微软大卫”是其中的一个选择。
- Chrome可在Ubuntu上运行,但只能在线上运行。它没有显示控制台中的任何流量,但声音只在线上时才起作用!
演示工作对我来说外汇ESR 53.3.0和电流56,在Win 10 – myf
你调用'.getVoices()''onvoiceschanged'事件处理程序之外? – guest271314