互聯(lián)網(wǎng)實(shí)時(shí)語音通信技術(shù)的研究
佚名
()Internet在全世界范圍內(nèi)的快速發(fā)展和語音信號(hào)處理技術(shù)的進(jìn)步,促進(jìn)了voP(IP網(wǎng)絡(luò)下的語音技術(shù))業(yè)務(wù)的興起。由于VoIP務(wù)以傳統(tǒng)的Iternet為基本平臺(tái),具有不可比擬的價(jià)格優(yōu)勢(shì),因此發(fā)展前景十分廣闊。
我門通過設(shè)計(jì)的兩臺(tái)計(jì)算機(jī)間的語音通信軟件,實(shí)現(xiàn)了全雙上語音通信信。PC-PC的語音傳輸,需要麥克風(fēng)、音響。聲卡等設(shè)備就可以通過IP網(wǎng)實(shí)現(xiàn)這種應(yīng)用。這種VoIP方案的顯著優(yōu)點(diǎn)就是可以支持多媒體通信,主要適用于計(jì)算機(jī)用戶。其原理是利用電話軟件把送入話筒的聲音進(jìn)行編碼壓縮、分組,變成IP數(shù)據(jù)報(bào),經(jīng)Intemet網(wǎng)絡(luò)傳送;接收端利用軟件進(jìn)行解碼,還原成原來的信號(hào)后送到揚(yáng)聲器中。由于軟件所需要的設(shè)備較為簡(jiǎn)單,尤其是隨著計(jì)算機(jī)的日益普及、各種硬件設(shè)備不斷發(fā)展;局域網(wǎng)不斷增加;通信信道容量不斷增加;計(jì)算機(jī)CPU處理能力不斷增強(qiáng);具有人工智能的可即插即用軟件代碼技術(shù)的出現(xiàn)等等,這些郡為VoIP的發(fā)展提供了強(qiáng)有力的技術(shù)支持。
在以上處理過程中,要用到一系列的網(wǎng)絡(luò)接口以及緩沖區(qū)來處理數(shù)據(jù),但是當(dāng)前還沒有一種固定的和通用的策略能夠完全解決VolP應(yīng)用中的QoS問題。本文就存在的問題進(jìn)行了分析,并給出了一組解決問題的策略。
2.問題的提出
(1)時(shí)延、抖動(dòng)和丟包三者之間的關(guān)系
從網(wǎng)絡(luò)的角度來看,時(shí)廷、抖動(dòng)和丟包三省同時(shí)制約于網(wǎng)絡(luò)的運(yùn)行狀況,當(dāng)網(wǎng)絡(luò)的服務(wù)質(zhì)量下降時(shí),三者均迅速惡化,從終端處理的角度來看,時(shí)延。抖動(dòng)和丟包三者之間又相互影響,比如:在終端處理中,為/減小抖動(dòng)帶來的影響,就要采用抗抖動(dòng)緩沖區(qū),這就引入了額外的時(shí)延;為了減小遲到的語音包數(shù)量,可以延遲語音的回放,但也會(huì)引入額外的時(shí)延;為了采用丟包恢復(fù)技術(shù),往往需要利用后續(xù)幀信息,這樣也就引入了一定的時(shí)延;如果抖動(dòng)效應(yīng)加強(qiáng),勢(shì)必會(huì)引起遲到的語音包數(shù)量增多。為了解決好話音質(zhì)量出問題,就必須在這三者當(dāng)中效蝦權(quán)衡。
(2)緩沖區(qū)機(jī)制對(duì)語音實(shí)時(shí)傳輸性能的影響
緩沖區(qū)機(jī)制對(duì)語音實(shí)時(shí)傳輸性能的影響也就是對(duì)語音從采樣到回放這一時(shí)間延遲的影響,特別是當(dāng)為了滿足內(nèi)存分配的需求而移動(dòng)全局內(nèi)存塊和拋棄可拋棄的內(nèi)存塊時(shí),消耗的系統(tǒng)時(shí)間將對(duì)一些實(shí)時(shí)性操作產(chǎn)生嚴(yán)重影響,在語音實(shí)時(shí)通信中,用擴(kuò)大內(nèi)存的有效的頁面技術(shù)和磁盤交換技術(shù)將不再適用,因?yàn)檫@些語音數(shù)據(jù)塊不能放在真正的主存中以滿足實(shí)時(shí)性要求,需要通過設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和信息列表實(shí)現(xiàn)優(yōu)化的緩沖機(jī)制。
同時(shí)緩沖機(jī)制對(duì)語音的連續(xù)性也有很大影響,如果定制的錄音緩沖區(qū)過小,就會(huì)使錄制的語音幀過小,從而使語音蠻得不連貫。對(duì)內(nèi)存資源的過度占用將導(dǎo)致系統(tǒng)資源的不足。因此需要一種既高效利用內(nèi)存,又盡量減少語音傳輸時(shí)延的緩沖區(qū)管理機(jī)制。
(3)網(wǎng)絡(luò)分組信息的丟失
分組丟失對(duì)語音質(zhì)量有非常大的不良影響。當(dāng)語音經(jīng)過—個(gè)使用分組丟失作為手段來管理數(shù)據(jù)網(wǎng)絡(luò)阻塞的略由器的,這是很麻煩的。對(duì)于TCP的數(shù)據(jù),端站簡(jiǎn)單地重新發(fā)送丟失的數(shù)據(jù)并降低它們的通信速率,緩解阻塞,保證數(shù)據(jù)正確性,而對(duì)于UDP協(xié)議的語音,沒有時(shí)間進(jìn)行重新發(fā)送,所以VolP系統(tǒng)只能適應(yīng)這種丟失。除了由于中間網(wǎng)絡(luò)部件引起的分組丟失外,語音網(wǎng)絡(luò)中由于超出抖動(dòng)緩沖區(qū)的可忍耐的到達(dá)延時(shí)也引起分組丟失。
在分組被丟失的情況下,如果語音分組丟失是隨機(jī)的、不相關(guān)的,當(dāng)前的語音編碼器的聲碼器在分組丟失率小于10%的情況下,簡(jiǎn)單的辦法是在丟失包的間隔處插入最后接收到的包,仍能恢復(fù)出質(zhì)量可接受的語音信號(hào)。當(dāng)然,也可以設(shè)計(jì)出優(yōu)化的緩沖區(qū),從而前向糾錯(cuò)以減少對(duì)語音質(zhì)量的影響。
3.網(wǎng)絡(luò)協(xié)議的選擇策略
實(shí)時(shí)語音的特點(diǎn):實(shí)時(shí)性要求高,且允許語音數(shù)據(jù)在一定的范圍內(nèi)出錯(cuò);IP語音的特點(diǎn):由于IPV4不能夠提供服務(wù)質(zhì)量保證,所以丟包率和抖動(dòng)是不可預(yù)知的,并且把它們帶到了上層協(xié)議——IP/UDP中。TCP的特點(diǎn):能提供面向連接的流傳輸,可靠性很高,但是會(huì)占用網(wǎng)絡(luò)較多的資源;UDP的特點(diǎn):能提供無連接的數(shù)據(jù)包傳輸,不可靠,對(duì)網(wǎng)絡(luò)的資源占用較少。
由于TCP在傳輸數(shù)據(jù)前建立的是虛鏈路,它不能保證各個(gè)語音包在相等的時(shí)間內(nèi)到達(dá),即無法避免話音抖動(dòng)現(xiàn)象。而且當(dāng)網(wǎng)絡(luò)狀況不佳時(shí),也無法避免丟失語音包,即使重傳也有可能無法滿足語音的實(shí)坷性。更有甚者,它的窗口技術(shù)也會(huì)造成較大的附加抖動(dòng)。
至于UDP,則有可能出現(xiàn)語音包的丟失、重復(fù)和失序(好在語音通信允許出錯(cuò)),話音抖動(dòng)現(xiàn)象也無法避(比TCP好),效率較TCP要高。但需要在應(yīng)用層增添排序、抗抖、抗重復(fù)和抗丟包等功能。所以,對(duì)于網(wǎng)絡(luò)時(shí)延較大的場(chǎng)合,一般選用UDP來傳輸語音包;而在網(wǎng)絡(luò)負(fù)載較小的場(chǎng)合,TCP更為方便。如圖分別為TCPAJDP編程時(shí)序圖。
隨著IPv6的成熟應(yīng)用,不僅用于解決In-ternet網(wǎng)絡(luò)地址的危機(jī),而且在解決Internet網(wǎng)絡(luò)性能方面也有很大的突破;在4ESV中提供了對(duì)QoS的支持,在IPv6中定義了兩個(gè)參數(shù);業(yè)務(wù)類別域和數(shù)據(jù)流標(biāo)志位。業(yè)務(wù)類別域?qū)P包的優(yōu)先級(jí)分為16級(jí),優(yōu)先級(jí)分為兩類:0-7用于在網(wǎng)絡(luò)發(fā)生擁塞時(shí)通過減少數(shù)據(jù)包的發(fā)送速度來實(shí)現(xiàn)擁塞控制的業(yè)務(wù);8-15用于一些實(shí)時(shí)性很強(qiáng)的業(yè)務(wù),它在網(wǎng)絡(luò)擁塞時(shí)不作任何減少流量的控制。對(duì)于那些需要特殊QoS的業(yè)務(wù),可在IP數(shù)據(jù)包中設(shè)置相應(yīng)的優(yōu)先級(jí),路由器根據(jù)IP包的優(yōu)先級(jí)來處理數(shù)據(jù)。因此,voIP將得到更好的應(yīng)用。
4.緩沖區(qū)的設(shè)計(jì)策略
(1)發(fā)送端緩沖區(qū)的設(shè)計(jì)
在語音發(fā)送端,語音采集時(shí)必須要申請(qǐng)緩沖區(qū),而且這種緩沖區(qū)既用作語音信號(hào)的輸入,又用作語音幀的輸出。如果采用單一緩沖區(qū)機(jī)制,將有可能出現(xiàn)數(shù)據(jù)覆蓋問題。數(shù)據(jù)發(fā)送操作中也存在此問題,實(shí)際應(yīng)用必須通過實(shí)驗(yàn)確定緩沖區(qū)的數(shù)目,既保證語音數(shù)據(jù)庫不丟失,又不會(huì)多用內(nèi)存。
決定發(fā)送緩沖區(qū)的數(shù)目的因素有兩個(gè),一個(gè)是編碼緩沖區(qū)的數(shù)目;另一個(gè)是一個(gè)數(shù)據(jù)分組的發(fā)送的最長時(shí)間與一個(gè)數(shù)據(jù)分組的最短打包時(shí)間的比值,由于實(shí)際應(yīng)用中,實(shí)時(shí)語音的傳送一般采用非連接的網(wǎng)絡(luò)傳輸協(xié)議,所以發(fā)送緩沖區(qū)的數(shù)目可以小于或者等于編碼緩沖區(qū)的數(shù)目。
決定編碼緩沖區(qū)的數(shù)目的因素有兩個(gè),一個(gè)是錄音緩沖區(qū)的數(shù)據(jù)目;另一個(gè)是一個(gè)數(shù)據(jù)分組的最長打包時(shí)間與一個(gè)數(shù)據(jù)分組的最短編碼時(shí)間的比值,如果這個(gè)比值小于1,則對(duì)編碼緩沖區(qū)的數(shù)目沒有特殊要求,如果大于1,則要求有盡可能大的編碼緩沖區(qū)數(shù)目,但一般不要超過錄音緩沖區(qū)的數(shù)目,這是由語音數(shù)據(jù)的實(shí)時(shí)性和連續(xù)性所決定的。
(2)接收端緩沖區(qū)數(shù)目
在語音接收端必須有一組接收緩沖區(qū),理由有三:
①IP網(wǎng)絡(luò)阻塞狀況不穩(wěn)定,數(shù)據(jù)到達(dá)有時(shí)十分集中,而接收數(shù)據(jù)又會(huì)花費(fèi)一定的時(shí)間,太少的緩沖區(qū)會(huì)造成數(shù)據(jù)的丟失;
②由于IP網(wǎng)絡(luò)只提供一種盡力型服務(wù),不可避免地造成分組丟失和亂序,如果不加以處理,必然會(huì)影響實(shí)時(shí)語音的效果。而處理這些情況都需要存儲(chǔ)空間,表現(xiàn)為一定數(shù)目的緩沖區(qū);
③必須對(duì)接收到的數(shù)據(jù)進(jìn)行后續(xù)的處理,而這些處理要產(chǎn)生一定的時(shí)延,如果只有一個(gè)接收緩沖區(qū),有可能接收到的數(shù)據(jù)來不及得到處理就被覆蓋了。另外,與語音發(fā)送方相對(duì)應(yīng),在語音接收方需要解碼緩沖區(qū)和回放緩沖區(qū)。
由于網(wǎng)絡(luò)延遲抖動(dòng)的存在和語音應(yīng)用天然的等時(shí)性要求,必須對(duì)語音回放設(shè)定一個(gè)回放延遲,即按照一定的時(shí)間間隔回放語音幀,這就需要有一定數(shù)目的緩沖區(qū)來存放等待回放的語音幀。
(3)緩沖區(qū)的大小
錄音時(shí),緩沖區(qū)大小的選擇也是一個(gè)關(guān)鍵性的問題。因?yàn)槿绻彌_區(qū)過小,生成的語音幀也就會(huì)過小,語音的連續(xù)性遭到破壞,同時(shí)數(shù)據(jù)分組的有效數(shù)據(jù)率也會(huì)過小,相對(duì)增加了網(wǎng)絡(luò)負(fù)擔(dān)。如果緩沖區(qū)過大,會(huì)在語音錄制時(shí)和其它處理時(shí)造成比較大的處理時(shí)延,還有可能造成發(fā)送的數(shù)據(jù)分組過大而導(dǎo)致某協(xié)議層的數(shù)據(jù)分割與合并,形成很大的傳輸時(shí)延。所以錄音緩沖區(qū)要選擇合適的大小,必須在語音的連續(xù)性和時(shí)延之間進(jìn)行平衡。
編碼緩沖區(qū)的大小取決于錄音緩沖區(qū)的大小和所采用的編碼算法。實(shí)際應(yīng)用中有可能采用不同的編碼算法,以適應(yīng)多變的網(wǎng)絡(luò)傳輸狀況。緩沖區(qū)的大小要采用所需的最大值。
計(jì)算方法如下:針對(duì)一個(gè)語音包,包長度=RTP頭+UDP頭+IP頭+Ethemet頭+有效載荷。
其中RTP頭=96bit (12byte);UDP頭=64bit (8byte);IP頭=160bit(20byte);Ethernet頭=208bit(26byte)。所以,包長度=(96+64+160+208)十有效載荷=528bit+有效載荷。有效載荷=打包周期(秒)x每秒的比特?cái)?shù)帶寬=包長度x每秒包數(shù)=(528/打包周期)+每秒比特?cái)?shù)因此,要根據(jù)不同的語音編解碼技術(shù),設(shè)計(jì)不同的緩沖區(qū): G.711,每秒比特?cái)?shù)是64k G.729,每秒比特?cái)?shù)是8k G.723,兩種,一種是5.3k,另一種是6.3k G.711, 20ms打包,帶寬為(528/20+64)kbit/s G.711,30ms打包,帶寬為(528/30+64)kbit/s G.729,20ms打包,帶寬為(528/20+8)kbit/s G.723, 5.3k, 30ms打包,帶寬為(528/30+5.3)kbit/s
(4)緩沖區(qū)的申請(qǐng)和釋放
語音通信中對(duì)數(shù)據(jù)塊的使用是一次性的。在各個(gè)語音數(shù)據(jù)模塊中,一個(gè)數(shù)據(jù)塊只會(huì)在某個(gè)操作中作短暫緩存,處理之后,該數(shù)據(jù)塊對(duì)操作不再有任何意義。我們根據(jù)實(shí)時(shí)語音數(shù)據(jù)的需要,充分利用內(nèi)存硬件容量優(yōu)勢(shì),編制靜態(tài)數(shù)據(jù)鏈表,循環(huán)使用緩沖區(qū),即在應(yīng)用開始時(shí)申請(qǐng)所有緩沖區(qū),將這些緩沖區(qū)排成循環(huán)隊(duì)列,用完一個(gè)緩沖區(qū)就將其排到隊(duì)尾等待調(diào)用,等到整個(gè)應(yīng)用結(jié)束時(shí),一次性釋放所有緩沖區(qū)。
5.結(jié)束語
隨著技術(shù)和標(biāo)準(zhǔn)的不斷成熟,伴隨著“三網(wǎng)合一”的大潮,VoIP可望成為下一代電信基礎(chǔ)設(shè)施結(jié)構(gòu)的楊心,使未來各電信業(yè)務(wù)綜合統(tǒng)一在IP網(wǎng)絡(luò)上成為可能,導(dǎo)致數(shù)據(jù)的融合和未來電信市場(chǎng)的重組,并帶來新的經(jīng)濟(jì)模式和價(jià)值鏈。(編選:免費(fèi)論文下載中心 )