欧美精品在欧美一区二区-99精品欧美一区-欧美一级在线-久久香蕉国产线看观看精品yw

首頁(yè) 新聞資訊
數字對講機語(yǔ)音編解碼算法

2019-11-15 09:33:17

3681

  大家都知道無(wú)線(xiàn)對講機可以分為模擬通信技術(shù)的模擬對講機(也就是常見(jiàn)的傳統對講機)以及采用數字技術(shù)進(jìn)行設計的數字對講機。數字對講機有許多優(yōu)點(diǎn),首先是可以更好地利用頻譜資源。與蜂窩數字技術(shù)相似,數字對講機可以在一個(gè)頻點(diǎn)上承載更多用戶(hù),提高頻譜利用率。其次是提高通話(huà)質(zhì)量,數字對講機可以在一個(gè)范圍更廣泛的信號環(huán)境中,實(shí)現更好的語(yǔ)音音頻質(zhì)量?;谶@些特點(diǎn),使數字對講機成為對講機發(fā)展的必然趨勢。

  數字對講機語(yǔ)音編碼算法的關(guān)鍵技術(shù)實(shí)現問(wèn)題可以分為算法實(shí)現和硬件平臺實(shí)現。算法實(shí)現主要是指將低速率語(yǔ)音編碼算法應用于數字對講機,而硬件平臺實(shí)現主要是指將改進(jìn)后的算法正確有效地在硬件平臺上運行。

  1

  數字對講機SELP語(yǔ)音編碼算法

  ●算法概述:

  SELP算法是建立在傳統的線(xiàn)性預測模型的基礎上,即通過(guò)線(xiàn)性預測分析分離激勵貢獻和聲道貢獻,激勵信號則由清音成分和濁音成分在不同時(shí)間和不同頻率上的混合組成的,混合信號經(jīng)過(guò)一個(gè)慢時(shí)變的幅度調制得到激勵信號,其中清音成分用白噪聲很好的擬合,濁音成分在每個(gè)諧波處用一個(gè)頻率變化的正弦信號合成,整個(gè)激勵的濁音部分由一組不同幅度的正弦波信號疊加而成。

  ●編碼器原理

  SELP聲碼器算法屬于參數聲碼器的范疇,此模型描述了5個(gè)語(yǔ)音參數,分別是:線(xiàn)性預測(Linear Prediction)系數、清濁音參數、激勵能量參數、基音周期參數和余量譜幅度參數,5 個(gè)參數均為每幀提取一次。如下圖所示,是SELP語(yǔ)音編碼器的編碼分析端框圖。

  ●激勵模型

  假設Pn表示濁音成份,Vn表示清音成份, Hn 表示合成濾波器的沖擊響應。則最終的合成語(yǔ)音Xn 可以表示成:

  其中 ? 表示卷積運算。

  合成濾波器Hn通常采用極點(diǎn)模型來(lái)表示。假設Hn用M階的極點(diǎn)模型來(lái)表示,其相應的Z變換為:

  語(yǔ)音信號中的濁音成份Pn具有周期性,可以看成是一系列正弦波經(jīng)過(guò)幅度調制后相互疊加的結果:

  ●解碼器原理

  所有參數都經(jīng)過(guò)量化編碼傳輸到解碼端,解碼端經(jīng)過(guò)反量化后得到5個(gè)參數:線(xiàn)性預測系數、基音周期參數、能量參數、清濁音參數和10維譜幅度參數。采用分析端提取清濁音時(shí)的分帶方式,在各個(gè)子帶內分別合成激勵。每個(gè)子帶中,采用正弦信號合成濁音與白噪聲信號模擬的清音信號疊加,通過(guò)合成濾波器后得到合成語(yǔ)音。解碼器的合成框圖如圖所示:

  2

  數字對講機簡(jiǎn)化SELP語(yǔ)音編碼算法

  ●低復雜度正弦波模型

  SELP 算法里將譜幅度參數固定為10維矢量,采用矢量量化傳輸此參數。為了降低編碼器的復雜度,同時(shí)節省碼本的存儲資源,簡(jiǎn)化后的語(yǔ)音編碼器采用了一種簡(jiǎn)單正弦波幅度模型,避免了參數提取和矢量量化過(guò)程。

  ●分子幀參數提取

  為了保證低復雜度下的語(yǔ)音合成質(zhì)量,采用分子幀的方法提取參數。在每個(gè)子幀內分別提取基音周期、清濁音信息和能量參數。而線(xiàn)性預測參數仍然在160點(diǎn)整幀內提取,階數設定為10階。

  采用自相關(guān)方法求取基音周期,每次提取的窗長(cháng)為200個(gè)點(diǎn),其組成如下圖所示。與整幀基音提取相同,子幀的基音周期也對應于自相關(guān)函數的極大值。預留子幀內5個(gè)極大值點(diǎn)作為備選基音周期,同時(shí)前瞻兩個(gè)子幀,通過(guò)動(dòng)態(tài)規劃方法得到最終的基音周期。然后將窗向右移動(dòng)80個(gè)點(diǎn)繼續提取下一子幀的基音周期。

  基音周期窗

  子幀能量參數是基于余量信號進(jìn)行提取的。語(yǔ)音信號經(jīng)過(guò)LPC逆濾波器后得到余量信號 r(n) ,將余量信號在時(shí)間上分為前后子幀,分別計算其能量參數的。

  ●參數插值

  編碼器參數中的線(xiàn)性預測系數、清濁音信息和譜幅度參數,在幀間采用線(xiàn)性插值得到。設過(guò)去幀參數記為 par/old ,當前幀參數記為 par/new,則在合成第 k 點(diǎn)語(yǔ)音信號的參數值計算公式如式⑥所示。

  對于對數域能量參數,首先將其轉換到線(xiàn)性域按照式⑥進(jìn)行插值,然后進(jìn)行激勵的合成。對于基音周期,則按(式⑦)進(jìn)行插值。

  通過(guò)幀間插值,保證了幀間語(yǔ)音參數的平穩過(guò)度,從而保證了語(yǔ)音的合成質(zhì)量。

  ●基于分子幀方法的激勵信號合成

  激勵由清濁音信號疊加而成,SELP 算法采用子帶清濁音度對清濁音信號進(jìn)行調制。清音信號由白噪聲發(fā)生器產(chǎn)生,濁音信號由一組正弦諧波信號疊加生成,如式⑧所示。

  得到清濁音兩種激勵信號后,分別通過(guò)由清濁度信息調制的5個(gè)帶通濾波器,相加得到合成激勵信號:

  其中 ? 表示卷積運算,hi(n) 表示5個(gè)子帶帶通濾波器的沖激響應e/p(n)和e/n(n)分別表示濁音激勵和清音激勵。

  將兩種經(jīng)過(guò)增益調制后的信號分別通過(guò)由清濁度信息調制的帶通濾波器相加,即得到合成激勵信號。合成激勵信號激勵合成濾波器即得到合成語(yǔ)音。

  數字對講機語(yǔ)音編碼算法的硬件平臺實(shí)現

  ●對代碼進(jìn)行優(yōu)化的必要性

  程序中運算量最大的部分往往是循環(huán),因此對循環(huán)的優(yōu)化效果直接決定整個(gè)程序的運算量。如果一條指令需要前一條指令的執行結果,而這時(shí)前一條指令的結果還未達到有效狀態(tài),那么處理器就會(huì )等待??梢酝ㄟ^(guò)調整指令順序的方法來(lái)避免流水線(xiàn)等待。另一方面,在函數調用時(shí)以及循環(huán)體內部這兩個(gè)最耗費流水線(xiàn)資源的地方存在大量跳轉語(yǔ)句,而跳轉時(shí)會(huì )清空處理器的水線(xiàn),所以在一個(gè)循環(huán)體內部,應盡可能少出現或者不出現跳轉指令。

  ●對代碼進(jìn)行優(yōu)化的方法

  首先是 C 語(yǔ)言級別上的優(yōu)化,主要的優(yōu)化方法有:

  1、循環(huán)的調整。對循環(huán)的調整主要是進(jìn)行循環(huán)的展開(kāi)。由于采用循環(huán)則意味著(zhù)判斷和跳轉,從而耗費大量指令周期,直接采用順序結構雖然使代碼量有所增加,但指令周期數明顯減少。

  2、一些函數接口的調整。為了節省寄存器資源,而需要減少傳遞的參數個(gè)數??梢灾苯影岩恍┏S玫膮倒潭ㄔ诒徽{函數中,既節省運算量又節省了寄存器。對匯編代碼的優(yōu)化則牽涉到 ARM 匯編本身的細節:

 ?、倨谥噶?,雖然指令數增加了,但總的機器周期數可以減少。

 ?、诶弥噶铐樞虻恼{整來(lái)解決流水線(xiàn)互鎖的問(wèn)題。這種方法在循環(huán)的優(yōu)化中大量應用。

 ?、鄢浞掷猛ㄓ眉拇嫫?,盡量避免內存讀寫(xiě),從而能夠提高程序的運行速度。

 ?、芾?ARM 提供的條件執行機制消除部分條件跳轉指令。

  2

  數字對講機碼率控制算法

  圖 1、2、3 分別是“foreman”,“mobile”,“news”各序列使用本文算法和JVT-G012所產(chǎn)生的比特率的比較圖,從各圖中可以看出本文算法在碼流輸出算法更加的平穩。

  針對數字對講機的應用環(huán)境,改進(jìn)的低復雜度的 2.4 k 低速率語(yǔ)音編碼算法,對算法進(jìn)行了簡(jiǎn)化,并在 ARM 嵌入式平臺上對目標代碼的實(shí)現進(jìn)行優(yōu)化。通過(guò)采用低復雜度的正弦波模型以及幀間內插等方法降低了算法復雜度,又通過(guò)分子幀的參數提取方式以及分子幀的激勵信號合成保證了語(yǔ)音質(zhì)量;另一方面通過(guò)對程序代碼的優(yōu)化,使得算法能夠在 ARM 嵌入式平臺上達到實(shí)用化。通過(guò)試驗證明,經(jīng)過(guò)優(yōu)化后的客觀(guān)語(yǔ)音測試結果略微有變化,而主觀(guān)聽(tīng)音效果幾乎未發(fā)生改變,但算法的復雜度得到了極大的下降。