2023
数字化
语音
存储
回放
系统
数字化语音存储与回放系统
高海春, 任开达, 孔德峰, 徐和杰, 李文瑜
(华东船舶工业学院电子与信息系, 江苏 镇江 212023)
摘 要: 设计并制作了一个数字化语音存储与回放系统,由于采用了滑动平均值滤波法进行数字滤涉及非失真压缩算法,该系统获得了稳定的性能。
关键词: 语音; 单片机应用; 回放系统
0 引 言
传统的磁带语音录放系统因其体积大、使用不便,在电子与信息处理的使用中受到许多限制。本文提出的体积小巧,功耗低的数字化语音存储与回放系统将完全可以替代它。数字化语音存储与回放系统的根本原理是对语音的录音与放音的数字控制。其中,关键技术在于:为了增加语音存储时间,提高存储器的利用率,采用了非失真压缩算法对语音信号进行压缩后再存储,而在回放时再进行解压缩;同时,对输入语音信号进行数字滤波以抑制杂音和干扰,从而确保了语音回放的可靠质量。
1 根本原理
1) 语音采集原理
人耳能听到的声音是一种频率范围为20 Hz~20 000 Hz ,而一般语音频率最高为3 400 Hz。语音的采集是指语音声波信号经麦克风和高频放大器转换成有一定幅度的模拟量电信号,然后再转换成数字量的全过程。根据“奈奎斯特采样定理〞, 采样频率必须大于模拟信号最高频率的两倍[1 ] ,由于语音信号频率为300~3 400 Hz ,所以把语音采集的采样频率定为8 kHz。
2) 语音生成原理
单片机语音生成过程,可以看成是语音采集过程的逆过程,但又不是原封不动地恢复原来的语音,而是对原来语音的可控制、可重组的实时恢复。在放音时,只要依原先的采样值经D/ A 接口处理,便可使原音重现。
2 硬件设计
2. 1 单片机系统控制电路
本系统主要由8031 、ADC0808 、DAC0832 、8255及RAM62256组成,其中ADC0808 、DAC0832及8255的片选信号由8031 的高位地址经74LS138 译码所得。在电路中利用8255 进行数字存储器的扩展,其中PB ,PC 用于扩展地址,PA 用于扩展数据。
2. 2 A/ D 电路
A/ D 电路由模拟语音信号处理电路及A/ D 转换电路组成。其工作原理如图1 。
图1 A/ D 电路
整个模拟语音信号输入处理电路,包括:前置放大器、带通滤波器及电平范围调整电路。一般麦克风输出电平为几十毫伏,经增益约为46 dB 的前置放大器A 1 放大至1 V 左右的范围,以便推动后级电路。带通滤波器的通带为300~3 400 Hz ,系统的采样频率定为8 kHz ,即每秒钟采样8 000 点语音数据,每一点数据以一个字节表示电平范围调整电路是将原先双极性的语音信号转换到0~5V 的范围,以满足ADC0808 对接口信号的要求。
2. 3 D/ A 电路
图2 为D/ A 转换的工作原理图。D/ A 芯片DAC0832 是8 位双极性电流驱动的数模转换器。
图2 D/ A 转换器
由于所要转换输出的信号为语音信号,其本身是双极性的信号,因此对杂音的处理尤其重要。在无信号输出时,希望其输出对地是零电位,因此应用两组运算放大器作为电流到电压的转换器,完成双极性控制的目的。数字信号经D/ A 转换、双极性电流至电压变换后已成为模拟语音信号,经带通滤波器再送往音频功率放大器,做适当的功率提升而推动喇叭。
214 带通滤波器设计
为了滤除不必要的干扰及杂波,系统前向通道和后向通道中各设计了一个通带为300 Hz ~3 400 Hz 的带通滤波器。此带通滤波器由一个低通滤波器和一个高通滤波器串联而成。其中低通滤波器上限频率为3 400 Hz ,高通滤波器下限频率为300 Hz ,电路如图3 所示,其中A 1 构成低通滤波器,A 2 构成高通滤波器。如选R1 = R2 , C1 = C2 ,R5 = R6 , C3 = C4 ,那么有: f H = 1/ (2πR1 C1) 、f L = 1/ (2πR5 C3) ,故很易选定各参数值[2 ] 。
图3 带通滤波器电路
3 软件设计
3. 1 总体程序设计
系统程序由三局部组成,即主程序、键盘中断处理程序和系统定时器中断处理程序。各局部程序功能如下所述:
1) 主程序
程序中将程序运行状态分为四种,即FREE (空闲态) 、RECORD(录音) 、PLAY(回放) 、ALARM (录音完毕报警) 。在主程序中仅依靠当前状态设置各L ED 的亮或灭,以指示当前工作状态。
2) 键盘中断处理程序
键盘中断处理程序框图如图4 。假设“录音〞键按下,那么设置当前状态为“RECORD〞,假设“放音〞键按下,那么设置当前状态为“PLAY〞。
3) 定时器中断处理程序
由定时器产生定时中断,定时时间为0. 125 ms。在程序中对应于当前不同的工作状态做相应的处理。程序流程如图5 。
3. 2 数字滤波程序
输入A/ D 转换器的信号虽然经过带通滤波器滤波,但由于ADC0808 进行A/ D 转换时,末位数据会有跳变,故产生了高频信号,因此要进行数字滤波。数字滤波方法主要有算术平均值滤波、加权平均值滤波、滑动平均值滤波等[3 ] 。其中算术平均值滤波和加权平均值滤波都要采样多个数据,然后求算术平均值或加权平均值,但由于必须采样屡次,故检测速度较慢,所以采用滑动平均值滤波。其算法为:
先在存储器RAM 中建立一个数据缓冲区,依次存放8 个数据,每采进一个新数据,就将最早采集的那个数据丢掉,而后求包括新数据在内的8 个数据的算术平均值。这样每进行一次采样,即可算出一个新平均值,大大增加了数据处理的速度。其具体程序流程,这里就不再赘述。
313 语音压缩与解压
由于数字语音信号数据庞大,10 s 语音信号数据即需80 K存储器,为了提高存储器的利用率,必须进行数据压缩。数据压缩算法可分为失真压缩算法和非失真压缩算法。失真压缩算法一般是对信号进行付立叶变换,然后抽取有用频率分量,解压时进行反变换,从而恢复有用信号,采用此种压缩算法压缩量较大,但本系统却不宜采用,主要原因有两点: ①语音信号频带较窄,采用付氏变换会丧失局部有用频率分量,从而引起失真。②付氏变换运算量庞大,8 位单片机很难应付。所以采用非失真压缩算法。
其具体算法为:当有两个以上连续相等的数据时,可以用三个字节表示,即前两个字节相等表示被压缩的数据值,后一个字节表示重复的次数。由于语音信号自身的特点,即冗余度大,这就为此种压缩提供了可能。同样,在解压时,程序读入数据流,当遇到两个相等数据时那么重复此数,重复次数由后一个数据决定。其压缩算法程序框图如图6 所示。
4 测试结果
4.1放大器测试
系统中有两个放大器:一个是前置放大器,另一个是功率放大器。放大器设计为增益可调,实际测试中增益范围为0~60 dB。
4. 2 带通滤波器测试
在数据采集和数据输出中所用的两个带通滤波器电路完全一致。在测试中,一个带通滤波器的通带是300~3400 Hz ,另一个是400~3 400 Hz。
4. 3 语音存储时间测试
在没有进行语音压缩时,语音存储时间实测约13 s ,采用压缩算法以后存储时间在20 s 以上。
4. 4 录、放音测试
将语音信号从麦克风输入,待存储器存满后,按放音键回放语音信号并调整放大器增益,使语音信号不失真地输出,实现系统功能。结果说明:该系统增益调节宽,抑制杂音能力强,数字化语音存储时间长。随着语音功能在电子信息业中的使用越来越普及,本系统必将有很广阔的应用前景。
参考文献:
[1 ] 程佩青. 数字信号处理教程[M] . 北京:清华大学出版社,1995.
[2 ] 李华. MCS 系列单片机实用接口技术[M] . 北京: 北京航空航天大学出版社,1993.
[3 ] 潘新民. 单片机实用系统设计[M] . 北京: 人民邮电出版社,1992.
Digital Voice Storage and Playback System
GAO Hai2chun , R EN Kai2da , KON G De2f eng , XU He2jie , L I Wen2yu
(Dept . of Electronics and Information , East China Shipbuilding Institute , Zhenjiang Jiangsu 212023 ,China)
Abstract : An excellent method is presented to design digital voice storage and playback system. Because of application of no distortion compress algorithm and moving average value filtering algorithm for digital fil2ter , the performance of the digital voice storage and playback system can be greatly stable.
Key words : voice ; single2chip computer application ; playback system