摘要
語(yǔ)音關(guān)鍵詞識(shí)別(Keyword Spotting, KWS)技術(shù)已普遍應(yīng)用在以電池為主的供電設(shè)備中,對(duì)于此類(lèi)設(shè)備低功耗是一個(gè)重要考慮的因素。然而,單獨(dú)的低功耗神經(jīng)網(wǎng)絡(luò)因注重功耗的降低,難以適應(yīng)高噪聲環(huán)境下的使用,為了能靈活適應(yīng)不同噪聲場(chǎng)景,并盡可能降低系統(tǒng)功耗與面積,本文提出了一種基于蜂鳥(niǎo)E203和神經(jīng)網(wǎng)絡(luò)硬件加速器的自適應(yīng)噪聲環(huán)境超低功耗語(yǔ)音關(guān)鍵詞識(shí)別系統(tǒng)。
本文設(shè)計(jì)的SoC系統(tǒng)處理器基于RISC-V指令集,通過(guò)NICE協(xié)處理器接口接入所設(shè)計(jì)的語(yǔ)音識(shí)別神經(jīng)網(wǎng)絡(luò)加速器,處理器通過(guò)自定義指令可控制加速器開(kāi)關(guān)并讀取運(yùn)算數(shù)據(jù),數(shù)據(jù)最后通過(guò)E203處理器處理并將識(shí)別結(jié)果實(shí)時(shí)顯示在OLED屏上,同時(shí)可通過(guò)語(yǔ)音控制OLED屏上的貪吃蛇小游戲。此外,該系統(tǒng)可針對(duì)低信噪比和高信噪比噪聲環(huán)境切換不同精度的神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)在噪聲持續(xù)變化的環(huán)境中,根據(jù)信噪比大小自動(dòng)選擇合適的工作模式。在語(yǔ)音識(shí)別加速器算法上,本文實(shí)現(xiàn)了基于SNR預(yù)測(cè)模塊的神經(jīng)網(wǎng)絡(luò)。第一,本文引入了SNR預(yù)測(cè)模塊,對(duì)環(huán)境噪聲進(jìn)行預(yù)測(cè)。在高信噪比環(huán)境下使用超低功耗的近似權(quán)重二值化神經(jīng)網(wǎng)絡(luò)(Binary Weight Neural Network, BWN),在低信噪比環(huán)境下使用帶噪聲訓(xùn)練的精確BWN神經(jīng)網(wǎng)絡(luò)。第二,在高信噪比環(huán)境下,為了降低神經(jīng)網(wǎng)絡(luò)的復(fù)雜度,本文針對(duì)神經(jīng)網(wǎng)絡(luò)訓(xùn)練提出了逐步量化方案,篩選出適合將網(wǎng)絡(luò)權(quán)重量化到1bit的網(wǎng)絡(luò)模型,引入近似計(jì)算單元以降低功耗,同時(shí)針對(duì)能量化為BWN的網(wǎng)絡(luò)模型,采用軟硬件協(xié)同設(shè)計(jì)的方法進(jìn)行算法定制優(yōu)化,整體算法能實(shí)現(xiàn)12個(gè)語(yǔ)音關(guān)鍵詞的識(shí)別,在近麥克風(fēng)語(yǔ)音環(huán)境下準(zhǔn)確率為89.1%,在15dB信噪比環(huán)境下準(zhǔn)確率為86.5%。第三,在低信噪比環(huán)境下,為了不降低神經(jīng)網(wǎng)絡(luò)的識(shí)別率,本文選擇帶噪聲訓(xùn)練的精確BWN神經(jīng)網(wǎng)絡(luò),在0dB信噪比環(huán)境下準(zhǔn)確率為88%。
本文基于TSMC 22nm ULL工藝,完成了語(yǔ)音識(shí)別加速器的綜合(Design Compiler, DC)、功耗分析(PrimeTime PX, PTPX)以及后端版圖設(shè)計(jì)工作,版圖設(shè)計(jì)面積為0.6mm2。當(dāng)工作頻率為250kHz,IO驅(qū)動(dòng)電壓為1.8V,SRAM電壓為0.6V,logic電路電壓為0.39V時(shí)可以實(shí)現(xiàn)對(duì)語(yǔ)音關(guān)鍵詞的實(shí)時(shí)判斷,HVT工藝下加速器芯片功耗約為6.7μW。
系統(tǒng)功能介紹
圖1 自適應(yīng)噪聲環(huán)境的超低功耗語(yǔ)音關(guān)鍵詞識(shí)別系統(tǒng)功能框圖
自適應(yīng)噪聲環(huán)境的超低功耗語(yǔ)音關(guān)鍵詞識(shí)別系統(tǒng)總體功能框圖如上圖1所示,總體功能框圖主要分為E203處理器部分、語(yǔ)音識(shí)別加速器部分,以及軟硬件分別驗(yàn)證成功后的SoC系統(tǒng)搭建部分,各部分實(shí)現(xiàn)的功能如下所述:
E203處理器實(shí)現(xiàn)功能:E203處理器主要負(fù)責(zé)通過(guò)在軟件與硬件語(yǔ)音識(shí)別加速器之間進(jìn)行控制與數(shù)據(jù)讀寫(xiě),并通過(guò)按鍵與屏幕顯示的方式實(shí)現(xiàn)良好的人機(jī)交互體驗(yàn),其主要包括如下三個(gè)部分:NICE接口、加速器控制以及OLED顯示。
NICE接口:NICE接口部分實(shí)現(xiàn)了通過(guò)E203處理器對(duì)語(yǔ)音識(shí)別加速器的控制與數(shù)據(jù)讀寫(xiě),語(yǔ)音識(shí)別加速器通過(guò)標(biāo)準(zhǔn)的NICE接口接入E203處理器中,在NICE接口中自定義指令,接收E203發(fā)送的從加速器控制部分寫(xiě)入的指令,實(shí)現(xiàn)對(duì)語(yǔ)音識(shí)別加速器的開(kāi)啟和關(guān)閉,并持續(xù)使用寄存器接收加速器運(yùn)行結(jié)果,接收的運(yùn)行結(jié)果通過(guò)NICE接口返回到E203處理器中,并傳送到OLED顯示部分。
加速器控制:語(yǔ)音識(shí)別加速器控制部分首先在軟件實(shí)現(xiàn)了NICE自定義指令的函數(shù),通過(guò)實(shí)現(xiàn)加速器開(kāi)關(guān)函數(shù)以及全局變量的控制,實(shí)現(xiàn)軟件控制加速器的開(kāi)啟和關(guān)閉。此外,通過(guò)接入外部的按鍵中斷實(shí)現(xiàn)按鍵控制語(yǔ)音識(shí)別的開(kāi)啟和關(guān)閉。
OLED顯示:OLED顯示部分通過(guò)E203處理器接收NICE接口返回的運(yùn)行結(jié)果,對(duì)運(yùn)行結(jié)果進(jìn)行處理,得到每次的關(guān)鍵詞識(shí)別結(jié)果以及當(dāng)前所處的噪聲場(chǎng)景。處理后得到的結(jié)果,通過(guò)軟件與E203處理器驅(qū)動(dòng)連接的OLED屏幕,并實(shí)時(shí)顯示在屏幕上。
語(yǔ)音識(shí)別加速器部分主要實(shí)現(xiàn)了通過(guò)使用數(shù)字硅麥對(duì)當(dāng)前環(huán)境聲音進(jìn)行采樣,對(duì)輸入語(yǔ)音信號(hào)進(jìn)行MFCC特征提取以及SNR噪聲預(yù)測(cè),提取后的特征作為神經(jīng)網(wǎng)絡(luò)的輸入,在經(jīng)過(guò)SNR噪聲預(yù)測(cè)選擇使用不同的網(wǎng)絡(luò)模塊后,輸入進(jìn)對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)當(dāng)中,神經(jīng)網(wǎng)絡(luò)將輸入特征進(jìn)行運(yùn)算、處理后,得到最終識(shí)別的結(jié)果,并通過(guò)NICE接口返回E203處理器當(dāng)中,其主要包括如下三個(gè)部分,I2S模塊、MFCC模塊、神經(jīng)網(wǎng)絡(luò)模塊以及數(shù)據(jù)流調(diào)度和系統(tǒng)控制部分。
I2S模塊:I2S模塊主要用于將數(shù)字硅麥輸入的串行信號(hào)緩存并轉(zhuǎn)成并行數(shù)據(jù)輸出到MFCC中,其硬件功能實(shí)現(xiàn)主要通過(guò)接口設(shè)計(jì)對(duì)輸入輸出信號(hào)定義的接口進(jìn)行規(guī)范設(shè)計(jì),并輸出對(duì)硅麥的控制信號(hào),數(shù)據(jù)緩存用于將輸入的串行數(shù)據(jù)暫存、轉(zhuǎn)化成并行數(shù)據(jù),以及最后將并行數(shù)據(jù)輸出的輸出部分。
MFCC模塊:MFCC模塊主要用于將輸入的語(yǔ)音信號(hào)進(jìn)行特征提取,轉(zhuǎn)化成更易于神經(jīng)網(wǎng)絡(luò)識(shí)別的特征數(shù)據(jù),此外,還通過(guò)SNR預(yù)測(cè)模塊對(duì)輸入語(yǔ)音信號(hào)的噪聲場(chǎng)景進(jìn)行區(qū)分。MFCC算法的實(shí)現(xiàn)主要分為預(yù)加重、分幀、FFT,梅爾濾波,以及SNR噪聲預(yù)測(cè)算法。硬件功能的實(shí)現(xiàn)主要分為接口的設(shè)計(jì)、MFCC和SNR預(yù)測(cè)的算法實(shí)現(xiàn),數(shù)據(jù)測(cè)試以及功能實(shí)現(xiàn)部分。
神經(jīng)網(wǎng)絡(luò)模塊:神經(jīng)網(wǎng)絡(luò)模塊主要用于將MFCC輸出的特征信號(hào)通過(guò)前饋神經(jīng)網(wǎng)絡(luò)進(jìn)行運(yùn)算并輸出最終的識(shí)別精度。在算法層次部分,神經(jīng)網(wǎng)絡(luò)模塊主要分為卷積層、全連接(FC)層,以及之間的RELU、BN層,算法部分通過(guò)MATLAB搭建并訓(xùn)練得出識(shí)別精度,驗(yàn)證了模型的可行性,在低噪聲場(chǎng)景下,為滿足低功耗的需求,采用DOREFA量化二值化與近似計(jì)算單元相結(jié)合的方式,而在高噪聲場(chǎng)景下,為滿足抗噪聲需求,采用帶噪聲訓(xùn)練與精確計(jì)算相結(jié)合的方式。硬件實(shí)現(xiàn)部分主要是將前饋神經(jīng)網(wǎng)絡(luò)進(jìn)行電路上的設(shè)計(jì)與實(shí)現(xiàn),主要分為神經(jīng)網(wǎng)絡(luò)算法的實(shí)現(xiàn),包括卷積層、FC層、BN層以及RELU層的電路實(shí)現(xiàn),權(quán)重、數(shù)據(jù)的存儲(chǔ)以及數(shù)據(jù)調(diào)度。
控制模塊:系統(tǒng)控制模塊與數(shù)據(jù)調(diào)度主要負(fù)責(zé)控制整體的加速器系統(tǒng)結(jié)構(gòu)以及各個(gè)功能模塊之間的數(shù)據(jù)流調(diào)度。
E203處理器部分實(shí)現(xiàn)的功能主要通過(guò)C語(yǔ)言進(jìn)行軟件代碼的編寫(xiě),并在IDE上進(jìn)行調(diào)試,語(yǔ)音識(shí)別加速器部分的功能實(shí)現(xiàn)主要通過(guò)Verilog進(jìn)行編寫(xiě),仿真后燒錄到FPGA板上進(jìn)行功能驗(yàn)證。兩部分均完成后,通過(guò)Nuclei_Studio IDE將軟件代碼燒錄到開(kāi)發(fā)板上進(jìn)行整體SoC的搭建及功能驗(yàn)證。
系統(tǒng)架構(gòu)介紹
架構(gòu)設(shè)計(jì)
圖2 自適應(yīng)噪聲環(huán)境的超低功耗語(yǔ)音關(guān)鍵詞識(shí)別系統(tǒng)架構(gòu)設(shè)計(jì)框圖
自適應(yīng)噪聲環(huán)境的超低功耗語(yǔ)音關(guān)鍵詞識(shí)別系統(tǒng)架構(gòu)設(shè)計(jì)框圖如上圖2所示,蜂鳥(niǎo)E203核通過(guò)系統(tǒng)存儲(chǔ)總線訪問(wèn)FLASH存儲(chǔ),F(xiàn)LASH用于存放燒錄進(jìn)開(kāi)發(fā)板的軟件代碼,此外,系統(tǒng)存儲(chǔ)總線還連接JTAG接口用于外部的軟件調(diào)試和代碼的燒錄。E203核還通過(guò)私有設(shè)備總線訪問(wèn)GPIO,GPIO外接按鍵中斷以及OLED屏幕,以外部的控制輸入及顯示輸出。處理器核還通過(guò)NICE協(xié)處理器接口訪問(wèn)語(yǔ)音識(shí)別加速器,并進(jìn)行指令的寫(xiě)入與運(yùn)算結(jié)果的讀出。
語(yǔ)音加速器主要I2S模塊、MFCC架構(gòu)以及神經(jīng)網(wǎng)絡(luò)加速器模塊組成,外部的語(yǔ)音輸入通過(guò)數(shù)字硅麥接收,并將串行輸入數(shù)據(jù)輸入I2S模塊,同時(shí)I2S模塊輸出數(shù)字硅麥的片選、聲道選擇等控制信號(hào)。
I2S模塊由數(shù)據(jù)接收、異步FIFO、以及數(shù)據(jù)預(yù)處理三個(gè)部分組成。數(shù)據(jù)接收用于接收外部串行輸入信號(hào)并進(jìn)行移位寄存,輸出32bit的并行數(shù)據(jù),異步FIFO用于將輸出32bit并行數(shù)據(jù)暫存,并同步到讀時(shí)鐘域,當(dāng)讀使能信號(hào)到來(lái)后,32bit的輸出經(jīng)過(guò)數(shù)據(jù)預(yù)處理,最終轉(zhuǎn)化成13bit有效輸出輸入到MFCC模塊當(dāng)中。
MFCC模塊的硬件架構(gòu)主要由預(yù)加重、分幀、FFT、Mel濾波、以及SNR預(yù)測(cè)模塊組成,各個(gè)模塊架構(gòu)主要負(fù)責(zé)實(shí)現(xiàn)對(duì)應(yīng)的功能及算法(如基-2FFT、CODIC算法、SNR預(yù)測(cè)算法),模塊之間除直接進(jìn)行輸入輸出外,還有相應(yīng)的存儲(chǔ)RAM和輸出RAM負(fù)責(zé)數(shù)據(jù)的調(diào)度。MFCC模塊實(shí)現(xiàn)對(duì)語(yǔ)音輸入的特征提取,并輸出到神經(jīng)網(wǎng)絡(luò)加速器模塊當(dāng)中。
在神經(jīng)網(wǎng)絡(luò)加速器模塊,首先需要在軟件層次進(jìn)行神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的確定、以及BWN網(wǎng)絡(luò)模型參數(shù)的訓(xùn)練驗(yàn)證,在硬件架構(gòu)層次上則要實(shí)現(xiàn)對(duì)應(yīng)的前饋神經(jīng)網(wǎng)絡(luò)每層運(yùn)算需要的算法以及整體的控制與數(shù)據(jù)調(diào)度。神經(jīng)網(wǎng)絡(luò)硬件架構(gòu)主要分為網(wǎng)絡(luò)層控制器、訪存控制器、以及存儲(chǔ)和計(jì)算單元,其中,網(wǎng)絡(luò)層控制器負(fù)責(zé)架構(gòu)整體的控制,當(dāng)前層的確定以及不同層的切換。訪存控制器在接收網(wǎng)絡(luò)層控制器的控制信號(hào)后,負(fù)責(zé)將當(dāng)前層所需數(shù)據(jù)從存儲(chǔ)單元調(diào)度到計(jì)算單元,以及當(dāng)前層計(jì)算完成后將運(yùn)算完成的輸出數(shù)據(jù)寫(xiě)回存儲(chǔ)單元。存儲(chǔ)單元主要分為數(shù)據(jù)存儲(chǔ)RAM以及權(quán)重存儲(chǔ)RAM,分別負(fù)責(zé)存儲(chǔ)每一層所需的輸入數(shù)據(jù)以及相應(yīng)的權(quán)重。計(jì)算單元主要負(fù)責(zé)對(duì)應(yīng)計(jì)算算法的實(shí)現(xiàn),PE陣列實(shí)現(xiàn)數(shù)據(jù)與權(quán)重的卷積/二值,以及全連接運(yùn)算,BN_RELU則用于實(shí)現(xiàn)對(duì)應(yīng)的激活函數(shù)以及歸一化函數(shù)。
其次,從低功耗角度出發(fā),我們?cè)O(shè)計(jì)了復(fù)用的PE子計(jì)算,可適配完成卷積(二值)和全連接(二值全連接)計(jì)算,重新調(diào)整了神經(jīng)網(wǎng)絡(luò)加速器模塊的數(shù)據(jù)調(diào)度方式,減少了整個(gè)電路的面積。
版圖設(shè)計(jì)
對(duì)于語(yǔ)音識(shí)別加速器模塊,我們還完成了后端版圖設(shè)計(jì),如下圖3所示,具體的面積參數(shù)如下表1所示。電路綜合后的功耗細(xì)節(jié)圖如下圖4所示,整體電路的功耗為6.70uW,其中神經(jīng)網(wǎng)絡(luò)加速器模塊的功耗為3.66uW,MFCC模塊功耗為1.07uW,I2S模塊和其他模塊功耗為0.45uW。圖4(b)展示了電路中組合邏輯功耗、寄存器功耗以及SRAM功耗占比,可以看到訪存功耗占比為67.6%,寄存器功耗占比為19.3%,組合邏輯功耗占比為13.1%,由此可見(jiàn)本電路實(shí)際的計(jì)算功耗占比較少,這得益于所采用的權(quán)重二值化處理方式,使得電路大量的乘法操作變?yōu)榧臃ú僮鳌?/p>
表1 版圖參數(shù)
圖3 神經(jīng)網(wǎng)絡(luò)加速器模塊的VLSI實(shí)現(xiàn)版圖設(shè)計(jì)
圖4 神經(jīng)網(wǎng)絡(luò)加速器模塊的 VLSI實(shí)現(xiàn)功耗占比
硬件加速器詳細(xì)設(shè)計(jì)
高噪聲環(huán)境——帶噪聲精確BWN神經(jīng)網(wǎng)絡(luò)
在高噪聲場(chǎng)景中,語(yǔ)音信號(hào)的信噪比往往很低,因此,本系統(tǒng)采用精度較高的精確BWN神經(jīng)網(wǎng)絡(luò),同時(shí)在訓(xùn)練集中加載了0dB的白噪聲訓(xùn)練,實(shí)現(xiàn)噪聲場(chǎng)景下的高精度。
低噪聲環(huán)境——無(wú)噪聲近似BWN神經(jīng)網(wǎng)絡(luò)
在低噪聲場(chǎng)景中,輸入的語(yǔ)音信號(hào)相對(duì)來(lái)說(shuō)更為清晰,被系統(tǒng)識(shí)別到的難度更低,在電路實(shí)現(xiàn)中,滿足性能要求前提下功耗是衡量電路設(shè)計(jì)的重要指標(biāo)之一,完全可以采用加入近似計(jì)算單元的功耗BWN來(lái)設(shè)計(jì),同時(shí)去除數(shù)據(jù)集中的白噪聲,使用clean的數(shù)據(jù)集訓(xùn)練,最終識(shí)別精度并沒(méi)有下降太多。該方案在不增加網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜度,不增加網(wǎng)絡(luò)深度和神經(jīng)元個(gè)數(shù)的情況下,使系統(tǒng)在常開(kāi)工作時(shí)的功耗更低。
由于神經(jīng)網(wǎng)絡(luò)具有天然容錯(cuò)性,有許多傳統(tǒng)的近似乘法單元曾經(jīng)被應(yīng)用在DNN神經(jīng)網(wǎng)絡(luò)中,比如截?cái)噙M(jìn)位乘法器,共享乘法器,迭代對(duì)數(shù)乘法器等。雖然BWN網(wǎng)絡(luò)權(quán)重已經(jīng)量化到了1bit, 但是仍然保有繼續(xù)優(yōu)化的空間。在3×3的卷積核里,會(huì)有9個(gè)16bit的數(shù)據(jù)進(jìn)行位運(yùn)算,之后這9個(gè)數(shù)據(jù)再累加,輸出卷積核最后的結(jié)果。9個(gè)數(shù)據(jù)的累加最終會(huì)得到一個(gè)最大為20bit的數(shù)據(jù),對(duì)于一個(gè)20bit的數(shù)據(jù)來(lái)說(shuō),在其低位如果有部分信息丟失,其實(shí)對(duì)整個(gè)數(shù)據(jù)的整體精度影響不大,況且神經(jīng)網(wǎng)絡(luò)本身就帶有一定的容錯(cuò)性,微小的誤差可能并不會(huì)對(duì)網(wǎng)絡(luò)的結(jié)果帶來(lái)極大的變動(dòng),但是從硬件電路的實(shí)現(xiàn)角度來(lái)考慮,引入近似計(jì)算可較大地降低整個(gè)電路的功耗以及面積,十分具有研究?jī)r(jià)值,正是基于上述考量,來(lái)評(píng)估在加法運(yùn)算中引入近似的可行性。
乘法運(yùn)算涉及到移位、位運(yùn)算和累加三個(gè)過(guò)程,因此能夠?qū)崿F(xiàn)近似的空間更大,對(duì)于純累加的運(yùn)算過(guò)程,能夠使用近似的就是在單個(gè)加法器了,最常用的加法器近似手段則是LOA,即Low Or Adder,低位或門(mén)加法器,用邏輯或門(mén)來(lái)替換低位的加法器來(lái)實(shí)現(xiàn)近似,其電路結(jié)構(gòu)如圖5所示:
圖5 LOA加法器
面向多信噪比的KWS神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)
在前面已經(jīng)提出了本系統(tǒng)的兩種神經(jīng)網(wǎng)絡(luò),在本節(jié)中,將對(duì)網(wǎng)絡(luò)中的主要模塊進(jìn)行可重構(gòu)復(fù)用設(shè)計(jì),可以從模塊級(jí)了解本文的神經(jīng)網(wǎng)絡(luò)的具體工作模式。由前文中可知神經(jīng)網(wǎng)絡(luò)算法中在面向高信噪比語(yǔ)音環(huán)境時(shí),為了降低功耗,使用了LOA近似計(jì)算單元。具體結(jié)構(gòu)如圖6。
圖6 CNN加速器架構(gòu)圖
如圖6所示的是在語(yǔ)音關(guān)鍵詞分類(lèi)模塊中,語(yǔ)音數(shù)據(jù)和權(quán)重?cái)?shù)據(jù)分別存儲(chǔ)在SRAM中,當(dāng)SNR預(yù)測(cè)模塊得到的是低信噪比的噪聲環(huán)境時(shí),語(yǔ)音數(shù)據(jù)經(jīng)過(guò)可重構(gòu)PE_ARRAY陣列模塊進(jìn)行網(wǎng)絡(luò)計(jì)算。當(dāng)SNR預(yù)測(cè)模塊得到的結(jié)果是高信噪比時(shí),語(yǔ)音數(shù)據(jù)經(jīng)過(guò)可重構(gòu)PE_ARRAY陣列模塊進(jìn)行網(wǎng)絡(luò)計(jì)算。
如圖6所示,硬件中有三片sram,分別存儲(chǔ)語(yǔ)音數(shù)據(jù),在高信噪比環(huán)境下的權(quán)重1和在低信噪比環(huán)境下的權(quán)重2。Memory controller模塊用于生成地址和計(jì)算時(shí)分別調(diào)用SRAM中的具體數(shù)據(jù)。Layer controller是使用狀態(tài)機(jī)控制當(dāng)前計(jì)算網(wǎng)絡(luò)所處層級(jí)??芍貥?gòu)PE_ARRAY陣列模塊用于網(wǎng)絡(luò)計(jì)算,共有BN_RELU模塊用于每層卷積操作之后對(duì)數(shù)據(jù)進(jìn)行歸一化處理。
軟件實(shí)現(xiàn)
自定義指令的編寫(xiě)
軟件實(shí)現(xiàn)最關(guān)鍵的問(wèn)題是實(shí)現(xiàn)RISC-V自定義指令并可以確實(shí)控制蜂鳥(niǎo)核里nice接口連接的協(xié)處理器,具體的語(yǔ)音識(shí)別加速器的設(shè)計(jì)在上一節(jié)已被充分介紹,蜂鳥(niǎo)E203的開(kāi)源核給我們拓展協(xié)處理器預(yù)留了nice接口,并且學(xué)習(xí)資料豐富,根據(jù)預(yù)留的拓展接口以及相應(yīng)的通信協(xié)議,我們成功把語(yǔ)音識(shí)別加速器掛載到核上面,具體不再贅述。
自適應(yīng)噪聲切換
在實(shí)現(xiàn)噪聲模塊功能這方面,我們團(tuán)隊(duì)提出了兩種方案,分別是根據(jù)SNR預(yù)測(cè)在硬件上設(shè)計(jì)電路的硬件方案以及在軟件上設(shè)置閾值來(lái)檢測(cè)環(huán)境的軟件方案。
硬件方案的具體思路是在運(yùn)算時(shí),累加一段時(shí)間區(qū)間內(nèi)的語(yǔ)音信號(hào)能量,噪聲信號(hào)實(shí)際上就是能量的高低,噪聲越高信號(hào)中也就含有越多的能量,硬件方案正是基于這個(gè)思路來(lái)檢測(cè)環(huán)境噪聲強(qiáng)度。
而軟件方案則是借助我們系統(tǒng)內(nèi)蜂鳥(niǎo)E203處理器,利用處理器的靈活控制的特點(diǎn),外接聲音檢測(cè)模塊,并設(shè)置一個(gè)噪聲閾值,當(dāng)模塊檢測(cè)到外部環(huán)境中的噪聲超過(guò)這個(gè)閾值時(shí),給處理器發(fā)送一個(gè)低信號(hào),而在處理器中則記錄低信號(hào)出現(xiàn)的次數(shù),一段時(shí)間內(nèi),如果出現(xiàn)低信號(hào)的次數(shù)超過(guò)了處理器中設(shè)置的高噪聲的閾值,那么可以認(rèn)為當(dāng)前環(huán)境噪聲較高,需要切換工作模式。
系統(tǒng)實(shí)物圖
致謝
在此表示衷心的感謝芯來(lái)科技設(shè)立的RISV-MCU 社區(qū),社區(qū)中豐富的學(xué)習(xí)資料幫助我們團(tuán)隊(duì)快速上手了蜂鳥(niǎo)E203的初步使用,清晰的文件分類(lèi)讓我們查閱學(xué)習(xí)非常方便,跟社區(qū)中其他參賽隊(duì)伍交流也使得我們受益良多。
同時(shí)特別感謝社區(qū)中的胡燦等其他老師,我們團(tuán)隊(duì)在設(shè)計(jì)這個(gè)系統(tǒng)的過(guò)程中,遇到了許多問(wèn)題,胡燦老師平易近人,很耐心地解答問(wèn)題,讓我們學(xué)到了很多,幫助我們最終完成了整個(gè)系統(tǒng)。
感謝芯來(lái)科技的創(chuàng)始人胡振波先生,胡先生為了RISC-V在國(guó)內(nèi)的推廣殫精竭慮,特別編寫(xiě)了基于RISC-V的開(kāi)源蜂鳥(niǎo)核E203,十分令人傾佩,我們團(tuán)隊(duì)購(gòu)買(mǎi)了先生編寫(xiě)的《嵌入式開(kāi)發(fā)快速入門(mén)》和《教你設(shè)計(jì)CPU》兩本書(shū),學(xué)習(xí)書(shū)中的內(nèi)容讓我們團(tuán)隊(duì)在應(yīng)用蜂鳥(niǎo)核時(shí)更加得心應(yīng)手。
在項(xiàng)目設(shè)計(jì)之初,我們團(tuán)隊(duì)也遇到很多問(wèn)題,能解決這些問(wèn)題,得益于隊(duì)友之間的信任和鼓勵(lì),也得益于大賽組委會(huì)給大家提供了這樣的優(yōu)秀平臺(tái)。希望集創(chuàng)賽可以越辦越好!
審核編輯 :李倩
-
芯片
+關(guān)注
關(guān)注
460文章
52529瀏覽量
441366 -
加速器
+關(guān)注
關(guān)注
2文章
827瀏覽量
39140 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103734 -
E203
+關(guān)注
關(guān)注
0文章
8瀏覽量
297
原文標(biāo)題:【2021集創(chuàng)賽作品分享】第十九期 | 自適應(yīng)噪聲環(huán)境的超低功耗語(yǔ)音關(guān)鍵詞識(shí)別系統(tǒng)
文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何統(tǒng)計(jì)蜂鳥(niǎo)E203的分支預(yù)測(cè)率?
MAX78002帶有低功耗卷積神經(jīng)網(wǎng)絡(luò)加速器的人工智能微控制器技術(shù)手冊(cè)

TPU處理器的特性和工作原理

請(qǐng)問(wèn)蜂鳥(niǎo)e203如何提高主頻?
請(qǐng)問(wèn)蜂鳥(niǎo)e203如何提高主頻?
e203在vivado硬件里自定義指令識(shí)別為非法指令怎么解決?
BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的比較
數(shù)據(jù)中心中的FPGA硬件加速器

人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法

卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的比較
RNN模型與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的區(qū)別
Moku人工神經(jīng)網(wǎng)絡(luò)101

適用于數(shù)據(jù)中心應(yīng)用中的硬件加速器的直流/直流轉(zhuǎn)換器解決方案

評(píng)論