本實(shí)用新型嵌入式語(yǔ)音合成應(yīng)用領(lǐng)域,具體涉及基于FPGA的MLSA合成濾波器。
背景技術(shù):
:隨著數(shù)字集成電路的發(fā)展,越來(lái)越多的模擬電路逐漸被數(shù)字電路取代,同時(shí)數(shù)字電路本身也在不斷進(jìn)行更新?lián)Q代。隨著微電子技術(shù)的發(fā)展,人們希望設(shè)計(jì)的專用集成電路(ApplicatioSpecificIntegratedCircuit,ASIC)周期更短,專用性更強(qiáng),因而出現(xiàn)了可編程邏輯器件,其中應(yīng)用最廣泛的即是FPGA。隨著可編程邏輯器件工藝和開發(fā)日新月異的發(fā)展,F(xiàn)PGA技術(shù)與ASIC、DSP及CPU技術(shù)不斷融合,F(xiàn)PGA器件中已經(jīng)成功以硬核的形式嵌入ASIC、PowerPC處理器、ARM處理器,以HDL的形式嵌入越來(lái)越多的標(biāo)準(zhǔn)數(shù)字處理單元,如MicroBlaze處理器、Nios及NiosⅡ處理器等。新技術(shù)的發(fā)展實(shí)現(xiàn)了軟硬件設(shè)計(jì)的完美結(jié)合,使得可編程邏輯器件超越了傳統(tǒng)意義的FPGA概念;并以此發(fā)展形成現(xiàn)在流行的可編程系統(tǒng)級(jí)(SystemonaProgrammableChip,SOPC)設(shè)計(jì)技術(shù),其應(yīng)用領(lǐng)域擴(kuò)展到了系統(tǒng)級(jí),涵蓋了實(shí)時(shí)數(shù)字信號(hào)處理技術(shù)、復(fù)雜計(jì)算等,以及嵌入式系統(tǒng)設(shè)計(jì)技術(shù)。數(shù)字濾波器通常定義為通過(guò)對(duì)數(shù)字信號(hào)的運(yùn)算處理,改變信號(hào)頻譜,完成濾波作用的算法或裝置,MLSA(MelLogSpectralApproximation)濾波器就是其中的一種。MLSA濾波器是一種合成濾波器,由于此合成濾波器近似于由梅爾倒譜系數(shù)給出的指數(shù)傳遞函數(shù),所以它可以從獲得的梅爾倒譜系數(shù)直接合成出語(yǔ)音,同時(shí)還保證了語(yǔ)音發(fā)聲的穩(wěn)定性。此算法主要運(yùn)用于語(yǔ)音合成的后端處理,而且主要在PC機(jī)上運(yùn)行。但是現(xiàn)在還沒(méi)有一種利用軟核的形式來(lái)實(shí)現(xiàn)MLSA濾波器的功能。技術(shù)實(shí)現(xiàn)要素:針對(duì)上述存在的技術(shù)問(wèn)題,本實(shí)用新型提供了一種基于FPGA的MLSA合成濾波器,此裝置不僅可以進(jìn)行復(fù)雜的數(shù)據(jù)計(jì)算,實(shí)現(xiàn)語(yǔ)音的合成,同時(shí)還實(shí)現(xiàn)了便攜化,克服了DSP運(yùn)行速度相對(duì)緩慢和傳統(tǒng)可編程邏輯器件復(fù)雜算法難以實(shí)現(xiàn)的缺點(diǎn),使得靈活、高速的濾波算法簡(jiǎn)單易行。一種基于FPGA的MLSA合成濾波器,包括FPGA芯片,SD卡存儲(chǔ)器,F(xiàn)LASH存儲(chǔ)器,SRAM存儲(chǔ)器,SDRAM存儲(chǔ)器,音頻芯片;所述FPGA芯片包括NiosⅡ軟核處理器、Avalon總線交換結(jié)構(gòu)、SPI總線控制器、SDRAM控制器、SRAM控制器、定時(shí)器、JTAG調(diào)試模塊、Avalon三態(tài)橋、數(shù)字音頻接口I/O接口、音頻控制器和FLASH控制器;所述NiosⅡ軟核處理器通過(guò)Avalon總線交換結(jié)構(gòu)連接所述SPI總線控制器、SDRAM控制器、SRAM控制器、定時(shí)器、JTAG調(diào)試模塊、Avalon三態(tài)橋、數(shù)字音頻接口I/O端口、音頻控制器,所述Avalon三態(tài)橋與FLASH控制器相連,F(xiàn)LASH控制器與FLASH存儲(chǔ)器相連,所述SDRAM控制器與SDRAM存儲(chǔ)器相連,SRAM控制器與SRAM存儲(chǔ)器相連,SPI總線控制器與SD卡存儲(chǔ)器相連,數(shù)字音頻接口I/O端口和音頻控制器與音頻芯片相連;所述SD卡存儲(chǔ)器中存儲(chǔ)有Mel倒譜序列和基頻F0序列,所述NiosⅡ軟核處理器包括Mel倒譜數(shù)據(jù)緩存器、F0序列數(shù)據(jù)緩存器、濾波參數(shù)校正模塊、激勵(lì)信號(hào)發(fā)生模塊和MLSA濾波器模塊;所述Mel倒譜和F0序列數(shù)據(jù)緩存器分別于SPI總線控制器相連。進(jìn)一步的,所述音頻芯片連接有外置的音箱。進(jìn)一步的,所述NiosⅡ軟核處理器為“NiosⅡ/f(快速)”類型。本實(shí)用新型MLSA合成濾波器在FPGA中實(shí)現(xiàn),通過(guò)FPGA內(nèi)部的NiosⅡ軟核處理器來(lái)處理復(fù)雜的數(shù)據(jù)計(jì)算。NiosⅡ軟核處理器首先通過(guò)SPI總線控制器從SD卡存儲(chǔ)器中讀取mel倒譜序列和基頻F0序列,存入緩存器SDRAM中,然后分兩部分進(jìn)行處理,一部分從緩存器中讀取Mel倒譜序列送入到濾波參數(shù)校正器,得到的處理數(shù)據(jù)送入MLSA合成濾波器,對(duì)濾波器進(jìn)行調(diào)整;另一部分從緩存器中讀取基頻F0,通過(guò)激勵(lì)信號(hào)發(fā)生器,得到的數(shù)據(jù)送入MLSA合成濾波器;最后,通過(guò)MLSA合成濾波器模塊合成出語(yǔ)音數(shù)據(jù),并且通過(guò)音頻芯片輸出語(yǔ)音。FPGA實(shí)現(xiàn)了大數(shù)據(jù)的快速處理,并且實(shí)現(xiàn)了裝置的便攜化,可移動(dòng)性,不再僅局限于在計(jì)算機(jī)上實(shí)現(xiàn)數(shù)據(jù)的處理和仿真;此合成濾波器合成相同質(zhì)量的語(yǔ)音,不僅需要的數(shù)據(jù)率很低,而且合成的語(yǔ)音流暢。附圖說(shuō)明為了更清楚地說(shuō)明本實(shí)用新型實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本實(shí)用新型的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為一種基于FPGA的MLSA合成濾波器的模塊示意圖;圖2為基于FPGA的MLSA合成濾波器處理步驟示意圖;圖3為表示MLSA濾波器的方框圖;圖4表示MLSA濾波器的另一方框圖。具體實(shí)施方式本實(shí)用新型提供了一種基于FPGA(可編程門陣列,F(xiàn)ieldProgrammableGateArray)的MLSA(MelLogSpectralApproximation)合成濾波器,主要利用FPGA的嵌入式NiosⅡ軟核來(lái)實(shí)現(xiàn)濾波器功能,根據(jù)FPGA技術(shù)的特點(diǎn)和數(shù)字濾波器的性能本文設(shè)計(jì)了一種基于FPGA的MLSA合成濾波器,此設(shè)計(jì)克服了DSP運(yùn)行速度相對(duì)緩慢和傳統(tǒng)可編程邏輯器件復(fù)雜算法難以實(shí)現(xiàn)的缺點(diǎn),使得靈活、高速的濾波算法簡(jiǎn)單易行。下面將結(jié)合本實(shí)用新型中的附圖,對(duì)本實(shí)用新型中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的僅僅是本實(shí)用新型一部分實(shí)施例,而不是全部的實(shí)施例?;诒緦?shí)用新型中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本實(shí)用新型保護(hù)的范圍。參見(jiàn)圖1所示,本實(shí)用新型公開了一種基于FPGA的MLSA合成濾波器,包括FPGA芯片,SD卡存儲(chǔ)器,F(xiàn)LASH存儲(chǔ)器,SRAM存儲(chǔ)器,SDRAM存儲(chǔ)器,音頻芯片;所述FPGA芯片包括NiosⅡ軟核處理器、Avalon總線交換結(jié)構(gòu)、SPI總線控制器、SDRAM控制器、SRAM控制器、定時(shí)器、JTAG調(diào)試模塊、Avalon三態(tài)橋、數(shù)字音頻接口I/O接口、音頻控制器和FLASH控制器;所述NiosⅡ軟核處理器通過(guò)Avalon總線交換結(jié)構(gòu)連接所述SPI總線控制器、SDRAM控制器、SRAM控制器、定時(shí)器、JTAG調(diào)試模塊、Avalon三態(tài)橋、數(shù)字音頻接口I/O端口、音頻控制器,所述Avalon三態(tài)橋與FLASH控制器相連,F(xiàn)LASH控制器與FLASH存儲(chǔ)器相連,所述SDRAM控制器與SDRAM存儲(chǔ)器相連,SRAM控制器與SRAM存儲(chǔ)器相連,SPI總線控制器與SD卡存儲(chǔ)器相連,數(shù)字音頻接口I/O端口和音頻控制器與音頻芯片相連;所述SD卡存儲(chǔ)器中存儲(chǔ)有Mel倒譜序列和基頻F0序列,所述NiosⅡ軟核處理器包括Mel倒譜數(shù)據(jù)緩存器、F0序列數(shù)據(jù)緩存器、濾波參數(shù)校正模塊、激勵(lì)信號(hào)發(fā)生模塊和MLSA濾波器模塊;所述Mel倒譜和F0序列數(shù)據(jù)緩存器分別于SPI總線控制器相連。在本實(shí)施例中,所述音頻芯片連接有外置的音箱。在本實(shí)施例中,所述NiosⅡ軟核處理器為“NiosⅡ/f(快速)”類型。。參見(jiàn)圖2所示,本實(shí)用新型MLSA合成濾波器利用FPGA內(nèi)嵌的NiosⅡ軟核處理器,通過(guò)Avalon交換總線控制各個(gè)設(shè)備。首先,NiosⅡ軟核處理器通過(guò)Avalon交換總線來(lái)控制SPI總線控制器,進(jìn)而將存儲(chǔ)于SD卡存儲(chǔ)器中的Mel倒譜序列和基頻F0序列調(diào)出,然后通過(guò)對(duì)SDRAM控制器的調(diào)節(jié)將調(diào)出的數(shù)據(jù)序列存入到SDRAM存儲(chǔ)器中,對(duì)調(diào)出的數(shù)據(jù)做緩存處理。對(duì)緩存的數(shù)據(jù)逐幀的進(jìn)行調(diào)出,分兩部分進(jìn)行:一部分調(diào)出Mel倒譜序列,將Mel倒譜序列送入濾波參數(shù)校正器,對(duì)濾波器參數(shù)進(jìn)行調(diào)整;另一部分調(diào)出基頻F0序列,將基頻F0送入激勵(lì)信號(hào)發(fā)生器,從而產(chǎn)生激勵(lì)信號(hào);通過(guò)調(diào)整過(guò)后的濾波參數(shù)和激勵(lì)信號(hào)分別送入MLSA合成濾波器,最后合成出語(yǔ)音數(shù)據(jù),讓合成的語(yǔ)音數(shù)據(jù)通過(guò)數(shù)字音頻接口I/O端口送入音頻芯片(WM8731)進(jìn)行解碼,最終讓數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),通過(guò)音箱播放出來(lái)。NiosⅡ軟核處理器是FPGA的嵌入式處理器,首先在QuartusⅡ環(huán)境下通過(guò)Qsys系統(tǒng)對(duì)NiosⅡ軟核處理器進(jìn)行配置。通過(guò)性能的比較,此處選擇“NiosⅡ/f(快速)”類型,因其具有最高的系統(tǒng)性能和中等的FPGA使用量。然后在Qsys系統(tǒng)下對(duì)NiosⅡ系統(tǒng)進(jìn)行配置:添加時(shí)鐘信號(hào)clk核,設(shè)置為50MHz;添加并配置處理器NiosⅡProcessors;添加控制器SDRAMController模塊,目的是為控制SDRAM存儲(chǔ)器;添加音頻控制器和SPI控制器IP核;指定復(fù)位和異常處理向量;添加和配置兩個(gè)定時(shí)器模塊,一個(gè)用于系統(tǒng)級(jí)的事務(wù)處理,一個(gè)用于用戶應(yīng)用程序;添加核配置PIO模塊,主要是為數(shù)字音頻接口做準(zhǔn)備,外接音頻芯片(WM8731);添加JTAGUART模塊,此模塊在系統(tǒng)運(yùn)行調(diào)試時(shí)可以作為與NiosⅡ開發(fā)環(huán)境的互動(dòng)接口,可以輸出程序運(yùn)行的打印信息,也可以接收NiosⅡ開發(fā)環(huán)境的輸入信號(hào)。添加系統(tǒng)SystemID模塊,為NiosⅡ系統(tǒng)添加系統(tǒng)ID作為NiosⅡ系統(tǒng)的標(biāo)識(shí);調(diào)整寄存器基址和中斷請(qǐng)求;最后生成HDL文件和信息文件,NiosⅡ系統(tǒng)配置完成。SD卡存儲(chǔ)器的讀寫操作,SD卡是一種嵌入式應(yīng)用的外部大容量存儲(chǔ)器。SD卡支持兩種操作模式,SD模式和SPI(串行外設(shè)接口)模式。本文中選擇SPI模式,SD卡有四個(gè)端口,mosi(表示主設(shè)備輸出,從設(shè)備輸入)、miso(表示主設(shè)備輸入,從設(shè)備輸出)、sclk(時(shí)鐘信號(hào))、ss(表示從設(shè)備的低電平有效的片選輸入)。在SPI模式中,SD卡充當(dāng)從設(shè)備,SPI控制器發(fā)布命令。接收到命令后,SD卡會(huì)回應(yīng)一個(gè)響應(yīng)幀。對(duì)于讀和寫操作,它連續(xù)傳送數(shù)據(jù)令牌和批量數(shù)據(jù)。SD卡傳送數(shù)據(jù)是以塊為單位,F(xiàn)PGA的NiosⅡ處理器作為主設(shè)備通過(guò)SPI控制器來(lái)控制SD卡,發(fā)送一個(gè)塊讀取命令或塊寫命令來(lái)啟動(dòng)數(shù)據(jù)傳輸。讀操作,主設(shè)備發(fā)送CMD17命令,SD卡使用有效的R1響應(yīng)(0x00)給予確認(rèn),然后傳送數(shù)據(jù)包;寫操作,主設(shè)備發(fā)送CMD24命令,接收到有效的R1回應(yīng)(0x00)之后,主設(shè)備傳送一個(gè)數(shù)據(jù)包。基本的SD卡命令SDRAM存儲(chǔ)器的讀寫操作:SDRAM是同步動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器,在FPGA芯片中,外部的SDRAM存儲(chǔ)器是被SDRAM控制器通過(guò)AvalonMM總線控制的。一個(gè)SDRAM控制器是通過(guò)AvalonMM來(lái)訪問(wèn)外接SDRAM芯片的,它按照芯片的時(shí)序要求產(chǎn)生合適的控制信號(hào),利用地址存放數(shù)據(jù)和讀取數(shù)據(jù)。在Avalon框架中,SDRAM控制器可以被配置成一個(gè)Qsys組件,含有一個(gè)AvalonMM從設(shè)備接口、一個(gè)系統(tǒng)時(shí)鐘的時(shí)鐘輸入接口和一個(gè)連接SDRAM芯片的I/O引腳的導(dǎo)管接口。讀操作,首先SDRAM控制器發(fā)布一個(gè)激活命令,將行地址輸出到addr(地址寄存器)上,初始化讀操作。SDRAM激活這一行,檢索整行的數(shù)據(jù),并將其存入數(shù)據(jù)鎖存器。在下一時(shí)刻發(fā)布一個(gè)read命令,將列地址傳到addr(地址寄存器)上。SDRAM使能列多路選擇器,把選擇的數(shù)據(jù)發(fā)送到輸出地址。最后緩存器上的數(shù)據(jù)變成有效,SDRAM控制器讀取數(shù)據(jù)。寫操作,SDRAM控制器發(fā)布一個(gè)激活命令,將行地址輸出到addr(地址寄存器)上,初始化寫操作。SDRAM激活這一行,獲取整行的數(shù)據(jù),并將其存入數(shù)據(jù)鎖存器。在下一時(shí)刻發(fā)布一個(gè)write命令,將列地址傳到addr(地址寄存器)上,將數(shù)據(jù)放在緩存器總線上。SDRAM檢索數(shù)據(jù),使能列譯碼器,在選擇的鎖存器位置上寫入數(shù)據(jù),然后將整行的數(shù)據(jù)寫回指定的行。音頻芯片(WM8731)控制:WM8731音頻芯片通過(guò)控制接口進(jìn)行配置,此處控制接口選用兩線I2C總線協(xié)議進(jìn)行控制。I2C總線包括雙向線路sda(表示串行數(shù)據(jù))和scl(表示串行時(shí)鐘),分別用于數(shù)據(jù)和時(shí)鐘控制。兩條線分別連接到WM8731音頻芯片的sdin和sclk引腳。最后通過(guò)I2C總線將合成的數(shù)字信號(hào)傳輸?shù)揭纛l芯片,轉(zhuǎn)換成模擬信號(hào)并通過(guò)音箱播放出來(lái)。濾波參數(shù)校正器:通過(guò)輸入的Mel倒譜系數(shù)根據(jù)下列的算法得出濾波器的參數(shù),轉(zhuǎn)換公式為b(m)=c(m)m=Mc(m)-αb(m+1),0≤m<M---(1)]]>c(m)為Mel倒譜系數(shù),b(m)為轉(zhuǎn)換后的濾波器系數(shù)。本算法是以C語(yǔ)言的形式實(shí)現(xiàn)。激勵(lì)信號(hào)發(fā)生器:對(duì)輸入的基頻F0數(shù)據(jù)通過(guò)激勵(lì)信號(hào)發(fā)生器后產(chǎn)生一系列的激勵(lì),產(chǎn)生的激勵(lì)信號(hào)送入MLSA合成濾波器,產(chǎn)生出語(yǔ)音信號(hào)序列。MLSA濾波器的算法處理:為了從得到的梅爾倒譜系數(shù)重新合成語(yǔ)音,需要實(shí)現(xiàn)指數(shù)傳輸函數(shù)D(z)。雖然該傳遞函數(shù)D(z)不是一個(gè)有理的函數(shù),但是MLSA(梅爾對(duì)數(shù)頻譜逼近)濾波器可以使D(z)近似到足夠的精度。復(fù)指數(shù)函數(shù)expω是由有理函數(shù)逼近得到的例如,如果我們選擇AL,l(l=0,1,2···L)取AL,l=1l!Ll/2Ll---(3)]]>則當(dāng)ω=0時(shí),(3)是expω的[L/L]Pade逼近。然而D(z)是通過(guò)下式逼近的其中F(z)為下式表示F(z)=z~Tc1=Σm=0Mc1(m)z~-m---(5)]]>它表明當(dāng)AL,l(l=0,1,2···L)是定值的時(shí)候,c1(m)是可變的。為了去除F(z)的自由延遲回環(huán),(5)式改為下式F(z)=z~Tc1=z~TAA-1c1=ΦTb=Σm=1Mb(m)Φm(z)---(6)]]>其中A和A-1用下式表示矢量Φ由下式給出Φ=A-1z~=[1,Φ1(z),Φ2(z),...,ΦM(z)]T---(9)]]>其中Φm(z)=(1-α2)z-11-αz-1z~-(m-1),m≥1---(10)]]>系數(shù)b可以從c1中通過(guò)下式轉(zhuǎn)換得到b=ATc1=[0,b(1),...,b(M)]T---(11)]]>上式(11)的矩陣運(yùn)算可以由下式的遞歸算法替代b(m)=c1(m)m=Mc1(m)-αb(m+1),0≤m<M---(12)]]>由于下式的約束,b的第一個(gè)元素等于0,αTc1=0(13)在時(shí)刻0時(shí),F(xiàn)(z)沖擊響應(yīng)的值為0,也即是F(z)沒(méi)有自由延時(shí)回環(huán)。圖3和圖4為表示MLSA濾波器的方框圖。由于傳遞函數(shù)F(z)沒(méi)有自由延遲路徑,所以RL(F(z))也沒(méi)有自由延遲回環(huán),這表明RL(F(z))可行的。(a)基本濾波器結(jié)構(gòu)F(z)(M=3)(b)指數(shù)傳遞函數(shù)D(z)的實(shí)現(xiàn)(a)(b)本MLSA合成濾波器是以EP4CE115開發(fā)板為實(shí)例說(shuō)明,在FPGA中嵌入NiosⅡ軟核處理器來(lái)實(shí)現(xiàn)信號(hào)的合成濾波。但如果以MicroBlaze為嵌入式的軟核形式實(shí)現(xiàn)也受到保護(hù)。數(shù)據(jù)是從SD卡中讀取的,如果換成其他的存儲(chǔ)器如FLASH、CF卡、硬盤、NANDHash等形式也受保護(hù)。以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本實(shí)用新型所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本實(shí)用新型的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本實(shí)用新型所屬
技術(shù)領(lǐng)域:
的普通技術(shù)人員來(lái)說(shuō),在不脫離本實(shí)用新型構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本實(shí)用新型的保護(hù)范圍。當(dāng)前第1頁(yè)1 2 3