91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

基于蜂鳥E203和神經(jīng)網(wǎng)絡(luò)硬件加速器

安芯教育科技 ? 來源:安芯教育科技 ? 作者:安芯教育科技 ? 2022-07-25 09:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

摘要

語(yǔ)音關(guān)鍵詞識(shí)別(Keyword Spotting, KWS)技術(shù)已普遍應(yīng)用在以電池為主的供電設(shè)備中,對(duì)于此類設(shè)備低功耗是一個(gè)重要考慮的因素。然而,單獨(dú)的低功耗神經(jīng)網(wǎng)絡(luò)因注重功耗的降低,難以適應(yīng)高噪聲環(huán)境下的使用,為了能靈活適應(yīng)不同噪聲場(chǎng)景,并盡可能降低系統(tǒng)功耗與面積,本文提出了一種基于蜂鳥E203和神經(jīng)網(wǎng)絡(luò)硬件加速器的自適應(yīng)噪聲環(huán)境超低功耗語(yǔ)音關(guān)鍵詞識(shí)別系統(tǒng)。

本文設(shè)計(jì)的SoC系統(tǒng)處理器基于RISC-V指令集,通過NICE協(xié)處理器接口接入所設(shè)計(jì)的語(yǔ)音識(shí)別神經(jīng)網(wǎng)絡(luò)加速器,處理器通過自定義指令可控制加速器開關(guān)并讀取運(yùn)算數(shù)據(jù),數(shù)據(jù)最后通過E203處理器處理并將識(shí)別結(jié)果實(shí)時(shí)顯示在OLED屏上,同時(shí)可通過語(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)功能介紹

9efcf982-0bb6-11ed-ba43-dac502259ad0.png


圖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é)通過在軟件與硬件語(yǔ)音識(shí)別加速器之間進(jìn)行控制與數(shù)據(jù)讀寫,并通過按鍵與屏幕顯示的方式實(shí)現(xiàn)良好的人機(jī)交互體驗(yàn),其主要包括如下三個(gè)部分:NICE接口、加速器控制以及OLED顯示。

NICE接口:NICE接口部分實(shí)現(xiàn)了通過E203處理器對(duì)語(yǔ)音識(shí)別加速器的控制與數(shù)據(jù)讀寫,語(yǔ)音識(shí)別加速器通過標(biāo)準(zhǔn)的NICE接口接入E203處理器中,在NICE接口中自定義指令,接收E203發(fā)送的從加速器控制部分寫入的指令,實(shí)現(xiàn)對(duì)語(yǔ)音識(shí)別加速器的開啟和關(guān)閉,并持續(xù)使用寄存器接收加速器運(yùn)行結(jié)果,接收的運(yùn)行結(jié)果通過NICE接口返回到E203處理器中,并傳送到OLED顯示部分。

加速器控制:語(yǔ)音識(shí)別加速器控制部分首先在軟件實(shí)現(xiàn)了NICE自定義指令的函數(shù),通過實(shí)現(xiàn)加速器開關(guān)函數(shù)以及全局變量的控制,實(shí)現(xiàn)軟件控制加速器的開啟和關(guān)閉。此外,通過接入外部的按鍵中斷實(shí)現(xiàn)按鍵控制語(yǔ)音識(shí)別的開啟和關(guān)閉。

OLED顯示:OLED顯示部分通過E203處理器接收NICE接口返回的運(yùn)行結(jié)果,對(duì)運(yùn)行結(jié)果進(jìn)行處理,得到每次的關(guān)鍵詞識(shí)別結(jié)果以及當(dāng)前所處的噪聲場(chǎng)景。處理后得到的結(jié)果,通過軟件與E203處理器驅(qū)動(dòng)連接的OLED屏幕,并實(shí)時(shí)顯示在屏幕上。

語(yǔ)音識(shí)別加速器部分主要實(shí)現(xiàn)了通過使用數(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)過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é)果,并通過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)主要通過接口設(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ù),此外,還通過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)通過前饋神經(jīng)網(wǎng)絡(luò)進(jìn)行運(yùn)算并輸出最終的識(shí)別精度。在算法層次部分,神經(jīng)網(wǎng)絡(luò)模塊主要分為卷積層、全連接(FC)層,以及之間的RELU、BN層,算法部分通過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)的功能主要通過C語(yǔ)言進(jìn)行軟件代碼的編寫,并在IDE上進(jìn)行調(diào)試,語(yǔ)音識(shí)別加速器部分的功能實(shí)現(xiàn)主要通過Verilog進(jìn)行編寫,仿真后燒錄到FPGA板上進(jìn)行功能驗(yàn)證。兩部分均完成后,通過Nuclei_Studio IDE將軟件代碼燒錄到開發(fā)板上進(jìn)行整體SoC的搭建及功能驗(yàn)證。

系統(tǒng)架構(gòu)介紹

架構(gòu)設(shè)計(jì)

9f1ce4fe-0bb6-11ed-ba43-dac502259ad0.png


圖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所示,蜂鳥E203核通過系統(tǒng)存儲(chǔ)總線訪問FLASH存儲(chǔ),F(xiàn)LASH用于存放燒錄進(jìn)開發(fā)板的軟件代碼,此外,系統(tǒng)存儲(chǔ)總線還連接JTAG接口用于外部的軟件調(diào)試和代碼的燒錄。E203核還通過私有設(shè)備總線訪問GPIO,GPIO外接按鍵中斷以及OLED屏幕,以外部的控制輸入及顯示輸出。處理器核還通過NICE協(xié)處理器接口訪問語(yǔ)音識(shí)別加速器,并進(jìn)行指令的寫入與運(yùn)算結(jié)果的讀出。

語(yǔ)音加速器主要I2S模塊、MFCC架構(gòu)以及神經(jīng)網(wǎng)絡(luò)加速器模塊組成,外部的語(yǔ)音輸入通過數(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)到來后,32bit的輸出經(jīng)過數(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ù)寫回存儲(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%,由此可見本電路實(shí)際的計(jì)算功耗占比較少,這得益于所采用的權(quán)重二值化處理方式,使得電路大量的乘法操作變?yōu)榧臃ú僮鳌?/p>

表1 版圖參數(shù)

9f48a2ce-0bb6-11ed-ba43-dac502259ad0.png

9f6225dc-0bb6-11ed-ba43-dac502259ad0.png


圖3 神經(jīng)網(wǎng)絡(luò)加速器模塊的VLSI實(shí)現(xiàn)版圖設(shè)計(jì)

9f9f82ec-0bb6-11ed-ba43-dac502259ad0.png


圖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ì)來說更為清晰,被系統(tǒng)識(shí)別到的難度更低,在電路實(shí)現(xiàn)中,滿足性能要求前提下功耗是衡量電路設(shè)計(jì)的重要指標(biāo)之一,完全可以采用加入近似計(jì)算單元的功耗BWN來設(shè)計(jì),同時(shí)去除數(shù)據(jù)集中的白噪聲,使用clean的數(shù)據(jù)集訓(xùn)練,最終識(shí)別精度并沒有下降太多。該方案在不增加網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜度,不增加網(wǎng)絡(luò)深度和神經(jīng)元個(gè)數(shù)的情況下,使系統(tǒng)在常開工作時(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ù)來說,在其低位如果有部分信息丟失,其實(shí)對(duì)整個(gè)數(shù)據(jù)的整體精度影響不大,況且神經(jīng)網(wǎng)絡(luò)本身就帶有一定的容錯(cuò)性,微小的誤差可能并不會(huì)對(duì)網(wǎng)絡(luò)的結(jié)果帶來極大的變動(dòng),但是從硬件電路的實(shí)現(xiàn)角度來考慮,引入近似計(jì)算可較大地降低整個(gè)電路的功耗以及面積,十分具有研究?jī)r(jià)值,正是基于上述考量,來評(píng)估在加法運(yùn)算中引入近似的可行性。

乘法運(yùn)算涉及到移位、位運(yùn)算和累加三個(gè)過程,因此能夠?qū)崿F(xiàn)近似的空間更大,對(duì)于純累加的運(yùn)算過程,能夠使用近似的就是在單個(gè)加法器了,最常用的加法器近似手段則是LOA,即Low Or Adder,低位或門加法器,用邏輯或門來替換低位的加法器來實(shí)現(xiàn)近似,其電路結(jié)構(gòu)如圖5所示:

9fc463dc-0bb6-11ed-ba43-dac502259ad0.png


圖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。

9ff443ae-0bb6-11ed-ba43-dac502259ad0.png


圖6 CNN加速器架構(gòu)圖

如圖6所示的是在語(yǔ)音關(guān)鍵詞分類模塊中,語(yǔ)音數(shù)據(jù)和權(quán)重?cái)?shù)據(jù)分別存儲(chǔ)在SRAM中,當(dāng)SNR預(yù)測(cè)模塊得到的是低信噪比的噪聲環(huán)境時(shí),語(yǔ)音數(shù)據(jù)經(jīng)過可重構(gòu)PE_ARRAY陣列模塊進(jìn)行網(wǎng)絡(luò)計(jì)算。當(dāng)SNR預(yù)測(cè)模塊得到的結(jié)果是高信噪比時(shí),語(yǔ)音數(shù)據(jù)經(jīng)過可重構(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)

自定義指令的編寫

軟件實(shí)現(xiàn)最關(guān)鍵的問題是實(shí)現(xiàn)RISC-V自定義指令并可以確實(shí)控制蜂鳥核里nice接口連接的協(xié)處理器,具體的語(yǔ)音識(shí)別加速器的設(shè)計(jì)在上一節(jié)已被充分介紹,蜂鳥E203的開源核給我們拓展協(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è)置閾值來檢測(cè)環(huán)境的軟件方案。

硬件方案的具體思路是在運(yùn)算時(shí),累加一段時(shí)間區(qū)間內(nèi)的語(yǔ)音信號(hào)能量,噪聲信號(hào)實(shí)際上就是能量的高低,噪聲越高信號(hào)中也就含有越多的能量,硬件方案正是基于這個(gè)思路來檢測(cè)環(huán)境噪聲強(qiáng)度。

而軟件方案則是借助我們系統(tǒng)內(nèi)蜂鳥E203處理器,利用處理器的靈活控制的特點(diǎn),外接聲音檢測(cè)模塊,并設(shè)置一個(gè)噪聲閾值,當(dāng)模塊檢測(cè)到外部環(huán)境中的噪聲超過這個(gè)閾值時(shí),給處理器發(fā)送一個(gè)低信號(hào),而在處理器中則記錄低信號(hào)出現(xiàn)的次數(shù),一段時(shí)間內(nèi),如果出現(xiàn)低信號(hào)的次數(shù)超過了處理器中設(shè)置的高噪聲的閾值,那么可以認(rèn)為當(dāng)前環(huán)境噪聲較高,需要切換工作模式。

系統(tǒng)實(shí)物圖

a019656c-0bb6-11ed-ba43-dac502259ad0.png

致謝

在此表示衷心的感謝芯來科技設(shè)立的RISV-MCU 社區(qū),社區(qū)中豐富的學(xué)習(xí)資料幫助我們團(tuán)隊(duì)快速上手了蜂鳥E203的初步使用,清晰的文件分類讓我們查閱學(xué)習(xí)非常方便,跟社區(qū)中其他參賽隊(duì)伍交流也使得我們受益良多。

同時(shí)特別感謝社區(qū)中的胡燦等其他老師,我們團(tuán)隊(duì)在設(shè)計(jì)這個(gè)系統(tǒng)的過程中,遇到了許多問題,胡燦老師平易近人,很耐心地解答問題,讓我們學(xué)到了很多,幫助我們最終完成了整個(gè)系統(tǒng)。

感謝芯來科技的創(chuàng)始人胡振波先生,胡先生為了RISC-V在國(guó)內(nèi)的推廣殫精竭慮,特別編寫了基于RISC-V的開源蜂鳥核E203,十分令人傾佩,我們團(tuán)隊(duì)購(gòu)買了先生編寫的《嵌入式開發(fā)快速入門》和《教你設(shè)計(jì)CPU》兩本書,學(xué)習(xí)書中的內(nèi)容讓我們團(tuán)隊(duì)在應(yīng)用蜂鳥核時(shí)更加得心應(yīng)手。

在項(xiàng)目設(shè)計(jì)之初,我們團(tuán)隊(duì)也遇到很多問題,能解決這些問題,得益于隊(duì)友之間的信任和鼓勵(lì),也得益于大賽組委會(huì)給大家提供了這樣的優(yōu)秀平臺(tái)。希望集創(chuàng)賽可以越辦越好!

審核編輯 :李倩

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

    關(guān)注

    463

    文章

    54000

    瀏覽量

    465755
  • 加速器
    +關(guān)注

    關(guān)注

    2

    文章

    839

    瀏覽量

    40089
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4838

    瀏覽量

    107721
  • E203
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    517

原文標(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)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    蜂鳥E203 mret/dret/wfi指令代表什么意思?

    蜂鳥E203 mret/dret/wfi指令代表什么意思,我看手冊(cè)上沒有這三條指令
    發(fā)表于 11-10 07:31

    請(qǐng)問蜂鳥E203和芯來N101核的區(qū)別大不大?

    請(qǐng)問蜂鳥E203和芯來N101核的區(qū)別大不大?能不能學(xué)完E203再看N101,還是直接上手N101?
    發(fā)表于 11-06 07:34

    利用vivado實(shí)現(xiàn)對(duì)e200_opensource 蜂鳥E203一代的仿真

    本人發(fā)現(xiàn)還有許多朋友在尋找如何仿真蜂鳥E203的方法,并且目前論壇內(nèi)還沒出現(xiàn)過一代蜂鳥E203(基于hbirdkit和nucleikit)仿真教程,由于本人使用的板子便是hbirdki
    發(fā)表于 10-31 06:14

    基于蜂鳥E203(一代)的添加外設(shè)基本總線讀寫操作簡(jiǎn)要介紹

    硬件配置地址寄存蜂鳥E203 SoC的總線地址分配表可知,私有外設(shè)總線接口的總區(qū)間為 0x1000_0000~0x1FFF_FFFF,而真正用到的只有0x1000_0000
    發(fā)表于 10-30 07:52

    蜂鳥E203硬件集成步驟

    今天主要介紹一下我們團(tuán)隊(duì)怎么把硬件集成于蜂鳥E203上。 1、sm2 IP設(shè)計(jì)。 2、slave設(shè)計(jì),將sm2 IP連接到總線上,與總線的通信使用自定義ICB協(xié)議,與sm2通信使用sm2自定義協(xié)議
    發(fā)表于 10-30 06:52

    NucleiStudio基于一代蜂鳥E203的工程創(chuàng)建

    本團(tuán)隊(duì)本次分享內(nèi)容為NucleiStudio基于一代蜂鳥E203的工程創(chuàng)建。 1.下載NucleiStudio; 2.啟動(dòng)IDE;——啟動(dòng)后會(huì)指定工作目錄,選定后直接Lunch; 3.新建C
    發(fā)表于 10-29 06:08

    基于FPGA平臺(tái)的蜂鳥E203 JTAG debug出錯(cuò)問題的解決思路

    大概花了三天時(shí)間完成了蜂鳥E203 SOC在zynq7100 FPGA的移植工作,并完成了hello world程序的在線debug調(diào)試。 蜂鳥E203的移植在網(wǎng)上有大把的demo,
    發(fā)表于 10-28 07:38

    蜂鳥e203在虛擬機(jī)unbuntu上面驗(yàn)證時(shí)報(bào)錯(cuò)的可能原因及解決措施

    內(nèi)容:蜂鳥e203在虛擬機(jī)unbuntu上面驗(yàn)證時(shí)報(bào)錯(cuò)的可能原因 現(xiàn)象: 解決措施: 蜂鳥e203在虛擬機(jī)unbuntu上面驗(yàn)證時(shí)不要重復(fù)輸入命令: make install mak
    發(fā)表于 10-24 08:27

    蜂鳥E203簡(jiǎn)單分支預(yù)測(cè)的改進(jìn)

    1.蜂鳥E203的原有分支預(yù)測(cè) 蜂鳥E203處理為了能夠連續(xù)不斷的取指令,需要在每個(gè)時(shí)鐘周期都能生成一條待取的指令。因此,在取指令的階段
    發(fā)表于 10-24 07:45

    如何對(duì)蜂鳥e203內(nèi)核乘除法器進(jìn)行優(yōu)化

    組成: Booth編碼:將待乘數(shù)轉(zhuǎn)化為帶符號(hào)位的二進(jìn)制數(shù)進(jìn)行計(jì)算。 Wallace樹加速器:對(duì)Booth編碼后的結(jié)果進(jìn)行部分積的計(jì)算和累加操作。 除法器 蜂鳥E203采用了流水線式除
    發(fā)表于 10-24 06:47

    蜂鳥E203乘法器改進(jìn)

    蜂鳥E203為了節(jié)約資源,乘法運(yùn)算采用循環(huán)移位方式計(jì)算最終結(jié)果,這樣的乘法器需要經(jīng)過較多時(shí)鐘周期來處理數(shù)據(jù),導(dǎo)致處理數(shù)據(jù)效率較低。為了提高計(jì)算效率,這里分享一種基于流水線思想的乘法器,即采用多個(gè)
    發(fā)表于 10-22 07:28

    基于蜂鳥E203架構(gòu)的指令集K擴(kuò)展

    需要硬件支持,因此需要對(duì)蜂鳥E203架構(gòu)進(jìn)行一定的修改和升級(jí)。此外,還需要編寫相應(yīng)的編譯和工具鏈,以支持K擴(kuò)展指令集的編譯和調(diào)試。
    發(fā)表于 10-21 09:38

    蜂鳥E203內(nèi)核優(yōu)化方法

    對(duì)蜂鳥E203內(nèi)核進(jìn)行優(yōu)化可以考慮以下幾個(gè)方面: 編譯優(yōu)化:使用適合蜂鳥E203的編譯選項(xiàng)和
    發(fā)表于 10-21 07:55

    CICC2033神經(jīng)網(wǎng)絡(luò)部署相關(guān)操作

    在完成神經(jīng)網(wǎng)絡(luò)量化后,需要將神經(jīng)網(wǎng)絡(luò)部署到硬件加速器上。首先需要將所有權(quán)重?cái)?shù)據(jù)以及輸入數(shù)據(jù)導(dǎo)入到存儲(chǔ)內(nèi)。 在仿真環(huán)境下,可將其存于一個(gè)文件,并在 Verilog 代碼中通過 read
    發(fā)表于 10-20 08:00

    如何統(tǒng)計(jì)蜂鳥E203的分支預(yù)測(cè)率?

    想請(qǐng)問大家如何統(tǒng)計(jì)蜂鳥E203的分支預(yù)測(cè)率,我嘗試在exu_commit模塊里統(tǒng)計(jì),但是發(fā)現(xiàn)預(yù)測(cè)率都有寫問題,想請(qǐng)教以下大家
    發(fā)表于 06-10 07:05