Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5语音API-重置结果数组_Javascript_Html_Voice Recognition - Fatal编程技术网

Javascript 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,但找不到解决方案 我想做的一个类似的

我正在为一个项目使用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,但找不到解决方案

我想做的一个类似的例子是,如果它在听任何一个单词序列。但当它听到“取消”这个词时,它会忘记刚才听到的一切


我希望这是有意义的,非常感谢您的帮助。

结果似乎保存在一个
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站点。我考虑过这一点,但让用户一直单击“允许”并不是很合理。但是谢谢你的帖子:)