核心技術優(yōu)勢/方案詳細規(guī)格/產(chǎn)品實體圖/PCB/方塊圖Datasheet/測試報告/Gerber/Schematics/User manual +一鍵獲取
智慧家庭是近年來物聯(lián)網(wǎng)市場重點發(fā)展的一個題目,隨著應用產(chǎn)品與功能越來越多元化,讓云端運算工作量不斷擴充同時也占用網(wǎng)路流量,也因此邊緣運算在近期不斷被強調(diào)其重要性,希望可以分擔云端工作量。東芝也在MCU產(chǎn)品上也推出了語音辨識與播放的算法,可以在低階版本的ARM M4核心中獨立完成中、英、日文的語音關鍵字辨識并撥放對應需求的語音,此功能與云端語音辨識比較展現(xiàn)了四大優(yōu)點
- 低延遲響應
- 高度保密性
- 更佳的抗噪能力
- 極小的硬體資源
細部說明如下,東芝語音識別因為完全由M4核心算法計算,不需要依靠云端資源除了系統(tǒng)簡單外響應時間在200msec以內(nèi)針對需要即時控制的產(chǎn)品有高度可靠性;東芝語音辨識算法是經(jīng)過深度學習調(diào)適,除了辨識率高同時也有更佳的抗噪能力,若有特別場合的背景噪音也可以重新調(diào)適算法作辨識字典增加辨識率;硬體資源部分英文與日文僅僅需要150KB Flash Code size,中文則需要350KB Flash Code size,RAM的需求則在140KB以內(nèi),并使用SPI界面接收MEMS麥克風I2S音訊再以兩組PWM界面驅(qū)動完成ADX語音播報的功能,以相當?shù)碗A的一般消費型MCU硬體資源即可完成了語音辨識與播放功能的設計。
本次方案我們使用東芝TMPM4G6F10FG MCU產(chǎn)品搭配語音辨識與播放功能的算法導入語音控制智慧窗簾應用,以TMPM4G6F10FG自動辨識語音指令后控制東芝TB67S279FTG馬達驅(qū)動IC致使窗簾動作。TB67S279FTG為步進馬達控制IC,產(chǎn)品特色如下
- AGC(主動增益控制)技術:解決防止步進馬達失步從而產(chǎn)生大量熱量問題
- ACDS(高級電流檢測系統(tǒng))技術: 東芝原創(chuàng)技術實現(xiàn)了高精度恒定電流的電機驅(qū)動,且無需使用外部電流靈敏電阻器也有助于縮小板尺寸和物料清單(BOM)成本
- 微步驅(qū)動技術: 微步驅(qū)動器可以通過逐步改變兩個繞組的電流比率,以相比于基本步進角度更精細的步進角度旋轉(zhuǎn)馬達
- 異常檢測技術: 熱關斷(TSD),過電流保護(ISD),上電重置(POR),電機負載開路(OPD)
設計說明:
- 語音控制命令:
規(guī)劃指令定義與動作如下:語音命令 動作設計 控制啟動 播放"待命中",啟動馬達控制,20秒無任何動作回到休息模式 關閉窗簾 播放"窗簾關閉中"->控制馬達正轉(zhuǎn)至線性滑軌終點->播放"窗簾已關閉" 全部打開 播放"窗簾打開中"->控制馬達反轉(zhuǎn)至線性滑軌起點->播放"窗簾已打開" 光線太亮 播放"等等"->控制馬達正轉(zhuǎn)線性滑軌1/10位置->播放"是否還太亮" 有點太暗 播放"遵命"->控制馬達反轉(zhuǎn)線性滑軌1/10位置->播放"亮度足夠嗎" - 語音辨識觸發(fā)關鍵字建立與程式設計:
使用東芝Voice Trigger GUI工具(TMW_VT_TMG.exe)編輯關鍵字字典,如下圖點選紅框處執(zhí)行程式,綠框處輸入關鍵字的漢語拼音
將設計好的語音辨識關鍵字資料用下拉式功能表的”Generate”產(chǎn)生middleware所需的字典檔案
對應程式設計如下
首先針對設計好的關鍵字設定threshold參數(shù)(數(shù)值0~1000)如下圖,參數(shù)越大表示越容易通過但也增加誤判率,參數(shù)可以依照環(huán)境與關鍵字互相間的相似性作調(diào)整設計
使用middleware算法函式可以取出語音辨識的資訊,將語音辨識資訊的ID(detect.keywordID)傳入窗簾馬達控制的函式已進行對應程式設計動作
- 窗簾控制動作設計
如第二步設計,設計好窗簾所對應語音指令所需要的動作函式將語音辨識ID傳入就可以對應執(zhí)行,窗簾啟動后會紀錄位置,開關窗簾由馬達正反轉(zhuǎn)(MOTOR_DIR)決定,gMotor_Target_Pos參數(shù)則是計算馬達本次動作需要到達的位置,程式碼如下:
驅(qū)動窗簾移動的線性滑軌實際測試后的極限位置設定如下參數(shù),未來若更換不同線性滑軌都很容易修改,而窗簾部分開關的參數(shù)也可以調(diào)整
- 語音播放功能程式設計
語音播放部分必須先將播放語音錄制后轉(zhuǎn)出成C語言陣列提供函式定址做輸出播放成語音,這邊介紹兩款工具,首先先使用CRI Atom Encoder將錄制的語音檔案轉(zhuǎn)成ADX格式音訊檔案,如下圖將錄制wav檔設定為24KHz sampling rate(如綠框),在執(zhí)行紅框選項作轉(zhuǎn)檔
轉(zhuǎn)檔完成后再使用bin2txt轉(zhuǎn)成C語言陣列格式提供程式使用,指令如下圖
轉(zhuǎn)檔完成的C file(如下圖紅框處)必須將檔案include到程式中,同時要宣告array的記憶體(開啟C file的綠框處)
對應到程式碼中如下圖做include與記憶體宣告動作
完成后就可以使用criAtomPlayer_SetData函式在需要播放語音的地方撰寫程式即可執(zhí)行。 - 窗簾動作:
當語音辨識、語音撥放與馬達動作參數(shù)都設計好后,語音控制智慧窗簾偵測到對應關鍵字語音就會自動完成動作,程式設計成motor_run函式如下:
以上就完成語音控制智慧窗簾所需要的動作設計,詳細程式碼可以參考附檔
實際完成結(jié)果的控制動作也可以參考錄制的影片,網(wǎng)址連結(jié)為 https://youtu.be/eQARgyGNSjs