一、 介绍
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的头文件
#include
#include
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