SpeechRecognition:install() 静态方法
install() 静态方法是 Web 语音 API 的一部分,用于在指定的语言中安装 设备端语音识别 所需的语言包。
要检查语言包是否已可用,请使用 SpeechRecognition.available() 方法。
对 install() 方法的访问受 on-device-speech-recognition Permissions-Policy 指令控制。具体来说,如果定义的策略阻止使用,任何尝试调用该方法的行为都将失败。
语法
install(options)
参数
options-
一个指定安装选项的对象。可能的属性包括:
langs-
一个或多个字符串组成的数组,包含 BCP 47 语言标签,每个标签代表您希望安装其语言包的一种语言。
返回值
一个 Promise,它将解析为一个布尔值,指示语言包是否成功安装。导致每种返回值的情况如下:
异常
InvalidStateErrorDOMException-
当前文档未完全激活。
SyntaxErrorDOMException-
langs中指定的一个或多个字符串不是有效的 BCP 47 语言标签。
示例
检查设备端可用性和安装语言包
为了使设备上的语音识别工作,浏览器必须安装您要识别的语言的语言包。如果在指定 processLocally = true 后运行 start() 方法,但未安装正确的语言包,则函数调用将失败并出现 language-not-supported 错误。
要安装正确的语言包,请确保遵循以下两个步骤
- 使用
SpeechRecognition.available()方法检查语言包是否在用户的计算机上可用。 - 如果语言包不可用,则使用
install()方法安装它。
这些步骤使用以下代码片段进行处理:
startBtn.addEventListener("click", () => {
// check availability of target language
SpeechRecognition.available({ langs: ["en-US"], processLocally: true }).then(
(result) => {
if (result === "unavailable") {
diagnostic.textContent = `en-US not available to download at this time. Sorry!`;
} else if (result === "available") {
recognition.start();
console.log("Ready to receive a color command.");
} else {
diagnostic.textContent = `en-US language pack downloading`;
SpeechRecognition.install({
langs: ["en-US"],
processLocally: true,
}).then((result) => {
if (result) {
diagnostic.textContent = `en-US language pack downloaded. Try again.`;
} else {
diagnostic.textContent = `en-US language pack failed to download. Try again later.`;
}
});
}
},
);
});
我们首先运行 available() 方法,指定一种语言 (langs: ["en-US"]) 来检查可用性,并设置 processLocally: true。我们测试了返回值的三种不同可能性:
- 如果结果值为
unavailable,则表示没有合适的语言包可供下载。我们还会向输出打印一条相应的消息。 - 如果结果值为
available,则表示语言包可在本地使用,因此可以开始识别。在这种情况下,我们运行start()并在应用程序准备好接收语音时将消息记录到控制台。 - 如果该值是其他值(
downloadable或downloading),我们打印一条诊断消息,通知用户语言包下载正在开始,然后运行install()方法来处理下载。
install() 方法的工作方式与 available() 方法类似,只是其选项对象仅接受 langs 数组。运行时,它会开始下载 en-US 语言包,并返回一个 Promise,该 Promise 将解析为一个布尔值,指示指定的语言包是否已成功下载和安装 (true) 或未成功 (false)。
此代码摘自我们的 设备端语音颜色更改器(在线运行演示)。有关完整解释,请参阅 使用 Web 语音 API。
规范
| 规范 |
|---|
| Web Speech API # dom-speechrecognition-install |
浏览器兼容性
加载中…