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
  • 对识别到的结果进行处理,可以使用一些事件方法,比方说onresult:
recognition.onresult = function(event) { 
    console.log(event);
}
1
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
  • 错误处理
recognition.onerror = function(event) { 
    console.log(event);
}
1
2
3

试一下

直接扒的Google的代码:

简单测试了PC段和移动端,PC端只有Chrome支持,手机端全军覆没...😂

参考资料

最近更新: 4/23/2019, 11:11:51 PM