SpeechRecognition
SpeechRecognition 接口是 Web Speech API 中用于控制识别服务的接口;它还负责处理从识别服务发送的 SpeechRecognitionEvent。
注意: 在某些浏览器(如 Chrome)上,在网页中使用语音识别涉及基于服务器的识别引擎。您的音频会被发送到 Web 服务进行识别处理,因此它无法离线工作。
构造函数
SpeechRecognition()-
创建一个新的
SpeechRecognition对象。
实例属性
SpeechRecognition 还继承了其父接口 EventTarget 的属性。
SpeechRecognition.lang-
返回并设置当前
SpeechRecognition的语言。如果未指定,则默认为 HTMLlang属性值,或者如果该属性也未设置,则为用户代理的语言设置。 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> 元素的背景颜色设置为该颜色。
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 |
浏览器兼容性
加载中…