注: VS1103 与 VS1003 硬件完全相同, 软件也完全兼容, 但价格更具优势, 如有需要, 请与我们联系
介绍ADPCM技术原理和数字音频芯片VS1003在煤矿广播对讲系统中应用的关键技术设计,并阐述了该方案的优点,为煤矿基于现有宽带网络实现数字语音广播对讲提供了一种新的方法,具有较强的实用价值。
关键词ADPCM;数字语音;VS1003;煤矿广播对讲
中图分类号:TN828 文献标识码:B 文章编号:1671-7597(2014)11-0107-02
自适应差分脉冲编码调制(ADPCM)技术能以32kbit/s码率达到符合64kbit/s码率的语音质量要求,因此国际电报电话咨询委员会(CCITT)在1984年提出了基于ADPCM语音编码的G.721建议,1986年进行了实用化修正后应用到了最早的数字通信系统中[1]。煤矿生产离不开通信广播,目前大部分煤矿仍然在大量使用传统的模拟电话,因井下环境恶劣,噪声大,电磁干扰严重,导致电话通信故障频发,通话时断时续,听不清对方说话的内容。为保障井下作业人员联系和信息畅通,提高了煤矿语音通信质量,采用数字语音通信技术具有其独特的优势,同时,基于煤矿现有宽带网络实现数字语音通信也是数字化煤矿技术的一个重要组成部分。本文就基于ADPCM技术实现煤矿数字化广播对讲系统的关键技术原理和实现方法进行论述。
1ADPCM编解码原理
ADPCM用预测编码来压缩数据,其核心思想是利用自适应的思想改变量化阶的大小[2],实际上编码记录并不是语音波形的真实幅度,而是对当前样本与预测样本之间的差值进行量化编码,为减小斜率过载以及颗粒噪声,根据统计算法自动修正量化阶的大小,差值较小时使用小的量化阶编码,差值较大时使用大的量化阶编码,并使用过去的样本值估算下一个输入样本与预测值,使实际样本值与预测值之间的差值最小,采用非均匀量化,保证不同幅度信号的信噪比在同一水平。解码是编码的逆过程,解码的输入即为编码的输出,在此不再赘述。
2数字语音硬件实现
由于ADPCM编解码技术优势明显,应用广泛,各大音频处理芯片制造商均有自己专门或兼容ADPCM编解码格式的数字音频处理芯片。VS1003b是芬兰LVSI半导体公司一款价格低廉,功能强大,支持多种音频格式文件的解码,能对话筒输入或线路输入进行IMA-ADPCM编码,带DSP内核以及PLL时钟锁相环倍频器,片内含高性能数模转换器,有5.5KB供用户使用的程序代码和数据RAM空间,具有SPI串行数据接口以及URAT通信接口。该器件能完全满足矿用广播通信系统的功能要求,应用电路如图1所示。
图中X1、R1~R4、C1~C6为麦克风输入电路,R6-R10、C7~C12为立体声音频输出电路,RCAP为线路输入提供偏置,晶振Y1的振荡频率为12.288MHz,UART串口不用时RX必须接高电平,与CPU采用SPI串行接口,XRESET用于控制芯片复位,DREQ为外部中断,XDCS用于区分SPI接口传输的是数据还是命令码。
图1VS1003应用电路
3基于ADPCM的广播对讲软件实现
采用VS1003实现广播对讲,ADPCM编码进行远程传输,只要网络有效带宽在32K以上,即可保证语音数据的实时传输。为保证实时性以及能实现多方对讲,以UDP组播为基础的RTP/RTCP协议,若要完全实现RTP/RTCP协议比较复杂并且需要占用较多的CPU资源,本文采用RTCP的传输控制模式,自行设计一套简单传输控制协议。在应用中需要注意, UDP并非可靠传输,数据报文有可能后发而先至,对方在播放之前必须对报文进行排序,因此编码报文中必须包含报文的ID序号。
VS1003可以解码多种音频数据,以何种方式解码,依靠送入芯片的文件头格式进行自适应编码判断,因此需要在编码数据前增加一个WAV文件头做先导才能正常解码。在每次语音播放开始时先向VS1003发送512字节文件头,然后再将接收到的报文数据依次送入VS1003,芯片即可进行自适应解码并输出模拟音频信号。WAV文件头的制作过程简单描述如下。
1)设计两个常量数组分别定义如下:
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)程序中定义一个512字节长度的临时数组,全初始化为零,再将前52个字节用RIFFHeader0代替,将最后8个字节用RIFFHeader504代替,以上有3个需要计算长度的地方全部用0xff代替,根据采样速率的不同,Sample Rate的具体数值需要调整。
3)每次播放ADPCM语音之前将上述512字节首先送入VS1003。
ADPCM录音保存的方法是,从VS1003读取编码数据后一方面通过网络发送出去,另一方面建立或打开一个WAV文件,将录音数据保存到文件中。WAV文件头的简单制作过程在前文中已有说明,只是在录音结束后,利用最终的文件长度分别计算上文中的3个长度值,然后重新写入文件,形成一个正常的WAV文件。
4基于ADPCM的煤矿广播对讲系统特点
由于采用了ADPCM数字语音技术,与传统的模拟或基于其他技术实现的广播对讲系统相比具有以下优势。
1)系统抗干扰能力强,无传输损耗,可借助已有数字通信网络,实现远距离传输。由于广播对讲系统采用了数字音频编解码器以及数字通信技术,显著提高了系统抗干扰能力,减小了使用环境的影响,降低了对电源的要求,并可采用本安电路实现,信号传输过程几乎没有损耗和失真,传输距离不受限制。
2)通信带宽要求低,语音效果优良,可实现全双工通话。ADPCM在保证优良音质的情况下最高通信速率为32Kbit/s,在实际使用过程中还可以适当降低采样率,从而降低带宽要求,与基于VOIP技术协议的广播对讲系统相比,具有明显的效果优势。如果在每台广播对讲设备中使用2片VS1003,一片专门用于播放网络语音,另一片专门用于录音编码发送,加上回声抑制技术即可实现煤矿井下全双工通话。
3)可实时播放多种格式音乐,实现区域广播以及多方通话。因VS1003支持大多数音频文件解码,系统配上后台软件后,可实现在线广播MP3音乐,另外因系统采用的是组播传输,可以在不增加任何带宽条件下,软件可灵活控制终端设备是否加入组播,因此可以实现分区广播,多方通话功能,这是传统模拟系统无法实现的。
5结束语
实践证明,采用ADPCM编解码技术实现的煤矿广播对讲系统,音频失真度低,抗干扰能力强,语音效果优良,并具备许多附加功能,可替代传统模拟电话。系统运行稳定,可解决煤矿语音通信故障率高,抗干扰能力差的问题,为煤矿提供了一种高质量的语音通信解决方案,具有较强的实用价值。