基于MSP53C392的语音合成系统
摘要:介绍一个基于单处机和MSP53C392的通用语音合成系统;能根据需要,利用多种语音压缩算法无缝地混合匹配,用以优化语音质量和存储容量。
关键词:MSP53C392语音处理器 单片机 语音压缩算法 语音合成
随着语音处理和合成技术以及大规模集成电路的快速发展,语音合成不断地产品化,不同厂商推出了用各种不同原理实现的语音合成器件。本文介绍一种性价比较高的,由TI生产的MSP53C392被动式合成器,它是由单片机控制的语音合成系统。该系统的优点:①无需开发语音数据代码,且由于MSP53C392语音处理器被设计成目录式,可以让用户快速地把语音系统推上市场;②能利用多种语音压缩算法无缝地混合匹配,用以优化语音质量和存储容量。
1 系统原理
由MSP53C392构成的语音合成系统的原理如图1所示,利用PC机和TI的专用软件对语音数据进行转换和压缩,然后下载到Flash存储器中。用单片机通过查表和散转读取语音数据,再送MSP53C392合成输出语音,经滤波、功率放大后驱动扬声器。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 硬件设计
2.1 MSP53C92语音合成器
美国德州仪器公司生产的语音合成芯片,接受来自主处理器的压缩语音数据,并由此产生语音或音乐。器件的特性如下:
①可直接驱动32Ω扬声器。javascript:window.open(this.src);" style="cursor:pointer;"/>
②在休眠方式下,最大待机电流仅10μA。
③片内集成有各种语音合成算法,用户可以根据要求选择从低数据率到高质量合成程序以适应各种不同的应用。支持的算法包括:
*LPC 5220的LPC D6格式——在8kHz的采样频率时,数据率分别为3.0Kbps和1.5Kbps。
*MELP Ver4.1——在8kHz的采样频率时,数据率为2~3.5Kbps。
*CELP V3.4——在8kHz的采样频率时,数据率可在4.2Kbps、4.8Kbps、6.2Kbps、8.6Kbps、10.7Kbps中选择。
*8位PCM——在采样频率8kHz时,数据率为64Kbps。FM II用于双通道乐器合成的频率调制:
*可用软件选择8kHz或10kHz的语音采样频率;
*有不需要接任何外部元器件的内部时钟发生器;
*有数字音量控制。
MSP53C392引脚及定义如图2所示.
2.2 硬件电路原理
主处理器利用检测方式与合成器进行通信,3根控制线,8根数据线。数据被写入合成器中,合成器的状态被读回。下面以89C51实现控制为例,用89C51的P0口与MSP53C392的8位数据线相连,用P1口P1.0、P1.1和P1.2分别接MSP53C392的R/W、STROB和INIT端子。89C51与合成器的接线图如图3。
2.3 软件控制
图3
压缩数据通过检测的方法传送MSP53C392和从其读取数据。读操作的步骤如下:①89C51使合成器的R/W为高电平。②使合成器的STROB的高电平,并且去读回BUSY和EOS的状态。(A,如果BUSY信号是高电平,则合成器不忙,准备接受一次写操作;否则,没准备好接受写操作,继续重复读操作,直至BUSY为高电平。B,如果EOS信号是高电平,合成过程已经到达语音数据流的结束码,89C51停止传送数据,使合成器复位。)③89C51使合成器的STROB为高电平,写操作的步骤如下:①89C51根据BUSY的状态判别合成器是否已经准备好;②89C51使R/W变为低;③89C51向数据线发送数据;④89C51给STROB发送一个上升沿,使数据锁存在合成器输入锁存器中。
2.4 输出电路
合成器有两个D/A转换输出引脚DAC+和DAC-。其输出有两种方式:方式1,可以直接驱动32Ω的扬声器;方式2,驱动一个运放,如图4所示。虚线框内为一级低通滤波器,100kΩ电位器用于音量调节。
3 软件部分
(1)语音合成系统控制软件
图4
固化在单片机中的语音合成系统控制软件主要功能是:对系统进行初始化,检测键盘,根据不同按键以决定读取不同的语音段装数据,与语音合成器进行通信,传送语音数据,完成语音合成器件的复位和其它控制,完成语音合成器件的复位和其它控制。89C51与MSP53C392之间数据交换程序流程如图5所示。
(2)语音合成软件
用于控制语音合成器分离语音参数,译码、插值和D/A转换的程序,无须编写,已经固化在合成器中的ROM中。
(3)数据的转换和压缩程序
javascript:window.open(this.src);" style="cursor:pointer;"/>
由于合成器只能支持相应的算法,所以对于已有的语音文件必须对之进行处理。例如,采样频率为44.1kHz CD音质的文件,WAV文件的语音文件进行预处理。首先,对之实现重新抽样的功能,例如,用COOL EDIT和GOLDWAVE这类程序就可以实现这样的功能,通过GOLDWAVE软件进行低通滤波,使其频率宽为4kHz或5kHz,然后以8kHz或10kHz的频率重新抽样;同时,对容量进行调节,以16位单声道PCM的数据格式保存,其次,利用TI的SDS3000软件把数据转换成MELP或CELP格式,或WINSDS工具把数据转换成LPC格式。
至于产生双声道立体声音乐,可用MD2FM.EXE把MIDI(.mid)格式的转换成FM格式。