本文介紹的就是一種基于title="TMS320C5409">TMS320C5409的語音實時變速系統(tǒng)。另外,,考慮到在實際系統(tǒng)中語音的壓縮存儲和語音變速往往是同時需求的,,因此本文提出一種基于LPC低比特率語音編碼算法的語音變速算法,該算法能夠任意調整語音語速,。
LPC算法
LPC編碼將語音信號s(n)看作一個時變的聲道系統(tǒng)在聲門的激勵之下的輸出信號,。對濁音而言,聲門激勵為一周期脈沖串;而對清音而言,,聲門激勵為隨機噪聲序列,。語音信號的簡化框圖如圖1所示。
在LPC編碼中,,可以將一幀的語音信號用簡化模型的參數(shù)來表示,,如濁音、清音判別,,基音周期,,增益G以及數(shù)字濾波器系數(shù){a1},這樣就可以獲得3kb/s的編碼,。解碼時,,由于在LPC編碼中,濁音可以看作是一周期脈沖串的激勵,,其中,,脈沖周期為基音周期,因此,,為了改變語音的速率,,我們將語音的幀長變長,在其中再加入若干的脈沖串的激勵即可得到變速的語音信號,。
硬件系統(tǒng)設計
本系統(tǒng)是一個完善的應用系統(tǒng),,主要完成對語音信號的實時LPC編解碼及語音變速,此外,還具有鍵盤控制功能和語音錄放功能,。因此,,本系統(tǒng)不但需要外部的SRAM存放語音數(shù)據(jù),而且需要與DSP相連接的鍵盤控制設備,。本系統(tǒng)主要由TMS320C5409,、TLC320AD50、SST39VF400A和CY7C133等構成,,系統(tǒng)框圖如圖2所示,。TMS320C5409內(nèi)部提供的32K字片內(nèi)RAM用來存放實時運行的程序和數(shù)據(jù),片外SRAM(CY7C133)用于存放編碼后的語音數(shù)據(jù),。系統(tǒng)的工作過程如下:系統(tǒng)加電后,,通過復位建使TMS320C5409復位。TMS320C5409復位后,,由內(nèi)部固化的自引導程序將Flash(SST39VF400A)上的程序和初始化數(shù)據(jù)搬移到片內(nèi)RAM,,然后TMS320C5409根據(jù)鍵盤的控制執(zhí)行操作,運行LPC編碼運算(錄音),、LPC解碼和語音變速(放音),,調整語音變速速率。
TMS320C5409用于實現(xiàn)語音的編解碼算法,,TLC320AD50用于完成語音信號的數(shù)/模和模/數(shù)轉換功能,。TMS320C5409與TLC320AD50之間通過McBSP串口通信。為了減輕CPU的負擔,,本系統(tǒng)中設計McBSP通過DMA收到或發(fā)送完一組單元后,,再給CPU中斷的方式跟CPU通信。TMS320C5409與TLC320AD50的接口如圖3所示,。
采用DMA的方式,,即串口每收到或發(fā)送一組單元,都會自動觸發(fā)DMA將其搬送到一個內(nèi)部的Buffer中,,等Buffer滿了再通過中斷方式告訴CPU處理,。這時DMA最好采用ABU(Auto Buffering)模式,可以有效防止Buffer中的數(shù)據(jù)在串口速率較高時被新數(shù)據(jù)沖掉的問題,。在進行語音變速時,,只需要將13MA通道的幀長做相應的改變即可。
SST39VF400A(256K×1 6位)作為TMS320C5409的外部數(shù)據(jù)存儲器,,地址總線和數(shù)據(jù)總線接至TMS320C5409的外部總線,,CR接至TMS320C5409的DS。TMS320C5409與SST39VF400A的接口如圖4所示,。
外部存儲器采用的是CY7C133,,它是高速的2K×16bit的靜態(tài)異步雙端口RAM,其存儲速度為25ns。它有兩套獨立的地址線,、數(shù)據(jù)線和控制信號線,,允許兩個控制器件中的數(shù)據(jù)通過共同連接的存儲器來進行通信。該雙端口RAM允許兩個控制器同時讀取任何存儲單元(包括同時讀同一單元),,但不允許同時寫或者一讀一寫統(tǒng)一地址單元,。
對于TMS 320VC5402,數(shù)據(jù)存儲器CY7C133的對應地址為4000H~47FFH,。
系統(tǒng)軟件
本系統(tǒng)實現(xiàn)的目標是鍵盤控制功能和語音錄放功能,,并且能夠將輸入的語音信號以任意變速率播放而不改變語音的聲調。系統(tǒng)采用C語言進行功能開發(fā),。
本系統(tǒng)中將HPI口映射成為GPIO,,并且將鍵盤連線通過"或"門接到INTO。當有按鍵按下時,,INTO中斷處理程序通過從GPIO中讀出的數(shù)值判斷此時是錄音,、放音、語速變快還是語速變慢,。
抗干擾設計
本系統(tǒng)中既采用硬件抗干擾技術,也采用了軟件抗干擾技術,。下面簡要介紹一下本系統(tǒng)所采用的硬件看門狗和數(shù)字濾波器的設計,。
利用硬件看門狗功能提高系統(tǒng)的抗干擾能力。由專用芯片MAX692構成的看門狗電路(圖5),,系統(tǒng)所用外圍元件少,。MAX692是微系統(tǒng)監(jiān)控電路芯片,具有后備電池切換,、掉電判別,、看門狗監(jiān)控等功能。其中WDI是看門狗檢測輸入端,,接到數(shù)字電路系統(tǒng)的一個專用I/O口或一個總線口上,。RESET是復位信號輸出端,接數(shù)字電路系統(tǒng)的復位端RST,。MAX692的WDI定時周期為1.6 s,,復位脈沖寬度是200ms。如果WDI保持高或低超過"看門狗"定時周期(1.6s),,RESET端將發(fā)生200ms寬(最小140ms)的負脈沖使數(shù)字電路系統(tǒng)復位,。
設數(shù)字濾波器的輸入信號為X(n),輸出信號為Y(n),,則輸入序列和輸出序列之間的關系可用差分方程表示為:
式中輸入信號X(n)可以是語音信號經(jīng)采樣和ADC變換后得到的數(shù)字序列,,也可以是計算機的輸出信號;aK和bK均為 系數(shù),通過設置aK和bK可將DF設計成需要的帶通濾波器。
數(shù)字濾波器的軟件設計方法有:程序判斷濾波法(限幅濾波法),、中位值濾波法,、算術平均濾波法、遞推平均濾波法,、防脈沖干擾平均濾波法,、一階滯后濾波法等6種方法。根據(jù)需要,,本系統(tǒng)選擇程序判斷濾波法,。
結浯
實踐證明,本系統(tǒng)在進行語音變速的同時,,能夠保證原說話者語調保持不變,,且操作簡單,系統(tǒng)延時小,。