APP下载

基于单片机的文语转换系统设计

2015-07-21卢如意

科技创新导报 2015年17期
关键词:单片机

卢如意

摘 要:文语转换(Text to Speech)技术是一种综合了语言学处理和声学处理两部分的计算机语音合成技术,前者是对输入文本进行语言学分析,后者则是通常所说的语音合成。文语转换技术能将任意的文字信息实时的转化为标准流畅的语音,它是一项复杂的语音处理技术,涉及声学、语言学、数字信号处理、计算机科学等领域的多学科综合性技术。本文以语音合成及单片机控制为主电路,PC机通过串口向单片机发送指令最终控制语音合成电路部分发声以及LCD文字显示。

关键词:文语转换 单片机 语音合成

中图分类号:TP271 文献标识码:A 文章编号:1674-098X(2015)06(b)-0000-00

1 引言

所谓文语转换技术(Text-to-Speech,简称TTS)指的是计算机能自动的将任意文字信息实时转化为标准流畅的语音朗读出来。文语转换技术是一门复杂的语音处理技术,它涉及众多学科技术,比如声学、语言学、数字信号处理、计算机科学等 [1]。随着电子科学技术、计算机技术、语音合成技术不断的发展,文语转换技术也取得了一系列的成果,特别是在系统的性能上面得到了很大的改善。

1.1 文语转换的目的及意义

语音合成,相当于给机器装上嘴巴进行说话。早期的人机交互方式为键盘和显示器方式,这种方式在有些场合效率很低,而且操作也不方便,由此语音合成就突出了它的特点,它能使一些其他存储方式的信息能够转化成人类最习惯、最方便交换的语音信号,使得人简单的通过听觉即可得到大量的信息。

1.2 文语转换的研究背景

近年来,国内外投入了大量的资源在语音合成领域研究,使其得到了迅猛的发展,并出现了大量的新技术和新设计理念。语音合成技术有着广泛的应用前景,特别是在人机交互中的应用,如语音报警器、语音报时器、公共汽车上的自动报站、股票信息的查询、电话查询业务,以及打印出版过程中的文本校对等[3][4][5]。

2 文语转换系统的原理

早期的文语转换研究主要集中在语音合成方面,即指用机器产生人工语言的技术,它可以通过力学的光学的或电子学的手段产生类似人说话的声音;随着计算机技术的发展和应用,产生语音主要靠计算机来完成,现代的文语转换主要是指用计算机完成高清晰度、高自然度、高可懂度的语音的技术。要完成高质量的语音,除了采用各种声学处理手段外,还必须对文字的内容有很好的理解,这将涉及到自然语言理解的问题。只有模拟人产生语音的过程,即首先对要发生的文字内容有很好的理解,然后根据人类积累的语音规律(即韵律规则)通过声道将文字顺序转换成声音,才能得到流利的、容易理解的自然语音。

2.1 文语转换系统的组成

文本分析、韵律控制和语音合成这三个模块[7]是文语转换系统的三个核心部分,其结构如图1所示。

图1 TTS系统基本框图

文语转换系统区别于其他类型的语音合成系统是它具有某种程度的篇章理解能力,其能力主要由文本模块来实现。文语转换系统能对输入的文本进行语言学的分析,生成一种适合于语音学的内部表示,在此过程中需要确定每个字的正确读音以及识别词与词之间的界限。

3 文语转换系统硬件设计

本文在语音合成技术上实现了文语转换系统,即将固定的或者输入的文本通过语音合成模块进行播放,并将其内容显示在液晶屏上。系统的总体框图如图2所示。

图2 语音合成系统框图

整个系统由单片机最小系统、LCD显示模块、语音合成电路模块、通信模块、电源模块等几部分组成。

4 文语转换系统软件设计

软件设计可以分为两部分设计:一是主程序设计;二是子程序设计。主程序设计主要完成的内容是:程序初始化(单片机端口初始化、串口通信初始化)、子程序的调用及跳转等。语音合成子程序主要完成的内容:根据系统的要求将相应的文本内容合成语音。其中主程序设计流程图如图3 所示。

图3 主程序流程图

语音合成子程序的流程图如图4所示。其相应程序如下,buf为输入的文本数组首地址,语音合成子程序通过串口将相应的文本发送给语音合成电路进行播放,并且在主程序中调用液晶显示子程序对相应文本进行显示。

void Speech(uchar *buf)

{

uchar i = 0; //循环计数变量

uchar xor = 0x00; //异或校验码变量

uchar ch = 0x00;

uchar len = 0x00;

while(buf[len++]);

for(i = 0; i < HEAD_LEN; i++)

{

if(i == BKM_OFFSET)

ch = nBkm << 3; //写入背景音乐

else if(i == LEN_OFFSET)

ch = len + 3;

else

ch = head[i];

xor ^= ch;

Usart_PutChar(ch);

Delay(1);

}

for(i = 0; i < len; i++)

{

xor ^= buf[i];

Usart_PutChar(buf[i]);

Delay(1);

}

Usart_PutChar(xor); //发送校验位

Delay(10);

//while(TTS_BUSY); //等待语音播放结束

Delay(10);

}

图4 语音合成子程序

5 结论

语音合成的研究已经有200多年的历史,随着最近几十年语音合成技术的快速发展,语音合成在各项领域的应用也越来越广泛。本文主要完成的内容是:在基于语音合成芯片的基础上,利用软硬件结合,完成了文语转换系统的设计。

本课题所设计的文语转换系统虽然实现了预期的功能,但由于相关的理论知识的欠缺以及时间上的紧迫,还存在着若干个问题:

(1)对前人已研究出来的方法及原理总结得不够精炼。

(2)合成的语音在自然度和清晰度等方面还需要提高。

参考文献

[1]魏文密. 文语转换方法研究——文本分析[D]. 硕士:长安大学,2007.

[2]张鹏洲. 文语转换系统研究与应用[D]. 博士后:中国科学院计算技术研究所,1999.

[3]韩纪庆,张磊,郑铁然.语音信号处理[M]. 北京:清华大学出版社,2004.

[4]郭锋. 基于PSOLA的汉语文语转换技术研究[D]. 硕士:南京航空航天大学,2007.

[5]黄华. 嵌入式语音合成技术的研究[D]. 硕士:重庆大学,2011.

[6]张鹏. 嵌入式语音合成系统的研究与实现[D]. 硕士:武汉理工大学,2006.

[7]张雪英. 数字语音处理及MATLAB仿真[M]. 北京:电子工业出版社,2010.

[8]PRAHALLAD Kishore,BLACK Alan.A text to speech interface for Universal

猜你喜欢

单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
MSP430单片机在仿真中要注意的几点问题
基于单片机的平衡控制系统设计
基于单片机的三维LED点阵设计
Microchip推出两个全新PIC单片机系列
基于Proteus的单片机控制系统的仿真设计