语音合成 API 在移动浏览器中不起作用

Speech Synthesis API isn't working in mobile browsers

提问人:David Dominguez Herrera 提问时间:6/16/2018 最后编辑:David Dominguez Herrera 更新时间:6/16/2018 访问量:2159

问:

我正在尝试为我的网站使用 SpeechSynthesis API,但事实证明,在桌面浏览器上工作的相同代码在移动浏览器上不起作用。

<!DOCTYPE html>
<html>

<head>
  <title>prueba</title>
</head>

<body>
  <button onclick="play()">Play</button>
  <script>
    function play() {
      if ('speechSynthesis' in window) {
        console.log("The API is installed");
        var ssu = new SpeechSynthesisUtterance("hello world");
        window.speechSynthesis.speak(ssu);
      }
    }
  </script>
</body>

</html>

我已经在带有 Chrome 的华为 P10、带有 Safari 的 iPhone X 和带有 Chrome 的 Moto G5 上对其进行了测试。这些都不起作用。它适用于您的手机吗?你知道怎么解决吗?谢谢。

更新:

删除历史记录并清理缓存后,它可以在 Android 设备上运行。但它仍然无法在 iPhone 上运行(我已经在 Iphone X 和 Iphone 6 上测试了它,在删除历史记录和缓存之前和之后)。

JavaScript Web 浏览器 客户端 语音合成

评论

0赞 nipuna-g 6/16/2018
您提供的示例在我的 Android 设备上运行良好。Huwawei Y6 Pro (Chrome 67.0) 试试这个js小提琴: jsfiddle.net/230kh1gf/1
0赞 David Dominguez Herrera 6/16/2018
我刚刚在iPhone X(Safari)和Moto G5(Chrome 66.0)中测试了jsfiddle链接,但它不起作用。有什么想法吗?
0赞 nipuna-g 6/16/2018
只是为了检查,您的媒体音量确实处于非静音级别,对吗?
1赞 David Dominguez Herrera 6/16/2018
哈哈,是的,事实上,最多。
0赞 Doug 4/22/2020
nipuna777 的小提琴适用于 iOS 和 Android,但请注意,在 iOS Safari 上,您需要确保软静音按钮未激活才能听到任何声音。iOS Chrome 没有此限制。speechSynthesis 的移动实现存在很多问题(参见 talkrapp.com/speechSynthesis.html),但这段代码很好。

答: 暂无答案