您当前的位置:首页 > 计算机论文>软件开发论文

数字化语音存储与回放系统设计

2015-08-21 08:51 来源:学术参考网 作者:未知

摘 要:数字化语音存储与回放系统设计主要以单片机为核心,具有结构紧凑、灵活录音和回放功能、语音音量自动控制功能。本文主要从系统方案、硬件设计、软件设计方面介绍了数字化语音存储与回放系统的设计。

关键词:数字化语音存储与回放系统设计;单片机;系统方案;硬件设计;软件设计
  引言:在电子与信息处理的使用中,已采用数字化语音存储与回放系统完全代替了传统的磁带语音录放系统,它体积小巧、功耗低,主要以对语音的录音与放音的数字控制为基本原理,其主要技术在于:采用了非失真压缩算法对语音信号进行压缩后再存储,不仅增加了语音存储时间,同时也提高了存储器的利用率,从而确保了语音回放的可靠质量。
  一、系统方案
  语音芯片的种类虽多,但有的缺乏灵活性,难以满足不同场合的需要。为此,可使用微处理器控制的语音数字化存储与回放系统。系统采用高速LinCMOS8位模数转换器TLC0820AC完成语音信息的采集,用两片静态RAM628128作片外数据存储器,用以存放语音信息, DAC0832完成语音回放。该系统对语音信号的采样频率为8/4kHz,能对语音进行压缩,回放音质较好,其结构原理如图1所示。



      图1 结构原理图
  语音信号经放大滤波后,送入A/D进行模数转换。转换后的数字化语音信号,通过单片机的控制写入片外数据存储器,完成语音数字化存储。回放时,单片机从数据存储器中将数据读出,送入并行D/A转换器,进行数模转换,转换后的模拟信号经滤波、功率放大后,实现语音回放。
  二、硬件设计
  2.1 单片机系统控制电路
  本系统主要由8031、ADC0808、DAC0832、8255及RAM62256组成,其中ADC0808、DAC0832及8255的片选信号由8031的高位地址经74LS138译码所得。在电路中利用8255进行数字存储器的扩展,其中PB,PC用于扩展地址,PA用于扩展数据。
  2.2 A/D电路
  A/D电路由模拟语音信号处理电路及A/D转换电路组成。其工作原理如图2。



      图2 A/D电路
  整个模拟语音信号输入处理电路,包括:前置放大器、带通滤波器及电平范围调整电路。一般麦克风输出电平为几十毫伏,经增益约为46 dB的前置放大器A1放大至1 V左右的范围,以便推动后级电路。带通滤波器的通带为300~3 400 Hz,系统的采样频率定为8 kHz,即每秒钟采样8 000点语音数据,每一点数据以一个字节表示。电平范围调整电路是将原先双极性的语音信号转换到0~5V的范围,以满足ADC0808对接口信号的要求。
  2.3 D/A电路
  图3为D/A转换的工作原理图。D/A芯片DAC0832是8位双极性电流驱动的数模转换器。



    图3 D/A转换器
  由于所要转换输出的信号为语音信号,其本身是双极性的信号,因此对杂音的处理尤其重要。在无信号输出时,希望其输出对地是零电位,因此应用两组运算放大器作为电流到电压的转换器,完成双极性控制的目的。数字信号经D/A转换、双极性电流至电压变换后已成为模拟语音信号,经带通滤波器再送往音频功率放大器,做适当的功率提升而推动喇叭。
  2.4 带通滤波器设计
  为了滤除不必要的干扰及杂波,系统前向通道和后向通道中各设计了一个通带为300 Hz~3 400 Hz的带通滤波器。此带通滤波器由一个低通滤波器和一个高通滤波器串联而成。其中低通滤波器上限频率为3 400 Hz,高通滤波器下限频率为300 Hz,电路如图4所示,其中A1构成低通滤波器,A2构成高通滤波器。如选R1=R2,C1=C2,R5=R6,C3=C4,则有:fH=1/(2πR1C1)、fL=1/(2πR5C3),故很易选定各参数值。

      图4  带通滤波器电路
  三、软件设计
  3.1 总体程序设计
  系统程序由三部分组成,即主程序、键盘中断处理程序和系统定时器中断处理程序。各部分程序功能如下所述:
  1)主程序
  程序中将程序运行状态分为四种,即FREE(空闲态)、RECORD(录音)、PLAY(回放)、ALARM(录音完毕报警)。在主程序中仅依靠当前状态设置各LED的亮或灭,以指示当前工作状态。
  2)键盘中断处理程序
  键盘中断处理程序框图如图5。若“录音”键按下,则设置当前状态为“RECORD”,若“放音”键按下,则设置当前状态为“PLAY”。


    图5 键盘中断处理程序框图
  3)定时器中断处理程序
由定时器产生定时中断,定时时间为0.125 ms。在程序中对应于当前不同的工作状态做相应的处理。
  3.2 数字滤波程序
  输入A/D转换器的信号虽然经过带通滤波器滤波,但由于ADC0808进行A/D转换时,末位数据会有跳变,故产生了高频信号,因此要进行数字滤波。数字滤波方法主要有算术平均值滤波、加权平均值滤波、滑动平均值滤波等[3]。其中算术平均值滤波和加权平均值滤波都要采样多个数据,然后求算术平均值或加权平均值,但由于必须采样多次,故检测速度较慢,所以采用滑动平均值滤波。其算法为:先在存储器RAM中建立一个数据缓冲区,依次存放8个数据,每采进一个新数据,就将最早采集的那个数据丢掉,而后求包括新数据在内的8个数据的算术平均值。这样每进行一次采样,即可算出一个新平均值,大大增加了数据处理的速度。其具体程序流程,这里就不再赘述。
  3.3 语音压缩与解压
由于数字语音信号数据庞大,10 s语音信号数据即需80K存储器,为了提高存储器的利用率,必须进行数据压缩。数据压缩算法可分为失真压缩算法和非失真压缩算法。失真压缩算法一般是对信号进行付立叶变换,然后抽取有用频率分量,解压时进行反变换,从而恢复有用信号,采用此种压缩算法压缩量较大,但本系统却不宜采用,主要原因有两点:①语音信号频带较窄,采用付氏变换会丢失部分有用频率分量,从而引起失真。②付氏变换运算量庞大,8位单片机很难应付。所以采用非失真压缩算法。其具体算法为:当有两个以上连续相等的数据时,可以用三个字节表示,即前两个字节相等表示被压缩的数据值,后一个字节表示重复的次数。由于语音信号自身的特点,即冗余度大,这就为此种压缩提供了可能。同样,在解压时,程序读入数据流,当遇到两个相等数据时则重复此数,重复次数由后一个数据决定。
  四、总结
  本系统完成了语音拾取、数字化存储及回放功能。对300Hz~3. 4kHz范围内音频信号进行存储和回放,低频段效果较好,高频段稍次。如果提高采样频率,高频段音质可得到改善。带通滤波器矩形系数稍差。如果采用高阶(如四阶或六阶)带通滤波器,噪音会减少,信噪比能得以改善。同时,系统电路简单,程序简洁。采用闪速存储器保存语音数据,即使断电数据仍不失,所以保存数据安全可靠。若在软件中增加数据压缩算法,可节省存储空间,是一种实用的电路方案。
参考文献:
[1]赵 力.语音信号处理[M].北京:机械工业出版社,2002.
[2]程佩青.数字信号处理教程[M].北京:清华大学出版社, 1995.
[3]潘新民.单片机实用系统设计[M].北京:人民邮电出版社, 1992.
[4]李 华.MCS系列单片机实用接口技术[M].北京:北京航空航天大学出版社, 1993.

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页