在 Actions on Google 应用上设置语音识别上下文?

Posted

技术标签:

【中文标题】在 Actions on Google 应用上设置语音识别上下文?【英文标题】:Set speech recognition context on an Actions on Google app? 【发布时间】:2017-10-13 11:38:47 【问题描述】:

我有一个使用 Actions on Google 客户端 javascript 库的 Google Home 应用:

https://github.com/actions-on-google/actions-on-google-nodejs

语音识别非常好。但有时我会遇到一个有点麻烦的识别环境。有没有办法告诉语音识别工具在每个用户交互的基础上强调某些词组的概率?例如,如果要求用户输入日期,一年中月份的概率会比正常情况高吗?

在某些语音识别引擎中,您可以向引擎提供词汇表(又名语法等)。有没有办法通过 Actions on Google 应用来做到这一点?

我知道 Google 的语音识别 API:

Google Speech Recognition API

但我不知道该 API 是否通过 Actions on Google 服务公开或可用,或者该 API 是否支持语法或上下文列表。

【问题讨论】:

【参考方案1】:

编辑:看起来 Actions on Google 确实有办法期待某些用户输入。 见:

https://developers.google.com/actions/reference/rest/Shared.Types/QueryPatterns

来自这个问题:

google action package how to define custom slot types?

原答案:

您无法更改 Google Home 感知语音输入的方式,它只是使用预定义的词汇进行聆听。但是,您可以使用 https://dialogflow.com/ 来要求对话中的某些参数。

使用 Dialogflow(以前称为 api.ai),您可以将 Date 设置为继续对话所需的参数,或者如果 Home 应用始终听到相同的错误输入,您可以将该输入设置为返回您想要的输入收到。

示例:Google Home 要求输入日期,用户说“october”,但 Home 总是听到“somethingelse”。然后,您可以将“somethingelse”设置为“october”的同义词并从那里处理它。

除了您可以在 Google 上的 Actions 中调用少量操作之外,它实际上需要特定输入 https://developers.google.com/actions/assistant/helpers#built-in_helper_intents 即便如此,它也不会增加 Home 在这里识别特定上下文的机会。

【讨论】:

我没有使用 DialogFlow(以前称为 Api.ai)。我们有自己的输入预处理库。【参考方案2】:

不,很遗憾,语音识别完全是从你那里抽象出来的,我在尝试拥有名称时也遇到了一些挑战,例如,它有时会尝试寻找相似的英文单词,

DialogFlow(以前称为 Api.ai)或您使用的任何框架稍后用于 NLP(自然语言处理)最终处理文本并从中获取关键字。

所以据我所知,它并不是真正的文字部分。

因此,您的 google home 负责将语音转换为文本并将文本发送到您的 NLP 框架,该框架负责解决语法问题,但到目前为止,我可以使用 API.ai 解决我的所有问题,它真的很强大。

【讨论】:

以上是关于在 Actions on Google 应用上设置语音识别上下文?的主要内容,如果未能解决你的问题,请参考以下文章

Actions on Google - 在我的 Android 设备上测试我的项目

Actions-on-Google 自定义推送消息说明

Actions on Google - 哪里可以找到 gactions CLI 的最新文档

帐户关联问题(Actions on Google)

order-update.js 在事务 api actions-on-google 中发送“”作为响应

Actions on Google 在模拟器中返回“很抱歉,出了点问题。请重试。”