谷歌浏览器语音无法播报

使用谷歌浏览器的语音播报功能时发现不能播放

<script>
        if(!('speechSynthesis' in window)) {
            throw alert("对不起,您的浏览器不支持")
        }
        setTimeout(()=> {
            play()
        },2000)
        
        function play(){
            var mess = '搜狗[1]  是搜狐公司的旗下子公司,于2004年8月3日推出,目的是增强搜狐网的搜索技能,主要经营搜狐公司的搜索业务。在搜索业务的同时,也推出搜狗输入法、搜狗高速浏览器。'

            var msg = new SpeechSynthesisUtterance(mess)
             
            msg.volume = 100  // 声音的音量
             
            msg.rate = 1 // 语速,数值,默认值是1,范围是0.1到10
             
            msg.pitch = 1.5 // 表示说话的音高,数值,范围从0(最小)到2(最大)。默认值为1
             
            speechSynthesis.speak(msg)
        }

    </script>

打开控制台发现

audio.html:43 [Deprecation] speechSynthesis.speak() without user activation is no longer allowed since M71, around December 2018. See https://www.chromestatus.com/feature/5687444770914304 for more details

这是由于谷歌浏览器针对垃圾广告和诈骗网页的滥用谷歌浏览器开发团队已经决定自下个版本开始限制语音合成接口的自动播放。自新版本开始用户必须手动点击播放按钮才能播放语音合成内容,用户不主动操作那么直接禁止音频的播放。
解决办法在鼠标右击Chrome快捷图标=>属性=>快捷方式=>目标加入--autoplay-policy=no-user-gesture-required即可,如下图所示:


LA0M(1AP~6V$~L4I29Z{ML1.png

mac打开终端,输入

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --autoplay-policy=no-user-gesture-required

感谢评论区那位大佬。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容