SpeechRecognition

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

SpeechRecognition 接口是 Web Speech API 中用于控制识别服务的接口;它还负责处理从识别服务发送的 SpeechRecognitionEvent

注意: 在某些浏览器(如 Chrome)上,在网页中使用语音识别涉及基于服务器的识别引擎。您的音频会被发送到 Web 服务进行识别处理,因此它无法离线工作。

EventTarget SpeechRecognition

构造函数

SpeechRecognition()

创建一个新的 SpeechRecognition 对象。

实例属性

SpeechRecognition 还继承了其父接口 EventTarget 的属性。

SpeechRecognition.lang

返回并设置当前 SpeechRecognition 的语言。如果未指定,则默认为 HTML lang 属性值,或者如果该属性也未设置,则为用户代理的语言设置。

SpeechRecognition.continuous

控制是为每次识别返回连续的结果,还是仅返回单个结果。默认为单个结果(false)。

SpeechRecognition.interimResults

控制是否返回中间结果(true)或不返回(false)。中间结果是指尚未确定的结果(例如,SpeechRecognitionResult.isFinal 属性为 false)。

SpeechRecognition.maxAlternatives

设置每个结果提供的 SpeechRecognitionAlternative 的最大数量。默认值为 1。

SpeechRecognition.phrases 实验性

设置一个 SpeechRecognitionPhrase 对象数组,用于 上下文偏置

SpeechRecognition.processLocally 实验性

指定语音识别是否必须在用户设备上本地进行。

已废弃的属性

语法(grammar)的概念已从 Web Speech API 中移除。相关的特性仍然保留在规范中,并且仍然被支持的浏览器识别以实现向后兼容,但它们对语音识别服务没有影响。

SpeechRecognition.grammars

返回并设置一个 SpeechGrammar 对象集合,这些对象代表当前 SpeechRecognition 理解的语法。

静态方法

SpeechRecognition.available() 实验性

检查指定的语言是否可用于语音识别。

SpeechRecognition.install() 实验性

安装指定语言的本地语音识别所需的语言包。

实例方法

SpeechRecognition 还继承了其父接口 EventTarget 的方法。

SpeechRecognition.abort()

停止语音识别服务监听传入音频,并且不尝试返回 SpeechRecognitionResult

SpeechRecognition.start()

启动语音识别服务以监听传入音频(来自麦克风或音频轨道)并返回识别结果。

SpeechRecognition.stop()

停止语音识别服务监听传入音频,并尝试基于迄今为止捕获的结果返回 SpeechRecognitionResult

事件

使用 addEventListener() 或通过将事件监听器分配给此接口的 oneventname 属性来监听这些事件。

audiostart

当用户代理开始捕获音频时触发。

audioend

当用户代理完成捕获音频时触发。

end

当语音识别服务断开连接时触发。

error

当发生语音识别错误时触发。

nomatch

当语音识别服务返回一个最终结果,但没有显著的识别内容时触发。这可能涉及一定程度的识别,但未达到或超过 confidence 阈值。

result

当语音识别服务返回一个结果时触发——一个单词或短语已被积极识别,并且已将此信息传达给应用程序。

soundstart

当检测到任何声音(无论是否可识别为语音)时触发。

soundend

当检测到声音(无论是否可识别为语音)停止时触发。

speechstart

当检测到被语音识别服务识别为语音的声音时触发。

speechend

当被语音识别服务识别的语音停止被检测到时触发。

start

当语音识别服务开始监听要识别的音频时触发。

示例

在我们 Speech color changer 的示例中,我们使用 SpeechRecognition() 构造函数创建了一个新的 SpeechRecognition 对象实例。

在定义了一些其他值之后,我们将识别服务设置为在点击按钮时启动(参见 SpeechRecognition.start())。当一个结果被成功识别后,会触发 result 事件,我们从事件对象中提取所说的颜色,然后将 <html> 元素的背景颜色设置为该颜色。

js
const recognition = new SpeechRecognition();
recognition.continuous = false;
recognition.lang = "en-US";
recognition.interimResults = false;
recognition.maxAlternatives = 1;

const diagnostic = document.querySelector(".output");
const bg = document.querySelector("html");
const startBtn = document.querySelector("button");

startBtn.onclick = () => {
  recognition.start();
  console.log("Ready to receive a color command.");
};

recognition.onresult = (event) => {
  const color = event.results[0][0].transcript;
  diagnostic.textContent = `Result received: ${color}`;
  bg.style.backgroundColor = color;
};

规范

规范
Web Speech API
# speechreco-section

浏览器兼容性

另见