
常用软件类: |
|杀毒安全 | |联络聊天 | |网络软件 | |多媒体类 | |系统工具 | |图形图像 | |系统工具 | |应用软件 | |行业软件 |
开发设计类: |
|动画制作 | |图像处理 | |3D设计 | |操作系统 | |站长学院 | |网络相关 | |WEB设计 | |数据库类 | |程序开发 |
![]() 图1.ReadPlease 2003应用程序:这个Windows应用程序可能读任何从剪贴板中粘贴到编辑字段中的文本。 |
你需要什么呢?Visual Studio.NET 2003,微软语音应用程序SDK 1.1
点击"Tools"菜单,然后选择"Options"允许你进一步用该TTS编辑器进行试验,例如,你可以调整在段落之间的语音引擎的暂停时间长度。升级到ReadPlease Plus版本将可以使你存取另外的一个发音编辑器选项,它让你指定怎样读一个特别的词。ReadPlease Plus还包括一个你可以停靠在你的Windows桌面顶部的任务条。因此,你可以快速地从任何基于文件的应用程序拖动文本到任务栏上并让它读给你听。
缺省状态下,该ReadPlease应用程序使用内置的微软语音(Mark,Mike,Sam或Marilyn)。但是,你可以选择性地购买更高质量的AT&T Natural Voices,例如在AT&T Natural Voices Starter Pack中提供的语音。该Starter包包括8K版本的"Mike"和"Crystal",它们二者听起来都优于缺省的微软声音。
作者注: 术语8K意味着,该抽样频率用于创建发生在每秒8000位的WAV文件。另外一种格式是16k,它可以产生一种更清晰和更为自然的听觉效果。基本上,样本率越高,声音质量好越。
二、 微软语音应用程序开发包SDK 1.1
在2004年,微软发行了 Microsoft Speech Server,还有一个免费的SDK允许你开发基于Web的运行于Speech Server上的语音程序。可以使用SDK来构建电话或只发声的应用程序-其中的计算机对用户的交互是使用电话来实现的。同时你还可以构建多模态应用程序,其中由用户选择使用语音还是传统型Web控件作为输入。
微软TTS引擎通过把单词拆分成音素来合成文本。音素是人类语言的基本单位。它们代表一组"音",正是由它们构成单词的声音。然后由该TTS引擎分析提取的音素并且把它们转换成符号用来生成数字音频语音。
你可以使用随同本文的可下载的示例应用程序(ExploringTextToSpeech.csproj)来试验微软TTS引擎可配置的方面。该多模态应用程序包含一个Web页面(见图2),你可以在其中输入一些文本。然后,可以点击一个按钮来以下面方式听取文本。
作者注:在要被播放的文本无法提前知道的情况下,使用一TTS引擎是不可避免的;然而,你可以由录制音频来得到更好的音质。当音频质量是关键的时,你可以使用微软语音应用程序软件开发工具箱(SASDK)来录制音频。例如,你可能想使用录制的音频来提示用户信息。被记录的音频可以被分解成一系列的提示,它们在运行时刻再被连接起来。
· Speak Text Normally-提供一种测试基准
· Say as an Acronym-文本"ASP"被发作"A.S.P."
· Say as Name-Mr.John Doe被发作"Mister John Doe"
· Say As Date-在这种情况中,日期格式化为:月,日,年
· Say as Web Address-在这种情况中,文本格式化为一个统一资源标识符(URI)
· Say as Digits-作为文本输入的数字被发作一系列的位
· High Pitch/Slow Rate-文本以高音调慢速发出。
· Rate Fast/Volume Loud-文本以快速高音发出。
· Low Pitch/Volume Soft-文本以低音调适中音量发出。
![]() 图2.示例应用程序-你可以使用这个程序来听一下以多种方式说出的文本。 |
| <speech:prompt id="prmText" runat="server"> <InlineContent> <speech:Value runat="server" TargetElement="txtText" TargetAttribute="value"> </speech:Value> </InlineContent> </speech:prompt> |
表1.被支持的SSML元素:表中列出由SASDK所支持的SSML元素并且用于控制TTS引擎生成文本的方式。
| SSML元素 | 描述 |
| ssml:paragraph/ssml:sentence | 用于把文本分解成语句或段落。 |
| ssml:say-as | 用于指定播放文本的方式。它能够接受若干不同的属性来指定文本的类型。 |
| ssml:phoneme | 用于控制一个单词的发音方式。 |
| ssml:sub | 用于指定一个替代单词或词组来代替指定的文本。 |
| ssml:emphasis | 用于提高放到一单词或词组中的重音。 |
| ssml:break | 用于在文本的某些单词间插入一些暂停。 |
| ssml:prosody | 用于控制音调,速率和音量。 |
| ssml:audio | 用于插入被录制的音频文件。 |
| ssml:mark | 用于在文本的某个位置插入一个标记。然后可以使用这个标记来表示一事件或触发一个行为。 |
| <speech:prompt id="prmSayAsAcronym" runat="server"> <InlineContent> <ssml:say-as type="acronym"> <speech:Value runat="server" TargetElement="txtText" TargetAttribute="value"></speech:Value> </ssml:say-as> </InlineContent> </speech:prompt> |
| function SayAsAcronym() { prmSayAsAcronym.Start(); } |