内容摘要:与机器进行语音交流,让机器发出需要的声音,这是人们长期以来梦寐以求的事情,文语转换系统就是让机器通过识别和理解文章段落把文字信号转变为相应的声音信号的高技术。文娱转换是一门交叉学科,近二十年来,文语转换技术取得了更加显著的进步,开始从实验室走向市场。热门娱记,未来10年,文语转换系统将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。很多专家都认为文娱转换技术是2000至2010年间信息技术领域十大重要的科技发展技术之一。本文介绍了利用微软的Microsoft Speech SDK 5.1提供的TTS(text-to-speech)技术开发具有语音朗读功能的应用程序
关键词:文语转换 MSSDK COM
Abstract:And machinery for voice communication, so that the machine needs a voice, this is what people have long dreamed of, text-to-speech system is to allow machines to identify and understand the paragraphs of the article text signal into the voice signals in the corresponding high-tech. Civic conversion is a cross-discipline, the last 20 years, text-to-speech conversion technology have made more significant progress, starting from the laboratory to the market. Top Yuji, the next 10 years, text-to-speech system will enter the indu
strial, household appliances, telecommunications, automotive electronics, medical care, family services, consumer electronics and other fields. Many experts agree that cultural conversion technology is the 2000-2010 field of information technology among the 10 important scientific and technological development of the technology. this article introduces How to Create speech-enableed Apllications use the Microsoft Speech SDK 5.1
Key words:Test -To- Speech MSSDK COM
1绪论
1.1. TTS技术概述
上世纪90年代中期以来,随着个人计算机的硬件和软件功能越来越强,和现代语音技术的发展,以前在科幻电影中才能看到的会说话的电脑已经成为现实.而TTS技术正是电脑能够说话的关键技术之一.
TTS是text-to-speech的缩写,英文也称Speech Synthesis即语音合成.语音合成就是一个将文本转化为语音输出的过程,这个过程的工作主要是将输入的文本按字或词分解为音素,并且对
文本中的数字、货币单位、单词变形以及标点等要特殊处理的符号进行分析,以及将音素生成数字音频然后用扬声器播放出来或者存为声音文件以后用多媒体软件播放.图1形象地描述了这个过程.
图1. text-to-speech实现过程
当应用程序需要发声的时候就调用语音合成引擎(SPEECH SYNTHESIS ENGINE)进行语言合成,将文本处理后通过扬声器用近似于人的声音“读”出来,通常还可以通过改变对语音引擎的设置改变“说话” 的速度,声音频率(低沉或者尖锐),声音大小,还能模拟口形、唇形和舌位的变化对声音的影响.面前计算机通过语音合成发出的声音效果听起来就象是录音磁带发出的声音.
与一些用预先录制的声音文件实现发声的应用程序相比,TTS的发声引擎只有几兆大小,不需要大量的声音文件支持,因此可以节省很大的储存空间,并且可以朗读预先未知的任何语句.现在已经有许多应用软件应用TTS技术实现语音功能,例如一些播音软件可以用来读小说或作校对工作,还可以朗读,一些电子词典可以读出单词,还可以用于查询中心自动播放服务信息等.
1.2关于Microsoft Speech SDK
实现TTS的核心技术本身是非常复杂的,不是一般开发人员所能完成的,但是有了Microsoft Speech SDK这样的工具的帮助,只需要在应用程序中加入一些不太复杂的命令和操作,我们就可以创建具有TTS功能的应用程序了.
国内外有许多高科技公司和科研机构致力于TTS技术的开发和研究,如微软公司、IBM公司以及国内的科大迅飞公司都有较成熟的语音产品,并且任何人都可以获得微软公司免费提供的语音软件开发工具: Microsoft Speech SDK.
目前的Microsoft Speech SDK已经有4.0,5.1等几个版本,最近还推出了适合网络语音程序开发的The Microsoft Speech Application SDK的测试版,这些SDK主要包括语音应用程序编程接口SAPI(SAPI使我们象使用windows API一样方便地在程序中使用语音功能)和微软语音识别引擎和微软语音合成引擎,还提供了进行应用设计的例子.Microsoft Speech SDK 5.1 提供了英文和中文两种TTS引擎,即可以用它开发朗读中文和英文的应用程序,非常适合中国的开发者使用.
利用这些SDK,开发人员可以很容易地把TTS技术集成到应用软件中,并可以自由发布.另外Microsoft Speech SDK还提供了详细的文档帮助开发者进行程序开发.
1.3 文章结构
本文分2大副本。第2章主要介绍了MSSDK的使用方法和实现过程,并安排了一个小小的例子,第3章则是对TTS系统的改进,使之更加接近真实语境语调。
2.MSSDK 的使用理论
2.1 实现TTS的条件准备
利用Microsoft Speech SDK进行TTS语音应用程序开发前要作一些软件和硬件的准备:
1)、去www.microsoft/speech/下载Microsoft Speech SDK 5.1或其它版本SDK,并且安装到自己的机器上.
2)、Microsoft VC++ 6.0 ,service pack 3 或更新的版本.
3)、声卡和喇叭
4)、要实现该SDK的全部功能,则去www.microsoft/ 下载新的Platform SDK.
另外要注意的是SAPI 5.1不支持windows 95.
下载说明:
(1)如果要下载例子程序,说明文档,SAPI以及用于开发的美国英语语音引擎,需要下载
,大约68M。
(2)如果想要使用简体中文和日文的语音引擎,需要下载。大约82M。
下载完毕后,首先安装,然后安装中文语言补丁包SpeechSDK51LangPack,然后展开msttss22l,自动将所需dll安装到系统目录。
2.2 在应用程序中实现TTS功能
微软SAPI 5.1实现text-to-speech的核心是对COM接口IspVoice的应用,所以应用TTS技术最好要了解一下COM编程技术,但是即使从来没有用过COM编程,只要按照SDK的示例,也可以顺利的实现TTS的功能.
SAPI 的API接口封装得很好,我们不需要了解任何发声引擎底层的工作细节.例如一旦在程序中创建了一个IspVoice对象,就可以通过调用ISpVoice::Speak实现文本朗读,通过调用ISpVoice::SetRate实现对朗读速度的控制,以及通过调用ISpVoice::SetVoice实现对朗读声音的不同人物或语言控制(男声/女生,中文/英文)等.事实上掌握对这个接口的应用就可以实现
大多数TTS的应用.
SAPI全称 The Microsoft Speech API.相关的SR和SS引擎位于Speech SDK开发包中。这个语音引擎支持多种语言的识别和朗读,包括英文、中文、日文等。
SAPI包括以下组件对象(接口):
(1)Voice Commands API。对应用程序进行控制,一般用于语音识别系统中。识别某个命令后,会调用相关接口是应用程序完成对应的功能。如果程序想实现语音控制,必须使用此组对象。
(2)Voice Dictation API。听写输入,即语音识别接口。
(3)Voice Text API。完成从文字到语音的转换,即语音合成。
(4)Voice Telephone API。语音识别和语音合成综合运用到电话系统之上,利用此接口可以建立一个电话应答系统,甚至可以通过电话控制计算机。
(5)Audio Objects API。封装了计算机发音系统。
SAPI是架构在COM基础上的,微软还提供了ActiveX控件,所以不仅可用于一般的windows程序,还可以用于网页、VBA甚至EXCEL的图表中。
在下面介绍的程序中,用VC++6.0实现了Text-to-Speech的应用.
(1)创建一个工程
建立一个工程,Projects选项卡中选择MFC AppWizard (exe);下一步中选择Dialog based类型.
(2) 设置SAPI路径
应用TTS必须用到头文件sapi.h和sapi.lib,为了能编译通过必须设置SAPI路径:
a.、 在选中tools菜单中的option子项.
b.、 选中Directories选项卡.
c.、 选中Show directries for列表框中选中include files项,并在Directories中添加sapi头文件路径: 例如: "C:\Program Files\Microsoft Speech SDK 5.1\Include".
d.、 选中Show directries for列表框中选中Library files项,并在Directories中添加sapi LIB文件路径: 例如: "C:\Program Files\Microsoft Speech SDK 5.1\Lib\i386".
(3) 设计程序界面
添加如图所示的编辑框和命令按钮.
图2 程序界面
(4) 添加代码
api接口和sdk接口的区别双击speak按钮,添加朗读代码:
void CExe1Dlg::Onspeak()
{
UpdateData();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论