目录
- 智能家具语音识别应用场景
- 控制音乐播放
- 结合思必驰DUI平台
- 智能家居设备控制
- 设备控制
- 场景控制
- DUI平台智能家居技能解析
- 设计一个简单的语音控制流程
- 语音匹配规则模型
- 语音识别处理流程
- 优化的点
智能家具语音识别应用场景
相信大家或多或少接触过语音识别产品,例如天猫精灵、百度音响这些IOT设备,或者siri、小爱同学这些手机语音引擎。现在再框定智能家居应用,语音识别功能就比较清晰了。鄙人根据行业经验,将其概括为以下几点:
控制音乐播放
譬如家庭音乐主机、车机、音箱等产品,都离不开播放音乐这一项能力。在此场景下,包括但不限于以下热点语音词:
a、该能力触发类语音:“帮我放首歌”、“我想听音乐”
b、该能力特有技能语音:“播放流行音乐”、“播放刘德华的歌”
c、通用能力控制类语音:“下一首”、“暂停”、“继续播放”、“结束播放”、“增大音量”
结合思必驰DUI平台
a、首先需要在DUI平台需要在平台按照指引创建项目和产品,就不赘述了,可以去官网实操一下https://www.duiopen.com/;
b、关于音乐播放,dui平台上作为一个在线技能展示
音乐技能也分了好多种,如下图所示,开发者可以配置成酷我、咪咕、QQ音乐、HIFI资源等对接方式。对接方式主要分为APK对接、SDK对接、webAPI对接:前两者需要定制第三方的软件,一般个人开发是获取不到的;webapi对接则是根据返回的在线音频资源链接,进行播放;
c、当然也可以完全本地播放,根据返回的技能,识别到是要触发音乐播放,然后调用本地的音乐播放接口;
d、播放控制则是走的另一个技能“播放控制”,譬如下一首、暂停等操作;
智能家居设备控制
智能家居语音控制可以概括成以下几个因素:
操作类型 + 房间/分组 + 对象昵称 + 操作的设备属性名 + 参数
根据常见的智能家居技能,从“设备控制”、“场景控制”两种分析一下:
设备控制
对于设备控制,触发的语音类似于"打开客厅灯"、“关闭所有开关”、客厅空调开到27度等等。这些分解成关键因素就成了
a、开关 + 客厅 + 灯 + 电源开关 + 1
b、开关 + ALL + 开关 + 电源开关 + 0
c、调温 + 客厅 + 空调 + 温度 + 27
场景控制
对于场景控制,触发的语音类似于"打开会客场景"、“打开主卧睡眠模式”等等。相对于设备属性控制,场景控制的关键因素就比较少,只构成:打开 + 地点 + 场景名
DUI平台智能家居技能解析
源数据:
{“skillId”:“2019052300000366”,“recordId”:“f4e73f6cd5d84d4d9c5d96c99b4a76ef”,“dm”:{“intentId”:“5efd78314b389a0001ace3d0”,“nlg”:“”,“status”:1,“widget”:{“type”:“text”,“duiWidget”:“text”,“widgetName”:“default”,“name”:“default”},“command”:{“api”:“DUI.SmartHome.Device.TurnOn”,“param”:{“location”:“阳台”,“deviceType”:“窗帘”}},“shouldEndSession”:true,“speak”:{“text”:“”,“type”:“text”},“input”:“打开阳台窗帘”,“runSequence”:“nlgFirst”,“intentName”:“设备控制”,“task”:“家居控制”,“taskId”:“5ce646e359864e000d4063d9”},“contextId”:“e2b4462ce21343ba899533c8dd0ced56”,“sessionId”:“e2b4462ce21343ba899533c8dd0ced56”,“requestId”:“f4e73f6cd5d84d4d9c5d96c99b4a76ef”,“skill”:“智能家居”}
以上参数主要选取:DUI.SmartHome.Device.TurnOn", // param":{“location”:“阳台”,“deviceType”:“窗帘”}},
转换语义为:打开阳台上的,名字带“窗帘”的设备;或者阳台上的窗帘类型设备;根据需求来选定语义
设计一个简单的语音控制流程
首先为什么是简单的呢,就是我们仅仅使用枚举法去覆盖不同的语音输入,不在枚举之内就无法识别。其次对于离线,很简单,这是一种部署在IOT设备上的语音规则引擎,可以脱离云平台工作。
语音匹配规则模型
根据上文分析的智能家居设备、场景控制关键因素,我们设计一种语音匹配规则模型,能实现大多数的需求。
[{
“version”:“1.0”,
“words”:[
“打开客厅灯”,
“开灯”
],
“operate”:[{
“type”:“设备控制”,
“location”:“客厅”,
“dev_name”:“客厅灯”,
“dev_type”:“1”,
“opt_item”:[{
“identifier”:“电源开关”,
“value”:“1”
},{
“identifier”:“Level”,
“value”:“100”
}]
}]
},{
“version”:“1.0”,
“words”:[
“睡眠模式”
],
“operate”:[{
“type”:“场景控制”,
“location”:“主卧”,
“sence_name”:“会客场景”,
}]
}]
语音识别处理流程
优化的点
对于语音输入词条枚举匹配的优化—设法训练一个人工神经网络,将词条解析成不同的语义,就像人脑的处理流程。