一、  介绍

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

2.          特点:

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

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

3)         支持词的识别和

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

a)          源码32981

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

5)         相对比较平滑

6)         能处理多音字

二、  平台

1.          windowslinux系统版本支持

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

 

posted on 2010-01-02 11:08  xieyan0811  阅读(207)  评论(0编辑  收藏  举报