• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      語音識別中動態(tài)時間規(guī)整算法的硬件加速實現(xiàn)

      2022-04-20 07:23:40祝禛天焦繼業(yè)劉澤琛
      電子設(shè)計工程 2022年7期
      關(guān)鍵詞:規(guī)整語音動態(tài)

      祝禛天,焦繼業(yè),劉澤琛

      (1.西安郵電大學(xué)計算機學(xué)院,陜西西安 710121;2.西安郵電大學(xué)電子工程學(xué)院,陜西 西安 710121)

      在語音識別技術(shù)的發(fā)展過程中,動態(tài)時間規(guī)整算法一直處于重要地位,其本質(zhì)上是一種距離度量算法。在過去的幾十年中研究者們提出了幾十種距離度量算法,實驗證明,動態(tài)時間規(guī)整算法仍然是最佳的距離度量技術(shù)。然而,目前的各種嵌入式語音識別方案中,由于動態(tài)時間規(guī)整算法本身龐大的計算量和相鄰數(shù)據(jù)處理過程中的高度依賴性極大地限制了它的實際應(yīng)用,同時也使得計算資源和存儲空間相對有限的嵌入式設(shè)備無法更好地發(fā)揮其性能[1-3]。

      文中針對上述問題,提出了一種面對語音幀的動態(tài)時間規(guī)整算法硬件計算框架。在減少調(diào)用動態(tài)時間規(guī)整算法次數(shù)的基礎(chǔ)上,利用流水線調(diào)度保證了相關(guān)數(shù)據(jù)的依賴性同時提高了計算效率。

      1 動態(tài)時間規(guī)整算法研究

      1.1 基本原理

      動態(tài)時間規(guī)整算法是一種準(zhǔn)確性高、魯棒性強的時間序列相似性度量方法。通過在測試語音序列和模板語音序列之間利用規(guī)整函數(shù)建立一條非線性的彎折路徑,不斷對比兩序列之間彎折路徑的距離,距離越小,相似度越高,以此找到聲學(xué)相似性最大的兩個序列。

      設(shè)T={t1,t2,t3,t4,t5,…,tN} 和H={h1,h2,h3,h4,h5,…,hM}分別為長度為N和M的語音序列。動態(tài)時間規(guī)整算法需要不斷搜索得出一個時間規(guī)整函數(shù)C=z(n),該函數(shù)將T序列的時間軸非線性的映射到H序列的時間軸上。同時,該函數(shù)z滿足公式(1):

      式中,d[T(n),H(z(n))]是序列T中第n個數(shù)據(jù)tn和序列H中第C=w(n)個數(shù)據(jù)hm之間的距離度量,D為最優(yōu)時間規(guī)整情況下兩個序列的累積距離。為了保證兩個序列之間的搜索匹配路徑具有實際意義,規(guī)整函數(shù)z(n)必須滿足以下3 個條件:

      單調(diào)性:z(n)≤z(n+1),1 ≤n≤N-1;

      邊界性:z(1)=1,z(N)=M;

      連續(xù)性:z(n+1) -z(n)≤1。

      根據(jù)上述3 個條件,由N和M兩個序列中任意兩點的距離構(gòu)成N×M的距離矩陣AN×M,其中任意兩點A1、A2使用公式(2)計算其歐氏距離。

      邊界性是為了保證搜索路徑的起點從矩陣AN×M的左下角(1,1)開始到右上角(N,M)結(jié)束。單調(diào)性和連續(xù)性是為了保證搜索路徑的下一個方向在當(dāng)前點的上方、右上方或者右方。從而在所有有效路徑中找到唯一最優(yōu)路徑可以使累積距離最小。

      為了找到唯一最優(yōu)路徑,動態(tài)時間規(guī)整算法采用逆序決策過程,求其任意點處累積距離,需先找出其所有滿足上述3 個條件的前序節(jié)點,利用公式(3)遞推求得所有節(jié)點。

      1.2 算法加速研究

      動態(tài)時間規(guī)整算法的時間復(fù)雜度為0(N×M)即兩條計算序列長度的乘積,這在大規(guī)模的數(shù)據(jù)計算中難免成為其計算瓶頸。為了提高計算效率,一種經(jīng)典的方法是引入時間復(fù)雜度低的計算度量方法來預(yù)先估計待計算序列的下界,若下界超出了閾值,則待計算序列的動態(tài)時間規(guī)整距離也會超出閾值。通過篩除掉不滿足閾值條件的序列,只將滿足閾值條件的序列進行動態(tài)時間規(guī)整計算,從而提高其整體計算效率。

      較為經(jīng)典的一種下界距離函數(shù)LB_Kim,其計算公式如式(4)所示:

      其中,S、Q分別為兩個待計算序列,取待計算序列中的4 個特征點構(gòu)建新的序列。4 個特征點由待計算序列的首尾兩點、最大值和最小值構(gòu)成,LB_Kim 計算簡單,使用點數(shù)少,所以一般常用作初步篩選[4]。

      2 動態(tài)時間規(guī)整算法實現(xiàn)

      2.1 動態(tài)時間規(guī)整算法硬件結(jié)構(gòu)設(shè)計

      提出一種動態(tài)時間規(guī)整算法計算結(jié)構(gòu),硬件架構(gòu)圖如圖1 所示,硬件架構(gòu)分為全局語音序列匹配篩選單元與動態(tài)時間規(guī)整精確計算單元兩個主體。模板語音數(shù)據(jù)在設(shè)計時直接寫入模板語音序列存儲ROM 中,測試語音數(shù)據(jù)在識別開始時通過外部總線寫入測試語音序列存儲RAM 中。識別開始,兩個存儲器中的數(shù)據(jù)依次送入全局語音序列匹配篩選單元,經(jīng)過內(nèi)部的下限函數(shù)計算單元進行全模板匹配,篩選出與測試語音特征點序列近似的模板語音特征點序列。將其送入動態(tài)時間規(guī)整精確計算單元進行進一步動態(tài)時間規(guī)整度量。在動態(tài)時間規(guī)整精確計算單元中,待計算的語音序列按照流水線時序,通過控制模塊調(diào)度送入到PE-FIFO 環(huán)形計算單元中,一組序列計算完成后,將當(dāng)前距離結(jié)果存放到結(jié)果計算模塊,等待所有序列計算完成,在結(jié)果計算模塊中比較所有動態(tài)時間規(guī)整距離,輸出最小距離結(jié)果。

      圖1 動態(tài)時間規(guī)整算法硬件架構(gòu)圖

      2.2 全局語音序列匹配篩選單元

      為了節(jié)省資源和考慮算法的可實施性,全局語音序列篩選單元的設(shè)計采用下界距離函數(shù)LB_Kim,識別開始,控制單元不斷讀取兩個存儲器中的序列,將有效數(shù)據(jù)傳入下限距離計算單元。下限距離計算單元使用4 個寄存器持續(xù)更新當(dāng)前序列的LB_Kim函數(shù)所需要的首、尾、最大值和最小值4 個數(shù)據(jù)。當(dāng)數(shù)據(jù)有效位拉低時,加法器將當(dāng)前4 個寄存器中的值累加得到模板語音同測試語音的下限距離,計算結(jié)果與閾值進行對比。閾值計算結(jié)果如圖2 所示,使用Matlab 仿真動態(tài)時間規(guī)整算法采集實驗室條件下同一語音指令,計算20 次取均值為63。將滿足閾值條件的模板語音數(shù)據(jù)送入下一級動態(tài)時間規(guī)整精確計算單元的模板數(shù)據(jù)RAM 中,測試語音數(shù)據(jù)送入測試數(shù)據(jù)FIFO 中,等待進一步動態(tài)時間規(guī)整計算。動態(tài)時間規(guī)整精確計算單元完成當(dāng)前計算后,控制單元啟動ROM 和RAM 進行下一包數(shù)據(jù)的讀取。若當(dāng)前數(shù)據(jù)不滿足閾值條件則直接進行下一包數(shù)據(jù)讀取,不會調(diào)用下一級動態(tài)時間規(guī)整精確計算單元,該設(shè)計可以減少傳統(tǒng)全模板動態(tài)時間規(guī)整計算造成的資源無效消耗。

      圖2 Matlab仿真動態(tài)時間度量值統(tǒng)計圖

      2.3 動態(tài)時間規(guī)整精確計算單元

      2.3.1 PE計算單元設(shè)計

      如圖3 所示為PE 計算單元。整個計算單元由歐式距離計算模塊、下節(jié)點方向比較器、加法器以及兩個寄存器組成。PE 的具體任務(wù)是計算當(dāng)前坐標(biāo)特征點的歐式距離以及累積距離值。累積距離由當(dāng)前特征點歐氏距離和下節(jié)點方向比較器比較的最小值相加所得,通過寄存器1(Reg1)持續(xù)更新數(shù)據(jù),與此同時,數(shù)據(jù)分為三路,第一路送入下一個PE 作為其前序節(jié)點的左側(cè)距離。第二路送入當(dāng)前PE 的下節(jié)點方向比較器作為其當(dāng)前列第二個特征點的下側(cè)距離。第三路送入寄存器2(Reg2)作為前一時鐘周期臨時數(shù)據(jù)存儲,當(dāng)下一時鐘周期來臨時,寄存器2(Reg2)中的數(shù)據(jù)送入下一個PE 作為其前序節(jié)點的左下側(cè)距離。

      圖3 PE計算單元設(shè)計原理圖

      2.3.2 PE-FIFO環(huán)形運算單元設(shè)計

      由于動態(tài)時間規(guī)整算法計算過程中較大的數(shù)據(jù)依賴性,每搜索一次下節(jié)點前進方向,均需要其上一節(jié)點計算所得的累積結(jié)果,傳統(tǒng)的并行計算并不能提供好的加速效果。而且采集一段1 s 的語音一般有50~100 幀,經(jīng)過特征提取處理后,每幀語音會生成具有12 個梅爾頻率倒譜系數(shù)特征點的序列,那么一段待識別語音最終會生成具有600~1 200 個語音特征點的長序列。如果使用1 200 個PE,不論是從硬件資源消耗、功耗還是面積來說均是不明智的。那么設(shè)計固定數(shù)量的PE 并按照一定的時序循環(huán)復(fù)用才是合理的解決方案。所以針對上述問題采用流水線設(shè)計,通過控制模塊調(diào)度,將待計算的模板語音特征序列和測試語音特征序列按照12 個周期分步送入圖4 所示的PE-FIFO 環(huán)形計算單元。12 個PE依次相接,每個PE 負(fù)責(zé)全局矩陣中一列數(shù)據(jù)的計算,每個周期結(jié)束時PE 計算得到當(dāng)前列節(jié)點上的3個方向數(shù)據(jù)。當(dāng)下一個周期來臨,將下側(cè)累積距離和左下側(cè)累積距離送入下一級PE,將下側(cè)累積距離送入當(dāng)前PE 的方向比較器。經(jīng)過12 個周期后當(dāng)前幀語音數(shù)據(jù)處理完成,即前12 個特征點處理完成,此時PE12 產(chǎn)生的左側(cè)和左下側(cè)臨時數(shù)據(jù)已經(jīng)完全送入到兩個FIFO 中,當(dāng)下一幀語音的第一個特征點送入PE1 時,使能多路開關(guān),將兩個FIFO 中的數(shù)據(jù)送入PE1 中作為邊界條件,開始第二幀語音的計算,依此循環(huán)直至當(dāng)前輸入的特征點序列完全處理完成,當(dāng)檢測到結(jié)束標(biāo)志后,PE12 輸出此時的左側(cè)數(shù)據(jù)即為當(dāng)前序列的動態(tài)時間規(guī)整距離。按照每段待識別語音的幀數(shù),PE-FIFO 環(huán)形計算單元通過循環(huán)復(fù)用,使用時間換空間的思想,一方面節(jié)省了器件資源,在不影響動態(tài)時間規(guī)整算法處理語音數(shù)據(jù)時的固有的數(shù)據(jù)依賴性的前提下,提高了資源利用率,另一方面,按照語音數(shù)據(jù)聲學(xué)屬性,根據(jù)識別語音的幀數(shù)不同,實現(xiàn)不同次數(shù)的循環(huán)調(diào)用,便于控制邏輯的實現(xiàn),減少了系統(tǒng)集成開發(fā)周期。

      圖4 PE-FIFO環(huán)形計算單元設(shè)計原理圖

      3 實驗及結(jié)果分析

      3.1 實驗環(huán)境搭建

      為驗證設(shè)計方案的有效性,對該文硬件加速方案進行上板驗證。硬件開發(fā)環(huán)境為Vivado 2018.1,開發(fā)板為DIGILENT ARTY,F(xiàn)PGA 器件為ARTIX-7 XC7A35T。該系列器件支持MicroBlaze 軟核,所以實驗搭建如圖5所示以MicroBlaze軟核作為控制單元的嵌入式平臺。MicroBlaze處理器工作頻率為100 MHz,片內(nèi)Memory64 Kb,動態(tài)時間規(guī)整算法硬件加速器工作頻率為100 MHz,通過AXI-Lite 總線實現(xiàn)和處理器的掛載。采集實驗室環(huán)境一人有效發(fā)音數(shù)字1~10 共10 個模板數(shù)據(jù)作為模板數(shù)據(jù)集,同理,測試語音數(shù)據(jù)集以同樣的采集設(shè)置,采集實驗室環(huán)境一人有效發(fā)音數(shù)字1~10,每個有效發(fā)音錄制30 次,共300 組測試數(shù)據(jù)。MicroBlaze 處理器將經(jīng)過處理的數(shù)據(jù)集依次送入硬件加速單元開始識別測試,識別結(jié)果通過UART 串口反饋至上位機。

      圖5 FPGA嵌入式驗證平臺結(jié)構(gòu)圖

      3.2 模塊資源占用

      經(jīng)過Vivado 綜合布局布線后,資源占用情況如表1 所示。從表中可以看出,LUT 和FF 的資源占用近50%,仍有足夠的資源可以提供更多的模板語音數(shù)據(jù),后續(xù)可根據(jù)需求增加模板語音數(shù)量。

      表1 資源占用表

      3.3 性能測試與對比

      該文方案與其他文獻的方案進行時鐘頻率、識別率、識別時間等性能方面的橫向?qū)Ρ龋阅軠y試對比如表2 所示。

      表2 性能對比表

      相較于文獻[5]中調(diào)用NiosII 軟核處理器實現(xiàn)動態(tài)時間規(guī)整算法,文獻[6]中的VQ+DTW 的識別方案以及文獻[7]中的傳統(tǒng)嵌入式軟件解決方案。該文方案充分利用流水線計算架構(gòu)的優(yōu)勢,提出改進的動態(tài)時間規(guī)整算法硬件架構(gòu),提高了數(shù)據(jù)計算速率。由表2看出,該文方案相對于文獻[5]、文獻[6]以及文獻[7]中的識別方案識別速率分別提升約4 倍、3.3 倍、160倍。識別率則保持在90%以上,可以看出該文提出的方案在損失極小的識別精度的情況下極大地提升了識別速率,識別時間均優(yōu)于表中其他實現(xiàn)方案。

      4 結(jié)束語

      該文面向嵌入式語音識別平臺提出一種動態(tài)時間規(guī)整算法硬件加速器的設(shè)計與實現(xiàn)方法。針對大數(shù)據(jù)量語音實時處理環(huán)境,設(shè)計了下界距離函數(shù)初篩模塊級聯(lián)PE-FIFO 環(huán)形計算模塊的處理框架,應(yīng)用流水線調(diào)度,使數(shù)據(jù)實現(xiàn)粗粒度并行計算,提高了數(shù)據(jù)計算效率,節(jié)省了硬件資源。與同類型參考文獻提出的方法相比,識別速率提升4 倍以上,具有較高的計算性能。為應(yīng)對嵌入式語音識別大數(shù)據(jù)量的實時計算提供了有效的解決方案。

      猜你喜歡
      規(guī)整語音動態(tài)
      國內(nèi)動態(tài)
      國內(nèi)動態(tài)
      國內(nèi)動態(tài)
      300kt/a硫酸系統(tǒng)規(guī)整填料使用情況簡介
      動態(tài)
      魔力語音
      基于MATLAB的語音信號處理
      電子制作(2019年14期)2019-08-20 05:43:38
      基于MQ3與MP3的價廉物美的酒駕語音提醒器
      電子制作(2019年9期)2019-05-30 09:42:10
      對方正在輸入……
      小說界(2018年5期)2018-11-26 12:43:42
      提高日用玻璃陶瓷規(guī)整度和表面光滑度的處理方法
      佛山陶瓷(2016年11期)2016-12-23 08:50:27
      定安县| 南靖县| 安岳县| 连云港市| 邛崃市| 荣成市| 扎鲁特旗| 平罗县| 彝良县| 黑水县| 平阴县| 洪湖市| 临漳县| 游戏| 屏东县| 岳阳市| 根河市| 临泽县| 县级市| 沽源县| 海南省| 深水埗区| 远安县| 新丰县| 上犹县| 农安县| 苏尼特左旗| 峡江县| 额敏县| 桃园市| 竹北市| 南投市| 瑞安市| 洛隆县| 尉犁县| 镇赉县| 平湖市| 厦门市| 广平县| 江城| 宝清县|