<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在雅特力AT32 MCU上實現關鍵詞語音識別(KWS)

雅特力 AT32 MCU ? 2024-01-06 08:14 ? 次閱讀

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數據管道94c6a210-ac28-11ee-aa22-92fbcf53809c.png

卷積神經網絡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實現流程94dd7c9c-ac28-11ee-aa22-92fbcf53809c.png

資源準備

1) 硬件環境:AT-START-F403A BOARD V1.xAT32-Audio-EV V2.x圖3. KWS測試的硬件環境94e8d9e8-ac28-11ee-aa22-92fbcf53809c.png2) 軟件環境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. 串口打印識別信息950ae07e-ac28-11ee-aa22-92fbcf53809c.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16100

    瀏覽量

    344550
  • 語音識別
    +關注

    關注

    38

    文章

    1650

    瀏覽量

    111894
  • AT32
    +關注

    關注

    1

    文章

    103

    瀏覽量

    1869
收藏 人收藏

    評論

    相關推薦

    基于Cortex-M處理器的高精度關鍵詞識別實現

    我們可以對神經網絡架構進行優化,使之適配微控制器的內存和計算限制范圍,并且不會影響精度。我們將在本文中解釋和探討深度可分離卷積神經網絡在 Cortex-M 處理器實現關鍵詞識別的潛力
    發表于 07-23 06:59

    國產MCU做得越來越好了 在車用電子領域再度突破

    `在車用電子領域再度突破,AT32 MCU大量應用于ADAS環視系統隨著城市化進程的迅猛發展,人民生活水平的日益提高,城市機動車數量飛
    發表于 11-30 21:58

    何在Cortex-M處理器實現高精度關鍵詞識別

    何在 Cortex-M 處理器實現高精度關鍵詞識別
    發表于 02-05 07:14

    可分離卷積神經網絡在 Cortex-M 處理器實現關鍵詞識別

    我們可以對神經網絡架構進行優化,使之適配微控制器的內存和計算限制范圍,并且不會影響精度。我們將在本文中解釋和探討深度可分離卷積神經網絡在 Cortex-M 處理器實現關鍵詞識別的潛力
    發表于 07-26 09:46

    如何通過LD3320語音識別模塊識別我們預定的短語

    基于 ASR 語音識別技術,是基于關鍵詞語列表識別的技術。只需要設定好要識別關鍵詞語列表,并把
    發表于 01-12 08:19

    語音識別_ML-KWS-for-MCU_資料大合集

    ML-KWS-for-MCU[1]是一個把Google的基于TensorFlow開源語音識別項目[2](Keyword spotting,簡稱KWS)應用于
    發表于 02-08 07:07

    識別AT32 MCU的應用筆記

    本應用筆記介紹了在AT32微控制器如何實現當前使用內核版本、MCU廠商及型號的識別
    發表于 10-24 06:37

    何在AT32 MCU使用FPU功能

    How to use FPU描述了如何在AT32 MCU使用FPU功能。
    發表于 10-24 07:45

    AT32 MCU QSPI應用說明

    AT32 MCU QSPI Application Note主要介紹以下幾部分內容:1. 基于提供的V2.x.x 的BSP 板級支持包
    發表于 10-25 06:18

    AT32 MCU SDIO入門指南

    AT32 MCU SDIO入門指南本應用入門指南主要介紹以下幾部分內容:1.基于提供V2.x.x 的BSP板級支持包來進行SD 存儲卡
    發表于 10-25 08:08

    AT32實現關鍵詞語音識別KWS

    AT32實現關鍵詞語音識別KWS)本文基于此開源模型和代碼,在
    發表于 10-26 07:45

    在Cortex-M處理器上完成關鍵詞識別所面臨的問題分析

    關鍵詞識別 (KWS) 對于在智能設備上實現基于語音的用戶交互十分關鍵,需要實時響應和高精度,才
    的頭像 發表于 09-28 09:35 ?3859次閱讀
    在Cortex-M處理器上完成<b class='flag-5'>關鍵詞</b><b class='flag-5'>識別</b>所面臨的問題分析

    語音識別_ML-KWS-for-MCU_資料整理

    ML-KWS-for-MCU[1]是一個把Google的基于TensorFlow開源語音識別項目[2](Keyword spotting,簡稱KWS)應用于
    發表于 12-05 10:51 ?11次下載
    <b class='flag-5'>語音</b><b class='flag-5'>識別</b>_ML-<b class='flag-5'>KWS-for-MCU</b>_資料整理

    TinyML變得簡單:關鍵詞識別(KWS)

    電子發燒友網站提供《TinyML變得簡單:關鍵詞識別(KWS).zip》資料免費下載
    發表于 07-13 10:20 ?3次下載
    TinyML變得簡單:<b class='flag-5'>關鍵詞</b><b class='flag-5'>識別</b>(<b class='flag-5'>KWS</b>)

    何在AT32 MCU上使用FPU功能

    何在AT32 MCU上使用FPU功能
    的頭像 發表于 11-01 17:18 ?3688次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>上使用FPU功能
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>