espeak和portaudio安装

版本:espeak-1.48.13 portaudio_v18_1
平台:ubuntu14.04 X64
依赖:espeak运行需要用到poartaudio的语音引擎的支持
espeak简介:
  • 可识别多语言的朗读软件
  • 能读中文:相对英文,更适合朗读中文
  • 可以在程序中被调用——提供c++接口及库
  • 支持词的识别和
  • 安装简单,安装文件少,依赖库少,移植方便
  • 源码32981/相对比较平滑/能处理多音字

1. 获取源码
 1. espeakhttp://espeak.sourceforge.net/
 2. portaudiohttp://www.portaudio.com/faq.html
2. 编译portaudio主要参考http://portaudio.com/docs/v19-doxydocs/compile_linux.html
 1. 遇到问题
 1. /usr/bin/ld: /usr/local/lib/mysql/libz.a(compress.o): relocation R_X86_64_32 against `.rodata.str1.1′ can not be used when making a shared object; recompile with -fPIC
 /usr/local/lib/mysql/libz.a: could not read symbols: Bad value
 2. 解决办法:编辑MakeFile文件
在CFLAGS=... 一行最后增加 
-fPIC
 3. 然后重新make
2. 编译完成后需要把生成/opt/portaudio_v18_1/lib /文件夹下的
libportaudio.so.0.0.18文件 拷贝到/usr/lib或者/usr/local/lib文件夹下,并且在/usr/lib文件夹下生成动态连接命令是: cd /usr/lib
 ln -sv libportaudio.0.0.18 libportaudio.so
 否则在编译espeak的时候就会报错
/usr/bin/ld: cannot find -lxxx
3. 编译espeak
 1. 如果poartaudio没有出问题的话只要按照下面步骤执行就可以完成便已过程
 2. $ tar xvzf espeak-1.48.13.tar.gz
 $ cd espeak-1.48.13
 $ cd src
 $ make
 $ make install
 3. 变已完成滞后和portaudio一样记得把库文件拷贝到/usr/lib或者/usr/local/lib文件夹下, 并且在/usr/lib文件夹下生成动态连接命令是:cd /usr/lib
 ln -s llibespeak.so.1.1.48 libespeak.so
4. 测试例程
 1. 进入到编译所在目录在终端也可测试:
 1. $ ./espeak -vzh “hello world”
 $ ./espeak -vzh “你好”
 2.#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();  // 回收资源
 }

你可能感兴趣的:(tts,PortAudio,espeak)