0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在雅特力AT32 MCU上實(shí)現(xiàn)關(guān)鍵詞語(yǔ)音識(shí)別(KWS)

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

KWS概述

關(guān)鍵字定位(Keyword Spotting,KWS)技術(shù),已成為可穿戴設(shè)備、物聯(lián)網(wǎng)設(shè)備和其他智能終端的關(guān)鍵。諸如“Alexa”,“Hey Siri”或“Ok Google”等短語(yǔ)喚醒智能手機(jī)和家用電器上的語(yǔ)音激活功能,已經(jīng)是語(yǔ)音交互設(shè)計(jì)產(chǎn)品的廣泛需求。
對(duì)于KWS,實(shí)時(shí)響應(yīng)和高精度才能獲得良好的用戶(hù)體驗(yàn)。最近,神經(jīng)網(wǎng)絡(luò)已成為KWS架構(gòu)的一個(gè)有吸引力的選擇,因?yàn)榕c傳統(tǒng)的語(yǔ)音處理算法相比,它們具有更高的準(zhǔn)確性。由于需要實(shí)時(shí)在線識(shí)別的要求,導(dǎo)致KWS應(yīng)用在內(nèi)存和計(jì)算能力有限的微型微控制器上運(yùn)行會(huì)受到一定限制。KWS的神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)必須考慮這些限制。于是,研究人員設(shè)計(jì)出由于傳統(tǒng)CNN的深度可分離卷積神經(jīng)網(wǎng)絡(luò)(DS-CNN)架構(gòu)技術(shù)。為了進(jìn)一步介紹了DS-CNN架構(gòu),并展示了開(kāi)發(fā)人員如何在MCU上實(shí)現(xiàn)DS-CNN KWS。2018年ARM和斯坦福大學(xué)進(jìn)行了合作,并開(kāi)源了預(yù)訓(xùn)練TensorFlow模型及其語(yǔ)音關(guān)鍵詞識(shí)別代碼,并將結(jié)果發(fā)表在論文Hello Edge: Keyword Spotting on Microcontrollers中。本文基于此開(kāi)源模型和代碼,在AT32 MCU上對(duì)KWS效果進(jìn)行展示。

KWS實(shí)現(xiàn)原理

關(guān)鍵詞識(shí)別KWS

一個(gè)典型的KWS系統(tǒng)由一個(gè)特征提取器和一個(gè)基于神經(jīng)網(wǎng)絡(luò)的分類(lèi)器組成,如下圖所示。首先,長(zhǎng)度為L(zhǎng)的輸入語(yǔ)音信號(hào)被分成長(zhǎng)度為l且步幅為s的重疊幀,總共有幀T幀。T=(L?l)/S+1從每一幀中提取F個(gè)語(yǔ)音特征,則長(zhǎng)度為L(zhǎng)的整個(gè)輸入語(yǔ)音信號(hào)總共生成T×F個(gè)特征。Logmel filter bank energies (LFBE)和Mel-frequency cepstral coefficients (MFCC)常用于基于深度學(xué)習(xí)語(yǔ)音識(shí)別,特別適用于傳統(tǒng)語(yǔ)音處理技術(shù)。使用LFBE或MFCC進(jìn)行特征提取涉及將時(shí)域語(yǔ)音信號(hào)轉(zhuǎn)換為一組頻域頻譜信號(hào),從而實(shí)現(xiàn)輸入信號(hào)的維度壓縮。提取的語(yǔ)音特征矩陣服務(wù)于輸入分類(lèi)器模塊,該模塊導(dǎo)出所輸出分類(lèi)的概率。在需要從連續(xù)音頻流中識(shí)別關(guān)鍵字的實(shí)際場(chǎng)景中,利用后端處理模塊可以在一段時(shí)間內(nèi)平均每個(gè)輸出類(lèi)的輸出概率,從而提高預(yù)測(cè)的整體置信度。圖1. KWS數(shù)據(jù)管道94c6a210-ac28-11ee-aa22-92fbcf53809c.png

卷積神經(jīng)網(wǎng)絡(luò)CNN

基于DNN的KWS的一個(gè)主要缺點(diǎn)是它無(wú)法有效地對(duì)語(yǔ)音特征中的局部時(shí)間和頻譜相關(guān)性進(jìn)行建模。CNN是通過(guò)將輸入時(shí)域和譜域特征視作圖像,并對(duì)其進(jìn)行二維卷積處理。卷積層之后通常是批量歸一化、基于ReLU的激活函數(shù)和可選的最大/平均池化層,這些處理可以降低特征的維數(shù)。在推理過(guò)程中,批量歸一化的參數(shù)可以折疊到卷積層的權(quán)重中。在某些情況下,為了減少參數(shù)和加速訓(xùn)練,在卷積層和密集層之間添加了一個(gè)線性低秩層,這是一個(gè)沒(méi)有非線性激活的全連接層。

深度可分離卷積神經(jīng)網(wǎng)絡(luò)DS-CNN

深度可分離卷積神經(jīng)網(wǎng)絡(luò)(DS-CNN)。最近,深度可分離卷積已被提出作為標(biāo)準(zhǔn)3-D卷積操作的有效替代方案,并已用于在計(jì)算機(jī)視覺(jué)領(lǐng)域?qū)崿F(xiàn)緊湊的網(wǎng)絡(luò)架構(gòu)。DS-CNN首先將輸入特征圖中的每個(gè)通道與一個(gè)單獨(dú)的2-D濾波器進(jìn)行卷積,然后使用逐點(diǎn)卷積(即1x1)在深度維度上組合輸出。通過(guò)將標(biāo)準(zhǔn)的3-D卷積分解為2-D卷積,然后是1-D卷積,深度可分離卷積在參數(shù)數(shù)量和操作方面都更加高效,這使得即使在資源受限的微控制器設(shè)備中也可以實(shí)現(xiàn)更深、更寬的架構(gòu)。

例 KWS實(shí)作

KWS測(cè)試平臺(tái)

KWS系統(tǒng)需要使用到兩個(gè)平臺(tái),即PC端和AT32 MCU端。PC端:利用TensorFlow與Python撰寫(xiě)完整的深度學(xué)習(xí)程序代碼并訓(xùn)練模型,因本文件使用的學(xué)習(xí)模式為監(jiān)督式的學(xué)習(xí),需給系統(tǒng)大量的訓(xùn)練數(shù)據(jù)和Labels,接著將提取到的特征用以訓(xùn)練CNN模型,并反復(fù)修正訓(xùn)練的模型,直到模型為此系統(tǒng)優(yōu)化的狀態(tài)。AT32 MCU端:利用ARM提供的CMSIS-NN的函式庫(kù)、DSP函數(shù)庫(kù)和CNN函數(shù)庫(kù),結(jié)合PC端訓(xùn)練好的模型(該模型已下載待MCU)。對(duì)輸入到MCU端的音頻數(shù)據(jù)進(jìn)行識(shí)別,實(shí)現(xiàn)對(duì)該語(yǔ)音數(shù)據(jù)可能的標(biāo)簽進(jìn)行分類(lèi)和預(yù)測(cè)。因此,對(duì)于既定模型的KWS識(shí)別,AT32 MCU端可實(shí)現(xiàn)完全離線識(shí)別,無(wú)需實(shí)時(shí)與PC通信或聯(lián)網(wǎng)通信。本示例,AT32MCU端智能識(shí)別的關(guān)鍵詞列表如下"yes","no","up","down","left","right","on","off","stop","go";沒(méi)有輸入信號(hào)時(shí),輸出標(biāo)簽為"Silence";輸入信號(hào)不在關(guān)鍵詞列表時(shí),輸出標(biāo)簽為"Unknown"。注意:由于篇幅限制,本文只介紹AT32 MCU的實(shí)現(xiàn)流程,如下圖陰影部分。圖2. KWS實(shí)現(xiàn)流程94dd7c9c-ac28-11ee-aa22-92fbcf53809c.png

資源準(zhǔn)備

1) 硬件環(huán)境:AT-START-F403A BOARD V1.xAT32-Audio-EV V2.x圖3. KWS測(cè)試的硬件環(huán)境94e8d9e8-ac28-11ee-aa22-92fbcf53809c.png2) 軟件環(huán)境MDK V5.31或更新版本,使用ARM Compiler V6進(jìn)行編譯…\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

軟件設(shè)計(jì)

實(shí)驗(yàn)結(jié)果

在AT32-Audio-EV V2.x端LINE_IN輸入語(yǔ)音信號(hào)后,AT Link虛擬串口會(huì)打印輸出KWS識(shí)別的標(biāo)簽和概率。圖4. 串口打印識(shí)別信息950ae07e-ac28-11ee-aa22-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16813

    瀏覽量

    349476
  • 語(yǔ)音識(shí)別
    +關(guān)注

    關(guān)注

    38

    文章

    1705

    瀏覽量

    112436
  • AT32
    +關(guān)注

    關(guān)注

    1

    文章

    110

    瀏覽量

    2051
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于Cortex-M處理器的高精度關(guān)鍵詞識(shí)別實(shí)現(xiàn)

    我們可以對(duì)神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行優(yōu)化,使之適配微控制器的內(nèi)存和計(jì)算限制范圍,并且不會(huì)影響精度。我們將在本文中解釋和探討深度可分離卷積神經(jīng)網(wǎng)絡(luò)在 Cortex-M 處理器實(shí)現(xiàn)關(guān)鍵詞識(shí)別的潛力
    發(fā)表于 07-23 06:59

    何在Cortex-M處理器實(shí)現(xiàn)高精度關(guān)鍵詞識(shí)別

    何在 Cortex-M 處理器實(shí)現(xiàn)高精度關(guān)鍵詞識(shí)別
    發(fā)表于 02-05 07:14

    可分離卷積神經(jīng)網(wǎng)絡(luò)在 Cortex-M 處理器實(shí)現(xiàn)關(guān)鍵詞識(shí)別

    我們可以對(duì)神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行優(yōu)化,使之適配微控制器的內(nèi)存和計(jì)算限制范圍,并且不會(huì)影響精度。我們將在本文中解釋和探討深度可分離卷積神經(jīng)網(wǎng)絡(luò)在 Cortex-M 處理器實(shí)現(xiàn)關(guān)鍵詞識(shí)別的潛力
    發(fā)表于 07-26 09:46

    如何通過(guò)LD3320語(yǔ)音識(shí)別模塊識(shí)別我們預(yù)定的短語(yǔ)

    基于 ASR 語(yǔ)音識(shí)別技術(shù),是基于關(guān)鍵詞語(yǔ)列表識(shí)別的技術(shù)。只需要設(shè)定好要識(shí)別關(guān)鍵詞語(yǔ)列表,并把
    發(fā)表于 01-12 08:19

    語(yǔ)音識(shí)別_ML-KWS-for-MCU_資料大合集

    ML-KWS-for-MCU[1]是一個(gè)把Google的基于TensorFlow開(kāi)源語(yǔ)音識(shí)別項(xiàng)目[2](Keyword spotting,簡(jiǎn)稱(chēng)KWS)應(yīng)用于
    發(fā)表于 02-08 07:07

    AT32實(shí)現(xiàn)關(guān)鍵詞語(yǔ)音識(shí)別KWS

    AT32實(shí)現(xiàn)關(guān)鍵詞語(yǔ)音識(shí)別KWS)本文基于此開(kāi)源模型和代碼,在
    發(fā)表于 10-26 07:45

    在Cortex-M處理器完成關(guān)鍵詞識(shí)別所面臨的問(wèn)題分析

    關(guān)鍵詞識(shí)別 (KWS) 對(duì)于在智能設(shè)備實(shí)現(xiàn)基于語(yǔ)音的用戶(hù)交互十分
    的頭像 發(fā)表于 09-28 09:35 ?4013次閱讀
    在Cortex-M處理器<b class='flag-5'>上</b>完成<b class='flag-5'>關(guān)鍵詞</b><b class='flag-5'>識(shí)別</b>所面臨的問(wèn)題分析

    攜高性能AT32 MCU精彩亮相全球MCU生態(tài)發(fā)展大會(huì)

    技術(shù)、邊緣AI、新興應(yīng)用和生態(tài)發(fā)展等熱門(mén)議題。 業(yè)務(wù)處長(zhǎng)陳佳延在大會(huì)發(fā)表了題為“
    的頭像 發(fā)表于 08-30 10:04 ?4466次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>攜高性能<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>精彩亮相全球<b class='flag-5'>MCU</b>生態(tài)發(fā)展大會(huì)

    語(yǔ)音識(shí)別_ML-KWS-for-MCU_資料整理

    ML-KWS-for-MCU[1]是一個(gè)把Google的基于TensorFlow開(kāi)源語(yǔ)音識(shí)別項(xiàng)目[2](Keyword spotting,簡(jiǎn)稱(chēng)KWS)應(yīng)用于
    發(fā)表于 12-05 10:51 ?11次下載
    <b class='flag-5'>語(yǔ)音</b><b class='flag-5'>識(shí)別</b>_ML-<b class='flag-5'>KWS-for-MCU</b>_資料整理

    AT32 SPI

    AT32 SPI 科技AT32F415系
    發(fā)表于 03-30 10:44 ?446次閱讀

    TinyML變得簡(jiǎn)單:關(guān)鍵詞識(shí)別(KWS)

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

    何在AT32 MCU使用FPU功能

    何在AT32 MCU使用FPU功能
    的頭像 發(fā)表于 11-01 17:18 ?3943次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b><b class='flag-5'>上</b>使用FPU功能

    如何使用AT32 MCU定時(shí)器進(jìn)行PWM輸入測(cè)試

    如何使用AT32 MCU定時(shí)器進(jìn)行PWM輸入測(cè)試
    的頭像 發(fā)表于 10-27 14:20 ?2316次閱讀
    如何使用<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>定時(shí)器進(jìn)行PWM輸入測(cè)試

    AT32 MCU實(shí)現(xiàn)高效電機(jī)驅(qū)動(dòng)控制與應(yīng)用

    發(fā)展。受邀出席此次會(huì)議,產(chǎn)品市場(chǎng)總監(jiān)林金海發(fā)表了題為“AT32
    的頭像 發(fā)表于 11-17 08:15 ?754次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b><b class='flag-5'>實(shí)現(xiàn)</b>高效電機(jī)驅(qū)動(dòng)控制與應(yīng)用

    AT32 MCU與SEGGER攜手合作,開(kāi)發(fā)量產(chǎn)事半功倍

    近日,與SEGGER共同宣布J-Link仿真調(diào)試器與Flasher在線燒錄器全面支持AT32 MCU產(chǎn)品,SEGGER工具鏈的加持使
    的頭像 發(fā)表于 02-23 10:27 ?314次閱讀