亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        ADPCM技術(shù)在煤礦廣播對(duì)講系統(tǒng)中的應(yīng)用

        2014-09-01 07:35:29榮相
        新媒體研究 2014年11期

        榮相

        摘要簡要介紹ADPCM技術(shù)原理和數(shù)字音頻芯片VS1003在煤礦廣播對(duì)講系統(tǒng)中應(yīng)用的關(guān)鍵技術(shù)設(shè)計(jì),并闡述了該方案的優(yōu)點(diǎn),為煤礦基于現(xiàn)有寬帶網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)字語音廣播對(duì)講提供了一種新的方法,具有較強(qiáng)的實(shí)用價(jià)值。

        關(guān)鍵詞ADPCM;數(shù)字語音;VS1003;煤礦廣播對(duì)講

        中圖分類號(hào):TN828 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1671-7597(2014)11-0107-02

        自適應(yīng)差分脈沖編碼調(diào)制(ADPCM)技術(shù)能以32kbit/s碼率達(dá)到符合64kbit/s碼率的語音質(zhì)量要求,因此國際電報(bào)電話咨詢委員會(huì)(CCITT)在1984年提出了基于ADPCM語音編碼的G.721建議,1986年進(jìn)行了實(shí)用化修正后應(yīng)用到了最早的數(shù)字通信系統(tǒng)中[1]。煤礦生產(chǎn)離不開通信廣播,目前大部分煤礦仍然在大量使用傳統(tǒng)的模擬電話,因井下環(huán)境惡劣,噪聲大,電磁干擾嚴(yán)重,導(dǎo)致電話通信故障頻發(fā),通話時(shí)斷時(shí)續(xù),聽不清對(duì)方說話的內(nèi)容。為保障井下作業(yè)人員聯(lián)系和信息暢通,提高了煤礦語音通信質(zhì)量,采用數(shù)字語音通信技術(shù)具有其獨(dú)特的優(yōu)勢,同時(shí),基于煤礦現(xiàn)有寬帶網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)字語音通信也是數(shù)字化煤礦技術(shù)的一個(gè)重要組成部分。本文就基于ADPCM技術(shù)實(shí)現(xiàn)煤礦數(shù)字化廣播對(duì)講系統(tǒng)的關(guān)鍵技術(shù)原理和實(shí)現(xiàn)方法進(jìn)行論述。

        1ADPCM編解碼原理

        ADPCM用預(yù)測編碼來壓縮數(shù)據(jù),其核心思想是利用自適應(yīng)的思想改變量化階的大小[2],實(shí)際上編碼記錄并不是語音波形的真實(shí)幅度,而是對(duì)當(dāng)前樣本與預(yù)測樣本之間的差值進(jìn)行量化編碼,為減小斜率過載以及顆粒噪聲,根據(jù)統(tǒng)計(jì)算法自動(dòng)修正量化階的大小,差值較小時(shí)使用小的量化階編碼,差值較大時(shí)使用大的量化階編碼,并使用過去的樣本值估算下一個(gè)輸入樣本與預(yù)測值,使實(shí)際樣本值與預(yù)測值之間的差值最小,采用非均勻量化,保證不同幅度信號(hào)的信噪比在同一水平。解碼是編碼的逆過程,解碼的輸入即為編碼的輸出,在此不再贅述。

        2數(shù)字語音硬件實(shí)現(xiàn)

        由于ADPCM編解碼技術(shù)優(yōu)勢明顯,應(yīng)用廣泛,各大音頻處理芯片制造商均有自己專門或兼容ADPCM編解碼格式的數(shù)字音頻處理芯片。VS1003b是芬蘭LVSI半導(dǎo)體公司一款價(jià)格低廉,功能強(qiáng)大,支持多種音頻格式文件的解碼,能對(duì)話筒輸入或線路輸入進(jìn)行IMA-ADPCM編碼,帶DSP內(nèi)核以及PLL時(shí)鐘鎖相環(huán)倍頻器,片內(nèi)含高性能數(shù)模轉(zhuǎn)換器,有5.5KB供用戶使用的程序代碼和數(shù)據(jù)RAM空間,具有SPI串行數(shù)據(jù)接口以及URAT通信接口。該器件能完全滿足礦用廣播通信系統(tǒng)的功能要求,應(yīng)用電路如圖1所示。

        圖中X1、R1~R4、C1~C6為麥克風(fēng)輸入電路,R6-R10、C7~C12為立體聲音頻輸出電路,RCAP為線路輸入提供偏置,晶振Y1的振蕩頻率為12.288MHz,UART串口不用時(shí)RX必須接高電平,與CPU采用SPI串行接口,XRESET用于控制芯片復(fù)位,DREQ為外部中斷,XDCS用于區(qū)分SPI接口傳輸?shù)氖菙?shù)據(jù)還是命令碼。

        圖1VS1003應(yīng)用電路

        3基于ADPCM的廣播對(duì)講軟件實(shí)現(xiàn)

        采用VS1003實(shí)現(xiàn)廣播對(duì)講,ADPCM編碼進(jìn)行遠(yuǎn)程傳輸,只要網(wǎng)絡(luò)有效帶寬在32K以上,即可保證語音數(shù)據(jù)的實(shí)時(shí)傳輸。為保證實(shí)時(shí)性以及能實(shí)現(xiàn)多方對(duì)講,以UDP組播為基礎(chǔ)的RTP/RTCP協(xié)議,若要完全實(shí)現(xiàn)RTP/RTCP協(xié)議比較復(fù)雜并且需要占用較多的CPU資源,本文采用RTCP的傳輸控制模式,自行設(shè)計(jì)一套簡單傳輸控制協(xié)議。在應(yīng)用中需要注意, UDP并非可靠傳輸,數(shù)據(jù)報(bào)文有可能后發(fā)而先至,對(duì)方在播放之前必須對(duì)報(bào)文進(jìn)行排序,因此編碼報(bào)文中必須包含報(bào)文的ID序號(hào)。

        VS1003可以解碼多種音頻數(shù)據(jù),以何種方式解碼,依靠送入芯片的文件頭格式進(jìn)行自適應(yīng)編碼判斷,因此需要在編碼數(shù)據(jù)前增加一個(gè)WAV文件頭做先導(dǎo)才能正常解碼。在每次語音播放開始時(shí)先向VS1003發(fā)送512字節(jié)文件頭,然后再將接收到的報(bào)文數(shù)據(jù)依次送入VS1003,芯片即可進(jìn)行自適應(yīng)解碼并輸出模擬音頻信號(hào)。WAV文件頭的制作過程簡單描述如下。

        1)設(shè)計(jì)兩個(gè)常量數(shù)組分別定義如下:

        const uint8 RIFFHeader0[] = {

        'R' , 'I' , 'F' , 'F' , // Chunk ID (RIFF)

        0xff, 0xff, 0xff, 0xff, // Chunk payload size (calculate after rec!)

        'W' , 'A' , 'V' , 'E' , // RIFF resource format type

        'f' , 'm' , 't' , ' ' , // Chunk ID (fmt )

        0x14, 0x00, 0x00, 0x00, // Chunk payload size (0x14 = 20 bytes)

        0x11, 0x00, // Format Tag (IMA ADPCM)

        0x01, 0x00, // Channels (1)

        0x80, 0x3e, 0x00, 0x00, // Sample Rate, 0x3e80 = 16.0kHz

        0xd7, 0x0f, 0x00, 0x00, // Average Bytes Per Second

        0x00, 0x01, // Data Block Size (256 bytes)

        0x04, 0x00, // ADPCM encoded bits per sample (4 bits)

        0x02, 0x00, // Extra data (2 bytes)

        0xf9, 0x01, // Samples per Block (505 samples)

        'f' , 'a' , 'c' , 't' , // Chunk ID (fact)

        0xc8, 0x01, 0x00, 0x00, // Chunk payload size (456 bytes (zeropad!))

        0xff, 0xff, 0xff, 0xff// Number of Samples (calculate after rec!)

        }

        const uint8 RIFFHeader504[] = {

        'd' , 'a' , 't' , 'a' , // Chunk ID (data)

        0xff, 0xff, 0xff, 0xff// Chunk payload size (calculate after rec!)

        }

        2)程序中定義一個(gè)512字節(jié)長度的臨時(shí)數(shù)組,全初始化為零,再將前52個(gè)字節(jié)用RIFFHeader0代替,將最后8個(gè)字節(jié)用RIFFHeader504代替,以上有3個(gè)需要計(jì)算長度的地方全部用0xff代替,根據(jù)采樣速率的不同,Sample Rate的具體數(shù)值需要調(diào)整。

        3)每次播放ADPCM語音之前將上述512字節(jié)首先送入VS1003。

        ADPCM錄音保存的方法是,從VS1003讀取編碼數(shù)據(jù)后一方面通過網(wǎng)絡(luò)發(fā)送出去,另一方面建立或打開一個(gè)WAV文件,將錄音數(shù)據(jù)保存到文件中。WAV文件頭的簡單制作過程在前文中已有說明,只是在錄音結(jié)束后,利用最終的文件長度分別計(jì)算上文中的3個(gè)長度值,然后重新寫入文件,形成一個(gè)正常的WAV文件。

        4基于ADPCM的煤礦廣播對(duì)講系統(tǒng)特點(diǎn)

        由于采用了ADPCM數(shù)字語音技術(shù),與傳統(tǒng)的模擬或基于其他技術(shù)實(shí)現(xiàn)的廣播對(duì)講系統(tǒng)相比具有以下優(yōu)勢。

        1)系統(tǒng)抗干擾能力強(qiáng),無傳輸損耗,可借助已有數(shù)字通信網(wǎng)絡(luò),實(shí)現(xiàn)遠(yuǎn)距離傳輸。由于廣播對(duì)講系統(tǒng)采用了數(shù)字音頻編解碼器以及數(shù)字通信技術(shù),顯著提高了系統(tǒng)抗干擾能力,減小了使用環(huán)境的影響,降低了對(duì)電源的要求,并可采用本安電路實(shí)現(xiàn),信號(hào)傳輸過程幾乎沒有損耗和失真,傳輸距離不受限制。

        2)通信帶寬要求低,語音效果優(yōu)良,可實(shí)現(xiàn)全雙工通話。ADPCM在保證優(yōu)良音質(zhì)的情況下最高通信速率為32Kbit/s,在實(shí)際使用過程中還可以適當(dāng)降低采樣率,從而降低帶寬要求,與基于VOIP技術(shù)協(xié)議的廣播對(duì)講系統(tǒng)相比,具有明顯的效果優(yōu)勢。如果在每臺(tái)廣播對(duì)講設(shè)備中使用2片VS1003,一片專門用于播放網(wǎng)絡(luò)語音,另一片專門用于錄音編碼發(fā)送,加上回聲抑制技術(shù)即可實(shí)現(xiàn)煤礦井下全雙工通話。

        3)可實(shí)時(shí)播放多種格式音樂,實(shí)現(xiàn)區(qū)域廣播以及多方通話。因VS1003支持大多數(shù)音頻文件解碼,系統(tǒng)配上后臺(tái)軟件后,可實(shí)現(xiàn)在線廣播MP3音樂,另外因系統(tǒng)采用的是組播傳輸,可以在不增加任何帶寬條件下,軟件可靈活控制終端設(shè)備是否加入組播,因此可以實(shí)現(xiàn)分區(qū)廣播,多方通話功能,這是傳統(tǒng)模擬系統(tǒng)無法實(shí)現(xiàn)的。

        5結(jié)束語

        實(shí)踐證明,采用ADPCM編解碼技術(shù)實(shí)現(xiàn)的煤礦廣播對(duì)講系統(tǒng),音頻失真度低,抗干擾能力強(qiáng),語音效果優(yōu)良,并具備許多附加功能,可替代傳統(tǒng)模擬電話。系統(tǒng)運(yùn)行穩(wěn)定,可解決煤礦語音通信故障率高,抗干擾能力差的問題,為煤礦提供了一種高質(zhì)量的語音通信解決方案,具有較強(qiáng)的實(shí)用價(jià)值。

        參考文獻(xiàn)

        [1]陳溯.ADPCM語音壓縮編碼的分析與仿真[J].中國西部科技,2008,7(32):51-53.

        [2]陳明義.基于FPGA的ADPCM語音編解碼器設(shè)計(jì)時(shí)限[J].電子科技,2007(1):44-47.

        [3]徐博,郭秋敏.基于SPI協(xié)議的音頻流解碼系統(tǒng)的研究與設(shè)計(jì)[J].工礦自動(dòng)化,2011(1):44-49.

        endprint

        摘要簡要介紹ADPCM技術(shù)原理和數(shù)字音頻芯片VS1003在煤礦廣播對(duì)講系統(tǒng)中應(yīng)用的關(guān)鍵技術(shù)設(shè)計(jì),并闡述了該方案的優(yōu)點(diǎn),為煤礦基于現(xiàn)有寬帶網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)字語音廣播對(duì)講提供了一種新的方法,具有較強(qiáng)的實(shí)用價(jià)值。

        關(guān)鍵詞ADPCM;數(shù)字語音;VS1003;煤礦廣播對(duì)講

        中圖分類號(hào):TN828 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1671-7597(2014)11-0107-02

        自適應(yīng)差分脈沖編碼調(diào)制(ADPCM)技術(shù)能以32kbit/s碼率達(dá)到符合64kbit/s碼率的語音質(zhì)量要求,因此國際電報(bào)電話咨詢委員會(huì)(CCITT)在1984年提出了基于ADPCM語音編碼的G.721建議,1986年進(jìn)行了實(shí)用化修正后應(yīng)用到了最早的數(shù)字通信系統(tǒng)中[1]。煤礦生產(chǎn)離不開通信廣播,目前大部分煤礦仍然在大量使用傳統(tǒng)的模擬電話,因井下環(huán)境惡劣,噪聲大,電磁干擾嚴(yán)重,導(dǎo)致電話通信故障頻發(fā),通話時(shí)斷時(shí)續(xù),聽不清對(duì)方說話的內(nèi)容。為保障井下作業(yè)人員聯(lián)系和信息暢通,提高了煤礦語音通信質(zhì)量,采用數(shù)字語音通信技術(shù)具有其獨(dú)特的優(yōu)勢,同時(shí),基于煤礦現(xiàn)有寬帶網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)字語音通信也是數(shù)字化煤礦技術(shù)的一個(gè)重要組成部分。本文就基于ADPCM技術(shù)實(shí)現(xiàn)煤礦數(shù)字化廣播對(duì)講系統(tǒng)的關(guān)鍵技術(shù)原理和實(shí)現(xiàn)方法進(jìn)行論述。

        1ADPCM編解碼原理

        ADPCM用預(yù)測編碼來壓縮數(shù)據(jù),其核心思想是利用自適應(yīng)的思想改變量化階的大小[2],實(shí)際上編碼記錄并不是語音波形的真實(shí)幅度,而是對(duì)當(dāng)前樣本與預(yù)測樣本之間的差值進(jìn)行量化編碼,為減小斜率過載以及顆粒噪聲,根據(jù)統(tǒng)計(jì)算法自動(dòng)修正量化階的大小,差值較小時(shí)使用小的量化階編碼,差值較大時(shí)使用大的量化階編碼,并使用過去的樣本值估算下一個(gè)輸入樣本與預(yù)測值,使實(shí)際樣本值與預(yù)測值之間的差值最小,采用非均勻量化,保證不同幅度信號(hào)的信噪比在同一水平。解碼是編碼的逆過程,解碼的輸入即為編碼的輸出,在此不再贅述。

        2數(shù)字語音硬件實(shí)現(xiàn)

        由于ADPCM編解碼技術(shù)優(yōu)勢明顯,應(yīng)用廣泛,各大音頻處理芯片制造商均有自己專門或兼容ADPCM編解碼格式的數(shù)字音頻處理芯片。VS1003b是芬蘭LVSI半導(dǎo)體公司一款價(jià)格低廉,功能強(qiáng)大,支持多種音頻格式文件的解碼,能對(duì)話筒輸入或線路輸入進(jìn)行IMA-ADPCM編碼,帶DSP內(nèi)核以及PLL時(shí)鐘鎖相環(huán)倍頻器,片內(nèi)含高性能數(shù)模轉(zhuǎn)換器,有5.5KB供用戶使用的程序代碼和數(shù)據(jù)RAM空間,具有SPI串行數(shù)據(jù)接口以及URAT通信接口。該器件能完全滿足礦用廣播通信系統(tǒng)的功能要求,應(yīng)用電路如圖1所示。

        圖中X1、R1~R4、C1~C6為麥克風(fēng)輸入電路,R6-R10、C7~C12為立體聲音頻輸出電路,RCAP為線路輸入提供偏置,晶振Y1的振蕩頻率為12.288MHz,UART串口不用時(shí)RX必須接高電平,與CPU采用SPI串行接口,XRESET用于控制芯片復(fù)位,DREQ為外部中斷,XDCS用于區(qū)分SPI接口傳輸?shù)氖菙?shù)據(jù)還是命令碼。

        圖1VS1003應(yīng)用電路

        3基于ADPCM的廣播對(duì)講軟件實(shí)現(xiàn)

        采用VS1003實(shí)現(xiàn)廣播對(duì)講,ADPCM編碼進(jìn)行遠(yuǎn)程傳輸,只要網(wǎng)絡(luò)有效帶寬在32K以上,即可保證語音數(shù)據(jù)的實(shí)時(shí)傳輸。為保證實(shí)時(shí)性以及能實(shí)現(xiàn)多方對(duì)講,以UDP組播為基礎(chǔ)的RTP/RTCP協(xié)議,若要完全實(shí)現(xiàn)RTP/RTCP協(xié)議比較復(fù)雜并且需要占用較多的CPU資源,本文采用RTCP的傳輸控制模式,自行設(shè)計(jì)一套簡單傳輸控制協(xié)議。在應(yīng)用中需要注意, UDP并非可靠傳輸,數(shù)據(jù)報(bào)文有可能后發(fā)而先至,對(duì)方在播放之前必須對(duì)報(bào)文進(jìn)行排序,因此編碼報(bào)文中必須包含報(bào)文的ID序號(hào)。

        VS1003可以解碼多種音頻數(shù)據(jù),以何種方式解碼,依靠送入芯片的文件頭格式進(jìn)行自適應(yīng)編碼判斷,因此需要在編碼數(shù)據(jù)前增加一個(gè)WAV文件頭做先導(dǎo)才能正常解碼。在每次語音播放開始時(shí)先向VS1003發(fā)送512字節(jié)文件頭,然后再將接收到的報(bào)文數(shù)據(jù)依次送入VS1003,芯片即可進(jìn)行自適應(yīng)解碼并輸出模擬音頻信號(hào)。WAV文件頭的制作過程簡單描述如下。

        1)設(shè)計(jì)兩個(gè)常量數(shù)組分別定義如下:

        const uint8 RIFFHeader0[] = {

        'R' , 'I' , 'F' , 'F' , // Chunk ID (RIFF)

        0xff, 0xff, 0xff, 0xff, // Chunk payload size (calculate after rec!)

        'W' , 'A' , 'V' , 'E' , // RIFF resource format type

        'f' , 'm' , 't' , ' ' , // Chunk ID (fmt )

        0x14, 0x00, 0x00, 0x00, // Chunk payload size (0x14 = 20 bytes)

        0x11, 0x00, // Format Tag (IMA ADPCM)

        0x01, 0x00, // Channels (1)

        0x80, 0x3e, 0x00, 0x00, // Sample Rate, 0x3e80 = 16.0kHz

        0xd7, 0x0f, 0x00, 0x00, // Average Bytes Per Second

        0x00, 0x01, // Data Block Size (256 bytes)

        0x04, 0x00, // ADPCM encoded bits per sample (4 bits)

        0x02, 0x00, // Extra data (2 bytes)

        0xf9, 0x01, // Samples per Block (505 samples)

        'f' , 'a' , 'c' , 't' , // Chunk ID (fact)

        0xc8, 0x01, 0x00, 0x00, // Chunk payload size (456 bytes (zeropad!))

        0xff, 0xff, 0xff, 0xff// Number of Samples (calculate after rec!)

        }

        const uint8 RIFFHeader504[] = {

        'd' , 'a' , 't' , 'a' , // Chunk ID (data)

        0xff, 0xff, 0xff, 0xff// Chunk payload size (calculate after rec!)

        }

        2)程序中定義一個(gè)512字節(jié)長度的臨時(shí)數(shù)組,全初始化為零,再將前52個(gè)字節(jié)用RIFFHeader0代替,將最后8個(gè)字節(jié)用RIFFHeader504代替,以上有3個(gè)需要計(jì)算長度的地方全部用0xff代替,根據(jù)采樣速率的不同,Sample Rate的具體數(shù)值需要調(diào)整。

        3)每次播放ADPCM語音之前將上述512字節(jié)首先送入VS1003。

        ADPCM錄音保存的方法是,從VS1003讀取編碼數(shù)據(jù)后一方面通過網(wǎng)絡(luò)發(fā)送出去,另一方面建立或打開一個(gè)WAV文件,將錄音數(shù)據(jù)保存到文件中。WAV文件頭的簡單制作過程在前文中已有說明,只是在錄音結(jié)束后,利用最終的文件長度分別計(jì)算上文中的3個(gè)長度值,然后重新寫入文件,形成一個(gè)正常的WAV文件。

        4基于ADPCM的煤礦廣播對(duì)講系統(tǒng)特點(diǎn)

        由于采用了ADPCM數(shù)字語音技術(shù),與傳統(tǒng)的模擬或基于其他技術(shù)實(shí)現(xiàn)的廣播對(duì)講系統(tǒng)相比具有以下優(yōu)勢。

        1)系統(tǒng)抗干擾能力強(qiáng),無傳輸損耗,可借助已有數(shù)字通信網(wǎng)絡(luò),實(shí)現(xiàn)遠(yuǎn)距離傳輸。由于廣播對(duì)講系統(tǒng)采用了數(shù)字音頻編解碼器以及數(shù)字通信技術(shù),顯著提高了系統(tǒng)抗干擾能力,減小了使用環(huán)境的影響,降低了對(duì)電源的要求,并可采用本安電路實(shí)現(xiàn),信號(hào)傳輸過程幾乎沒有損耗和失真,傳輸距離不受限制。

        2)通信帶寬要求低,語音效果優(yōu)良,可實(shí)現(xiàn)全雙工通話。ADPCM在保證優(yōu)良音質(zhì)的情況下最高通信速率為32Kbit/s,在實(shí)際使用過程中還可以適當(dāng)降低采樣率,從而降低帶寬要求,與基于VOIP技術(shù)協(xié)議的廣播對(duì)講系統(tǒng)相比,具有明顯的效果優(yōu)勢。如果在每臺(tái)廣播對(duì)講設(shè)備中使用2片VS1003,一片專門用于播放網(wǎng)絡(luò)語音,另一片專門用于錄音編碼發(fā)送,加上回聲抑制技術(shù)即可實(shí)現(xiàn)煤礦井下全雙工通話。

        3)可實(shí)時(shí)播放多種格式音樂,實(shí)現(xiàn)區(qū)域廣播以及多方通話。因VS1003支持大多數(shù)音頻文件解碼,系統(tǒng)配上后臺(tái)軟件后,可實(shí)現(xiàn)在線廣播MP3音樂,另外因系統(tǒng)采用的是組播傳輸,可以在不增加任何帶寬條件下,軟件可靈活控制終端設(shè)備是否加入組播,因此可以實(shí)現(xiàn)分區(qū)廣播,多方通話功能,這是傳統(tǒng)模擬系統(tǒng)無法實(shí)現(xiàn)的。

        5結(jié)束語

        實(shí)踐證明,采用ADPCM編解碼技術(shù)實(shí)現(xiàn)的煤礦廣播對(duì)講系統(tǒng),音頻失真度低,抗干擾能力強(qiáng),語音效果優(yōu)良,并具備許多附加功能,可替代傳統(tǒng)模擬電話。系統(tǒng)運(yùn)行穩(wěn)定,可解決煤礦語音通信故障率高,抗干擾能力差的問題,為煤礦提供了一種高質(zhì)量的語音通信解決方案,具有較強(qiáng)的實(shí)用價(jià)值。

        參考文獻(xiàn)

        [1]陳溯.ADPCM語音壓縮編碼的分析與仿真[J].中國西部科技,2008,7(32):51-53.

        [2]陳明義.基于FPGA的ADPCM語音編解碼器設(shè)計(jì)時(shí)限[J].電子科技,2007(1):44-47.

        [3]徐博,郭秋敏.基于SPI協(xié)議的音頻流解碼系統(tǒng)的研究與設(shè)計(jì)[J].工礦自動(dòng)化,2011(1):44-49.

        endprint

        摘要簡要介紹ADPCM技術(shù)原理和數(shù)字音頻芯片VS1003在煤礦廣播對(duì)講系統(tǒng)中應(yīng)用的關(guān)鍵技術(shù)設(shè)計(jì),并闡述了該方案的優(yōu)點(diǎn),為煤礦基于現(xiàn)有寬帶網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)字語音廣播對(duì)講提供了一種新的方法,具有較強(qiáng)的實(shí)用價(jià)值。

        關(guān)鍵詞ADPCM;數(shù)字語音;VS1003;煤礦廣播對(duì)講

        中圖分類號(hào):TN828 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1671-7597(2014)11-0107-02

        自適應(yīng)差分脈沖編碼調(diào)制(ADPCM)技術(shù)能以32kbit/s碼率達(dá)到符合64kbit/s碼率的語音質(zhì)量要求,因此國際電報(bào)電話咨詢委員會(huì)(CCITT)在1984年提出了基于ADPCM語音編碼的G.721建議,1986年進(jìn)行了實(shí)用化修正后應(yīng)用到了最早的數(shù)字通信系統(tǒng)中[1]。煤礦生產(chǎn)離不開通信廣播,目前大部分煤礦仍然在大量使用傳統(tǒng)的模擬電話,因井下環(huán)境惡劣,噪聲大,電磁干擾嚴(yán)重,導(dǎo)致電話通信故障頻發(fā),通話時(shí)斷時(shí)續(xù),聽不清對(duì)方說話的內(nèi)容。為保障井下作業(yè)人員聯(lián)系和信息暢通,提高了煤礦語音通信質(zhì)量,采用數(shù)字語音通信技術(shù)具有其獨(dú)特的優(yōu)勢,同時(shí),基于煤礦現(xiàn)有寬帶網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)字語音通信也是數(shù)字化煤礦技術(shù)的一個(gè)重要組成部分。本文就基于ADPCM技術(shù)實(shí)現(xiàn)煤礦數(shù)字化廣播對(duì)講系統(tǒng)的關(guān)鍵技術(shù)原理和實(shí)現(xiàn)方法進(jìn)行論述。

        1ADPCM編解碼原理

        ADPCM用預(yù)測編碼來壓縮數(shù)據(jù),其核心思想是利用自適應(yīng)的思想改變量化階的大小[2],實(shí)際上編碼記錄并不是語音波形的真實(shí)幅度,而是對(duì)當(dāng)前樣本與預(yù)測樣本之間的差值進(jìn)行量化編碼,為減小斜率過載以及顆粒噪聲,根據(jù)統(tǒng)計(jì)算法自動(dòng)修正量化階的大小,差值較小時(shí)使用小的量化階編碼,差值較大時(shí)使用大的量化階編碼,并使用過去的樣本值估算下一個(gè)輸入樣本與預(yù)測值,使實(shí)際樣本值與預(yù)測值之間的差值最小,采用非均勻量化,保證不同幅度信號(hào)的信噪比在同一水平。解碼是編碼的逆過程,解碼的輸入即為編碼的輸出,在此不再贅述。

        2數(shù)字語音硬件實(shí)現(xiàn)

        由于ADPCM編解碼技術(shù)優(yōu)勢明顯,應(yīng)用廣泛,各大音頻處理芯片制造商均有自己專門或兼容ADPCM編解碼格式的數(shù)字音頻處理芯片。VS1003b是芬蘭LVSI半導(dǎo)體公司一款價(jià)格低廉,功能強(qiáng)大,支持多種音頻格式文件的解碼,能對(duì)話筒輸入或線路輸入進(jìn)行IMA-ADPCM編碼,帶DSP內(nèi)核以及PLL時(shí)鐘鎖相環(huán)倍頻器,片內(nèi)含高性能數(shù)模轉(zhuǎn)換器,有5.5KB供用戶使用的程序代碼和數(shù)據(jù)RAM空間,具有SPI串行數(shù)據(jù)接口以及URAT通信接口。該器件能完全滿足礦用廣播通信系統(tǒng)的功能要求,應(yīng)用電路如圖1所示。

        圖中X1、R1~R4、C1~C6為麥克風(fēng)輸入電路,R6-R10、C7~C12為立體聲音頻輸出電路,RCAP為線路輸入提供偏置,晶振Y1的振蕩頻率為12.288MHz,UART串口不用時(shí)RX必須接高電平,與CPU采用SPI串行接口,XRESET用于控制芯片復(fù)位,DREQ為外部中斷,XDCS用于區(qū)分SPI接口傳輸?shù)氖菙?shù)據(jù)還是命令碼。

        圖1VS1003應(yīng)用電路

        3基于ADPCM的廣播對(duì)講軟件實(shí)現(xiàn)

        采用VS1003實(shí)現(xiàn)廣播對(duì)講,ADPCM編碼進(jìn)行遠(yuǎn)程傳輸,只要網(wǎng)絡(luò)有效帶寬在32K以上,即可保證語音數(shù)據(jù)的實(shí)時(shí)傳輸。為保證實(shí)時(shí)性以及能實(shí)現(xiàn)多方對(duì)講,以UDP組播為基礎(chǔ)的RTP/RTCP協(xié)議,若要完全實(shí)現(xiàn)RTP/RTCP協(xié)議比較復(fù)雜并且需要占用較多的CPU資源,本文采用RTCP的傳輸控制模式,自行設(shè)計(jì)一套簡單傳輸控制協(xié)議。在應(yīng)用中需要注意, UDP并非可靠傳輸,數(shù)據(jù)報(bào)文有可能后發(fā)而先至,對(duì)方在播放之前必須對(duì)報(bào)文進(jìn)行排序,因此編碼報(bào)文中必須包含報(bào)文的ID序號(hào)。

        VS1003可以解碼多種音頻數(shù)據(jù),以何種方式解碼,依靠送入芯片的文件頭格式進(jìn)行自適應(yīng)編碼判斷,因此需要在編碼數(shù)據(jù)前增加一個(gè)WAV文件頭做先導(dǎo)才能正常解碼。在每次語音播放開始時(shí)先向VS1003發(fā)送512字節(jié)文件頭,然后再將接收到的報(bào)文數(shù)據(jù)依次送入VS1003,芯片即可進(jìn)行自適應(yīng)解碼并輸出模擬音頻信號(hào)。WAV文件頭的制作過程簡單描述如下。

        1)設(shè)計(jì)兩個(gè)常量數(shù)組分別定義如下:

        const uint8 RIFFHeader0[] = {

        'R' , 'I' , 'F' , 'F' , // Chunk ID (RIFF)

        0xff, 0xff, 0xff, 0xff, // Chunk payload size (calculate after rec!)

        'W' , 'A' , 'V' , 'E' , // RIFF resource format type

        'f' , 'm' , 't' , ' ' , // Chunk ID (fmt )

        0x14, 0x00, 0x00, 0x00, // Chunk payload size (0x14 = 20 bytes)

        0x11, 0x00, // Format Tag (IMA ADPCM)

        0x01, 0x00, // Channels (1)

        0x80, 0x3e, 0x00, 0x00, // Sample Rate, 0x3e80 = 16.0kHz

        0xd7, 0x0f, 0x00, 0x00, // Average Bytes Per Second

        0x00, 0x01, // Data Block Size (256 bytes)

        0x04, 0x00, // ADPCM encoded bits per sample (4 bits)

        0x02, 0x00, // Extra data (2 bytes)

        0xf9, 0x01, // Samples per Block (505 samples)

        'f' , 'a' , 'c' , 't' , // Chunk ID (fact)

        0xc8, 0x01, 0x00, 0x00, // Chunk payload size (456 bytes (zeropad!))

        0xff, 0xff, 0xff, 0xff// Number of Samples (calculate after rec!)

        }

        const uint8 RIFFHeader504[] = {

        'd' , 'a' , 't' , 'a' , // Chunk ID (data)

        0xff, 0xff, 0xff, 0xff// Chunk payload size (calculate after rec!)

        }

        2)程序中定義一個(gè)512字節(jié)長度的臨時(shí)數(shù)組,全初始化為零,再將前52個(gè)字節(jié)用RIFFHeader0代替,將最后8個(gè)字節(jié)用RIFFHeader504代替,以上有3個(gè)需要計(jì)算長度的地方全部用0xff代替,根據(jù)采樣速率的不同,Sample Rate的具體數(shù)值需要調(diào)整。

        3)每次播放ADPCM語音之前將上述512字節(jié)首先送入VS1003。

        ADPCM錄音保存的方法是,從VS1003讀取編碼數(shù)據(jù)后一方面通過網(wǎng)絡(luò)發(fā)送出去,另一方面建立或打開一個(gè)WAV文件,將錄音數(shù)據(jù)保存到文件中。WAV文件頭的簡單制作過程在前文中已有說明,只是在錄音結(jié)束后,利用最終的文件長度分別計(jì)算上文中的3個(gè)長度值,然后重新寫入文件,形成一個(gè)正常的WAV文件。

        4基于ADPCM的煤礦廣播對(duì)講系統(tǒng)特點(diǎn)

        由于采用了ADPCM數(shù)字語音技術(shù),與傳統(tǒng)的模擬或基于其他技術(shù)實(shí)現(xiàn)的廣播對(duì)講系統(tǒng)相比具有以下優(yōu)勢。

        1)系統(tǒng)抗干擾能力強(qiáng),無傳輸損耗,可借助已有數(shù)字通信網(wǎng)絡(luò),實(shí)現(xiàn)遠(yuǎn)距離傳輸。由于廣播對(duì)講系統(tǒng)采用了數(shù)字音頻編解碼器以及數(shù)字通信技術(shù),顯著提高了系統(tǒng)抗干擾能力,減小了使用環(huán)境的影響,降低了對(duì)電源的要求,并可采用本安電路實(shí)現(xiàn),信號(hào)傳輸過程幾乎沒有損耗和失真,傳輸距離不受限制。

        2)通信帶寬要求低,語音效果優(yōu)良,可實(shí)現(xiàn)全雙工通話。ADPCM在保證優(yōu)良音質(zhì)的情況下最高通信速率為32Kbit/s,在實(shí)際使用過程中還可以適當(dāng)降低采樣率,從而降低帶寬要求,與基于VOIP技術(shù)協(xié)議的廣播對(duì)講系統(tǒng)相比,具有明顯的效果優(yōu)勢。如果在每臺(tái)廣播對(duì)講設(shè)備中使用2片VS1003,一片專門用于播放網(wǎng)絡(luò)語音,另一片專門用于錄音編碼發(fā)送,加上回聲抑制技術(shù)即可實(shí)現(xiàn)煤礦井下全雙工通話。

        3)可實(shí)時(shí)播放多種格式音樂,實(shí)現(xiàn)區(qū)域廣播以及多方通話。因VS1003支持大多數(shù)音頻文件解碼,系統(tǒng)配上后臺(tái)軟件后,可實(shí)現(xiàn)在線廣播MP3音樂,另外因系統(tǒng)采用的是組播傳輸,可以在不增加任何帶寬條件下,軟件可靈活控制終端設(shè)備是否加入組播,因此可以實(shí)現(xiàn)分區(qū)廣播,多方通話功能,這是傳統(tǒng)模擬系統(tǒng)無法實(shí)現(xiàn)的。

        5結(jié)束語

        實(shí)踐證明,采用ADPCM編解碼技術(shù)實(shí)現(xiàn)的煤礦廣播對(duì)講系統(tǒng),音頻失真度低,抗干擾能力強(qiáng),語音效果優(yōu)良,并具備許多附加功能,可替代傳統(tǒng)模擬電話。系統(tǒng)運(yùn)行穩(wěn)定,可解決煤礦語音通信故障率高,抗干擾能力差的問題,為煤礦提供了一種高質(zhì)量的語音通信解決方案,具有較強(qiáng)的實(shí)用價(jià)值。

        參考文獻(xiàn)

        [1]陳溯.ADPCM語音壓縮編碼的分析與仿真[J].中國西部科技,2008,7(32):51-53.

        [2]陳明義.基于FPGA的ADPCM語音編解碼器設(shè)計(jì)時(shí)限[J].電子科技,2007(1):44-47.

        [3]徐博,郭秋敏.基于SPI協(xié)議的音頻流解碼系統(tǒng)的研究與設(shè)計(jì)[J].工礦自動(dòng)化,2011(1):44-49.

        endprint

        亚洲国产成人va在线观看天堂| 国产精品国产三级国产专播下| 亚洲国产精品成人精品无码区在线| 高清偷自拍第1页| 国产最新AV在线播放不卡| 亚洲国产精品一区亚洲国产| 自拍偷自拍亚洲一区二区| 女人张开腿让男桶喷水高潮| 少妇三级欧美久久| 一区二区三区国产偷拍| 日本人妻免费一区二区三区| 亚洲va中文字幕无码毛片| 欧美日韩国产免费一区二区三区欧美日韩 | 亚洲久热无码av中文字幕| 无码成年性午夜免费网站蜜蜂| 蕾丝女同一区二区三区| 人妻无码一区二区三区免费| 色狠狠色狠狠综合一区| 亚洲中文字幕乱码一二三区| 人妻少妇精品专区性色anvn | 日本久久精品免费播放| 精品不卡视频在线网址| 国产精品无码dvd在线观看| 久久天天躁狠狠躁夜夜96流白浆 | 久久亚洲av无码精品色午夜| 99久久亚洲精品无码毛片| 老熟女一区二区免费| 日本一区二区三级在线| 婷婷五月婷婷五月| 亚洲手机国产精品| 手机在线看片在线日韩av| 狠狠色欧美亚洲狠狠色www| 午夜精品久久久久久中宇| 国内精品视频成人一区二区| 久久精品国产亚洲av久按摩| gv天堂gv无码男同在线观看| 亚洲AV永久青草无码性色av| 美女性色av一区二区三区| 国产做无码视频在线观看| 欧美高大丰满freesex| 国产麻豆精品久久一二三|