摘要:本文提出了基于TI公司的TMS320VC5402的中文语音合成系统方案。整个系统以TMS320VC5402为核心电路进行设计,采用以音节为单位的中性语调,配合基于基音同步重叠相加的PSOLA算法,并用码激励线性预测(CELP)GAL20V8A编码方法对原始采样音库进行编码压缩。
关键词:DSP;SCM;PSOLA;文本分析;语音合成
0 引言
随着语音信号处理技术的不断发展与成熟,HT7150A语音合成正逐步成为信息技术中人机接口的关键技术。DSP芯片,即数字信号处理器,是专门为快速实现各种信号处理算法而设计的、具有特殊结构的微处理器,其处理速度比最快的CPU还快10~50倍。本文介绍的就是一种基于DSP的中文语音合成系统的实现方法。
1 系统总体方案
语音合成的最大特点就是要从有限的存储单元中合成出无限字汇的连续语句来[1]。为了做到这一点,本系统设计了由(1)前端预处理模块将输入文本文件转换成系统可以处理的标准格式;(2)韵律规则库给出当前语言环境下各个音节的韵律特征参数;(3)语音合成器根据给定的韵律特征参数对原始语音库中相应语音单元的声学参数进行调整;(4)将经过调整的各个语音单元拼接在一起,得到相应于输入文本的连续语音输出等4个基本流程组成。系统基本原理框图如图1所示。
2 硬件系统设计
*基金项目:湖南省教育厅(03C025)
该中文语音合成系统的目的是对输入的文本文件能够清晰地、自然地、能懂地以连续语音地形式输出。ATMEL公司的AT89S52单片机对键盘输入的文本文件进行显示,再送TMS320VC5402处理,最后将合成结果输出。硬件结构框图如图2所示。
2.1 键盘电路和显示电路
AT89S52的键盘接口电路是采用中断方式的,SKM150GB124D有键按下时,就产生中断请求,进入中断处理,然后通过查询P1.0和P1.1的情况,进行相应的处理。用电阻和电容够成了消抖电路,以防止电路的误操作。
AT89S52把从键盘输入的文本信息送给LCD显示,同时把数据写到外部存储器CY7C133,然后TMS320 VC5402读取CY7C133上的信息进行处理。LCD的指令格式如表1所示:
表1 LCD的指令格式
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
其中RS, R/W共同决定选择哪一个寄存器,如表2所示:
表2 寄存器选择
RS | R/W | 操作 |
0 | 0 | 指令寄存器写入 |
0 | 1 | 忙标志和地址 |
1 | 0 | 数据寄存器写入 |
1 | 1 | 数据寄存器读出 |
2.2 TMS320VC5402与AT89S52的通信
AT89S52和TMS320VC5402各自独立工作,其信息和数据交换通过共享一片外部存储器来实现,它们之间信号联络通过硬连接和软件判断来实现[2]。
外部存储器采用的是CY7C133,它是高速的2K X 16bit的静态异步双端口RAM,其存储速度为25ns。它有两套独立的地址线、数据线和控制信号线,允许两个控制器件中的数据通过共同连接的存储器来进行通信。该双端口RAM允许两个控制器同时读取任何存储单元(包括同时读同一单元),7MBR50SA060但不允许同时写或者一读一写统一地址单元。
对于TMS320VC5402,数据存储器CY7C133的对应地址为4000H~47FFH。
对于AT89S52,数据存储器CY7C133的对应地址为2000H~27FFH。
3 软件系统设计
汉语作为一种有调语言,其韵律特征非常复杂。为了从有限的存储单元中合成出无限字汇的连续语句来,必须在一定的韵律规则下对语音库单元的韵律参数进行调整,以得到符合当前语流环境的音变单元[3]。
根据得到音变单元的方法不同,可将语音合成器分成两种类型:(1)波形拼接合成;(2)参数合成(又称源/滤波器合成)。CC10201115A本系统采用波形拼接合成的方法直接对波形的时域和频域波形进行调整以得到所需要的音变单元。
简单的波形拼接法很难进行音高和音长(时间长度)调整。因此,本系统采用中性语调音节直接拼接配合基音同步波形叠加(PSOLA)算法,并用码激励线性预测(CELP)编码方法对原始采样音库进行编码压缩的方法。基本流程图如图3所示。
4 结束语
本系统利用SCM实时显示输入的文本文件, EM78P153M5100PIC16C56A能够将合成语音和输入文本文件实现对比输出,直观性强;具有清晰度、能懂度和自然度高;合成算法运算复杂度低,能够用尽量小的音库来实现对容量有限的存储空间的占用程度的要求。