ISD4004在具有接近功能的立体声语音系统中的应用
本文正是基于这个思想,应用美国ISD公司制造的语音芯片ISD4004来实现简单的双声道立体声语音录放系统,并采用ATMEL公司的AVR系列单片机MEGA8L作为微控制器。该单片机的工作电压和ISD4004的工作电压相同,均为3 V供电,并且该单片机集成了系统所需要的大部分外围器件,包括8 kB系统内可编程FLASH程序存储器,1 kB SRAM,512 B E2PROM,WATCHDOG以及晶振等,从而大大简化了系统的构成。
1 ISD4004芯片简介
ISD4004芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动降噪及高密度多电平闪烁存贮阵列。引脚包括电源、时钟、语音信号模拟输入/输出端及MCU接口(SPI接口)几部分。芯片采用多级存储技术,即声音无须A/D转换和D/A转换,采用模拟量直接存储技术,因此能够真实、自然地再现声音。ISD4004系列单片录放时间根据不同的采样频率可有8~16 min不等,采样频率可为4.0 kHz,5.3 kHz,6.4 kHz,8.0 kHz,采样频率越低,录放时间越长,但音质有所下降。芯片的所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI)送入。SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作,因此对ISD4004而言,在时钟上升沿锁存MOSI引脚的数据,在时钟下降沿将数据送至MISO引脚。ISD4004详细参数可参考文献[3]。
2 立体声录放原理
虽然ISD4004采用的是模拟量直接存储技术,能够真实、自然地再现声音,但是要想不失真地再现原始语音信号,其采样频率也必须满足采样定理:当采样频率Fs大于信号最高频率Fm的2倍时,在采样过程中就不会丢失信息,并且可以用采样后的信号重构原始信号。即:Fs>2Fm(2Fm为最小采样频率,亦为“奈奎斯特频率”)
实际的语音信号常有一些低能量的频率分量超过采样频率的一半,如浊音的频谱超过4 kHz的分量比其峰值要低40 dB以上;而对于清音,即使超过8 kHz,频率分量也没有下降,因此语音信号所占的频率范围可以到达10 kHz以上。然而对语音清晰度有明显影响部分的最高频率为5.7 kHz左右。CCITT(国际电报电话咨询委员会)提出的G.711标准建议采用采样频率为8 kHz。
ISD4004-8M的采样率为8.0 kHz,满足采样定理的频率标准,虽然录放时间较短但是音质较好,甚至可满足播放简单背景音乐的需求。立体声录放的实现采用两片ISD4004-8M芯片构成,如图1所示。
本文引用地址:http://www.amcfsurvey.com/article/83496.htm
工作原理为:将输入的双声道语音信号分为左右声道分别接入两片ISD4004-8M芯片信号输入端,录音时由单片机发出让两片芯片同时录音的指令,进行同步录音,使得输入的信号在存储的时候就能保证其原有的声级差,从而达到了双声道录音的目的。放音时由单片机同时发出放音指令,两片芯片同时放音,因存储时信号原有声级差已经保存,所以放音时可再现原始的立体声,也可以在放音时对两个芯片发送放音指令的时间间隔进行操作,可达到调整立体声的效果。
3 具有接近功能的立体声系统的硬件原理
该系统的硬件原理如图2所示,本系统的硬件主要由单片机MEGA8L,语音芯片ISD4004-8M,被动式红外传感器等构成。图中PIR(SENSOR)为两元被动红外热释电传感器,其输出信号连接到CPU的中断1的输入端,当有人接近时该传感器输出一个高电平信号,使得CPU进入中断,然后CPU再对ISD4004进行放音操作,使ISD4004输出已录制好的音频信号,再经过功率放大器放大后送入扬声器。两个按键TAPE,PALY是进行录音和放音的人工操作按键,相应有两个指示灯进行状态指示。MEGA8L还通过控制继电器K1来控制音频信号功率放大器的供电,在长时间没有放音时将自动切断其供电,这样降低了系统的功耗,避免了功率放大器长时间通电。
由于该系统的硬件设计针对的是语音模拟信号,所以在设计的时候应该注意模拟地和数字地的隔离,特别是在ISD4004芯片的引脚上,须注意不同的接地引脚接相应的地。录音时的输入信号如果是单声道的信号,应在录音时使得左右声道的输入端均接入该信号,并在对两个语音芯片发送录音指令时中间应有短时的时间间隔,可使得单声道产生一定的声级差,从而达到非立体声转换为立体声的效果。
4 软件设计
软件流程图如图3所示。
系统上电后先进行初始化,软件实现的基本操作有:
(1)TAPE为录音按键,PLAY为放音测试按键,当TAPE键按下后,CPU操作ISD4004进行录音,同时相应的LED灯亮表示正在录音,此时当TAPE键再次按下时,录音停止,相应的LED灯灭表示录音停止。PIAY键为录音后的放音测试按键,按键后相当于红外传感器信号有效,CPU操作ISD4004进行放音,相应的LED灯亮表示正在放音,从而实现了语音在线录放;
(2)每次录音时CPU将录音时间的长度记录到其内部的E2PROM中,以便在放音的过程中适时对ISD4004进行相应的启停操作;
(3)CPU通过控制继电器来控制功率放大器的供电,若5 min没有人接近红外传感器,CPU自动切断功率放大器供电,从而减少了功率放大器的通电时间,延长了其使用寿命,减小了整个系统的功耗。
该程序采用的编译环境为:晶士电子Atmanavr C IDEV4.4;
程序烧制软件为:双龙电子的SLISP V1.1;
编译语言:C语言;
对ISD4004操作的例程如下:
5 结 语
本文介绍了由两片ISD4004语音芯片构成的具有接近功能的立体声语音系统,该系统已经成功应用于一个医疗产品展览会,满足自动语音立体声讲解的需求,且可以播放较为简单的背景音乐,能够可靠稳定地工作。该系统亦可应用于多煤体语音教学,语音导向系统等,为立体声语音录放电路设计开辟了一个新的途径。
评论