2.3 唤醒词
2.3.1 名词解析
- 休眠状态:指语音只响应特定语音输入的状态,特定语音输入通常被称为唤醒词;
- 唤醒状态:指语音识别并响应所有语音输入的状态,也被称为交互中状态;
- 唤醒:使语音从休眠状态切换为唤醒状态的动作,可分为语音唤醒、手动唤醒两种;
- 主唤醒词(Major Wake Up):特定的、主要的语音输入文本,通常执行唤醒动作时效果较理想;
- 副唤醒词(Minor Wake Up):可个性化的、次要的语音输入文本,客户与用户均可自由定制,因为缺少调优通常执行唤醒动作时效果逊于主唤醒词;
- 命令唤醒词(Command Wake Up):用于执行简单交互的语音输入文本,唤醒语音后会立即执行操作(预先已定义),随后便恢复休眠状态。因其特性,通常也被称为快捷唤醒词、免唤醒词等;
- 打断唤醒词(Shortcut Wake Up):用于打断TTS播报的语音输入文本,只在唤醒状态下生效。唤醒后不会执行任何具体操作,只会把相应的输入文本送入对话管理中,由对话管理决定具体的操作(唤醒转识别);
2.3.2 主唤醒词
AiLit提供主唤醒定制接口,请按需调用:
主唤醒词支持添加多个,相同覆盖原则,取最后修改项
AiLitContext.getSpeechManager().setMajorWakeUpWord(GeneralWakeUp... )
GeneralWakeUp 参考使用方式:
//参数依次为: 主唤醒词名称(必填), 主唤醒词拼音(必填), 阈值(必填), 欢迎语(选填)
方式一
new GeneralWakeUp("你好小驰", "ni hao xiao chi", "0.27", new String[]{"我在","来啦,来啦"})
方式二
new GeneralWakeUp("你好小驰", "ni hao xiao chi", "0.27")
Tips: 调用该接口将导致DUI平台配置的主唤醒词失效
2.3.3 副唤醒词
AiLit提供副唤醒词定制接口,请按需调用:
副唤醒词有且只能有一个,以最后修改项为准直接覆盖
//GeneralWakeUp 参数填充方与主唤醒词使用方式一致
AiLitContext.getSpeechManager().setMinorWakeUpWord(GeneralWakeUp )
2.3.4 打断唤醒词
打断唤醒词大多出现在特定场景中,如来电时的接听、拒绝。暂无开放规划。
2.3.5 命令唤醒词
命令唤醒词有以下几点特性:
- 快速响应:无需使用主副唤醒词唤醒,并可快速执行特定操作;
- 外部优先:通过AiLit注册的命令唤醒词享有最高优先级,集成端可借此覆盖天琴内部相同的命令唤醒词;
- 副作用大:因其属于唤醒词,添加的数量越多意味着休眠状态下,语音能够响应的说法越多,直观表现就是误唤醒次数越多。请集成端合理控制数量,推荐外部添加的总量不超过 30 个。
CommandWakeUp 实体类
命令唤醒词实体类。属性如下:
字段 | 含义 | 备注 |
---|---|---|
action | 标识 | 命令唤醒词被触发时,以此为标识回调 |
word | 中文 | 3~6字为佳,过多易串词过少易误唤醒 |
pinyin | 拼音 | 请留意xu、ju、qu,需替换为xv、jv、qv。如qv xiao; 如包含英文字母,请联系对接人员确认 |
threshold | 阈值 | 取值范围:(0,1)。具体取值请联系思必驰对接人员 |
greetings | 招呼语 | string数组,唤醒后将从数组中随机选择一条播报。可为空 |
AiLit创建命令唤醒词的方式:
如下为命令唤醒词标准使用方式/格式:
//参数依次为(全部为必填参数):命令唤醒词command, 命令唤醒名称, 命令唤醒词拼音, 阈值
//特殊形式(带英文字母)
new CommandWakeUp("adapter.cmd.wakeup.mode_2d", "2D模式", "er D mo shi", "0.32");
//普通形式
new CommandWakeUp("adapter.cmd.wakeup.play", "继续播放", "ji xv bo fang", "0.32");
特殊词汇注册示例
类型 | 中文示例 | 拼音 |
---|---|---|
英文 | FM发射、打开AUX | FM fa she、da kai AUX |
数字 | 调到2 | tiao dao er |
qjx | 取消、举办、继续 | qv xiao 、jv ban 、ji xv |
数字 + 英文 | 2D模式 | er D mo shi |
OnWakeUpTriggeredListener
唤醒触发监听器。在唤醒词被触发时,将会通知对应监听器。
添加命令唤醒词
请集成端按照自身需求调用添加方法:
AiLitContext.getSpeechManager().addCommandWakeUp(List<CommandWakeUp> lstOfCmdWord, OnWakeUpTriggeredListener listener)
2.3.6 设置阈值系数
天琴提供以下接口用于批量调整唤醒词阈值,集成端可按需设置:
//对所有类型的唤醒词设置统一的系数
AiLitContext.getSpeechManager().setThresholdCoefficient(float globalCoefficient)
//分别对每类唤醒词设置阈值系数
AiLitContext.getSpeechManager().setThresholdCoefficient(float ,float ,float ,float ,float )