创建网站时如何访问文本到语音(用于Edge浏览器)

时间:2019-02-09 03:08:09

标签: javascript html browser text-to-speech

当我在Edge中加载下面的网页时,它告诉我计算机上有8种声音可用。但是只有2个是操作语音[4]和语音[7]。在firefox中,只有一种可用且可操作的声音[0]。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">

<title>Speech synthesiser</title>

<script>

var synth = window.speechSynthesis;


function populateVoiceList() {

var voiceSelect = document.getElementById("voicesAvailable");

        voiceSelect.innerHTML = '';

    voices = synth.getVoices();

    for(i = 0; i < voices.length ; i++) {

        var option = document.createElement('option');
        option.textContent = voices[i].name + ' (' + voices[i].lang + ')';

        voiceSelect.appendChild(option);
    }
}

</script>
</head>

<body onload="populateVoiceList()">

<h1>speech test 1</h1>

<form id="myForm">

  <select id="voicesAvailable">
    <option>Choose a voice</option>
  </select>

</form>

</body>

</html>

在Microsoft Edge浏览器中,似乎应用了地理过滤器来限制声音。因此,虽然在下拉框中放置了8个名称,但实际上只有2个可用。如何修改程序,以便仅加载将在计算机上运行的声音?

任何建议表示赞赏。

谢谢

新编辑。

我找到了一个包含response from Islam Elshobokosy的相关问题。他提交了以下代码段:

speechSynthesis.onvoiceschanged = function() {
  var voices = this.getVoices();
  console.log(voices);
};

当我单击“堆栈溢出”页面上的关联按钮以运行该代码时,它产生的结果显示了计算机上仅有的两种正常运行的声音。它没有给其他6。

我的问题是: 1.此代码如何过滤掉我的网页(如上)找到的6种无关的声音? 2.如何将这样的内容合并到我的网页中?

0 个答案:

没有答案