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