# 唤醒词管理

在产品定义过程中,我们为终端用户提供自定义设备唤醒词的功能。通过这个功能,同样一款设备,在不同用户手里,可能会有不同的唤醒词。

# 触发方式

  1. 有屏设备触发:可以在设备上提供入口,让用户输入自定义唤醒词
  2. 关联APP触发:可以在关联APP中提供入口,让用户输入自定义唤醒词
  3. 语音触发:暂不支持

# 功能实现步骤

  1. 用户输入自定义唤醒词
  2. 评估该词语是否适合作为唤醒词
  3. 设置唤醒词

# 协议类型

消息类型 名称 必须实现
directive set_wakeword 否,设备需要支持终端自定义唤醒词才需实现
event set_wakeword_result 否,设备需要支持终端自定义唤醒词才需实现

# context

请求示例

"unios_context": {
  ...
  "wakeword": {
    "version": "1.0"
  }
  ...
}
1
2
3
4
5
6
7
参数 类型 说明 必填
version String 模块版本,现在是1.0

# directive

设置唤醒词
当云端设置了唤醒词后,将会下发set_wakeword指令,设备端应该根据云端返回的值,更新本地的唤醒资源;更新成功/失败时,上报set_wakeword_result事件。

回复示例

{
    "unios_directives": [
        {
            "header": {
                "name": "wakeword.set_wakeword"
            },
            "payload": {
                "url": "https://wakeword.unios.cn/your_wakeword",
                "resource_id": "xxxxxx"
            }
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
参数 类型 说明 必填
url String 唤醒词资源的下载地址
resource_id String 唤醒词资源的唯一id

# event

设置唤醒词结果
请求示例

{
  "unios_header": {...},
  "unios_context": {...},
  "unios_event": {
    "header": {
      "name": "wakeword.set_wakeword_result",
      "message_id": "xxxxxxxx"
    },
    "payload": {
      "result": "SUCCEED",
      "resource_id": "xxxx",
      "errorType": "DOWNLOAD_ERROR"
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
参数 类型 说明 必填
unios_header Object 构建的通用 unios_header
unios_context Object 构建的通用 unios_context
result String 设置唤醒词的结果,取值为SUCCEED或FAILED
resource_id String 唤醒词资源的唯一id
errorType String 设置失败的类型,只有在result取值为FAILED时才需出现。详见errorType取值说明

errorType取值说明

errorType 说明
USER_DENY 用户拒绝设置唤醒词
DOWNLOAD_ERROR 下载唤醒资源失败
TIME_OUT 在特定时间内用户未进行设置确认。建议超时时间设置为10分钟
UNKONWN 无法明确知晓原因的失败

说明

如果errorType为USER_DENY、DOWNLOAD_ERROR、TIME_OUT中的一种时,云端会再次下发set_wakeword指令,设备端应该根据云端返回的值,更新本地的唤醒资源;更新成功/失败时,上报set_wakeword_result事件。