基于linux的ekho(余音)安装与开发
转发时请注明出处,否则.......你懂的,呵呵
Ekho(余音)是一个把文字转换成声音的软件。它目前支持粤语、普通话(国语)、诏安客语和韩语(试验中),英文则通过Festival间接实现。它比eSpeak的设计更简易,但文件较大。由于使用了真人发声,它比eSpeak的发音更自然。
源代码下载页面: Ekho (余音)
Ekho(余音): http://e-guidedog.sourceforge.net/ekho_cn.php
一、Ekho的安装
# tar xjvf ekho-4.8.tar.bz2
# cd ekho-4.8
# ./configure
# make
#make install
安装成功~~~
测试一下吧: #ekho "我爱你余音"
注意:
如果./configure配置出错,可能是你缺少libsndfile, libportaudio, libvorbis-dev and liblame-dev ,你可以通过yum search +包名 和
yum install +包名 命令搜索安装,例如:缺少libsndfile,先yum search sndfile (一般安装包名中含有-devel的开发包),然后
yum install +包名
http://www.eguidedog.net/cn/ekho_cn.php
二、Ekho语音开发
( ~.~ 开发部分待续 ~.~ 敬请期待~.~)
附录: (Festival的安装)
此段转自:http://blog.csdn.net/w7849516230/article/details/7264681
Festival提供了一个通用的框架,用于构建语音合成系统,该系统包含了各种模块示例。它提供了完整的文本转语音的API,可以通过shell、C++静态库等多种方式调用,原生支持Mac OS,支持的语言包括英语和西班牙语;而且系统是使用c++编写,底层调用Edinburgh Speech Tools;
先阅读它的手册知,下载需要的压缩包(http://festvox.org/packed/festival/2.1/):
festival-2.1-release.tar.gz Festival语音合成系统源文件
speech_tools-2.1-release.tar.gz Edinburgh语音工具库
festlex_CMU.tar.gz festlex_POSLEX.tar.gz词典
festvox_kallpc16k.tar.gz 语料库
前两个解压后需要配置编译,后三个解压后自动解压在festival文件夹中。首先编译speech_tools,进入该文件夹,输入:
#./configure
#make
其它如在Cygwin、vc下的编译在INSTALL文件中有说明。然后进入festival文件夹,按照INSTALL文件中的说明进行安装,是可以看到详细的安装说明,以及需要文件夹festival speech_tools的。还是一般的./configure make即可,由于仅是在本地使用,没有了Site initialization这一步,在安装完成后运行bin/festival,如无错误提示出现:
Festival Speech Synthesis System 2.1:release November 2010
Copyright (C) University of Edinburgh, 1996-2010. All rights reserved.
clunits: Copyright (C) University of Edinburgh and CMU 1997-2010
clustergen_engine: Copyright (C) CMU 2005-2010
hts_engine:
The HMM-based speech synthesis system (HTS)
hts_engine API version 1.04 (http://hts-engine.sourceforge.net/)
Copyright (C) 2001-2010 Nagoya Institute of Technology
2001-2008 Tokyo Institute of Technology
All rights reserved.
For details type `(festival_warranty)'
festival>
可以输入help或者(SayText "Hello World!")测试。如果出现Can't open /dev/dsp的错误,可以在~/.festivalrc文件写入:
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")
=============================================================
自己的espeak测试
一、 介绍
1. 用途:可识别多语言的朗读软件
2. 特点:
1) 能读中文:相对英文,更适合朗读中文
2) 可以在程序中被调用——提供c++接口及库
3) 支持词的识别和
4) 安装简单,安装文件少,依赖库少,移植方便
a) 源码32981行
b) espeak_1.36.orig.tar.gz,只有1M多,源码及数据(多语言规则)
5) 相对比较平滑
6) 能处理多音字
二、 平台
1. 有windows,Linux系统版本支持
2. ubuntu 8.04系统自带espeak
三、 试试中文发音
$ espeak -vzh “hello world”
$ espeak -vzh “你好”
四、 编译
1. 下载espeak-1.36-orig.tar.gz
2. 安装
$ tar xvzf espeak-1.36-orig.tar.gz
$ cd espeak-1.36
$ cd src
$ make
$ make install
3. 注意:
它需要portaudio库的支持,如ubuntu 8.04中自带这个库,但库名不同,可做个链接
ln -s /usr/lib/libportaudio.so.0 /usr/libportaudio.so
4. 编译后主要产生三个文件
espeak是可执行文件,它依赖libespeak.so.1.1.36库
speak是不依赖库的可执行文件
libspeak.so.1.1.36是动态库,一方面对espeak做支持,也可被C程序调用
五、 安装结构
1. 库
2. 可执行程序
3. 数据
1) 字与读音对应(一级汉字)
2) 词
3) 多音字
六、 c程序调用试例
1. 代码
#include <espeak/speak_lib.h> // 包括espeak的头文件
#include <string.h>
#include <unistd.h>
int main(int argc, char **argv)
{
char word[] = "吃葡萄不吐葡萄皮";
espeak_Initialize(AUDIO_OUTPUT_PLAYBACK, 0, NULL, 0); // 初始化
espeak_SetVoiceByName("zh+f2"); // 设置音源为中文女声
espeak_Synth(word, strlen(word) + 1, 0, POS_CHARACTER, 0,
espeakCHARS_UTF8, NULL, NULL); // 发音
sleep(3); // 等一段时间,否则程序会立即退出,听不到发音
espeak_Terminate(); // 回收资源
}
2. 编译
$ g++ test1.c -o test1 -lespeak
七、 开发指南
http://e-guidedog.sourceforge.net/doc_espeak.php