基于单片机设计的通用汉字文本播音系统
扫描二维码
随时随地手机看文章
嵌入式语音播放系统应用日益广泛。汉字语音播放的方法有录音芯片法、语音合成芯片法及汉字语音库法等。Flash存储器容量不断增大,利用Windows的Speech SDK可以方便地提取汉字语音文件,因此汉字语音库法得以广泛应用。
汉字语音库法可分为专用语音播放和通用语音播放两类。专用语音播放系统只存储少量固定的语音资源,只需较小的存储容量,但应用范围有限。通用语音播放系统存储所有不同读音汉字的单字语音资源,可实现任意文本组合的语音播放,适用于播放内容经常更新的场合。本系统由1220个不同读音汉字读音文件构成语音库,存于一片Flash存储器中,实现了基于SPCE061A的嵌入式通用汉字文本语音播放系统。系统硬件简单,使用方便,成本低廉,适用于公交车报站器等应用系统中。
1硬件原理
直接由汉字的wave读音文件构成的语音库占存储空间很大,语音文件压缩后,可使语音库数据占Flash存储器空间大大减小。凌阳为语音播放提供了多种压缩算法,本系统采用码激励线性预测(CELP)编码的SACM_S480压缩算法,其压缩比例为80:3。压缩后的语音资源数据可存放在一片512 kB的Flash存储器中。
普通单片机为核心的语音播放系统硬件上需要较多的外围器件和电路,如存储器、D/A转换器等,软件上语音解压缩速度不快会影响其他操作。而若采用嵌入式微处理器实现语音播放系统则成本太高。凌阳16位单片机SPCE061A是一个最佳的选择,它带有DSP指令,将嵌入式语音系统所需的A/D、D/A等功能模块都集成在一个芯片中,具有很强的可编程音频处理功能。凌阳还提供SACM_LIB语音库(本系统使用SACMV26e.lib)可实现录音、播放和语音识别等功能。
本系统硬件原理如图1所示,主要由SPCE061A单片机和外部Flash存储器SPR4096A两个芯片组成。SPCE061A运行所有语音解码播放及其他操作的软件功能,它的D/A输出经音频功放SPY0030接扬声器。SPR4096A存储包括汉字读音序号索引表、语音资源地址索引表和语音资源数据的所有语音信息。
通用文本语音播放有预先存储固定文本播放、接收文本后播放和实时文本播放等3种工作方式。实时文本播放方式对系统的软件处理能力的要求最高,最能检验系统的语音播放操作与其他操作的配合情况,故本系统采用实时文本播放的方式进行程序调试,即串行口输入汉字的同时进行文本播放,硬件上SPCE061A的UART与PC机的RS-232连接。
SPCE061A有内置ICE(在线仿真器)调试接口,可实现在线仿真、调试和下载,程序调试非常方便,这也是选择SPCE061A的主要原因之一。硬件上ICE调试接口与PC机并行口连接。SPCE061A除可编程音频处理功能外,还具有丰富的I/O口、时钟源及中断源,Flash存储达32 k字,RAM有2 k字,在语音播放的同时还能进行复杂的控制操作。
SPR4096A容量为512 k×8位,分256个扇区,每个扇区为2 kB,可配置为BMI(总线存储器接口)或SIF(串行接口总线)。为节省I/O口,本系统使用串行接口。此串行接口是凌阳自行定义的SIO接口,也用SCK和SDA两根信号线,但数据格式与I2C或SPI略有不同,SPCE061A的IOB0为时钟信号SCK,IOB1为数据信号SDA。