首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语音识别: recognition.onresult()不触发

语音识别: recognition.onresult()不触发
EN

Stack Overflow用户
提问于 2021-08-05 02:37:29
回答 1查看 22关注 1票数 0

我正在尝试遵循一个需要Chrome语音识别API的教程。recognition.onstart运行良好,但recognition.onresult从未触发过。我正在使用Javascript。

如何修改我的代码?

(Chrome版本: 92.0.4515.107)。

Javascript:

代码语言:javascript
复制
const btn = document.querySelector('.talk');
const content = document.querySelector('.content');

const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;

const recognition = new SpeechRecognition();

recognition.onstart = function(){
    console.log('voice is activated');
};

recognition.onresult = function(e){
    console.log(e);
};


btn.addEventListener('click', () => {
    recognition.start();
});

这是我的HTML:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Voice AI</title>
</head>
<body>
    <button class="talk">Talk</button>
    <h3 class="content"></h3>

    <script src="script.js"></script>
</body>
</html>

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-08-05 02:48:57

你试着这样做

代码语言:javascript
复制
  function detectedVoice(){
    var ses = new webkitSpeechRecognition();
    ses.interimResults = true;``
    ses.maxAlternatives = 1;
    ses.continuous = true;
    ses.interimResults = true;
    ses.onstart = true;
    ses.onend = function() {
      ses.start();
    };
    ses.onresult = function(e){
      if (event.results.length > 0) {
        sonuc = event.results[event.results.length -1];
        if (sonuc.isFinal) {
          var result = sonuc[0].transcript;
          console.log(result);
        }
      }
    }
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68659988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档