Linux 中文朗读软件 --espeak

一、介绍

1. 用途:可识别多语言的朗读软件

2. 特点:

  1. 能读中文:相对英文,更适合朗读中文

  2. 可以在程序中被调用——提供 c++ 接口及库

  3. 支持词的识别和

  4. 安装简单,安装文件少,依赖库少,移植方便

  1. 源码 32981 行

  2. espeak_1.36.orig.tar.gz,只有 1M 多,源码及数据(多语言规则)

  1. 相对比较平滑

  2. 能处理多音字

二、平台

1. 有 windows,linux 系统版本支持

2. ubuntu 8.04 系统自带 espeak

三、试试中文发音

1
2
$ espeak -vzh “hello world”  
$ espeak -vzh “ ** ** 你好 ** ** ” **

四、编译

1. 下载 espeak-1.36-orig.tar.gz

2. 安装

1
2
3
4
5
$ tar xvzf espeak-1.36-orig.tar.gz  
$ cd espeak-1.36
$ cd src
$ make
$ make install

3. 注意: 它需要 portaudio 库的支持,如 ubuntu 8.04 中自带这个库,但库名不同,可做个链接

1
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. 多音字

六、c 程序调用试例

1. 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#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. 编译

1
$ g++ test1.c -o test1 -lespeak

七、开发指南
[http://e-guidedog.sourceforge.net/doc_espeak.php

](http://e-guidedog.sourceforge.net/doc_espeak.php)