Skip to content

Instantly share code, notes, and snippets.

@ibeeger
Last active February 7, 2019 11:24
Show Gist options
  • Save ibeeger/a513c5e6cf13b805d62c3353031fda24 to your computer and use it in GitHub Desktop.
Save ibeeger/a513c5e6cf13b805d62c3353031fda24 to your computer and use it in GitHub Desktop.
chrome SpeechRecognition API
  • 首先要注意 会调用 MediaDevices.getUserMedia 获取权限 也就是说必须在https下 或则 localhost下。

  • recognition.lang 设置语言 通过 speechSynthesis.getVoices() 获得所支持的语言列表,

  • 识别率较高,成本低

  • 目前兼容性并不高,虽然2012年推出的规范,但目前只有部分浏览器支持。

以下是demo代码,可以尝试下。

var recognition = new webkitSpeechRecognition();
    recognition.continuous = false;
    recognition.interimResults = false;
    recognition.maxAlternatives = 1;
    recognition.lang = 'en-US';
var text = ''
var btn = document.querySelector('.btn');
    recognition.onresult = function (rst) {
      if (rst.results && rst.results[0][0]) {
         if (rst.results[0].isFinal) {
              recognition.stop();
          } else {
              btn.innerHTML = '听ing'
          }
          document.getElementById('text').innerHTML = rst.results[0][0].transcript
       }
    }
    recognition.onspeechend = function () {
      console.log('stop')
      btn.innerHTML = '开始'
    }
    btn.addEventListener('click', function () {
        if (btn.innerHTML == '停止') {
           recognition.stop();
           btn.innerHTML = '开始'
         } else {
           recognition.start()
           btn.innerHTML = '停止'
         }
}, false)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment