KWS概述
關鍵字定位(Keyword Spotting,KWS)技術,已成為可穿戴設備、物聯網設備和其他智能終端的關鍵。諸如“Alexa”,“Hey Siri”或“Ok Google”等短語喚醒智能手機和家用電器上的語音激活功能,已經是語音交互設計產品的廣泛需求。
對于KWS,實時響應和高精度才能獲得良好的用戶體驗。最近,神經網絡已成為KWS架構的一個有吸引力的選擇,因為與傳統的語音處理算法相比,它們具有更高的準確性。由于需要實時在線識別的要求,導致KWS應用在內存和計算能力有限的微型微控制器上運行會受到一定限制。KWS的神經網絡架構設計必須考慮這些限制。于是,研究人員設計出由于傳統CNN的深度可分離卷積神經網絡(DS-CNN)架構技術。為了進一步介紹了DS-CNN架構,并展示了開發人員如何在MCU上實現DS-CNN KWS。2018年ARM和斯坦福大學進行了合作,并開源了預訓練TensorFlow模型及其語音關鍵詞識別代碼,并將結果發表在論文Hello Edge: Keyword Spotting on Microcontrollers中。本文基于此開源模型和代碼,在AT32 MCU上對KWS效果進行展示。
KWS實現原理
關鍵詞識別KWS
一個典型的KWS系統由一個特征提取器和一個基于神經網絡的分類器組成,如下圖所示。首先,長度為L的輸入語音信號被分成長度為l且步幅為s的重疊幀,總共有幀T幀。T=(L?l)/S+1從每一幀中提取F個語音特征,則長度為L的整個輸入語音信號總共生成T×F個特征。Logmel filter bank energies (LFBE)和Mel-frequency cepstral coefficients (MFCC)常用于基于深度學習的語音識別,特別適用于傳統語音處理技術。使用LFBE或MFCC進行特征提取涉及將時域語音信號轉換為一組頻域頻譜信號,從而實現輸入信號的維度壓縮。提取的語音特征矩陣服務于輸入分類器模塊,該模塊導出所輸出分類的概率。在需要從連續音頻流中識別關鍵字的實際場景中,利用后端處理模塊可以在一段時間內平均每個輸出類的輸出概率,從而提高預測的整體置信度。圖1. KWS數據管道
卷積神經網絡CNN
基于DNN的KWS的一個主要缺點是它無法有效地對語音特征中的局部時間和頻譜相關性進行建模。CNN是通過將輸入時域和譜域特征視作圖像,并對其進行二維卷積處理。卷積層之后通常是批量歸一化、基于ReLU的激活函數和可選的最大/平均池化層,這些處理可以降低特征的維數。在推理過程中,批量歸一化的參數可以折疊到卷積層的權重中。在某些情況下,為了減少參數和加速訓練,在卷積層和密集層之間添加了一個線性低秩層,這是一個沒有非線性激活的全連接層。
深度可分離卷積神經網絡DS-CNN
深度可分離卷積神經網絡(DS-CNN)。最近,深度可分離卷積已被提出作為標準3-D卷積操作的有效替代方案,并已用于在計算機視覺領域實現緊湊的網絡架構。DS-CNN首先將輸入特征圖中的每個通道與一個單獨的2-D濾波器進行卷積,然后使用逐點卷積(即1x1)在深度維度上組合輸出。通過將標準的3-D卷積分解為2-D卷積,然后是1-D卷積,深度可分離卷積在參數數量和操作方面都更加高效,這使得即使在資源受限的微控制器設備中也可以實現更深、更寬的架構。
例 KWS實作
KWS測試平臺
KWS系統需要使用到兩個平臺,即PC端和AT32 MCU端。PC端:利用TensorFlow與Python撰寫完整的深度學習程序代碼并訓練模型,因本文件使用的學習模式為監督式的學習,需給系統大量的訓練數據和Labels,接著將提取到的特征用以訓練CNN模型,并反復修正訓練的模型,直到模型為此系統優化的狀態。AT32 MCU端:利用ARM提供的CMSIS-NN的函式庫、DSP函數庫和CNN函數庫,結合PC端訓練好的模型(該模型已下載待MCU)。對輸入到MCU端的音頻數據進行識別,實現對該語音數據可能的標簽進行分類和預測。因此,對于既定模型的KWS識別,AT32 MCU端可實現完全離線識別,無需實時與PC通信或聯網通信。本示例,AT32MCU端智能識別的關鍵詞列表如下"yes","no","up","down","left","right","on","off","stop","go";沒有輸入信號時,輸出標簽為"Silence";輸入信號不在關鍵詞列表時,輸出標簽為"Unknown"。注意:由于篇幅限制,本文只介紹AT32 MCU的實現流程,如下圖陰影部分。圖2. KWS實現流程
資源準備
1) 硬件環境:AT-START-F403A BOARD V1.xAT32-Audio-EV V2.x圖3. KWS測試的硬件環境2) 軟件環境MDK V5.31或更新版本,使用ARM Compiler V6進行編譯…\PACK\ArteryTek.AT32F403A_407_DFP.2.1.2.pack或更新版本…\PACK\ARM.CMSIS-DSP.1.11.0.pack或更新版本ML-KWS-for-MCU-master\Project\mdk_v5
軟件設計
實驗結果
在AT32-Audio-EV V2.x端LINE_IN輸入語音信號后,AT Link虛擬串口會打印輸出KWS識別的標簽和概率。圖4. 串口打印識別信息
-
mcu
+關注
關注
146文章
17324瀏覽量
352655 -
語音識別
+關注
關注
38文章
1742瀏覽量
112927 -
AT32
+關注
關注
1文章
118瀏覽量
2167
發布評論請先 登錄
相關推薦
評論