知识大全 在ASP.NET程序中实现语音合成
Posted 元素
篇首语:知识为进步之母,而进步又为富强之源泉。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在ASP.NET程序中实现语音合成相关的知识,希望对你有一定的参考价值。
在ASP.NET程序中实现语音合成 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
你可能已经注意到 如今语音合成越来越普遍 成百上午的电动玩具和小器具都能够以机器的声音向它们的主人讲话 不管它是一个讲话的婴儿玩偶 一个会谈话的计步器或是一新的自动电话系统 现在几乎每天都会有一种使用文本来发音的产品发行
文本 到 语音(TTS)技术 也称为语音合成 是把输入的文本转换成音频语音的过程 这种方式会优于预先录制好的文本 它必须对要说的内容提前了解 而使用TTS 却有可能加入动态的信息 该动态的信息可以来自于一个数据库 或是用户不断重复的话
一 TTS试验
如果你看到或听说过实际的TTS 那么你可能想下载一个免费版本的ReadPlease 该产品能够读取Windows剪贴板中的文本 要使用它 你只需要简单地把一些文本粘贴到ReadPlease编辑器中(见图 ) 并且假定你的PC扬声器打开了 那么你会听到文本的播放 当前 该产品仅能工作在所有的Windows桌面OS版本中 但是他们还计划发行针对Mac Unix Palm和Windows CE系统的版本
ReadPlease令人感兴趣的地方在于 你可以使用ReadPlease编辑器来试验你的TTS参数选择 例如 你可以通过上下移动如图 所示的Speed滑动块控件来调整发音速度 你还可以通过点击在小脸图标下方的箭头按钮来改变所用的语音
图 ReadPlease 应用程序 这个Windows应用程序可能读任何从剪贴板中粘贴到编辑字段中的文本
你需要什么呢?Visual Studio NET 微软语音应用程序SDK
点击 Tools 菜单 然后选择 Options 允许你进一步用该TTS编辑器进行试验 例如 你可以调整在段落之间的语音引擎的暂停时间长度 升级到ReadPlease Plus版本将可以使你存取另外的一个发音编辑器选项 它让你指定怎样读一个特别的词 ReadPlease Plus还包括一个你可以停靠在你的Windows桌面顶部的任务条 因此 你可以快速地从任何基于文件的应用程序拖动文本到任务栏上并让它读给你听
缺省状态下 该ReadPlease应用程序使用内置的微软语音(Mark Mike Sam或Marilyn) 但是 你可以选择性地购买更高质量的AT&T Natural Voices 例如在AT&T Natural Voices Starter Pack中提供的语音 该Starter包包括 K版本的 Mike 和 Crystal 它们二者听起来都优于缺省的微软声音
作者注 术语 K意味着 该抽样频率用于创建发生在每秒 位的WAV文件 另外一种格式是 k 它可以产生一种更清晰和更为自然的听觉效果 基本上 样本率越高 声音质量好越
二 微软语音应用程序开发包SDK
在 年 微软发行了 Microsoft Speech Server 还有一个免费的SDK允许你开发基于Web的运行于Speech Server上的语音程序 可以使用SDK来构建电话或只发声的应用程序 其中的计算机对用户的交互是使用电话来实现的 同时你还可以构建多模态应用程序 其中由用户选择使用语音还是传统型Web控件作为输入
微软TTS引擎通过把单词拆分成音素来合成文本 音素是人类语言的基本单位 它们代表一组 音 正是由它们构成单词的声音 然后由该TTS引擎分析提取的音素并且把它们转换成符号用来生成数字音频语音
你可以使用随同本文的可下载的示例应用程序(ExploringTextToSpeech csproj)来试验微软TTS引擎可配置的方面 该多模态应用程序包含一个Web页面(见图 ) 你可以在其中输入一些文本 然后 可以点击一个按钮来以下面方式听取文本
作者注 在要被播放的文本无法提前知道的情况下 使用一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 文本以低音调适中音量发出
该多模态应用程序使用一提示控件来指定将被播放给用户的音频 该提示控件包含InlineContent属性——它可以包含一个或者是Content型或者是Value型的基本Speech控件 该Content控件指定一特定的包含存储的音频记录的提示文件 该Value控件指定一个HTML Web页面中的元素 该示例应用程序使用一Value控件——它参考一个名为txtText的输入元素(在图 中的 Type some text here 域) 下面是描述了用于一个提示的标注的HTML
<speech prompt id= prmText runat= server ><InlineContent><speech Value runat= server TargetElement= txtText TargetAttribute= value ></speech Value></InlineContent></speech prompt>
三 语音合成标注语言
该TTS引擎在怎样播放由属性InlineContent参考的文本时作出某些缺省的假设 但是开发者能通过使用语音合成标注语言(SSML)元素来控制该TTS引擎生成音频的方式 根据W C协会的推荐 SSML是一基于XML的标注语言 表 列举出由SASDK所支持的SSML元素
表 被支持的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 用于在文本的某个位置插入一个标记 然后可以使用这个标记来表示一事件或触发一个行为
该示例应用程序说明了say as和prosodySSML元素的使用 在该Default aspx页面上的每个按钮都相应于一个提示控件 这些提示控件在InlineContent元素中包括一ssml say as或一个ssml prosody元素 下面示例显示了针对这些元素之一的HTML标注
<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>
当用户点击这些按钮之一 它执行如下所示的JavaScript
function SayAsAcronym() prmSayAsAcronym Start()
在上面的示例中 名为prmSayAsAcronym的提示包括了ssml say as元素 它指定任何包含在txtText输入元素中的文本都应该被以每个单词的第一个字母方式发出 因此 如果你输入 ASP 到文本元素中并且点击 Say As Acronym 那么该TTS引擎将读每个字母
cha138/Article/program/net/201311/13239相关参考
ASP.Net中程序构架与程序代码的分离 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一年前当
问 程序中如何自动生成姓名拼音 答 publicstringGetPYString(stringstr) stringtempStr=; foreach(charcinstr)
ASP.NET2.0中保证应用程序的安全 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 成员和角
ASP.NET程序中常用的三十三种代码二 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!日期格式化
知识大全 在Azure云中部署支持MVC的ASP.NET程序
在Azure云中部署支持MVC的ASP.NET程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
编写ASP.NET应用程序的十大技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在使用Vis
ASP.NET中的HTTP模块和处理程序(下) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在
ASP.NET应用程序设计的10大技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在本篇文章
ASP.NET入门教程10.7合成控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
ASP.NET程序员应用程序域须知 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文将讨论NE