本發(fā)明屬于語音綜合領(lǐng)域,具體涉及一種基于FFT短時傅里葉算法的語音綜合電路結(jié)構(gòu)及其控制方法在語音時域信號重建上的應(yīng)用。
背景技術(shù):
:
在典型的助聽器應(yīng)用中,語音的處理經(jīng)過語音分析、語音頻域子帶處理和語音綜合三個關(guān)鍵步驟。其中,語音綜合技術(shù)實現(xiàn)語音從頻譜數(shù)據(jù)到時域信號的重建過程,是語音處理中的重要技術(shù)。語音綜合作為語音輸出前的最后一個環(huán)節(jié),直接影響著輸出語音的質(zhì)量。基于FFT的語音綜合具有高效靈活的實現(xiàn)結(jié)構(gòu),具體方法是先對頻譜數(shù)據(jù)作反傅里葉變換,將變換結(jié)果循環(huán)移位后進行周期延拓,周期延拓序列最終與綜合窗序列相乘,乘積和輸出緩沖區(qū)中的暫存結(jié)果疊加即得到重建的時域語音信號。
技術(shù)實現(xiàn)要素:
:
鑒于以上分析,本發(fā)明的目的是提供一種基于FFT短時傅里葉算法的語音綜合電路實現(xiàn)結(jié)構(gòu)以及相應(yīng)電路系統(tǒng)的控制方法。
本發(fā)明提供一種基于FFT短時傅里葉算法的語音綜合電路實現(xiàn)結(jié)構(gòu),其并行化設(shè)計能夠降低處理時延,快速實現(xiàn)語音信號的時域重建。
本發(fā)明提供一種基于FFT短時傅里葉算法的語音綜合電路結(jié)構(gòu)的控制方法,能夠提高系統(tǒng)的數(shù)據(jù)吞吐率,降低系統(tǒng)功耗。
本發(fā)明中基于FFT短時傅里葉算法的語音綜合電路結(jié)構(gòu)實現(xiàn)所采取的技術(shù)方案如下:
根據(jù)短時傅里葉分析算法提出一種基于FFT短時傅里葉算法的語音綜合電路實現(xiàn)結(jié)構(gòu)如圖1所示,其包括主控制模塊(1)、I2S輸入模塊(2)、IFFT模塊(3)、數(shù)據(jù)移位延拓模塊(4)、輸出緩存器模塊(5)、I2S輸出模塊(6)、寄存器初始化模塊(7)、AHB總線模塊(8)、I2C總線模塊(9)。
進一步地,主控制模塊(1)分別與IFFT模塊(3)、數(shù)據(jù)移位延拓模塊(4)、輸出緩存器模塊(5)通過AHB總線模塊(8)相互連接,與寄存器初始化模塊(7)通過AHB總線模塊(8)和I2C總線模塊(9)相互連接,I2S輸入模塊(2)與IFFT模塊(3)相互連接,IFFT模塊(3)與數(shù)據(jù)移位延拓模塊(4)相互連接,數(shù)據(jù)移位延拓模塊(4)與輸出緩存器模塊(5)相互連接,輸出緩存器模塊(5)與I2S輸出模塊(6)相互連接。
進一步地,I2S輸入模塊(2)、IFFT模塊(3)、數(shù)據(jù)移位延拓模塊(4)、輸出緩存器模塊(5)和I2S輸出模塊(6)分別包含一個功能模塊和數(shù)據(jù)存儲模塊。
進一步地,基于FFT的語音綜合電路結(jié)構(gòu)包括:主控制子模塊(101)、I2S輸入功能模塊(103)、I2S輸入存儲模塊(102)、IFFT存儲模塊(104)、IFFT功能模塊(105)、IFFT旋轉(zhuǎn)因子存儲子模塊(106)、數(shù)據(jù)移位延拓功能模塊(107)、數(shù)據(jù)移位延拓存儲模塊(108)、輸出緩存器功能模塊(109)、輸出緩存器存儲模塊(110)、I2S輸出存儲模塊(111)、I2S輸出功能模塊(112)、寄存器初始化子模塊(113)、AHB總線模塊(114)及I2C總線子模塊(115)。
進一步地,主控制子模塊(101)根據(jù)寄存器初始化子模塊(113)的內(nèi)容配置整個電路系統(tǒng)中的寄存器參數(shù),并啟動電路功能,語音頻譜數(shù)據(jù)通過I2S接口進入I2S輸入功能模塊(103),I2S輸入功能模塊(103)將接收到的語音頻譜數(shù)據(jù)存入I2S輸入存儲模塊(102)中,I2S輸入存儲模塊(102)與IFFT存儲模塊(104)相連。
進一步地,I2S輸入存儲模塊(102)接收數(shù)據(jù)滿并發(fā)出訪存請求,主控制子模塊(101)根據(jù)電路系統(tǒng)狀態(tài)仲裁后通過AHB總線子模塊(114)通知IFFT存儲模塊(104)取走數(shù)據(jù)并存儲,IFFT功能模塊(105)對FFT存儲模塊(104)和IFFT旋轉(zhuǎn)因子存儲模塊(106)中的數(shù)據(jù)進行IFFT變換,完成頻域到時域的轉(zhuǎn)換,并發(fā)出數(shù)據(jù)輸出請求,主控制模塊(101)根據(jù)電路系統(tǒng)狀態(tài)仲裁后通過AHB總線子模塊(114)通知數(shù)據(jù)移位延拓功能模塊(107)取走數(shù)據(jù)并存入數(shù)據(jù)移位延拓存儲模塊(108)中進行處理,數(shù)據(jù)移位延拓功能模塊(107)完成數(shù)據(jù)的移位、周期延拓以及與綜合窗序列相乘加權(quán)后發(fā)出數(shù)據(jù)輸出請求,主控制子模塊(101)根據(jù)電路系統(tǒng)狀態(tài)仲裁后通過AHB總線子模塊(114)通知輸出緩存器功能模塊(109)取走數(shù)據(jù)并存入輸出緩存器存儲模塊(110)中,緩存器功能模塊(109)對數(shù)據(jù)進行移位累加,并將累加結(jié)果輸出給I2S輸出存儲模塊(111),等待用戶通過I2S輸出功能模塊(112)取走語音綜合數(shù)據(jù),完成語音信號的實時綜合。
進一步地,I2S輸入存儲模塊(102)為DPRAM,其深度為256bit,寬度為64bit,I2S輸入模塊每幀傳遞的語音數(shù)據(jù)為128個64bit的數(shù)據(jù)。
進一步地,IFFT存儲模塊(104)為DPRAM,其深度為128bit,寬度為64bit,IFFT功能模塊輸出的每幀分段數(shù)據(jù)為128個32bit的數(shù)據(jù)。
進一步地,IFFT旋轉(zhuǎn)因子存儲模塊(106)為ROM,其深度為64bit,寬度為64bit。
進一步地,數(shù)據(jù)移位延拓存儲模塊(108)為單端口ROM,其深度為512bit,寬度為32bit,數(shù)據(jù)移位延拓功能模塊(107)輸出的每幀分段數(shù)據(jù)為512個16bit的數(shù)據(jù)。
進一步地,輸出緩存器存儲模塊(110)為單端口RAM,其深度為512bit,寬度為16bit。
進一步地,I2S輸出存儲模塊(111)為DPRAM,其深度為256bit,寬度為16bit。
進一步地,寄存器初始化子模塊(113)為E2PROM。
根據(jù)本發(fā)明的另一方面,還提供了一種采用上述發(fā)明設(shè)計的一種基于FFT短時傅里葉分析的語音綜合電路結(jié)構(gòu)的控制方法流程如圖2所示,用于語音信號的綜合,該控制方法包括如下步驟:
(1)對語音綜合電路系統(tǒng)供電,主控制模塊(1)根據(jù)E2PROM中的初始化數(shù)據(jù)配置寄存器,執(zhí)行啟動功能;
(2)I2S輸入模塊(2)、IFFT模塊(3)、數(shù)據(jù)移位延拓模塊(4)、輸出緩存器模塊(5)、I2S輸出模塊(6)并行工作,其中I2S輸入模塊(2)、I2S輸出模塊(6)的工作時鐘頻率為1.536MHz,IFFT模塊(3)的工作時鐘頻率為512KHz,數(shù)據(jù)移位延拓模塊(4)的工作時鐘頻率為256KHz,輸出緩存器模塊(5)的工作時鐘頻率為256KHz;
(3)I2S輸入功能模塊(103)處理通過I2S接口輸入的64bit復(fù)數(shù)頻譜數(shù)據(jù),將數(shù)據(jù)存入I2S輸入存儲模塊(102);
(4)I2S輸入存儲模塊(102)存儲滿128個頻譜數(shù)據(jù)時發(fā)出訪存請求,主控制模塊((101))根據(jù)IFFT功能模塊(105)的工作狀態(tài)進行仲裁,在IFFT功能模塊(105)空閑時允許I2S輸入模塊(2)將頻譜數(shù)據(jù)存入IFFT存儲模塊(104);
(5)IFFT功能模塊(105)對IFFT存儲模塊(104)中的頻譜數(shù)據(jù)進行128點的基2頻率IFFT運算,蝶形運算所需的64個旋轉(zhuǎn)因子取自IFFT旋轉(zhuǎn)因子存儲模塊(106),IFFT模塊(3)輸出128個32bit的實數(shù)數(shù)據(jù);
(6)IFFT功能模塊(105)完成數(shù)據(jù)頻域到時域的轉(zhuǎn)換后發(fā)出數(shù)據(jù)輸出請求;
(7)主控制子模塊(101)根據(jù)數(shù)據(jù)移位延拓功能模塊(107)的工作狀態(tài)進行仲裁,在數(shù)據(jù)移位延拓功能模塊(107)空閑時,允許數(shù)據(jù)移位延拓功能模塊(107)將數(shù)據(jù)存入數(shù)據(jù)移位延拓存儲模塊(108),執(zhí)行操作;
(8)數(shù)據(jù)移位延拓功能模塊(107)完成數(shù)據(jù)的循環(huán)移位、周期延拓以及與綜合窗序列相乘加權(quán)的功能后,發(fā)出數(shù)據(jù)輸出的請求;
(9)主控制子模塊(101)根據(jù)輸出緩存器功能模塊(109)的工作狀態(tài)進行仲裁,在輸出緩存器功能模塊(109)空閑時,通知輸出緩存器功能模塊(109)取走數(shù)據(jù),并存入輸出緩存器存儲模塊(110)中;
(10)輸出緩存器功能模塊(109)完成數(shù)據(jù)的移位累加后,發(fā)出數(shù)據(jù)輸出的請求;
(11)主控制子模塊(101)根據(jù)I2S輸出模塊(6)的狀態(tài)進行仲裁,在I2S輸出模塊(6)空閑時,允許語音數(shù)據(jù)寫入I2S輸出存儲模塊(111);
(12)I2S輸出存儲模塊(111)等待外部通過I2S輸出功能模塊(112)取走語音綜合完成的時域語音信號。
本發(fā)明成功將基于FFT短時傅里葉算法的語音綜合電路實現(xiàn),能夠用于將語音頻譜數(shù)據(jù)轉(zhuǎn)換成時域數(shù)據(jù),并完成語音信號的實時綜合。
附圖說明:
圖1為本發(fā)明方法設(shè)計的一種基于FFT短時傅里葉算法的語音綜合電路實現(xiàn)結(jié)構(gòu)圖。
圖2為本發(fā)明方法設(shè)計的一種基于FFT短時傅里葉算法語音綜合電路結(jié)構(gòu)的控制方法流程圖。
具體實施方式:
為了更清楚地描述本發(fā)明的技術(shù)方案,以下結(jié)合附圖和具體實施例對本發(fā)明進行詳細的說明。
如圖1所示,整個電路實現(xiàn)架構(gòu)包括主控制模塊(1)、I2S輸入模塊(2)、IFFT模塊(3)、數(shù)據(jù)移位延拓模塊(4)、輸出緩存器模塊(5)、I2S輸出模塊(6)、寄存器初始化模塊(7)、AHB總線模塊(8)、I2C總線模塊(9)。
進一步地,主控制模塊(1)分別與IFFT模塊(3)、數(shù)據(jù)移位延拓模塊(4)、輸出緩存器模塊(5)通過AHB總線模塊(8)相互連接,與寄存器初始化模塊(7)通過AHB總線模塊(8)和I2C總線模塊(9)相互連接,I2S輸入模塊(2)與IFFT模塊(3)相互連接,IFFT模塊(3)與數(shù)據(jù)移位延拓模塊(4)相互連接,數(shù)據(jù)移位延拓模塊(4)與輸出緩存器模塊(5)相互連接,輸出緩存器模塊(5)與I2S輸出模塊(6)相互連接。I2S輸入模塊(2)、IFFT模塊(3)、數(shù)據(jù)移位延拓模塊(4)、輸出緩存器模塊(5)和I2S輸出模塊(6)分別包含一個功能模塊和相應(yīng)的數(shù)據(jù)存儲模塊。
進一步地,基于FFT短時傅里葉算法的語音綜合電路結(jié)構(gòu)實現(xiàn)包括:主控制子模塊(101)、I2S輸入存儲模塊(102)、I2S輸入功能模塊(103)、IFFT存儲模塊(104)、IFFT功能模塊(105)、IFFT旋轉(zhuǎn)因子存儲模塊(106)、數(shù)據(jù)移位延拓功能模塊(107)、數(shù)據(jù)移位延拓存儲模塊(108)、輸出緩存器功能模塊(109)、輸出緩存器存儲模塊(110)、I2S輸出存儲模塊(111)、I2S輸出功能模塊(112)、寄存器初始化模塊(113)、AHB總線子模塊(114)及I2C總線子模塊(115)。
主控制子模塊(101)根據(jù)寄存器初始化子模塊(113)的內(nèi)容配置整個電路系統(tǒng)中的寄存器參數(shù),并啟動電路功能,語音頻譜數(shù)據(jù)通過I2S接口進入I2S輸入功能模塊(103),I2S輸入功能模塊(103)將接收到的語音頻譜數(shù)據(jù)存入I2S輸入存儲模塊(102)中,I2S輸入存儲模塊(102)與IFFT存儲模塊(104)相連。
I2S輸入存儲模塊(102)接收數(shù)據(jù)滿并發(fā)出訪存請求,主控制子模塊(101)根據(jù)電路系統(tǒng)狀態(tài)仲裁后通過AHB總線子模塊(114)通知IFFT存儲模塊(104)取走數(shù)據(jù)并存儲。
IFFT功能模塊(105)對FFT存儲模塊(104)和IFFT旋轉(zhuǎn)因子存儲模塊(106)中的數(shù)據(jù)進行IFFT變換,完成頻域到時域的轉(zhuǎn)換,并發(fā)出數(shù)據(jù)輸出請求,主控制子模塊(101)根據(jù)電路系統(tǒng)狀態(tài)仲裁后通過AHB總線子模塊(114)通知數(shù)據(jù)移位延拓功能模塊(107)取走數(shù)據(jù)并存入數(shù)據(jù)移位延拓存儲模塊(108)中進行處理。
數(shù)據(jù)移位延拓功能模塊(107)完成數(shù)據(jù)的移位、周期延拓以及與綜合窗序列相乘加權(quán)后發(fā)出數(shù)據(jù)輸出請求。
主控制子模塊(101)根據(jù)電路系統(tǒng)狀態(tài)仲裁后通過AHB總線子模塊(114)通知輸出緩存器功能模塊(109)取走數(shù)據(jù)并存入輸出緩存器存儲模塊(110)中,輸出緩存器功能模塊(109)對數(shù)據(jù)進行移位累加,并將累加結(jié)果輸出給I2S輸出存儲模塊(111)。
用戶通過I2S輸出功能模塊(112)取走語音綜合數(shù)據(jù),完成語音信號的實時綜合。
如圖2所示是一種基于FFT短時傅里葉算法語音綜合電路系統(tǒng)的控制方法流程圖,系統(tǒng)控制方法包括如下步驟:
(1)對語音綜合電路系統(tǒng)供電,主控制模塊(1)根據(jù)E2PROM中的初始化數(shù)據(jù)配置寄存器,執(zhí)行啟動功能;
(2)I2S輸入模塊(2)、IFFT模塊(3)、數(shù)據(jù)移位延拓模塊(4)、輸出緩存器模塊(5)、I2S輸出模塊(6)并行工作,其中I2S輸入模塊(2)、I2S輸出模塊(6)的工作時鐘頻率為1.536MHz,IFFT模塊(3)的工作時鐘頻率為512KHz,數(shù)據(jù)移位延拓模塊(4)的工作時鐘頻率為256KHz,輸出緩存器模塊(5)的工作時鐘頻率為256KHz;
(3)I2S輸入功能模塊(103)處理通過I2S接口輸入的64bit復(fù)數(shù)頻譜數(shù)據(jù),將數(shù)據(jù)存入I2S輸入存儲模塊(102);
(4)I2S輸入存儲模塊(102)存儲滿128個頻譜數(shù)據(jù)時發(fā)出訪存請求,主控制模塊((101))根據(jù)IFFT功能模塊(105)的工作狀態(tài)進行仲裁,在IFFT功能模塊(105)空閑時允許I2S輸入模塊(2)將頻譜數(shù)據(jù)存入IFFT存儲模塊(104);
(5)IFFT功能模塊(105)對IFFT存儲模塊(104)中的頻譜數(shù)據(jù)進行128點的基2頻率IFFT運算,蝶形運算所需的64個旋轉(zhuǎn)因子取自IFFT旋轉(zhuǎn)因子存儲模塊(106),IFFT模塊(3)輸出128個32bit的實數(shù)數(shù)據(jù);
(6)IFFT功能模塊(105)完成數(shù)據(jù)頻域到時域的轉(zhuǎn)換后發(fā)出數(shù)據(jù)輸出請求;
(7)主控制子模塊(101)根據(jù)數(shù)據(jù)移位延拓功能模塊(107)的工作狀態(tài)進行仲裁,在數(shù)據(jù)移位延拓功能模塊(107)空閑時,允許數(shù)據(jù)移位延拓功能模塊(107)將數(shù)據(jù)存入數(shù)據(jù)移位延拓存儲模塊(108),執(zhí)行操作;
(8)數(shù)據(jù)移位延拓功能模塊(107)完成數(shù)據(jù)的循環(huán)移位、周期延拓以及與綜合窗序列相乘加權(quán)的功能后,發(fā)出數(shù)據(jù)輸出的請求;
(9)主控制子模塊(101)根據(jù)輸出緩存器功能模塊(109)的工作狀態(tài)進行仲裁,在輸出緩存器功能模塊(109)空閑時,通知輸出緩存器功能模塊(109)取走數(shù)據(jù),并存入輸出緩存器存儲模塊(110)中;
(10)輸出緩存器功能模塊(109)完成數(shù)據(jù)的移位累加后,發(fā)出數(shù)據(jù)輸出的請求;
(11)主控制子模塊(101)根據(jù)I2S輸出模塊(6)的狀態(tài)進行仲裁,在I2S輸出模塊(6)空閑時,允許語音數(shù)據(jù)寫入I2S輸出存儲模塊(111);
(12)I2S輸出存儲模塊(111)等待外部通過I2S輸出功能模塊(112)取走語音綜合完成的時域語音信號。
如上所述,在本發(fā)明設(shè)計的一種基于FFT短時傅里葉算法的語音綜合電路結(jié)構(gòu)及其控制方法中,I2S輸入模塊(2)、IFFT模塊(3)、數(shù)據(jù)移位延拓模塊(4)、輸出緩存器模塊(5)、I2S輸出模塊(6)分別采用不同的工作時鐘,能夠相互配合實現(xiàn)流水線并行工作,從而提高數(shù)據(jù)吞吐率。在滿足實時地將頻譜數(shù)據(jù)轉(zhuǎn)換成時域數(shù)據(jù),并完成語音信號的實時綜合,同時還能夠降低電路功耗。