• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    IP電話系統語音抖動問題的分析(組圖)

    發布: 2007-6-23 21:39 | 作者:   | 來源:   | 查看: 24次 | 進入軟件測試論壇討論

    領測軟件測試網

       
      摘 要:隨著IP電話的廣泛應用,IP電話的語音質量越來越受到人們的關注,成為制約其廣泛應用的一個瓶頸,尤其是語音抖動現象的存在,更是制約了IP電話在人們生活、工作中的應用。 影響IP電話質量主要有3個因素:抖動、分組延時、分組丟失。

    本文對IP電話中的語音抖動成因進行了詳細的分析,并提出了應用語音分組延時智能緩沖平滑的方法消除語音抖動,給出了自己特有的緩沖設計方案、設計原則,并進行了簡單的仿真實驗分析以及結果驗證,提高了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種技術進行提高和改善:語音壓縮技術、回音消除技術、靜噪抑制技術、話音抖動處理技術、話音優先技術、包分割技術和前向糾錯技術。這里主要介紹語音抖動處理技術。
      
      在語音抖動處理中主要采用的是抖動緩沖技術,即在接收方設定一個緩沖池,話音包到達時首先進入緩沖池暫存,系統以穩定平緩的速率將話音包從緩沖池中取出、解壓、然后播放給受話者。這種緩沖技術可以在一定限度內有效處理話音抖動,提高音質。使用抖動緩沖技術的原理如圖1所示:為了確定呼話音包的正確時間間隔,在RTP的包頭上提供了一個時間戳(Time Stamp),用于記錄這個呼包的產生時間。在發送端,IP網關產生的呼包①的A,B的時間間隔和B,C的時間間隔均為20 ms;經過IP網絡的傳輸后,在接收端收到的呼包②的B,C的時間間隔變成了30 ms;為了恢復原有的時間間隔,接收端呼網關根據每個呼包的RTP時間戳來確定呼包③的正確時間間隔,把他們恢復成原來的20 ms向下一級設備發送。由于消抖動緩存池不是在接收到每一個話音包的情況下就立即轉發,因此還要確定適當的轉發延時的大小。如果延時太長,就會使系統整體的延時變得很長;如果延時太短,IP話音包 在允許的時間范圍內沒有到達,話音仍會出現抖動現象,緩存池的作用不很明顯。取兩者平衡點的結果通常是使緩存器的網絡延時保持在40 ms左右。
      
     IP電話系統語音抖動問題的分析(組圖)(圖一)

      2解決語音抖動問題的方案
      
      2.1抖動的處理思路
      
      Internet的實質是分組交換網絡,IP分組是存儲、轉發的最小單元。因此,同一信源的分組可能經過不同的路由傳輸到接收端,分組到達接收端的時延也不同。這種分組傳輸時延的不同被稱為時延抖動。時延抖動的存在引起收端解碼后的語音信號出現間斷,造成語音失真,所以必須進行時延抖動的吸收補償。與分組網傳輸數據相比,電路交換則是由于預先分配了信道資源,通信子網以流的方式對待數據,即各幀數據從A端到達B端的時間相等,這樣也就不存在抖動的問題。在設計IP電話中的語音抖動處理方案時,可以做如下考慮:采用智能緩沖平滑的方法,即讓接收端對抖動程度做出預測,并把接收到的信元存放在緩沖器中,采用適當長度的抗抖動緩存,吸收延時后再輸出。
      
     IP電話系統語音抖動問題的分析(組圖)(圖二)

      如圖2所示,在語音的實際傳輸過程中,語音從發端出來,經過一系列網絡設備,到達收端時,接收端接收到發端的語音后,其緩沖池自動對語音的抖動程度作出智能判斷,然后根 據其抖動程度,附加一個語音長度,吸收延時。但實際上延時抖動是隨機的,從而附加抖動 吸收時延很難準確地確定,如選擇不當將產生“欠載”或“過載”現象。一種較為有效的解決辦法是以還原語音突發中的總間斷長度為基礎來決定抖動吸收延時的大小。而且一般認為,當總間斷長度在3 ms以下時,即使不進行抖動吸收控制也能獲得較好的再生語音。如何根據 接收到的語音包來自適應地完成抗抖動緩存大小的選擇,是抗抖動工作中最重要的一環(這是IP電話實時應用中必不可少的一步,目前只是在模型中設定了一個固定長度的Buffer)。
      
      2.2語音抖動處理的設計
      
      在前面的思路分析中,采用語音智能緩沖平滑的方法。這樣在具體的設計方案中,對緩沖的處理是關鍵。
      
      2.2.1設計緩沖區隊列
      
      傳統的在單緩沖區方式下,采集語音數據時,緩沖區采集滿到系統把這塊數據成功發 送出去的這段時間內,沒有新的緩沖區提交給電話語音卡,所以這段時間內的語音信息就丟失了,回放語音數據時,在從網絡上接收到一塊語音數據到電話語音卡把這塊數據回放完畢的這段時間內,從網絡上來的數據也可能因沒有空的緩沖區而丟失。
      
      因此,可以設計4個緩沖區隊列來保證語音的連續性,防止語音抖動:錄音緩沖區隊列、發送緩沖區隊列、接受緩沖區隊列和放音緩沖區隊列工作原理簡圖如圖3所示。當一塊緩 沖區滿拿去發送時,馬上從緩沖區隊列中取一塊空的緩沖區給電話語音卡繼續進行錄音,放音時,當從網絡上接收到一塊語音數據拿去回放時,馬上從緩沖區隊列中取一塊空的緩沖區準備接收下一塊網絡上傳 送來的數據。
      
      2.2.2緩沖區大小的設計原則
      
      除了增加緩沖區數目來解決問題外,系統還通過適當增加緩沖區大小來進行保證,當一方網關發送一個數據塊時,接收方網關用一定大小的緩沖區接收數據,只有當整個數據塊都收到后,才放入語音卡放音緩沖區給語音卡放音。對每一個數據塊來說,在網絡上的傳輸是不連續的,但對整個數據塊來說,他的傳輸就是相對連續的。緩沖區越大,語音的連續性越好。同時,增加緩沖區的大小后也帶來了不利的因素,他增加了傳輸延遲。所以在實際應用中,必須在減少延遲和增加緩沖區大小之間取得一定的平衡,一般來說,取1 kB為緩沖區的容量。
      
      現有的緩存空間分配機制大都采用靜態方法,由排隊論的基本結論可知,絕大多數情況下 顧客等待空間均處于非充滿狀態,但由于該空間中的未使用部分是“已分配”了的資源,故絕大 多數情況下緩沖器均處在非充分利用的狀態;此外,就資源利用而言,理想的緩存空間分配方 法應是動態的按需分配,這既能大大提高緩沖器的利用率,又能很好地適應各業務流到達特性的動態變化,從而確保各業務流的語音質量,尤其是語音抖動要求;凇皠討B按需分配”的思想,本文提出了一種緩存空間的動態分配方法:基于“附加塊”的按需分配機制(ABB A)。假設網絡結點在連接建立階段為一用戶連接分配的(基本)緩存容量為K,稱接納到達分組進入的緩存空間為該連接的“工作塊”;在數據傳送階段,一旦因工作塊已被占滿而使 新到達的分組不能進入系統,便立即申請附加的緩存空間,如果可以,管理者為其分配一片容量仍為K的附加緩存空間,稱其為該連接的“附加塊”;隨后,當前和以后到達的分組便只進入其附加塊而不再進入原先的工作塊需要指出,一旦申請成功,附加塊就變成了新的工作塊,而原工作塊變為只接受系統服務而不再接納到達分組的“過渡塊”,此后,由于后續到達分組不再進入該過渡塊,故他最終會被清空而釋放,然后系統才為新的工作塊服務。緩存塊的狀態有“工作”、“過渡”和“釋放”3種。
      
      2.3實驗分析
      
      利用系統仿真的思想建立一個數學模型,在此基礎上對IP電話網絡的語音性能進行模擬,使用計算機網絡仿真軟件,采用對象化、層次化的手段,進行程序設計,如圖4所示。
      
     IP電話系統語音抖動問題的分析(組圖)(圖三)
       IP電話系統語音抖動問題的分析(組圖)(圖四)

      在具體的建立仿真模型過程中,將網絡部件定義成對象,每個有一套可配置的屬性。編程環境應用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電話系統語音抖動問題的分析(組圖)(圖五)

      對IP語音抖動進行仿真的結果如圖6所示。
      
     IP電話系統語音抖動問題的分析(組圖)(圖六)

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

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>