摘要:文章研究IP語(yǔ)音傳輸系統(tǒng)的總體架構(gòu),實(shí)現(xiàn)了一個(gè)基于PXA255處理器的嵌入式IP電話終端硬件平臺(tái),為該平臺(tái)建立了一個(gè)優(yōu)化的嵌入式Linux環(huán)境,并研究基于GSM 06.10語(yǔ)音編解碼實(shí)現(xiàn),設(shè)計(jì)了一個(gè)IP語(yǔ)音實(shí)時(shí)傳輸系統(tǒng),實(shí)現(xiàn)了IP語(yǔ)音的網(wǎng)絡(luò)實(shí)時(shí)傳輸功能。
0 引言
VoIP是基于Internet的新型數(shù)字化傳輸技術(shù),是IP網(wǎng)上通過TCP/IP協(xié)議實(shí)現(xiàn)的一種電話應(yīng)用技術(shù)。這種應(yīng)用包括PC對(duì)PC、PC對(duì)電話、電話對(duì)電話等連接方式,其業(yè)務(wù)主要包括語(yǔ)音業(yè)務(wù)、E-mail、實(shí)時(shí)電話、實(shí)時(shí)傳真等多種形式。與傳統(tǒng)電話相比,IP電話的優(yōu)點(diǎn)主要是節(jié)省帶寬、通話費(fèi)用低、易于開發(fā)增值業(yè)務(wù)、體系結(jié)構(gòu)開放,有利于多種通信方式的統(tǒng)一。對(duì)VoIP技術(shù)的研究主要圍繞改善IP電話服務(wù)質(zhì)量來進(jìn)行,尤其是使用先進(jìn)的硬件技術(shù)、可靠的實(shí)時(shí)傳輸技術(shù)和能隨著網(wǎng)絡(luò)狀況自適應(yīng)調(diào)整速率的低速率語(yǔ)音編碼技術(shù)等研究及工程熱點(diǎn)。
研究與實(shí)現(xiàn)基于嵌入式處理器的VoIP語(yǔ)音傳輸系統(tǒng),可集成嵌入式系統(tǒng)、網(wǎng)絡(luò)通訊、多媒體和語(yǔ)音處理等應(yīng)用領(lǐng)域內(nèi)的前沿技術(shù),將嵌入式系統(tǒng)的高性能、低功耗、網(wǎng)絡(luò)通訊的低成本特性融合于一體,經(jīng)過進(jìn)一步完善后可以取代固定電話,并發(fā)展可視電話等信息終端,可以實(shí)現(xiàn)電話網(wǎng)、廣播電視網(wǎng)與Internet網(wǎng)的整合,具有很大的經(jīng)濟(jì)和技術(shù)優(yōu)勢(shì)。
1 PXA255嵌入式處理器
本文研究與設(shè)計(jì)的嵌入式IP數(shù)字語(yǔ)音系統(tǒng)將在以太網(wǎng)環(huán)境中工作。與目前大多數(shù)基于PC的IP電話終端相比,選擇嵌入式IP電話終端具有如下優(yōu)勢(shì):
(1)嵌入式硬件平臺(tái)可以進(jìn)行裁減和定制,因而可以大幅降低IP電話終端成本;
(2)可以定制嵌入式軟件平臺(tái),容易升級(jí),實(shí)時(shí)性好,而基于PC機(jī)的IP電話占用資源多,操作系統(tǒng)復(fù)雜,容易死機(jī);
(3)嵌入式IP電話終端功耗低,可以使用電池進(jìn)行供電,因而系統(tǒng)具有小型化、便攜的特點(diǎn),這是PC所無(wú)法比擬的。
PXA255處理器是Intel公司帶ARM核的多媒體處理器。PXA255處理器的內(nèi)部功能模塊框圖見圖1所示。
PXA255處理器具有如下特色:核心頻率支持100~400MHz;多種系統(tǒng)存儲(chǔ)器接口;外設(shè)資源非常豐富:有PCMCIA/Compact Flash卡控制引腳、LCD控制器、全功能UART、USB客戶端、AC97控制器、15個(gè)靈活的GPIO引腳等。
2 VoIP的嵌入式Linux環(huán)境構(gòu)建
嵌入式IP吾音終端使用的嵌入式Linux平臺(tái)可分為三個(gè)層次:應(yīng)用軟件層次、Linux內(nèi)核層次和設(shè)備驅(qū)動(dòng)層次。其中平臺(tái)無(wú)關(guān)部分包括:Linux實(shí)時(shí)內(nèi)核、文件系統(tǒng)、應(yīng)用軟件等部分;平臺(tái)相關(guān)部分包括:硬件驅(qū)動(dòng)的改造和啟動(dòng)過程改造,我們需要針對(duì)不同平臺(tái)進(jìn)行代碼改造,
編寫各種驅(qū)動(dòng)。由圖2可知,Linux對(duì)各種設(shè)備的操作都是以文件的形式進(jìn)行的。
基于RTP協(xié)議的語(yǔ)音實(shí)時(shí)網(wǎng)絡(luò)傳輸軟件,位于Linux網(wǎng)絡(luò)結(jié)構(gòu)的Socket應(yīng)用層,如圖3所示。在嵌入式Linux平臺(tái)上利用Socket系統(tǒng)函數(shù)實(shí)現(xiàn)語(yǔ)音傳輸?shù)腞TP應(yīng)用。在具體編程時(shí),Linux平臺(tái)上可供選用的語(yǔ)言有C、C++等。在這里我們也采用C語(yǔ)言,并采用編譯器Arm-Linux-Gcc。
語(yǔ)音處理的音頻庫(kù)函數(shù)使用OSS(Open Sound System)。
嵌入式IP終端系統(tǒng)軟件界面采用QT/Embed編程。利用qte的界面編程輔助工具QT Designer能很方便地實(shí)現(xiàn)界面規(guī)劃布局。由于是可視化編程,能很好地控制界面布局、效果,操作方便。QT Designer生成的界面文件是以XML語(yǔ)言編寫的.ui文件,通過QT附帶的工具UIC,能讓*.ui文件生成*.h和*.cpp的文件格式。使用QTDesigner大大降低了編程的工作量,并且能得到所見即所得的圖形效果。
3 語(yǔ)音編解碼器選型
對(duì)語(yǔ)音信號(hào),有許多壓縮算法和標(biāo)準(zhǔn)。這些編碼算法可按照編碼系統(tǒng)碼率大小、輸入信號(hào)頻帶寬度、所采用的編碼技術(shù)等方面進(jìn)行分類。編碼系統(tǒng)優(yōu)劣的評(píng)價(jià)主要體現(xiàn)在編解碼系統(tǒng)的性能指標(biāo)上,一個(gè)編解碼器系統(tǒng)有輸出聲音的質(zhì)量、編碼速率、復(fù)雜度、遲延和容錯(cuò)性等性能指標(biāo)。
(1)編碼速率。編碼速率指的是編碼器對(duì)輸入聲音經(jīng)過壓縮后每秒的比特?cái)?shù),即壓縮后的傳碼率。這是編碼系統(tǒng)的一個(gè)十分重要的指標(biāo)。降低比特率而維持較高的解碼聲音質(zhì)量,是語(yǔ)音和音頻信號(hào)壓縮編碼的主要任務(wù)和主要目標(biāo)。對(duì)電話級(jí)別的語(yǔ)音帶寬而言,通常認(rèn)為比特率超過16kb/s的為高速編碼,而速率在8~16kb/s范圍的為中速率編碼,速率在8kb/s以下的為低速率編碼。
(2)輸出聲音的質(zhì)量。輸出聲音的質(zhì)量是指經(jīng)過編碼系統(tǒng)再經(jīng)過接收方的解碼后恢復(fù)出的聲音質(zhì)量。衡量輸出聲音質(zhì)量主要有二個(gè)指標(biāo):客觀質(zhì)量和主觀質(zhì)量??陀^質(zhì)量法易測(cè)量,但往往不能精確反映語(yǔ)音質(zhì)量。由于聲音的最終接收者是人,所以主觀法更能反映聲音質(zhì)量的真正好壞,但它測(cè)試不易,費(fèi)時(shí)費(fèi)力。
(3)復(fù)雜度。在傳統(tǒng)電話應(yīng)用中,很少使用壓縮,是因?yàn)閴嚎s算法的復(fù)雜度太大,算法執(zhí)行時(shí)間長(zhǎng),算法的延遲也一起帶入到通信系統(tǒng)中。隨著技術(shù)的進(jìn)步,芯片處理速度越來越快?,F(xiàn)在工程上一般采用單片數(shù)字信號(hào)處理器DSP芯片來實(shí)時(shí)實(shí)現(xiàn)語(yǔ)音編解碼。語(yǔ)音編解碼算法的復(fù)雜度可由算法所需的計(jì)算量、存儲(chǔ)量、硬件尺寸、消耗功率及價(jià)格來衡量。
(4)時(shí)延。時(shí)延指完成編解碼算法所需的時(shí)間。對(duì)于語(yǔ)音編解碼器來說,時(shí)延也是一個(gè)非常重要的指標(biāo),如果時(shí)延太大,聽起來很不舒服。對(duì)于時(shí)延,不同的應(yīng)用場(chǎng)合有不同規(guī)定,如對(duì)長(zhǎng)話網(wǎng)不加回波抑制的單向編解碼時(shí)延不得大于10ms。對(duì)可視電話則放松到不超過500ms。對(duì)VOIP語(yǔ)音系統(tǒng)的時(shí)延要求不超過300ms。
(5)容錯(cuò)能力或魯棒性。容錯(cuò)能力指編解碼系統(tǒng)抗誤差、線路噪聲等各種干擾的能力。
表1對(duì)幾種編碼器的比特率、主觀平均意見分法(MOS)、復(fù)雜度(以G.711為基準(zhǔn))和時(shí)延(幀大小)做了比較。
本系統(tǒng)選用GSM 06.10語(yǔ)音標(biāo)準(zhǔn)算法,該算法在1988年被確定為數(shù)字移動(dòng)通信的語(yǔ)音編碼標(biāo)準(zhǔn),其編碼速率為13kb/s,算法簡(jiǎn)單,運(yùn)算量小,語(yǔ)音質(zhì)量高,接近32kb/s的ADPCM(ITU-G.712)。
4 IP語(yǔ)音實(shí)時(shí)傳輸系統(tǒng)設(shè)計(jì)
本文采用Intel公司推出的PXA255處理器,該芯片專用于網(wǎng)絡(luò)和多媒體。其最高工作頻率可達(dá)400MHz,并帶內(nèi)存管理單元MMU和DSP協(xié)處理器,可方便與高清晰的彩色LCD接口,同時(shí)該芯片可擴(kuò)展連接AC97音頻芯片CS4201、高性能網(wǎng)絡(luò)接口芯片LANC9196,可方便移植嵌入式Linux和圖形界面等。
基于PXA255處理器的IP語(yǔ)音系統(tǒng)用方案具有如下優(yōu)勢(shì):將先進(jìn)的硬件技術(shù)和軟件技術(shù)有機(jī)融合,充分利用PXA255和Linux的強(qiáng)大功能,克服了傳統(tǒng)的基于單片機(jī)功能不足和基于PC的非實(shí)時(shí)性的缺點(diǎn),具有實(shí)時(shí)性、低成本、小型化、專用化和高可靠性的優(yōu)點(diǎn),能讓IP數(shù)字語(yǔ)音終端系統(tǒng)具有更好的可擴(kuò)展性和可移植性,與ARM7或DSP的方案相比,在技術(shù)上同樣具有一定優(yōu)越性。
系統(tǒng)設(shè)計(jì)硬件框圖見圖4所示。
系統(tǒng)設(shè)計(jì)語(yǔ)音流程框圖見圖5。
5 系統(tǒng)測(cè)試
將兩個(gè)語(yǔ)音終端連接到局域網(wǎng),分別設(shè)置其IP地址為192.168.0.100、192.168.0.101。整個(gè)軟件的運(yùn)行過程:在語(yǔ)音傳輸之前,首先由網(wǎng)絡(luò)連接(通話雙方的呼叫連接)模塊進(jìn)行呼叫連接,呼叫連接建立后,雙方就可以進(jìn)行接下來的語(yǔ)音通話,實(shí)現(xiàn)語(yǔ)音傳輸。
在送話方即發(fā)起會(huì)話的一方:語(yǔ)音首先通過麥克風(fēng)進(jìn)入系統(tǒng),在語(yǔ)音錄入與播放功能模塊內(nèi)進(jìn)行錄音,然后進(jìn)入語(yǔ)音數(shù)據(jù)壓縮、解壓模塊進(jìn)行壓縮,壓縮后的語(yǔ)音數(shù)據(jù)打包后,以語(yǔ)音數(shù)據(jù)包的方式發(fā)送。
在受話方即接收會(huì)話的一方:通過網(wǎng)絡(luò)傳輸過來的語(yǔ)音數(shù)據(jù)拆包后,首先進(jìn)入語(yǔ)音數(shù)據(jù)緩存模塊進(jìn)行緩存,這種緩存方式可以保證語(yǔ)音回放連續(xù)和不失真,然后進(jìn)入語(yǔ)音數(shù)據(jù)壓縮與解壓模塊對(duì)其進(jìn)行解壓。經(jīng)過語(yǔ)音解壓縮過程以后,語(yǔ)音數(shù)據(jù)送入語(yǔ)音錄入與播放功能模塊內(nèi),通過揚(yáng)聲器進(jìn)行播放,最終還原成語(yǔ)音。
測(cè)試過程中,我們使用RTP工具集rtptools-1.18中的rtpplay、rtpdump、rtpsend等命令截取語(yǔ)音實(shí)時(shí)傳輸模塊在網(wǎng)絡(luò)中的語(yǔ)音包,觀察其RTP和RTCP報(bào)文,分析網(wǎng)絡(luò)的當(dāng)前狀況等。網(wǎng)絡(luò)的當(dāng)前狀況與語(yǔ)音傳輸延遲有很強(qiáng)的正相關(guān)性。網(wǎng)絡(luò)狀況好,傳輸延遲小,網(wǎng)絡(luò)狀況不好,傳輸延遲增大。
語(yǔ)音延時(shí)測(cè)試方法:因?yàn)檎Z(yǔ)音傳輸?shù)难舆t時(shí)間在1s以內(nèi),用秒表或其他外設(shè)來測(cè)量,誤差大、精度不高,所以我們基于軟件的方式測(cè)量。通過在RTP工具集中設(shè)置一個(gè)計(jì)時(shí)器,計(jì)算時(shí)間差,記錄端到端的語(yǔ)音延時(shí)。最后求平均值,延時(shí)數(shù)據(jù)見表2。測(cè)試分8組,每組10到40個(gè)延遲數(shù)據(jù)不等,表中數(shù)據(jù)為每組的延遲平均值。
8組的所有測(cè)試數(shù)據(jù)有210個(gè),所有測(cè)試數(shù)據(jù)的平均延時(shí)計(jì)算過程:(283*10+258*10+269*20+266*20+257*30+275*30+268*40+286*50)/210=271.86ms。
由計(jì)算可知,平均延時(shí)約為272ms。滿足本文第三節(jié)中VoIP語(yǔ)音時(shí)延的上限300ms的要求。
6 小結(jié)
論文研究了IP語(yǔ)音傳輸系統(tǒng)的總體架構(gòu),實(shí)現(xiàn)了一個(gè)基于PXA255處理器的嵌入式IP電話終端硬件平臺(tái),為該平臺(tái)建立了一個(gè)優(yōu)化的嵌入式Linux環(huán)境,并研究基于GSM 06.10的語(yǔ)音編解碼實(shí)現(xiàn),設(shè)計(jì)了一個(gè)IP語(yǔ)音實(shí)時(shí)傳輸系統(tǒng),實(shí)現(xiàn)了IP語(yǔ)音的網(wǎng)絡(luò)實(shí)時(shí)傳輸功能,通過系統(tǒng)測(cè)試,語(yǔ)音時(shí)延符合工程要求,具有較好的實(shí)時(shí)性。