我正在開發一個應用程序,它要求我在Web瀏覽器中使用文本到語音。我正在使用HTML5 Speech Synthesis。在谷歌瀏覽器上,代碼運行良好,所有可用語音都使用| getVoices()|列出,但在Firefox中根本沒有語音列出。我正在Firefox 56.0(Ubuntu)上測試我的代碼。SpeechSynthesis.getVoices()未在Firefox中列出語音
在網上搜索時,我遇到了一個StackOverflow answer,它提示getVoices()函數應在| onVoiceChanged |事件
window.speechSynthesis.onvoiceschanged = function() {
window.speechSynthesis.getVoices();
...
};
我按照上面提到的方式調用調用,它在Chrome中按照需要運行,但不在Firefox上運行。
另一個StackOverflow的答案建議我讓| 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瀏覽器,但在谷歌瀏覽器運行正常。我在網上廣泛搜索了一個解決方案,但找不到一個解決方案。有人可以在這裏指出我正確的方向。
演示工作對我來說外匯ESR 53.3.0和電流56,在Win 10 – myf
你調用'.getVoices()''onvoiceschanged'事件處理程序之外? – guest271314