-
首先要注意 会调用 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)