近年来语音集成电路获得了迅速的发展,其应用范围越来越广,在自动售货机、ATM柜员机,内部直通电话机以及玩具等方面应用了大量的语音合成芯片。该芯片内部采用脉宽调制,将数字信号正确的还原成
1、语音合成芯片的结构
该语音合成芯片首先是将语音资料以LOGPCM编码的方式存入ROM中,语音总长为35秒,将其分割成4个语音段,2个触发键,可以根据不同的需求来确定该芯片的触发方式,每一个语音段可指定不同的播放速度,也可设定“语音组跳跃功能”将现在的语音段(S1)播放完后,接着播放指定的语音段,并可以进一步设定这个指定的语音组是否需要无限的循环播放。同样两个触发键可选择为输入或者输出端,音频输出为PWM1和PWM2 两个输出端,可直接驱动喇叭;频率振荡器有两种选择:外部可调电阻式频率振荡器和内部频率振荡器。该芯片的总体设计框图如图1所示。
图1语音合成芯片总体设计框图
2、语音合成芯片工作原理
本语音合成芯片有两个控制信号端:IO1和IO2,共有四段语音内容,根据设计的要求IO2的优先级别高于IO1,通过不同的输入来播放不同语音段的语音信号,而且两个控制信号IO1和IO2的触发方式都采用边缘触发,语音无重触发(后段盖前段)之功能,而且每触发一次输出一段语音内容,循环有序输出各段语音。芯片工作后,IO2开始触发则播放第一段语音(S1),如果IO2为高电平时,此时的IO1触发无效;当IO2为低电平时,IO1触发则播放最后一段语音(S4),假如IO2继续触发,将依次循环输出各段语音。
3.语音合成芯片设计
3.1 时序产生电路
这部分电路是给整个语音合成芯片提供时钟信号,该语音合成芯片只包括一个时钟,就是播放的速度。在芯片中的以LOGPCM编码方式所存储的语音信息是8位,采用PWM的方法进行调制,就需要至少28倍PWM数据读取频率来进行调制,使得PWM信号输出的占空比能实现256级的变化。语音信号是以8KHz为采样频率,因此要以8K×256=2M的时钟频率来进行调制,从而实现芯片的正常播放。在ASIC设计中,为了达到2MHz的时钟频率,采用环行振荡器,该电路3个CMOS反向器,1个电容和一个片外电阻,调节片外的电阻可以产生不同频率的振荡信号,因此可以通过改变外部的电阻值来实现不同的播放速度。同时在芯片的内部可用二分频电路串联来实现28分频。
3.2 输入信号控制模块电路
输入信号控制模块中的输入信号IO1和IO2对ROM地址进行前端控制,用来确定播放的语音段,该芯片设计的ROM有16根地址,8根数据线,将语音分割成四段,每段语音可占据4000H个地址单元,第一段语音存储的地址范围从0~3FFFH,第二段语音存储的地址范围从4000H~7FFFH,第三段语音存储的地址范围从8000H~BFFFH,第四段语音存储的地址范围从C000H~FFFFH。在该电路设计中,为了避免一些状态的误动作,故将输入信号IO2、IO1进行两级寄存,首先检测IO2的上升沿,当IO2的上升沿来了后,将signal输出端口先输出“00”信号(signal输出端就是下级模块:地址输出模块的信号控制输入端);为了使得每检测到一次IO2的上升沿,就让一个2位计数器加1,IO2经过寄存器后,再一次检测上升沿,将signal输出“01”信号。然后启动地址输出模块,当IO1上升沿来后,首先是判断IO2是否是低电平,只有IO2在低电平的状态,IO1才能动作,工作方式和IO2一样;否则IO1无效。电路原理图如图2所示。
图2输入信号控制模块电路
3.3 ROM地址输出模块
ROM地址输出模块是用来接收上级输入信号控制模块的控制信号,根据不同的控制信号,输出不同的地址信号来读取ROM中的数据,ROM有16根地址线,因此在ROM地址输出模块中设计了16位的加法计数器,首先设计一个2位的加法计数器,再由两个2位的加法计数器构成一个四位的加法计数器,然后由3个四位的加法计数器构成一个12位的加法计数器,最后由12位的加法计数器和一个2位的加法计数器构成14位的加法计数器,14位加法计数器刚好能从0计数到3FFFH,也就是第一段语音存储的地址范围,其他各段的语音存储的开始地址相当于3FFFH的相应倍数加1,因此采用倍乘方法,其计算方法是:DOUT=C+MUL×(D+1),其中DOUT表示输出的ROM地址;C表示14位的加法计数器;MUL表示要播放的该语音段号减1;D是常数3FFFH。电路原理图如图3所示。
图3 ROM地址输出模块电路及仿真波形