Javascript window.speechSynthesis.speak(msg)在单击按钮之前不工作
下面的简短页面不起作用。具体来说,“window.speechSynthesis.speak(msg)”在按下按钮之前不起作用。如果按下该按钮,则“Hello”消息有效。如果没有,则对“window.speechSynthesis.speak(msg)”的任何调用都不会产生任何音频输出 怀疑它与speechSynthesis的初始化有关——下面尝试了一些方法,以确保在调用“Hello”时初始化它。没有一个奏效。虽然看起来应该是这样。似乎只有在按下按钮调用它时,它才被正确初始化 无论是通过按钮调用还是通过超时调用,SpeechSynthesistTerrance本身的设置都是相同的。该设置在通过按钮调用时工作。但在被按钮调用之前,没有其他地方 这里怎么了Javascript window.speechSynthesis.speak(msg)在单击按钮之前不工作,javascript,google-chrome,text-to-speech,speech-synthesis,Javascript,Google Chrome,Text To Speech,Speech Synthesis,下面的简短页面不起作用。具体来说,“window.speechSynthesis.speak(msg)”在按下按钮之前不起作用。如果按下该按钮,则“Hello”消息有效。如果没有,则对“window.speechSynthesis.speak(msg)”的任何调用都不会产生任何音频输出 怀疑它与speechSynthesis的初始化有关——下面尝试了一些方法,以确保在调用“Hello”时初始化它。没有一个奏效。虽然看起来应该是这样。似乎只有在按下按钮调用它时,它才被正确初始化 无论是通过按钮调用
<!DOCTYPE html>
<html>
<head>
<title>Voice Test 3</title>
</head>
<body>
<div id="header">User Interface Terminal</div>
<input type="text" id="control_box"></input><br>
<button id="startButton" onclick="voicemessage('Button');">start</button><br>
<script>
function voicemessage(ttstext) {
var msg = new SpeechSynthesisUtterance(ttstext);
msg.volume = 1;
msg.rate = 0.7;
msg.pitch = 1.3;
window.speechSynthesis.speak(msg);
document.getElementById('control_box').value = ttstext;
}
window.speechSynthesis.onvoiceschanged = function() {
document.getElementById('control_box').value = "tts voices recognized";
window.setTimeout(function() {
voicemessage("Hello");
}, 5000);
};
window.addEventListener('load', function () {
var voices = window.speechSynthesis.getVoices();
})
</script>
</body>
</html>
语音测试3
用户界面终端
开始
功能语音信息(ttstext){
var msg=新的演讲综合交流(ttstext);
msg.volume=1;
msg.rate=0.7;
msg.pitch=1.3;
window.speechSynthesis.speak(msg);
document.getElementById('control_box')。value=ttstext;
}
window.speechSynthesis.onvoiceschanged=函数(){
document.getElementById('control_box').value=“tts语音识别”;
setTimeout(函数(){
语音留言(“你好”);
}, 5000);
};
window.addEventListener('load',函数(){
var voices=window.speechSynthesis.getVoices();
})
这可能是由于浏览器本身。。。
某些浏览器(Firefox和Chrome)的最新更新有防止访问音频的策略,除非某些用户交互触发音频(如单击按钮).尝试通过调用setTimeout函数中的button.click()来绕过此问题。那是行不通的。是否有方法告诉浏览器信任此页面?您可以在初始化脚本之前尝试从用户处获取音频访问权限。。。(类似于您获得位置访问权限的方式)。。。