以下内容适用于桌面Chrome/Safari/Firefox,但不适用于移动的。
即使在Chrome移动的上我有1)SpeechRecognition
工作完美; 2)SpeechSynthesisUtterance
加载正确,我可以检查所有的属性,加载语音(通过DevTools远程调试)-只是手机不会说话(iPhone Safari和Android Chrome测试).
另外,当我在移动的上试用这个demo时,它说我的浏览器支持语音合成,我可以从可用的语音中进行选择,但浏览器不会说话。
你知道这里可能出了什么问题吗?
<script>
var u = new SpeechSynthesisUtterance();
u.text = "hello world";
speechSynthesis.speak(u);
</script>
4条答案
按热度按时间m3eecexj1#
Android Chrome浏览器:
我打开我的“如此美好,美妙和梦幻般的Html页面与java脚本”,我发现没有什么工作在我移动的上...(Android)
1.)我在谷歌上搜索了一下,找到了https://support.google.com/accessibility/android/answer/6006983?hl=en
文本转语音输出要为设备指定文本转语音设置,请执行以下操作:打开设备的设置应用。选择辅助功能,然后选择文本到语音输出。选择您喜欢的引擎、语言、语速和音高。注意:默认的文本到语音引擎选项因设备而异。选项可以包括Google的文本转语音引擎、设备制造商的引擎以及您从Google Play商店下载的任何第三方文本转语音引擎。可选:要收听语音合成的简短演示,请按“播放”。可选:要安装其他语言的语音数据,请依次选择设置,然后选择安装语音数据。选择要安装的语言。
注意:(选择辅助功能,然后选择文本到语音输出。)
我激活了“触摸听到”,因为我的选项充满了任何东西,但不是上面提到的。相反,“TalkBack”有点太重了,所以我让它“未使用/未选择”...
2.)speechSynthesis.resume();不工作,没有其他解决方案,现在,比排除他们,如果移动的浏览器/触摸设备被检测到。
webghufk2#
听起来可能与:SpeechSynthesisUtterance not working in mobile broswer。似乎在移动的浏览器上,语音必须至少由用户交互发起一次,以便随后从JavaScript以编程方式发起。
pdtvr36n3#
在一个相关的问题中,以下代码在Chrome Android中运行,但事件侦听器似乎没有调用NextWord函数,而它在Chrome和Safari上运行良好:
p8ekf7hl4#
你试过在语音合成前加窗口吗?代码是window.speechSynthesis.speak(u)。