智慧家庭是近年来物联网市场重点发展的一个题目,随著应用产品与功能越来越多元化,让云端运算工作量不断扩充同时也占用网路流量,也因此边缘运算在近期不断被强调其重要性,希望可以分担云端工作量。东芝也在MCU产品上也推出了语音辨识与播放的算法,可以在低阶版本的ARM M4核心中独立完成中、英、日文的语音关键字辨识并拨放对应需求的语音,此功能与云端语音辨识比较展现了四大优点
低延迟响应
高度保密性
更佳的抗噪能力
极小的硬体资源
细部说明如下,东芝语音识别因为完全由M4核心算法计算,不需要依靠云端资源除了系统简单外响应时间在200msec以内针对需要即时控制的产品有高度可靠性;东芝语音辨识算法是经过深度学习调适,除了辨识率高同时也有更佳的抗噪能力,若有特别场合的背景噪音也可以重新调适算法作辨识字典增加辨识率;硬体资源部分英文与日文仅仅需要150KB Flash Code size,中文则需要350KB Flash Code size,RAM的需求则在140KB以内,并使用SPI界面接收MEMS麦克风I2S音讯再以两组PWM界面驱动完成ADX语音播报的功能,以相当低阶的一般消费型MCU硬体资源即可完成了语音辨识与播放功能的设计。
本次方案我们使用东芝TMPM4G6F10FG MCU产品搭配语音辨识与播放功能的算法导入语音控制智慧窗帘应用,以TMPM4G6F10FG自动辨识语音指令后控制东芝TB67S279FTG马达驱动IC致使窗帘动作。TB67S279FTG为步进马达控制IC,产品特色如下
AGC(主动增益控制)技术:解决防止步进马达失步从而产生大量热量问题
ACDS(高级电流检测系统)技术: 东芝原创技术实现了高精度恒定电流的电机驱动,且无需使用外部电流灵敏电阻器也有助于缩小板尺寸和物料清单(BOM)成本
微步驱动技术: 微步驱动器可以通过逐步改变两个绕组的电流比率,以相比于基本步进角度更精细的步进角度旋转马达
异常检测技术: 热关断(TSD),过电流保护(ISD),上电重置(POR),电机负载开路(OPD)
设计说明:
语音控制命令:
规划指令定义与动作如下:
语音命令动作设计
控制启动播放"待命中",启动马达控制,20秒无任何动作回到休息模式
关闭窗帘播放"窗帘关闭中"->控制马达正转至线性滑轨终点->播放"窗帘已关闭"
全部打开播放"窗帘打开中"->控制马达反转至线性滑轨起点->播放"窗帘已打开"
光线太亮播放"等等"->控制马达正转线性滑轨1/10位置->播放"是否还太亮"
有点太暗播放"遵命"->控制马达反转线性滑轨1/10位置->播放"亮度足够吗"
语音辨识触发关键字建立与程式设计:
使用东芝Voice Trigger GUI工具(TMW_VT_TMG.exe)编辑关键字字典,如下图点选红框处执行程式,绿框处输入关键字的汉语拼音
将设计好的语音辨识关键字资料用下拉式功能表的”Generate”产生middleware所需的字典档案
对应程式设计如下
首先针对设计好的关键字设定threshold参数(数值0~1000)如下图,参数越大表示越容易通过但也增加误判率,参数可以依照环境与关键字互相间的相似性作调整设计
使用middleware算法函式可以取出语音辨识的资讯,将语音辨识资讯的ID(detect.keywordID)传入窗帘马达控制的函式已进行对应程式设计动作
窗帘控制动作设计
如第二步设计,设计好窗帘所对应语音指令所需要的动作函式将语音辨识ID传入就可以对应执行,窗帘启动后会纪录位置,开关窗帘由马达正反转(MOTOR_DIR)决定,gMotor_Target_Pos参数则是计算马达本次动作需要到达的位置,程式码如下:
驱动窗帘移动的线性滑轨实际测试后的极限位置设定如下参数,未来若更换不同线性滑轨都很容易修改,而窗帘部分开关的参数也可以调整
语音播放功能程式设计
语音播放部分必须先将播放语音录制后转出成C语言阵列提供函式定址做输出播放成语音,这边介绍两款工具,首先先使用CRI Atom Encoder将录制的语音档案转成ADX格式音讯档案,如下图将录制wav档设定为24KHz sampling rate(如绿框),在执行红框选项作转档
转档完成后再使用bin2txt转成C语言阵列格式提供程式使用,指令如下图
转档完成的C file(如下图红框处)必须将档案include到程式中,同时要宣告array的记忆体(开启C file的绿框处)
对应到程式码中如下图做include与记忆体宣告动作
完成后就可以使用criAtomPlayer_SetData函式在需要播放语音的地方撰写程式即可执行。
窗帘动作:
当语音辨识、语音拨放与马达动作参数都设计好后,语音控制智慧窗帘侦测到对应关键字语音就会自动完成动作,程式设
1