语音识别
本教程演示了如何在 JxBrowser 中启用语音识别功能。
启用 Speech API
语音识别是 Chromium 的专有功能,需要 Google API 密钥才能正常运行。在获取该密钥之前,您需要先启用私有的 Speech API(语音 API):
- 该 API 仅对订阅了 chromium-dev Google Group 的用户可见。加入时,请确保勾选了链接到我的 Google 帐户个人资料选项。
- 进入 Google Cloud 控制台。确保您使用的是与订阅 “chromium-dev” 组的电子邮件地址关联的 Google 账户登录。
- 在顶部栏中,为您的应用程序创建一个新项目或选择一个现有项目。
- 从侧边菜单中选择 APIs & Services(API 和服务)> Library(库)。
- 找到并启用 “Speech API”,注意不是 “Cloud Speech-to-Text API”(云语音转文本 API)。如果未找到该 API,返回 Library(库) 页面,在左侧的 Visibility(公开范围) 部分中选择 Private(私享)。在那里,您将看到所有对您公开的私享 API。
订阅该组后,私享 API 的显示可能需要一些时间(最多 15 分钟)。
获取凭据
现在,您可以获取需要传递给 EngineOptions
的凭据:
var options = EngineOptions.newBuilder(HARDWARE_ACCELERATED)
.googleApiKey("key")
.googleDefaultClientId("client-id")
.googleDefaultClientSecret("secret")
.build();
var engine = Engine.newInstance(options);
val engine = Engine(HARDWARE_ACCELERATED) {
google {
apiKey = "key"
defaultClientId = "client-id"
defaultClientSecret = "secret"
}
}
- 在侧边菜单中选择 APIs & Services(API 和服务)> Credentials(凭据)。
- 点击 CREATE CREDENTIALS(创建凭据) 按钮,并在下拉列表中选择 OAuth client ID(OAuth 客户端 ID)。在 Application type(应用类型) 部分,勾选 Desktop app(桌面应用) 并在 Name(名称) 文本框中为其命名,然后点击 Create(创建)。
- 在弹出窗口中,您将看到一个客户端 ID 和一个客户端密钥字符串。它们应分别传递给
googleDefaultClientId
和googleDefaultClientSecret
方法。 - 在同一页面上再次点击 CREATE CREDENTIALS(创建凭据) 按钮,选择 API 密钥项。应该会弹出一个窗口,显示 API 密钥字符串。它应传递给
googleApiKey
方法。
请注意,启用 API 和获取凭据并非即时操作。在 Google Cloud 中,应用这些设置需要一些时间,之后您才能使用它们。甚至在创建凭据时,平台也会提醒您这一点。
授予权限
为了允许 Chromium 识别您的语音,您需要授予其录制音频的权限:
engine.permissions().set(RequestPermissionCallback.class,
(params, tell) -> {
if (params.permissionType() == AUDIO_CAPTURE) {
tell.grant();
} else {
tell.deny();
}
});
engine.permissions().set(RequestPermissionCallback::class.java) { params, tell ->
if (params.permissionType() === AUDIO_CAPTURE) {
tell.grant()
} else {
tell.deny()
}
}
请查看完整的代码片段。