【问题标题】:continous speech recognition with Webkit speech api使用 Webkit 语音 api 进行连续语音识别
【发布时间】:2013-06-07 15:23:07
【问题描述】:

我开始使用这个浏览器(chrome)功能。 我已经基于此编写了一个 JS,但问题是偶数,它只识别一次语音并结束。它不会连续运行,我需要一次又一次地按下按钮才能开始语音识别。告诉我应该在哪里调整。我设置了“recognition.continuous=true”仍然没有帮助?

var recognition = new webkitSpeechRecognition();
recognition.continuous     = true;
recognition.interimResults = true;

recognition.onstart = function() {
  console.log("Recognition started");
};
recognition.onresult = function(event){
  console.log(event.results);
};
recognition.onerror = function(e) {
  console.log("Error");
};

recognition.onend = function() {
  console.log("Speech recognition ended");
};

function start_speech() {
  recognition.lang = 'en-IN'; // 'en-US' works too, as do many others
  recognition.start();
}

我从一个按钮调用“start_speech”!就是这样

【问题讨论】:

    标签: html google-chrome webkit speech-recognition


    【解决方案1】:

    我知道这是一个旧线程,但我也遇到了这个问题。我发现,即使设置了连续标志,如果输入语音中有暂停,则会引发“无语音”错误(触发 onerror 事件)并且引擎会关闭。我只是在 onend 中添加了代码来重启引擎:

    recognition.onend = function() {
        recognition.start();
    };
    

    您可能会遇到的下一个问题是,每次引擎重新启动时,用户都必须重新授予权限才能让浏览器使用麦克风。目前唯一的解决方案似乎是确保您通过 HTTPS 连接到您的网站(来源:http://updates.html5rocks.com/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API 帖子底部以粗体显示)

    【讨论】:

      【解决方案2】:

      可能是这一行的错字:

      recognition.continuos = true;
      

      应该等于:

      recognition.continuous = true;
      

      【讨论】:

        【解决方案3】:
        recognition.onend = function(){
        recognition.start();
        
        // sets off a beep/noise each time it is accessed from a cell phone (Andoid).
        
        // does NOT if accessed from a desktop (Windows using Chrome).
        };
        

        【讨论】:

        • 请解释您的代码。仅代码的答案并不一定容易让每个人都理解。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 2012-10-20
        • 1970-01-01
        • 2014-05-10
        • 2011-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多