Javascript HTML5语音API-重置结果数组
我正在为一个项目使用HTML5语音API。尝试设置结果数组时遇到问题:Javascript HTML5语音API-重置结果数组,javascript,html,voice-recognition,Javascript,Html,Voice Recognition,我正在为一个项目使用HTML5语音API。尝试设置结果数组时遇到问题:event.results 我在听“[A-H][0-9]”进入“[A-H][0-9]”进入“[A-H][0-9]”。当我听到“GO”时,我想重置events.result数组。我必须再次侦听相同的输入,但无法从event.results数组中删除第一个输入 我试过: event.results = []; event.results.length = 0; 这些都不管用。我还查阅了API,但找不到解决方案 我想做的一个类似的
event.results
我在听“[A-H][0-9]”进入“[A-H][0-9]”进入“[A-H][0-9]”。当我听到“GO”时,我想重置events.result数组。我必须再次侦听相同的输入,但无法从event.results数组中删除第一个输入
我试过:
event.results = [];
event.results.length = 0;
这些都不管用。我还查阅了API,但找不到解决方案
我想做的一个类似的例子是,如果它在听任何一个单词序列。但当它听到“取消”这个词时,它会忘记刚才听到的一切
我希望这是有意义的,非常感谢您的帮助。结果似乎保存在一个
SpeechRecognitionList
中,但我找不到任何用于处理列表本身的api。
工作原理是停止并重新启动识别,但如果您不使用https站点(在普通http站点上,浏览器在重新启动识别时总是请求权限),则会出现问题
下面是一个例子:
<html>
<head>
<title>voice api test</title>
</head>
<body>
<h1>voice api test</h1>
<main></main>
<script>
(function startRecognizing() {
var main = document.querySelector('main');
var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
recognition.addEventListener('result', function (event) {
var lastResult = event.results[event.results.length - 1];
if (lastResult[0].transcript.indexOf('cancel') > -1) {
recognition.stop();
while (main.children.length) main.removeChild(main.children[0]);
startRecognizing();
} else {
var p = document.createElement('p');
p.appendChild(document.createTextNode(lastResult[0].transcript));
main.appendChild(p);
}
});
recognition.start();
}());
</script>
</body>
</html>
语音api测试
语音api测试
(功能启动识别(){
var main=document.querySelector('main');
var recognition=new-webkitSpeechRecognition();
识别。连续=正确;
recognition.addEventListener('result',函数(事件){
var lastResult=event.results[event.results.length-1];
if(lastResult[0]。transcript.indexOf('cancel')>-1){
识别。停止();
而(main.childrence.length)main.removeChild(main.children[0]);
开始认知();
}否则{
var p=document.createElement('p');
p、 appendChild(document.createTextNode(lastResult[0].transcript));
主诉儿童(p);
}
});
识别。开始();
}());
是的,停止和重新启动没有任何用处,因为它不是HTTPS站点。我考虑过这一点,但让用户一直单击“允许”并不是很合理。但是谢谢你的帖子:)