嵌入式语音播放系统应用日益广泛。汉字语音播放的方法有录音芯片法、语音合成芯片法及汉字语音库法等。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。
关键字:单片机 汉字文本播音系统
引用地址:
基于单片机设计的通用汉字文本播音系统
推荐阅读最新更新时间:2024-03-16 12:46
MCS-51单片机实用子程序库6
17) 标号: FSQR 功能:浮点数开平方(快速逼近算法) 入口条件:操作数在 中。 出口信息:OV=0时,平方根仍在 中,OV=1时,负数开平方出错。 影响资源:PSW、A、B、R2~R7 堆栈需求: 2字节 FSQR: MOV A,@R0 JNB ACC.7,SQR SETB OV ;负数开平方,出错 RET SQR: INC R0 INC R0 MOV A,@R0 DEC R0 ORL A,@R0 DEC R0 JNZ SQ MOV @R0,#41H;尾数为零,不必运算 CLR OV RET SQ: MOV A,@R0 MOV C,ACC.6 ;将阶码扩展成8bit补码 MOV ACC.7,C INC A ;加一 CLR
[单片机]
43条说清单片机晶振的那些问题
一、为什么51单片机爱用11.0592MHZ晶振? 其一:因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。 其二:用11.0592晶振的原因是51单片机的定时器导致的。用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz晶振,则波特率都是有偏差的,比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用STC90C516 晶振12M 波特率9600,倍数时误差率6.99%,
[单片机]
单片机系统资源—指令寄存器、指令译码器
指令寄存器用来保存当前正在执行的一个指令。 当执行一条指令时,先把它内存取出,然后再传送到指令寄存器。 指令分为操作码和操作数,由二进制数字组成。当执行任何给定的指令,必须对操作码进行译码,以便确定所要求的操作。指令译码器就是负责这项工作的,指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。
[单片机]
基于51单片机的交通灯及其仿真
ORG 0000H LJMP START ORG 000BH LJMP TIMER0 ORG 0030H START:MOV SP,#60H MOV TMOD,#81H ;定时器0,1工作在方式1,0定时,1计数 MOV IE,#8AH ;开定时器中断 MOV TL0,#0B0H ;定时器地低位初始化 MOV P1,#21H MOV TH0,#3CH M
[单片机]
单片机学习——独立按键之二
题目:数码管前三位显示一个跑表,从000到999之间以0.01秒的速度运行,当按下一个独立按键时,跑表停止,按下第二个时计时开始,按下第三个是计数值清零从头开始。(采用定时器中断方式) 解决方案:(C语言编程) #include reg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char uchar bai,shi,ge,num; uint shu; sbit s=P1^0; sbit s2=P1^1; sbit s3=P1^2; sbit le=P3^6; void delay(uint a); void dis(); voi
[单片机]
ARM7单片机(学习ing)—(六)、SPI接口—02
六、SPI接口 六—(02)、SPI控制数码管(程序里有详细的步骤~~以及注意事项~~) 程序: MDK6_1.c //------------------------------------------------------------------------------ //SPI控制数码管显示 //首先还是先介绍一下大概的操作流程~~ //SPI时钟值计算如下:SPI时钟=Fpclk/SPCCR,式子中,SPCCR的值必须大于8的偶数 //------------------------------------------------------------------------------ //主机SPI的基
[单片机]
瑞萨电子推出两个全新产品群扩展RA MCU产品家族,打造性能、功能和价值的理想组合
瑞萨电子推出两个全新入门级产品群以扩展RA MCU产品家族, 打造性能、功能和价值的理想组合 新型RA4E2和RA6E2 MCU以紧凑的封装和丰富的外设选项 带来高达200 MHz的性能 2023 年 3 月 14 日, 中国北京讯 - 全球半导体解决方案供应商瑞萨电子 今日宣布,推出两个基于Arm® Cortex®-M33内核和Arm TrustZone®技术的新产品群——RA4E2和RA6E2,以扩大其32位RA微控制器(MCU)产品家族。 全新100-MHz主频RA4E2产品群和200-MHz主频RA6E2产品群经过优化,实现一流的电源效率且完全不影响性能。新产品群还具有128KB和256KB闪存选项及40KB S
[单片机]
智能仪器电源的MCU控制程序设计
智能仪器电源的MCU控制程序设计 介绍一种仪器仪表电源供电程序的设计方法,提供了硬件框图及软件程序。 关键词:电源;程序设计;单片机 2.UAV of BUAA, Beijing 100083, China) ? 在备用电源供电的情况下,如果交流电220V又重新恢复,则K断开,DCAC=1,“交流”指示灯亮,“电池”指示灯灭,不发出报警声,ALARM=0。 另外,在仪器工作的同时,备用电源是否充电由CHARGE来控制。当电池电压小于某个参数值时,CHARGE=1,开始充电,“充电”灯亮。它还可以对备用电源的充电时间进行控制,对其输出电压进行检测,随时进行报警提示,以保证仪器的可靠工作。?
[模拟电子]