简单的 webkit 语音合成测试不起作用
simple webkit Speech Synthesis test not working
我正在玩弄 webkit 语音合成 API,尝试使用以下代码让它通过单击按钮从输入框中朗读文本:
if ("speechSynthesis" in window) {
console.log("browser supports speech synthesis.");
} else {
console.log("browser does NOT support speech sythesis")
}
var speechMsgInput = $("#speech-input").value;
function speak(text){
var msg = new SpeechSynthesisUtterance();
msg.text = text;
window.speechSynthesis.speak(msg);
}
$("#speakbtn").onclick = speak(speechMsgInput);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SujiQ Dev.0</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
<input type="text" id="speech-input" value="42" x-webkit-speech>
<button id="speakbtn">Speak</button>
</body>
</html>
在 Chrome 43 上对其进行测试,控制台日志报告支持 webkit。在加载 html 时,女声大声朗读 "undefined"。我试着给文本框一个初始值,看看它是否改变了什么,但没有,仍然是 "undefined"。有人熟悉如何让语音合成 webkit 读取文本输入吗?
编辑:
控制台测试显示 <input>
标签(id #speech-input)的值为 "undefined"。但是有一个明确分配给它的值 - 给出了什么?
显然文件需要在托管站点上进行测试(而不是远程拖放到浏览器中的方式),这样 API 才能访问互联网。这修复了 SpeechSynthesisUtterance()
对象的 text
属性从 "undefined"
在托管站点上进行的测试显示出奇怪的输出:女声大声朗读 "undefined"、"does this work?"、"does this work?"、"does this work?"、"it works after all"、"it works after all", "it works after all" 连续 - 换句话说,我在远程测试期间强行分配的样本话语......很奇怪,这是以某种方式缓存的......
我正在玩弄 webkit 语音合成 API,尝试使用以下代码让它通过单击按钮从输入框中朗读文本:
if ("speechSynthesis" in window) {
console.log("browser supports speech synthesis.");
} else {
console.log("browser does NOT support speech sythesis")
}
var speechMsgInput = $("#speech-input").value;
function speak(text){
var msg = new SpeechSynthesisUtterance();
msg.text = text;
window.speechSynthesis.speak(msg);
}
$("#speakbtn").onclick = speak(speechMsgInput);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SujiQ Dev.0</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
<input type="text" id="speech-input" value="42" x-webkit-speech>
<button id="speakbtn">Speak</button>
</body>
</html>
在 Chrome 43 上对其进行测试,控制台日志报告支持 webkit。在加载 html 时,女声大声朗读 "undefined"。我试着给文本框一个初始值,看看它是否改变了什么,但没有,仍然是 "undefined"。有人熟悉如何让语音合成 webkit 读取文本输入吗?
编辑:
控制台测试显示 <input>
标签(id #speech-input)的值为 "undefined"。但是有一个明确分配给它的值 - 给出了什么?
显然文件需要在托管站点上进行测试(而不是远程拖放到浏览器中的方式),这样 API 才能访问互联网。这修复了 SpeechSynthesisUtterance()
对象的 text
属性从 "undefined"
在托管站点上进行的测试显示出奇怪的输出:女声大声朗读 "undefined"、"does this work?"、"does this work?"、"does this work?"、"it works after all"、"it works after all", "it works after all" 连续 - 换句话说,我在远程测试期间强行分配的样本话语......很奇怪,这是以某种方式缓存的......