# 唤醒词管理
在产品定义过程中,我们为终端用户提供自定义设备唤醒词的功能。通过这个功能,同样一款设备,在不同用户手里,可能会有不同的唤醒词。
# 触发方式
- 有屏设备触发:可以在设备上提供入口,让用户输入自定义唤醒词
- 关联APP触发:可以在关联APP中提供入口,让用户输入自定义唤醒词
- 语音触发:暂不支持
# 功能实现步骤
- 用户输入自定义唤醒词
- 评估该词语是否适合作为唤醒词
- 设置唤醒词
# 协议类型
消息类型 | 名称 | 必须实现 |
---|---|---|
directive | set_wakeword | 否,设备需要支持终端自定义唤醒词才需实现 |
event | set_wakeword_result | 否,设备需要支持终端自定义唤醒词才需实现 |
# context
请求示例
"unios_context": {
...
"wakeword": {
"version": "1.0"
}
...
}
1
2
3
4
5
6
7
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
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
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事件。