[TOC]
该需求之前曾经做过一个版本,当时主要是受限于思必驰唤醒技术,唤醒词只能有一个生效,例如主唤醒词’你好小P‘有效的情况下,用户的自定义唤醒词无法唤醒,同理,如果用户自定义唤醒词生效的情况下,主唤醒词无法使用
版本 | 文档链接 |
---|---|
2020-06-02 | 个性化唤醒词以及称呼更新 |
2020-07-23 | 双唤醒词&唤醒回复词 |
界面 | 业务 | 实现方案 |
---|---|---|
智能语音设置 | 1. 本地获取个性化唤醒词并展示 2. 本地获取个性化回复词并展示 |
1. 持久化方案选择SharedPreference 2.增加存储KEY:CUSTOM_WAKEUP_WORD和CUSTOM_WAKEUP_RESPONSE 3.默认自定义唤醒词为空 |
个性化唤醒词设置 | 1. 下一步跳转逻辑(P0) 2. 恢复默认逻辑(跳转至智能语音界面)(PO) 3. 唤醒词合法性校验(P0) 4. 唤醒词信息获取接口(包含评分、拼音、阈值) |
1. 创建CustomWakeupDialog 2. 校验逻辑参考需求文档 3. 使用ModuleInterface库中封装的网络请求工具代码,请求唤醒词合法性校验接口 4.通过设置Http参数readTimeout connectTimeout来实现校验超时 5. 重置按钮是否可点的逻辑参考PRD文档 |
个性化唤醒词设置结果页面 | 1. 如果唤醒评分较低,则展示 | 1. 参考PRD文档设置对应button相应事件 2. 创建CustomWakeupLowValueDialog |
网络不好 | 1. 请求唤醒评分超时 2. 唤醒学习ASR 5s超时 |
1. 点击关闭按钮,关闭弹窗 2. showNetExceptionInfo |
个性化唤醒词学习界面 | 1. 记录识别次数(P0) 2. 接入语音识别接口(P0) 3. 非多音字匹配逻辑(P0) 1d 4. 唤醒逻辑(三次识别成功后传入唤醒SDK) 5. 唤醒引擎接入(P0) 6. 唤醒学习音频保存逻辑(P0) 7. 唤醒学习音频上传云端逻辑(P0) 8. tts合成‘请说+唤醒词’(多音字)(P0) 9. 第二次、第三次音频提前合成保存至本地(P0) |
1. 创建CustomWakeupStudyDialog 2. 创建validWakeupCount字段,用于记录有效识别次数 3. 创建failAsrCount字段,用于记录单轮ASR的失败次数,超过3次,进入重试逻辑 4. 调用唤醒SDK音频传入接口,将三次有效音频传入 5.调用识别SDK,以及识别状态监听,并与声音动画关联 6. 识别过程中,将音频保存至本地 7.upload音频到服务端的逻辑(待确认上传位置) 8. 调用tts合成相应的提示语,并保存至本地/sdcard/customwakeuptips.mp3 9.将唤醒SDK返回的唤醒阈值保存至SpeechDialogConfigManager中KEY为CUSTOM_WAKEUP_THREASHOLD, 10. 将唤醒评分结果保存至本地,KEY为:CUSTOM_WAKEUP_SCORE |
个性化唤醒词学习结果 | 1. 唤醒词保存至本地(P0) 2. 唤醒阈值设置接口(P0) |
1. 调用SpeechDialogConfigManager将唤醒词以key value形式保存 2. 根据评分结果阈值80来判断展示易唤醒界面还是不易唤醒界面 3.创建CustomWakeupStuyResultDialog |
个性化回复词设置 | 1. 设置完成跳转逻辑(P0) 2. 恢复默认逻辑(跳转至智能语音界面)(P0) 3. 回复词词合法性校验(P0) 4. 回复词信息获取接口(P 0) 5. 获取回复词TTS音频并缓存至本地备用(P0) |
1. 创建CustomWakeupResponseDialog 2. 使用ModuleInterface库中封装的网络请求工具代码,请求回复词合法性校验接口 3.使用delayRunnable,用于判断1S内是否返回结果,以及3s返回结果 4. 调用SpeechDialogConfigManager将回复词以key value形式保存,key为CUSTOM_WAKEUP_RESPONSE |
![自定义唤醒词实现流程图 (1)](https://gitee.com/moonsky/image-bed/raw/master/自定义唤醒词实现流程图 (1).jpg)
预计开发周期为:21人/天
开始开发时间:2021-8-2
预计与思必驰SDK联调时间:9-15