IP電話系統語音抖動問題的分析

2021-06-04 17:44:24 字數 4141 閱讀 2466

摘 要:隨著ip**的廣泛應用,ip**的語音質量越來越受到人們的關注,成為制約其廣泛應用的乙個瓶頸,尤其是語音抖動現象的存在,更是制約了ip**在人們生活、工作中的應用。 影響ip**質量主要有3個因素:抖動、分組延時、分組丟失。本文對ip**中的語音抖動成因進行了詳細的分析,並提出了應用語音分組延時智慧型緩衝平滑的方法消除語音抖動,給出了自己特有的緩衝設計方案、設計原則,並進行了簡單的**實驗分析以及結果驗證,提高了ip**話音質量。

**網、廣播電視網、資料網三網合一是21世紀通訊領域發展的必然趨勢。人們已逐漸認識到,無論是傳統的語音通訊還是現代資料通訊,最後都有可能走到統一的ip協議上來。ip**中的語音質量是制約其廣泛應用的乙個瓶頸,尤其是語音抖動現象的存在,更制約了ip**在人們生活、工作中的應用,本文對ip**中的語音抖動問題進行了分析,並初步提出了乙個分析解決方案。

1通話過程中語音質量分析

1.1ip**中出現的語音質量問題

在ip網路上傳送話音,影響傳送質量的因素主要有分組延時、分組丟失和抖動。

分組延時的定義是以秒為單位的由主機a在鏈路上開始向主機b傳送1 b資訊,到主機b接收到該資訊之間的時間差。換句話說,分組延時直接對應於從第乙個使用者開始談話到第二個使用者(聽者)聽到第乙個音節之間的時間差。

分組丟失是指從主機a傳送的,但不能到達主機b(目的地)的分組數占所傳送的所有分組數的百分比。網路上分組丟失的百分比可能明顯地影響ip網路上話音的質量。語音本是連續的訊號,在將分組資料從主機a傳送到主機b的過程中,由於分組傳輸路徑 不同,每個路徑的長短和資料流量各不相同,造成了分組到達接受端的時間有所不同,這樣在接受端回放的語音變得時斷時連,這種現象稱為話音抖動。

1.2解決技術分析

為解決ip**中語音的質量問題,主要用以下7種技術進行提高和改善:語音壓縮技術、回音消除技術、靜噪抑制技術、話音抖動處理技術、話音優先技術、包分割技術和前向糾錯技術。這裡主要介紹語音抖動處理技術。

2解決語音抖動問題的方案

2.1抖動的處理思路

internet的實質是分組交換網路,ip分組是儲存、**的最小單元。因此,同一信源的分組可能經過不同的路由傳輸到接收端,分組到達接收端的時延也不同。這種分組傳輸時延的不同被稱為時延抖動。時延抖動的存在引起收端解碼後的語音頻號出現間斷,造成語音失真,所以必須進行時延抖動的吸收補償。與分組網傳輸資料相比,電路交換則是由於預先分配了通道資源,通訊子網以流的方式對待資料,即各幀資料從a端到達b端的時間相等,這樣也就不存在抖動的問題。在設計ip**中的語音抖動處理方案時,可以做如下考慮:採用智慧型緩衝平滑的方法,即讓接收端對抖動程度做出**,並把接收到的信元存放在緩衝器中,採用適當長度的抗抖動快取,吸收延時後再輸出。

如圖2所示,在語音的實際傳輸過程中,語音從發端出來,經過一系列網路裝置,到達收端時,接收端接收到發端的語音後,其緩衝池自動對語音的抖動程度作出智慧型判斷,然後根 據其抖動程度,附加乙個語音長度,吸收延時。但實際上延時抖動是隨機的,從而附加抖動 吸收時延很難準確地確定,如選擇不當將產生「欠載」或「過載」現象。一種較為有效的解決辦法是以還原語音突發中的總間斷長度為基礎來決定抖動吸收延時的大小。而且一般認為,當總間斷長度在3 ms以下時,即使不進行抖動吸收控制也能獲得較好的再生語音。如何根據 接收到的語音包來自適應地完成抗抖動快取大小的選擇,是抗抖動工作中最重要的一環(這是ip**實時應用中必不可少的一步,目前只是在模型中設定了乙個固定長度的buffer)。

2.2語音抖動處理的設計

在前面的思路分析中,採用語音智慧型緩衝平滑的方法。這樣在具體的設計方案中,對緩衝的處理是關鍵。

2.2.1設計緩衝區佇列

傳統的在單緩衝區方式下,採集語音資料時,緩衝區採集滿到系統把這塊資料成功發 送出去的這段時間內,沒有新的緩衝區提交給**語音卡,所以這段時間內的語音資訊就丟失了,回放語音資料時,在從網路上接收到一塊語音資料到**語音卡把這塊資料回放完畢的這段時間內,從網路上來的資料也可能因沒有空的緩衝區而丟失。

因此,可以設計4個緩衝區佇列來保證語音的連續性,防止語音抖動:錄音緩衝區佇列、傳送緩衝區佇列、接受緩衝區佇列和放音緩衝區佇列工作原理簡圖如圖3所示。當一塊緩 沖區滿拿去傳送時,馬上從緩衝區佇列中取一塊空的緩衝區給**語音卡繼續進行錄音,放音時,當從網路上接收到一塊語音資料拿去回放時,馬上從緩衝區佇列中取一塊空的緩衝區準備接收下一塊網路上傳 送來的資料。

2.2.2緩衝區大小的設計原則

除了增加緩衝區數目來解決問題外,系統還通過適當增加緩衝區大小來進行保證,當一方閘道器傳送乙個資料塊時,接收方閘道器用一定大小的緩衝區接收資料,只有當整個資料塊都收到後,才放入語音卡放音緩衝區給語音卡放音。對每乙個資料塊來說,在網路上的傳輸是不連續的,但對整個資料塊來說,他的傳輸就是相對連續的。緩衝區越大,語音的連續性越好。同時,增加緩衝區的大小後也帶來了不利的因素,他增加了傳輸延遲。所以在實際應用中,必須在減少延遲和增加緩衝區大小之間取得一定的平衡,一般來說,取1 kb為緩衝區的容量。

現有的快取空間分配機制大都採用靜態方法,由排隊論的基本結論可知,絕大多數情況下 顧客等待空間均處於非充滿狀態,但由於該空間中的未使用部分是「已分配」了的資源,故絕大 多數情況下緩衝器均處在非充分利用的狀態;此外,就資源利用而言,理想的快取空間分配方 法應是動態的按需分配,這既能大大提高緩衝器的利用率,又能很好地適應各業務流到達特性的動態變化,從而確保各業務流的語音質量,尤其是語音抖動要求。基於「動態按需分配」的思想,本文提出了一種快取空間的動態分配方法:基於「附加塊」的按需分配機制(abb a)。假設網路結點在連線建立階段為一使用者連線分配的(基本)快取容量為k,稱接納到達分組進入的快取空間為該連線的「工作塊」;在資料傳送階段,一旦因工作塊已被佔滿而使 新到達的分組不能進入系統,便立即申請附加的快取空間,如果可以,管理者為其分配一片容量仍為k的附加快取空間,稱其為該連線的「附加塊」;隨後,當前和以後到達的分組便只進入其附加塊而不再進入原先的工作塊需要指出,一旦申請成功,附加塊就變成了新的工作塊,而原工作塊變為只接受系統服務而不再接納到達分組的「過渡塊」,此後,由於後續到達分組不再進入該過渡塊,故他最終會被清空而釋放,然後系統才為新的工作塊服務。快取塊的狀態有「工作」、「過渡」和「釋放」3種。

2.3實驗分析

利用系統**的思想建立乙個數學模型,在此基礎上對ip**網路的語音效能進行模擬,使用計算機網路**軟體,採用物件化、層次化的手段,進行程式設計,如圖4所示。

在具體的建立**模型過程中,將網路部件定義成物件,每個有一套可配置的屬性。程式設計環境應用c風格的指令碼,同時使用者可以使用圖形使用者介面gui來構建乙個網路或程序模型 。節點代表在**網路拓撲中的網路節點或主機,用非常類似於iso/osi層模型的方 式來組 織節點。程序是節點模型中重要的模組,乙個程序對網路協議或乙個應用的行為進行模擬,可以用乙個有限狀態自動機(fsa)來代表乙個程序。模擬乙個資訊源,使其隨機處於「0」和「1」兩個狀態,這樣就可以**實現語音抖動的效果,他負責在一定的時間內,以特定的速 率傳送資料報,以及接收由其他的使用者應用傳送的資料。當目的位址設定後,使用者應用得到了其他的屬性,諸如平均速率、使用者應用傳送的每乙個資料報的大小、**開始時間、傳送週期持續時間,並在初始狀態等待傳輸的開始。

接下來要實現的是守護程序,守護程序負責處理端系統的語音資料報,記錄了在語音預約中 的時延,可以測量出語音頻息被發出和被接收之間的時延和抖動。在應用中,在節點模組中加入函式process(),用來在ip分組流中識別語音頻息,對每乙個進入的path訊息process()在ip的intserv狀態表中檢查會話是否已經存在。加入處理函式後,一旦訊號被傳送,ip程序就會將訊息儲存在臨時快取,並由到達狀態變遷到空閒狀態(以便他可以處理其他的到達的包)。當輸出介面完成了qos通道的建立,process()就會傳送乙個響應訊號,應答ip程序。

運用上面的方法,對傳送ip語音業務進行了**。**配置如圖5所示,兩個客戶在同一條鏈路上傳送語音業務,假定客戶產生的業務相似。使用的語音資料編碼平均速率為22 kb/s,峰值速率為32 kb/s的pcm編碼。

對ip語音抖動進行**的結果如圖6所示。

通過對圖6的分析可以明顯發現:嵌入設計方案的**結果的語音抖動現象明顯比未嵌入設計方案的語音抖動要減輕得多。由此可以認為,這種設計方案切實可行,達到了設計目標。

參考文獻

[1]朱民雄.計算機語音技術[m].北京:北京航空航天大學出版社,1 991.

[2]王啟浩.ip**系統及其應用[j].電子技術,1999,(4). 

[3]葉海元.ip**網路連續處理技術[j].現代通訊,1999,(10 ).

[4]趙慧玲.電信網路技術的方案**[j].資料通訊,1999,(3).

[5]林世洪,王洪,郝建英.ip網路下實時語音應用中的緩衝策略[j] .鐵路計算機應用,2002,(1).

[6]崔建平.ip**語音質量的測試[j].電信技術,2000,(3).

Tips 避免cache中的抖動問題

直接對映快取記憶體中的衝突不命中 confict miss 衝突不命中在程式中很常見,會導致令人疑惑的問題。當訪問大小為2的冪的陣列時,直接對映高速緩衝中通常會發生衝突不命中。考慮以下計算兩個向量點積的函式 float dotdrop float x 8 float y 8 return sum 假...

firefox下有滾動條時頁面抖動問題的解決方法

解決方法是 css裡加 複製 代程式設計客棧碼如下 body即可 其實上面這個問題並不是很重要,乙個比較嚴重的情況是 當在頁面中有 區域性的部分用了滾動條 在頁面上再使用tooltip的時候就會出現區域性抖動程式設計客棧 如下圖 這算是個很嚴重的問題了 偶然發現竟然用上述方法一樣可以解決 本文標題 ...

推薦系統的冷啟動問題

使用者冷啟動 2 引導使用者填寫興趣 外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img d6gpgxgw 1614269253067 img recommend5.png 4 新老使用者推薦策略的差異 舉例 性別與電視劇集的關係 外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直...