JS中的语音识别——Speech Recognition API
简介
HTML5中和Web Speech相关的API实际上有两类,一类是“语音识别(Speech Recognition)”,另外一个就是“语音合成(Speech Synthesis)”,这两个名词听上去很高大上,实际上指的分别是“语音转文字”,和“文字变语音”。
本文介绍的是语音合成(Speech Recognition),语音识别(Speech Synthesis)请移步另一篇。
语音识别使用SpeechRecognition API,目前只有Chrome支持,使用时要加上webkit前缀。
- 创建SpeechRecognition的新实例
var recognition = new webkitSpeechRecognition();
1
- 设置是持续听还是听到声音之后就关闭接收。
recognition.continuous = true;
1
- 设置是否允许临时结果,临时结果是识别的中间过程,这时候返回结果的isFinal = false。
recognition.interimResults = true;
1
- 设置语言
recognition.lang = 'cmn-Hans-CN'; //普通话 (中国大陆)
1
- 控制语音识别的开启和停止,可使用start()和stop()方法,分别对应onstart、onend事件
// 开启
recognition.start();
// 停止
recognition.stop();
1
2
3
4
2
3
4
- 对识别到的结果进行处理,可以使用一些事件方法,比方说onresult:
recognition.onresult = function(event) {
console.log(event);
}
1
2
3
2
3
event返回结果格式
{
results: {
0: {
0: {
confidence: 0.695017397403717,
transcript: "你好,世界"
},
isFinal:true,
length:1
},
length:1
},
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
- 错误处理
recognition.onerror = function(event) {
console.log(event);
}
1
2
3
2
3
试一下
直接扒的Google的代码:
简单测试了PC段和移动端,PC端只有Chrome支持,手机端全军覆没...😂