Java文本语音转换组件JTTS发布(eSpeak封装)
下载地址:http://greenvm.googlecode.com/files/JTTSEngine.7z
(含示例与源码,目前仅提供dll封装)
众所周知,所谓TTS即Text To Speech的英文缩写,也就是“从文本转换到语音”。
TTS技术的主要作用在于利用计算机合成人语,并将文字信息转化为语音信息进行播放。简单点说,TTS技术赋予了计算机“开口说人话”的能力。
作为一项历史悠久的计算机技术,TTS的应用领域可谓非常之广阔。不但可以用来阅读电子邮件,进行IVR系统(Interactive Voice Response)的语音提示,也可以很方便的嵌入到游戏或者其它类型的应用程序当中,增强用户体验。尤其重要的是,在某些无法够获得详细文字咨询的场合(譬如声讯台或者盲人服务),TTS技术具有其它技术无法替代的关键作用。
针对于TTS需求所要实现的功能,主要包含如下几个部分:
1、文本分析:对输入文本进行语言学分析,逐句进行词汇的、语法的和语义的分析,以确定句子的低层结构和每个字的音素的组成,包括文本的断句、字词切分、多音字的处理、数字的处理、缩略语的处理等。
2、语音合成:把处理好的文本所对应的单字或短语从语音合成库中提取,把语言学描述转化成言语波形。
3、韵律处理:用以控制语音合成系统所输出的语音的质量,一般可从清晰度、自然度和连贯性等方面进行主观评价。
但是,即便上述所讲从纯技术角度来说并不很难,开发TTS引擎仍然是件非常让人头痛的事情。
因为除去核心架构的开发之外,TTS应用还存在有大量针对具体文字、词组、固定语句的采样、归类、矫正的工作要做,否则就无法满足其“拟人”的最基本需求。从某种意义上讲,这些非常耗时的重复性工作,其本质似乎更贴近体力劳动,而非严格意义上的技术领域。因此,对于TTS引擎的制造者而言,所需付出的体力劳动强度,将远远超出脑力劳动所应付出的代价(如果不是这样,那些收费TTS引擎的开发商都要饿死了……)。
万幸的是,我们生活在一个越来越倾向开源的国际大环境下,即使你一字不动,一笔不写,也有数之不尽的现成轮子可供驱策,并不一定要花钱购买昂贵的商业引擎,也不必皓首穷经的自己从头写起。
比如本次发布的Java版TTS组件JTTS,就是基于著名开源TTS组件eSpeak封装而来。(吾辈并没狂妄(有瘾)到想要(能够)独立开发TTS引擎的境界,所以效法Google对eSpeak进行jni封装……)
关于eSpeak(eSpeak项目地址如下:http://espeak.sourceforge.net
):
相关文档:
java中的Synth外观
Synth,它是一个完整的外观,而不是一个主题,它针对的并不是程序员,而是界面设计人员,让他们不必掌握Java 知识便能够进行相应界面的选择定制。采用了Synth 后,我们不能从现有外观或主题派生子类、修改字体或颜色,而是通过转载不同的XML 文件以达到对 ......
Java几个常用的布局管理器类:
包
类
特点
java.awt
CardLayout
将组件象卡片一样放置在容器中,在某一时刻只有一个组件可见
java.awt
FlowLayout
将组件按从左到右而后从上到下的顺序依次排列,一行不能放完则折到下一行继续放置
java.awt
GridLayout
形似一个无框线的表格,每个单元格中放一个组件
java.awt
......
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:Verdana;
panose ......
http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/index.html
Java 类的热替换 —— 概念、设计与实现
构建基于 Java 的在线升级系统
级别: 中级
孙 鸣
,
邓 辉
,
2010 年 1 月 14 日
对
于许多关键性业务或者庞大的 Java
系统来说,如果必须暂停系统服务才能进行系统 ......
使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序。
1. exec(String command)
2. exec(String command, String envp[], File dir)
3. exec(String cmd, String envp[])
4. exec(String cmdarray[])
5. exec(String cmdarray[], String envp[])
6. exec(S ......