<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于FPGA的基音檢測算法的設計與實(shí)現

基于FPGA的基音檢測算法的設計與實(shí)現

作者: 時(shí)間:2008-04-14 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:應用在數字信號處理的主流技術(shù)DSP中是Altera推廣的重要應用之一,本文依據Altera提出的基于的DSP解決方案,按照面向系統級和級的硬件設計思路,為語(yǔ)音信號處理領(lǐng)域中一項重要技術(shù)――“基音周期特征提取”實(shí)現DSP-IP核和執行架構的設計,并通過(guò)性能評價(jià)分析驗證的DSP實(shí)現使整個(gè)系統在執行效率上的大幅提高。
關(guān)鍵詞:DSP;;基音周期;自相關(guān)法

1 引言

傳統的DSP處理器的硬件結構的不可變性已成為DSP處理器一個(gè)難以突破的瓶頸。隨著(zhù)達數百萬(wàn)門(mén)高密度的FPGA的出現,FPGA在原有的高密度的邏輯宏單元的基礎上嵌入了許多面向DSP的專(zhuān)用硬核模塊,結合大量可配置于FPGA硬件結構中的參數化的DSP IP軟核,DSP開(kāi)發(fā)者能十分容易地將整個(gè)DSP應用系統實(shí)現在一片FPGA中,從而實(shí)現了所謂的可編程SOC系統,即SOPC,它具有靈活的用戶(hù)可定制性。

基音周期估值是語(yǔ)音處理中的一個(gè)十分重要的問(wèn)題。器可用于聲碼器、說(shuō)話(huà)人確認和辨認系統以及有生理缺陷的人用的輔助用具,這使得基音周期估值在語(yǔ)音信號處理領(lǐng)域中占有舉足輕重的地位,因此將它硬件化,提高其執行效率以適應其應用場(chǎng)合的需要將是一件很有意義的事情。

2基音周期提取的確定及軟件實(shí)現

2.1算法概述

基音周期估值是語(yǔ)音處理中的一個(gè)十分重要的問(wèn)題。目前有多種基音周期提取算法,這些方法從不同角度來(lái)提出其解決方案,以克服語(yǔ)音信號中如噪音、說(shuō)話(huà)人差異等對特征提取時(shí)的干擾,但都有它們的局限性,所以可以說(shuō),對各種說(shuō)話(huà)人、廣泛的應用及使用環(huán)境都能給出滿(mǎn)意結果的有效的方法至今還沒(méi)有出現。

本文選取了一種目前較成熟的通過(guò)自關(guān)函數進(jìn)行基音周期檢測的算法。其整個(gè)過(guò)程全面涉及了語(yǔ)音信號時(shí)域處理方法中的“能量分析”、“過(guò)零分析”及“相關(guān)分析”三大分析技術(shù)。其算法的可行性已在MATLAB中進(jìn)行軟件模擬。

2.2系統框圖

考慮到背景噪聲和提取結果出現跳變等問(wèn)題,整個(gè)系統最終確定由下面三個(gè)部分構成:(i)端點(diǎn)檢測模塊;(ii)基音頻率提取模塊;(iii)平滑處理模塊。其工作流程可由圖1表示。

圖1 系統工作流圖

本文選取了32kHz采樣頻率PCM音頻格式的wav文件作為系統的輸入數據,輸出為每幀的基音頻率值。最后通過(guò)對相關(guān)參數(比如端點(diǎn)檢測模塊中所確定的雙能量門(mén)限及雙過(guò)零率門(mén)限,基音檢測模塊中的清濁判別門(mén)限以及平滑處理模塊中的滑動(dòng)窗長(cháng))的不斷調整,可以很好地解決清濁誤判,語(yǔ)音段數據漏判以及尖峰的出現等問(wèn)題。

3基音周期特征提取算法的DSP實(shí)現

3.1 DSP Builder開(kāi)發(fā)環(huán)境的確定

DSP Builder可以幫助設計者完成基于FPGA的DSP系統設計。除了圖形化的系統建模外,DSP Builder還可以自動(dòng)完成大部分的設計過(guò)程和仿真,直至把設計文件下載到DSP開(kāi)發(fā)板上。利用MatlabDSP Builder進(jìn)行DSP模塊設計是SOPC技術(shù)的一個(gè)組成部分。利用DSP Builder和基本Nios CPU,用戶(hù)可以根據設計項目的具體要求,隨心所欲地構建自己的DSP處理器系統,而再也不必拘泥于其他DSP公司已上市的有限款式的DSP處理器。

3.2系統整體分析及模塊劃分

從DSP模塊的頂層來(lái)看,該模塊就是完成語(yǔ)音信號的采集,然后以一定的頻率輸出從各幀中提取的基音頻率值。圖2是整個(gè)DSP系統的頂層模塊圖。

圖2 整個(gè)DSP系統的頂層模塊

d[1].[20]:輸入。歸一化的語(yǔ)音采樣信號值,取小數點(diǎn)后20位(二進(jìn)制)

ena:輸入。輸入使能信號,當該信號有效時(shí),模塊讀入d[1].[20]端口的信號。

rd:輸入。讀信號,當該信號有效時(shí),提取的基音頻率值將從Out[8:0]口被讀出。

CS:輸入。片選。

Out[8:0]:輸出?;纛l率值的輸出端口,9位無(wú)符號數。該端口的數據讀出受rd控制。

data_available:輸出。當基音頻率提取完畢時(shí),該端口置1,此時(shí)對數據的讀出才為有效數據,否則產(chǎn)生未知結果。

按照算法部分的劃分,在DSP實(shí)現部分仍采用整個(gè)系統由端點(diǎn)檢測模塊,基音頻率提取模塊和平滑處理模塊三大子模塊的構成方式,但不同的是端點(diǎn)檢測模塊和基音頻率提取模塊采用并行處理方式,由于這兩個(gè)模塊的功能相對獨立,最后進(jìn)行平滑后處理。整個(gè)系統的互連邏輯可由圖3表示。

圖3 基音周期提取、端點(diǎn)檢測、平滑處理三大模塊的互連邏輯圖

基音頻率提取模塊根據輸入數據將提取的基音頻率值存入一FIFO中,端點(diǎn)檢測模塊將提取到的語(yǔ)音文件中的所有語(yǔ)音段的始末端點(diǎn)存入兩個(gè)FIFO中,各語(yǔ)音段的起始點(diǎn)存入FIFO1中,終止點(diǎn)存入FIFO2中,當兩個(gè)模塊將結果全部存入相應的FIFO中,三個(gè)FIFO開(kāi)始同步工作,與基音頻率提取模塊相連的FIFO的當前輸出是提取出的該幀的基音頻率,而FIFO1和FIFO2的當前輸出表示某一個(gè)語(yǔ)音段的始末端點(diǎn),當前掃描幀或尚未進(jìn)入這兩個(gè)端點(diǎn)所界定的幀范圍,或正處于這個(gè)幀范圍之中。對于前者,這應通過(guò)判斷邏輯使2-1多路選擇器將基音頻率置0;對于后者,應通過(guò)判斷邏輯使2-1多路選擇器選取基音頻率提取模塊所提取出的基音頻率。判斷邏輯的另一任務(wù)是當當前掃描幀已跨出兩端點(diǎn)界定的幀范圍時(shí),使FIFO1和FIFO2讀出新一對端點(diǎn),即讀出下一個(gè)語(yǔ)音段的始末端點(diǎn)。最終的各幀的基音頻率通過(guò)平滑處理模塊處理后送入另一FIFO,等待讀信號將其讀出。

3.3詳細設計

基音頻率提取模塊的主要任務(wù)是根據采樣信號按照自相關(guān)法進(jìn)行基音周期提取,然后以一定頻率輸出提取到的各幀的基音頻率。對于基音頻率提取模塊,主要由五大子模塊構成:濾波器模塊、幀緩存模塊、削波門(mén)限電平提取模塊、削波模塊(中心削波,三電平削波)、互相關(guān)值提取模塊。濾波器模塊對采樣信號進(jìn)行900Hz的低通濾波,以確保處理以后的信號只含有第一共振峰以下的基波和諧波分量,DSP Builder為設計者提供了數字信號處理中常用的一些MegaCore核,這里可以根據設計直接調用其中的fir_compiler并進(jìn)行參數化設置,極大地簡(jiǎn)化了設計過(guò)程;幀緩存模塊對處理后的數據進(jìn)行分幀,這里需確定幀移(相鄰幀間的數據重疊,本文選取幀移為1/2幀);削波門(mén)限提取模塊根據自相關(guān)法的算法要求完成對一幀的數據的削波門(mén)限電平的提??;削波模塊根據提取出的削波門(mén)限電平完成中心削波和三電平削波,同時(shí)完成該幀短時(shí)能量的計算(考慮到短時(shí)能量計算的相對獨立性,該任務(wù)從互相關(guān)值提取模塊中分離出來(lái));互相關(guān)值提取模塊的主要任務(wù)是完成互相關(guān)值 (k=64,65,…,500)(由于選取的是30階低通濾波器,取求和下限為31,1280為根據所選取的測試對象而確定的幀的大小,k當取值64-500時(shí)恰對應于基音頻率的500Hz-64Hz,y´為相應y的三電平值)的計算,由于對每一個(gè)R(k)的計算,都要幾乎掃描完整個(gè)幀,故其龐大的計算量導致此模塊在執行效率上將成為整個(gè)基音頻率提取部分的瓶頸。為了避免額外的空間開(kāi)銷(xiāo),若采用串行解決方式(即計算完R(64)再計算R(65),計算完R(65)再計算R(66),依此類(lèi)推),則該模塊需工作在一個(gè)更高的時(shí)鐘頻率上,而一個(gè)系統中對一部分模塊進(jìn)行一個(gè)大幅度的工作頻率的提高,將會(huì )導致Simulink仿真效率的大幅下降,這里通過(guò)并行方式解決該問(wèn)題,雖然這需要花費更多的器件(通過(guò)復用多個(gè)基本運算單元,所有運算單元同時(shí)進(jìn)行計算,每個(gè)基本運算單元完成一個(gè)R(k)的計算),但換取時(shí)間效率上的提高還是值得的。這種處理方法只需對各幀數據進(jìn)行一次掃描即可同時(shí)得到R(64),R(65),…,R(500)的處理結果。設計思想是每掃描完一個(gè)數據,就應使其參與到所有互相關(guān)值的計算中而避免被再次掃描。實(shí)現途徑是:當前的三電平值同時(shí)送往所有的基本運算單元,而中心削波值只在開(kāi)始送入第一個(gè)基本運算單元,而其它的基本運算單元的中心削波值由其前一個(gè)基本運算單元的中心削波值經(jīng)一個(gè)周期的延遲而得到,這樣中心削波值將會(huì )由第一個(gè)基本運算單元通過(guò)延遲一級一級傳到最后一個(gè)。其時(shí)序如圖4所示(圖中數字表示幀序號),這樣各基本運算單元的輸出即為相應的互相關(guān)值R(k) (k=64,65,…,500),達到了僅對中心削波值和三電平值掃描一次便可計算出所有互相關(guān)值的效果,大大提高了運行的時(shí)間效率。

端點(diǎn)檢測模塊由三個(gè)核心部分構成:各幀過(guò)零率的提取,各幀短時(shí)能量的提取和一個(gè)以

圖4 各基本元算單元所采集到的中心削波值和三電平值的時(shí)序圖

狀態(tài)機為核心的狀態(tài)轉換邏輯,狀態(tài)機根據計算出的各幀過(guò)零率及短時(shí)能量標識當前幀所處的狀態(tài)(靜音段,過(guò)渡段,語(yǔ)音段,結束),并根據觸發(fā)條件完成狀態(tài)轉移以標記各語(yǔ)音段的始末端點(diǎn)。

平滑后處理模塊依據中值濾波平滑處理,采用5點(diǎn)長(cháng)的滑動(dòng)窗口對提取出的基音頻率進(jìn)行后處理。

4 DSP加速模塊與NIOS的整合及綜合仿真測試

4.1基于Simulink的仿真

各模塊整合后,即可添加激勵及信號接收終端進(jìn)行Simulink仿真。

4.2 處理器系統的構建

通過(guò)DSP Builder設計出的DSP模塊可以成為單片FPGA電路系統中的一個(gè)組成部分,以擔任某個(gè)局部電路的功能,另一方面,也可以直接通過(guò)DSP Builder為Nios嵌入式處理器設計各類(lèi)加速器,從而成為Nios系統的一個(gè)接口設備,與整個(gè)片內嵌入式系統融為一體,使得Nios的通用性和DSP加速模塊的專(zhuān)用性恰到好處地結合在了一起,使DSP處理器系統的靈活性得到了最大程度的體現。當Nios接收到對語(yǔ)音數據進(jìn)行基音頻率提取的任務(wù)時(shí),它會(huì )將需處理的原始數據送往DSP加速模塊,DSP加速模塊對數據進(jìn)行處理并將處理結果轉交給Nios處理器,由Nios送往相應終端進(jìn)行結果顯示或進(jìn)行其它處理,從而構建起整個(gè)SOPC系統。需要特別說(shuō)明的是,Nios系統的所有外設都是通過(guò)Avalon總線(xiàn)與Nios CPU相接的,DSP加速模塊也不例外,該模塊若與Nios進(jìn)行信息交換,必須通過(guò)Avalon總線(xiàn),也就是說(shuō),所設計出的DSP模塊應該有與Avalon總線(xiàn)的接口。DSP Builder提供了SOPC Builder Links庫,其中的AVALON Ports提供了各種與Avalon總線(xiàn)相連接的功能端口,本設計需根據所完成的DSP模塊各端口的功能為其添加Avalon總線(xiàn)接口。

DSP模塊功能驗證后,即可加載DSP Builder中的核心模塊“SignalCompiler”,以完成模型分析、 MDL到VHDL的轉化、綜合及適配。最后在SOPC Builder中完成將該模塊與Nios的整合,以使DSP能成為掛接到Nios的一個(gè)硬件加速模塊。此后即可完成下載,并在Nios的集成開(kāi)發(fā)環(huán)境(IDE)中編寫(xiě)測試程序對整個(gè)處理器系統進(jìn)行測試。

4.3 性能評估

經(jīng)分析,從輸入最后一個(gè)數據到開(kāi)始陸續得到最終結果(由于算法的限制,該系統并不是一個(gè)實(shí)時(shí)系統),需N*T/2時(shí)間(T為一個(gè)基本工作周期,N為語(yǔ)音數據的幀數),若從DSP向外輸出數據的周期仍為T(mén),那么送出數據共需N*T時(shí)間,兩者之和為3N*T/2,即從輸入最后一個(gè)數據到所有數據輸出,共需時(shí)間3N*T/2。這種執行效率與軟件相比,其優(yōu)勢是顯而易見(jiàn)的,從理論上講,軟件沒(méi)有執行上的并行性可言,也就是說(shuō)對于順序執行的子函數而言,只有前一個(gè)子函數執行完畢,后一個(gè)子函數才能執行,比如端點(diǎn)檢測部分和基音頻率提取部分只能順序執行,而不像硬件那樣,端點(diǎn)檢測與基音頻率提取可以分成兩個(gè)獨立的模塊同時(shí)并行地對輸入數據進(jìn)行處理。對于語(yǔ)音內容為“你好”的1.1s的語(yǔ)音數據而言,Matlab的軟算法的平均耗時(shí)在0.8-0.85秒之間(運行環(huán)境為1.73GHz主頻,256MB內存)。但若令T=1/1.73G,代入到3N*T/2中(N=54),其延遲只有4.3610-8秒,可見(jiàn)差異的顯著(zhù)。而這種差異將隨N的增大而更加顯著(zhù)??梢?jiàn),該算法的DSP實(shí)現使整個(gè)執行效率有了大幅度的提高,達到了預期的效果。

5 結語(yǔ)

本文嘗試采用基于A(yíng)ltera硬件設計的一套新的設計流程和設計思路,不同于傳統的在MAX-PLUS II和Quartus II中面向RTL級的硬件設計思路,轉向了以MatlabSimulink為基本平臺,以DSP Builder為其中的Blockset的面向系統級和算法級的硬件設計思路,同時(shí)充分利用了Simulink的強大的仿真功能,而在將系統級模型向RTL級模型轉化時(shí),完全通過(guò)DSP Builder的核心模塊SignalCompiler自動(dòng)實(shí)現,并同時(shí)完成綜合和適配,若采用自動(dòng)設計流程,甚至可以在Simulink中完成下載。這種設計思路有益于復雜算法的硬件化設計,將設計者的視線(xiàn)從Quartus中更多地轉移到了MatlabSimulink中,使設計者考慮問(wèn)題的著(zhù)眼點(diǎn)從傳統圍繞底層的硬件實(shí)現轉移到上層面向算法的實(shí)現和整個(gè)系統的構成。而在原來(lái)需要考慮過(guò)多的底層實(shí)現問(wèn)題,通過(guò)SignalCompiler模塊的強大功能,只是一蹴而就的事。

本文作者創(chuàng )新點(diǎn)在于通過(guò)一套新的設計流程,面向最終的應用(即實(shí)現基音周期特征的提?。?,并充分利用FPGA的優(yōu)勢,實(shí)現了徹底的硬件執行架構的設計,而不同于以往更多的周旋于軟件層面的編程,同時(shí)以DSP Builder作為開(kāi)發(fā)平臺,按照自頂向下的設計思想,極大地簡(jiǎn)化了DSP核的設計,同時(shí)使算法的DSP設計結果實(shí)現了執行效率上的飛躍。

參考文獻:

1 L.R.拉賓納,R.W.謝弗. 語(yǔ)音信號數字處理. 北京:科學(xué)出版社,1983

2 易克初,田斌,付強. 語(yǔ)音信號處理. 北京:國防工業(yè)出版社,2000

3 王朝英,馮新喜. 信號處理原理. 北京:清華大學(xué)出版社,北京交通大學(xué)出版社,2005

4 鄒鯤,袁俊泉,龔享銥. MATLAB 6.x信號處理. 北京:清華大學(xué)出版社,2002

5 張智星. MATLAB程序設計與應用. 北京:清華大學(xué)出版社,2002

6 何強,何英. MATLAB擴展編程. 北京:清華大學(xué)出版社,2002

7 潘松,黃繼業(yè),曾毓. SOPC技術(shù)實(shí)用教程. 北京:清華大學(xué)出版社,2005

8 彭澄廉,周博,丘衛東,陳燕,周學(xué)功,方茁. 挑戰SOC-基于Nios的SOPC設計與實(shí)踐. 北京:清華大學(xué)出版社,2004

9 潘松,黃繼業(yè),王國棟. 現代DSP技術(shù). 西安:西安電子科技大學(xué)出版社,2003

10 Altera Corp. DSP Builder Reference Manual,2005

11 Altera Corp. DSP Builder User Guide,2005

12 楊守良. 利用Matlab/DSP Builder實(shí)現DDS的設計. 微計算機信息,2006, 7-2:211-212



關(guān)鍵詞: FPGA 基音檢測 算法

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>