日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
IP電話網(wǎng)關(guān)的語(yǔ)音數(shù)據(jù)處理
IP電話網(wǎng)關(guān)的語(yǔ)音數(shù)據(jù)處理
 更新時(shí)間:2008-8-16 21:14:39  點(diǎn)擊數(shù):24
【字體: 字體顏色

unsigned short rfu; /*Reserved for future use*/

struct DV_TPT tp_nextp; /Pointer to next term.parameter if*/

/*IO_LINK is set*/

} DV_TPT;

DX_XPB數(shù)據(jù)結(jié)構(gòu)用于指定用何種算法進(jìn)行錄音等。WfileFormat可取值FILE_FORMAT_VOX和FILE_FORMAT_WAVE,分別代表用VOX文件格式和WAV文件格式存放語(yǔ)音數(shù)據(jù)。WDataFormat可取值DATA_FORMAT_DIALOGIC_ADPCM、DATA_FORMAT_MULAW、DATA_FORMAT_ALAW、DATA_FORMAT_PCM,分別代表用ADPCM、μ率、A率或線性PCM的算法對(duì)聲音進(jìn)行采樣。NSamplesPerSec可取值DRT_6kHz、DRT_8kHz、DRT_11kHz,用于指定采樣頻率分別為6kHz、8kHz或11kHz。NBitsPerSample可取值4和8,為每個(gè)樣本點(diǎn)的位數(shù)。如果wDataFormat采用ADPCM算法,則nBitsPerSample只能取4。DX_XPB的數(shù)據(jù)結(jié)構(gòu)定義如下:

Typedef struct {

USHORT wFileFormat; //file format

USHORT wDataFormat; //audio data format

ULONG nSamplesPerSec; //sampling rate

ULONG nBitsPerSample; //bits per sample

} DX_XPB;

mode用于指定錄音的方式,可取值PM_TONE、EV_SYNCH或EV_ASYNCH。取值PM_TONE代表在錄制前先播放一個(gè)200ms的提示音。取值為EV_SYNCH時(shí),代表用同步的方式執(zhí)行語(yǔ)音采樣,在同一線程中的其它功能將被暫掛起,直到該同步函數(shù)執(zhí)行完后才被釋放。取值為EV_ASYNCH代表是用異步的方式執(zhí)行語(yǔ)音采樣,在同一線程中的其它功能仍可照常進(jìn)行。

語(yǔ)音播放是利用語(yǔ)音卡播放函數(shù)來(lái)完成的。該函數(shù)所用的參數(shù)與錄音函數(shù)的參數(shù)類似。播放函數(shù)的形式如下:

dx_playiottdata (activeChdev,&chinfo [activeChdev]iott,&tptplay[0],&xpbVox,mode)

2 電話狀況偵測(cè)

電話狀總值偵測(cè)功能主要是判斷電話線狀況,如判斷現(xiàn)在電話機(jī)話筒是拿起或放下,有沒有撥號(hào)音,是否電話正忙或沒有人接電話。在異步方式下,采用語(yǔ)音卡的ATDX_CPTERM()來(lái)檢測(cè)某語(yǔ)音通道上電話呼叫的返回值。在同步方式下無(wú)需該步驟。當(dāng)返回值為CR_CEPT時(shí),表示特殊通知音,即撥了無(wú)效的電話號(hào)碼或遇到了其它特殊問題。當(dāng)返回值為CR_NORB時(shí),表示無(wú)回鈴音,即檢測(cè)不到可識(shí)別的信號(hào)模式。當(dāng)返回值為CR_NOANS時(shí),表示無(wú)應(yīng)答,即線已撥通,但無(wú)應(yīng)答。當(dāng)返回值為CR_NOANS時(shí),表示忙音。當(dāng)返回值為CR_CNCT時(shí),還可利用ATDX_CONNTYPE(chdev)函數(shù)檢測(cè)連接音的類型。返回值可能是CON_CAD,CON_LPC,CON_PVD或CON_PAMD,分別代表韻律連接音,循環(huán)流連接音,陽(yáng)機(jī)音連接或陽(yáng)極應(yīng)答機(jī)連接音。

進(jìn)行呼叫時(shí),先用ATDX_HOOKST(activeChdev)函數(shù)獲取電話機(jī)的狀態(tài)。如果是掛機(jī)狀態(tài),則用dx_sethook(activeChdev,DX_OFFHOOK,EV_SYNC)將電話機(jī)置為摘機(jī)狀態(tài)。然后給呼叫函數(shù)傳遞所需的參數(shù)。參數(shù)是通過DX_CAP這個(gè)數(shù)據(jù)結(jié)構(gòu)來(lái)傳遞的,其定義為:

typedef struct DX_CAP {

unsigned short ca_nbrdna; //# of rings before no answer.

unsigned short ca_stdely; //Delay after dial before analysis

unsigned short ca_cnosig; //Duration if no signal time out delay

unsigned short ca_lcdly; //Delay after dial before lc drop connect

unsigned short ca_lcdly 1; //Delay after lc drop con. Before msg.

unsigned short ca_hedge; //Edge of answer to send connect message

unsigned short ca_cnosil; //Initial continuous noise timeout delay

unsigned short ca_loltola; //% acceptable pos.dev of short low sig.

unsigned short ca_lo l tolb; //% acceptable neg.dev of short low sig.

unsigned short ca_lo2tola; //% acceptable pos.dev of long low sig.

unsigned short ca_lo2tolb; //% acceptable neg.dev of long low sig.

unsigned short ca_hiltola; //% acceptable pos.dev of high signal.

unsigned short ca_hiltolb; //% acceptable neg.dev of high signal

unsigned short ca_lo 1 bmax; //Maximum interval for shrt low for busy.

unsigned short ca_lo 2 bmax; //Maximum interval for long low for busy.

unsigned short ca_hi 1 bmax; //Maximum interval for lst high for busy

unsigned short ca_nsbusy; //Num.of highs after nbrdna busy check.

unsigned short ca_logltch; //Silence deglitch duration.

unsigned short ca_higltch; //Non-shlence deglitch duration.

unsigned short ca_lo 1 rmax; //Max.short low dur.of double ring

} DX_CAP;

該數(shù)據(jù)結(jié)構(gòu)中有大量的參數(shù)項(xiàng),一般使用缺省值即可。需要修改時(shí),可通過程序提供的呼叫對(duì)話框來(lái)修改。呼叫的電話號(hào)碼也在該對(duì)話框中指定。

3 語(yǔ)音數(shù)據(jù)壓縮與解壓縮

G.723.1、G.729均為ITU H.323所推薦的語(yǔ)音編碼標(biāo)準(zhǔn)。其G.723.1采用ACELP和MP_MLQ算法,比特率為6.3kbps和5.3kbps。G.729采用CS_ACELP算法,比特率為8kbps。由于G.723.1無(wú)論是在帶寬還是語(yǔ)音質(zhì)量都優(yōu)于G.729,因此,一般在IP電話中普遍使用G.723.1語(yǔ)音壓縮標(biāo)準(zhǔn)。

在集成式IP電話網(wǎng)關(guān)中,語(yǔ)音的壓縮是由C6200資源卡上的TMS320C6201 DSP來(lái)完成。G.723.1編碼器的輸入信號(hào)是8kHz的16位線性PCM碼,由語(yǔ)音卡采樣的語(yǔ)音信號(hào)包括8kHz的8位線性PCM碼在內(nèi)的多種形式,在輸入到G.723.1編碼器之前,需要進(jìn)行轉(zhuǎn)換。相應(yīng)地,解碼器的輸出語(yǔ)音信號(hào)也應(yīng)轉(zhuǎn)化為語(yǔ)音卡能識(shí)別的格式數(shù)據(jù)流。Dialog D/4E語(yǔ)音卡只識(shí)別ADPCM碼,其它高級(jí)一線的語(yǔ)音卡如D/41ESC語(yǔ)音卡既可識(shí)別ADPCM碼,也能識(shí)別線性PCM碼。編碼器每30ms處理一幀數(shù)據(jù),每幀包含240個(gè)樣本點(diǎn),每個(gè)樣本點(diǎn)占16位。G.723.1編碼/解碼器的處理流程大致過程如下:

每一幀首先通過高通濾波器,去除直流成分,然后被分為4個(gè)子幀,每個(gè)子幀包括60個(gè)采樣點(diǎn)。每個(gè)子幀被送入一個(gè)10階線性預(yù)測(cè)編碼器,計(jì)算LPC系數(shù)。最后一個(gè)子幀的LPC系數(shù)采用預(yù)測(cè)分裂矢量量化器(PSVQ)量化。量化前的LPC系數(shù)用來(lái)建立短時(shí)感覺加權(quán)濾波器,整幀信號(hào)通過它得到感覺加權(quán)語(yǔ)音信號(hào)。對(duì)于每?jī)蓚(gè)子幀,用感覺加權(quán)后的語(yǔ)音信號(hào)來(lái)計(jì)算開環(huán)基音周期,基音周期的搜索范圍在18和145之間。對(duì)于每一個(gè)子幀,運(yùn)用估計(jì)的基音周期建立諧波噪聲成形濾波器(Harmonic Noise Shaping filter)。LPC合成濾波器、共振峰感覺加權(quán)濾波器和諧波噪聲成形濾波組成一個(gè)聯(lián)合濾波器,然后可以得到該濾波器的沖激響應(yīng)。運(yùn)用基音周期估計(jì)和沖激響應(yīng)計(jì)算閉環(huán)基音周期。采用五階基音預(yù)測(cè)器,以開環(huán)基音周期為中心,作小范圍內(nèi)閉環(huán)搜索,得到精確的基音周期,然后將基音預(yù)測(cè)器的貢獻(xiàn)從初始的目標(biāo)矢量中扣除。最后,進(jìn)行非周期性的激勵(lì)信號(hào)的估計(jì)。對(duì)于高碼率6.3kbps,采用多脈沖最大似然量化激勵(lì)(MP_MLQ);對(duì)于低碼率5.3kbps,采用代數(shù)碼本激勵(lì)(ACELP)。

4 RTP包的形成與解包

RTP包的形成與解包是由網(wǎng)關(guān)中的主CPU(Pentiun Ⅱ)來(lái)完成。RTP是IEFT的提議標(biāo)準(zhǔn)RFC1890。它是一個(gè)獨(dú)立于應(yīng)用程序的協(xié)議規(guī)范,在具體應(yīng)用中可有不同的獨(dú)立框架。每個(gè)RTP數(shù)據(jù)包都由一個(gè)頭部和一個(gè)有效數(shù)據(jù)部組成。有效數(shù)據(jù)部中放置壓縮后的語(yǔ)音數(shù)據(jù)。RTP包頭的前12個(gè)字節(jié)是固定的,其格式如圖2所示。

在RTP包頭中,標(biāo)記M占用1比特位,用來(lái)指明語(yǔ)音數(shù)據(jù)的邊界。PT占7比特位,指明語(yǔ)音數(shù)據(jù)的壓縮類型。Sequence number占16比特位,是一個(gè)正整數(shù)的序列號(hào)。每發(fā)送一個(gè)RTP數(shù)據(jù)包,序列號(hào)就加1。接收端可通過序列號(hào)監(jiān)測(cè)數(shù)據(jù)包傳輸過程中的丟包情況以及失序情況。序列號(hào)的初始值是隨機(jī)分配的。Timestamp是時(shí)間戳,占32比特位,描述RTP包中語(yǔ)音數(shù)據(jù)的采樣時(shí)刻,主要用于同步和計(jì)算時(shí)延。Synchronization source identifier是同步資源標(biāo)識(shí)符SSRC,占32比特位,用于標(biāo)識(shí)同步資源。RTP打包過程如圖3所示。

如果是第一次生成RTP包,則序列號(hào)的初值為一隨機(jī)數(shù)而不是0。這樣做的目的是為了通信過程中的安全性。SSRC標(biāo)識(shí)符是一個(gè)32位的隨機(jī)數(shù)。在一個(gè)RTP會(huì)話,不允許兩個(gè)SSRC有相同的值。RTP解包過程是RTP打包過程的逆過程,在此不再贅述。

5 IP包的發(fā)送與接收

利用H.323協(xié)議棧軟件包可以生成符合H.323協(xié)議的API函數(shù)。在程序中,先執(zhí)行mcInitialize()和mcSetEventHandler()建立H.245控制信道,然后執(zhí)行mcOpenCall()函數(shù)以建立H.225.0呼叫信令信道。在mcOpenCall()函數(shù)的參數(shù)中可以設(shè)置所選的音頻編解碼協(xié)議。所選的音頻編解碼協(xié)議包括G.711協(xié)議(必選)、G.722、G.723.1、G.728或G.729協(xié)議。當(dāng)H.245控制信道和H.225.1呼叫信令信道成功建立后,使用mcSendAudio()函數(shù)發(fā)送包含壓縮語(yǔ)音數(shù)據(jù)的IP包。當(dāng)通話結(jié)束后,使用mcCloseCall()函數(shù)關(guān)閉H.225.0呼叫信令信道和H.245控制信道。

本文提出的集成式IP電話網(wǎng)關(guān)具有硬件結(jié)構(gòu)簡(jiǎn)單、維護(hù)方便、升級(jí)容易等優(yōu)點(diǎn),并具有很高的性能價(jià)格比,更有價(jià)值的是拓寬了設(shè)計(jì)IP電話網(wǎng)關(guān)的設(shè)計(jì)思想。另外,本文還詳細(xì)地給出了語(yǔ)音在網(wǎng)關(guān)中的各個(gè)階段的處理過程和實(shí)現(xiàn)方法,其中有關(guān)語(yǔ)音壓縮和回聲抵消的處理,是網(wǎng)關(guān)中語(yǔ)音的關(guān)鍵技術(shù),涉及到網(wǎng)關(guān)的DSP的運(yùn)行效率、壓縮算法的優(yōu)化、語(yǔ)音質(zhì)量的提高和噪聲的消除等技術(shù)問題。

  • 上一篇: 用STEL-2000A實(shí)現(xiàn)直接序列擴(kuò)頻收發(fā)系統(tǒng)
  • 下一篇: ADSL寬帶接入技術(shù)及應(yīng)用
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1