一、 介紹
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