在arm上移植eSpeak-1.48.04

2019-07-12 23:45发布

开发板运行系统:32位linux 主机 ubuntu17.04
1、下载portaudio_v18_1.zip http://www.portaudio.com/download.html

2、下载eSpeak-1.48.04-source.zip http://espeak.sourceforge.net/download.html

3、交叉编译portAudio (1) #unzip portaudio_v18_1.zip (2) #cd portaudio_v18_1 (3) 这里有三个文件需要进行格式转换:configure、config.sub、config.guess、Makefile(后面./configure生成),以configure为例,修改方式如下: #vi configure :set ff = unix (通过:set ff?查看fileformat = dos 是windows下的文本格式 需要设置成unix 不然会出现错误) :wq (4)到这一步直接执行./configure 会报错 原因是configure没有执行权限,有两种方式可以解决 1)方法1: #bash ./configure CC=/usr/local/arm/arm-2009q3/bin/arm-linux-gcc AR=/usr/local/arm/arm-2009q3/bin/arm-linux-ar STRIP=/usr/local/arm/arm-2009q3/bin/arm-linux-strip --host=arm (红 {MOD}标记部分请参考自己交叉编译链的安装位置自行修改) 2)方法2: #chmod +x configure #/configure CC=/usr/local/arm/arm-2009q3/bin/arm-linux-gcc AR=/usr/local/arm/arm-2009q3/bin/arm-linux-ar STRIP=/usr/local/arm/arm-2009q3/bin/arm-linux-strip --host=arm (5) #vi Makefile Makefile最后两个目标bin: lib:改为bin/: lib:/ (不然会报错——make:*** No rule to make target 'lib:',needed by 'lib/libportaudio.a') (6) #make (7) #make install 静态库libportaudio.a 动态库libaudio.so libaudio.0.0,18 在/usr/local/lib/目录下 头文件portaudio.h 在/usr/local/include/目录下
4、交叉编译eSpeak (1) #unzip eSpeak-1.48.04-source.zip (2) #cd ./eSpeak-1.48.04-source/src (3) #cp portaudio18.h portaudio.h(这里有两个版本portaudio18.h portaudio19.h 根据你所选择的portaudio版本来进行这步操作) (4) #vi Makefile 注释掉30行:AUDIO = portaudio   注释打开31行:AUDIO = portaudio0     注释掉53行: LIB_AUDIO=/usr/lib/libportaudio.so.0       添加LIB_AUDIO=/usr/local/lib/portaudio.so  98行添加CXX = /usr/local/arm/arm-2009q3/bin/arm-linux-g++ (不然会报错——./libespeak.so:undefined reference to 'pa_StreamActive' 其实有很多行 我比较懒 只记录了最后一行) (5) make (6) make install
5、移植 (1)将/eSpeak-1.48.04-source/src/libespeak、/eSpeak-1.48.04-source/src/libespeak.so 、/eSpeak-1.48.04-source/src/libespeak.so.1、/eSpeak-1.48.04-source/src/libespeak.so.1.1.48、/eSpeak-1.48.04-source/espeak-data、/usr/local/lib/libportaudio.so 复制到挂在到开发板上的nfs目录下 (2)裁剪espeak-data,在该目录下*_dict文件表示语言 如en_dict表示英语,可根据需求删除不需要的语言,以便节省空间,注意不要将没有*_dict的文件删掉了 (3)将libportaudio.so复制到/usr/local/lib/目录下 (4)将espeak-data复制到/usr/share/目录下 (5)将espeak、libespeak.so、libespeak.so.1、libespeak.so.1.1.48 复制到同一目录 如/mnt (6)#cd /mnt  #./espeak "hello" 发出声音
参考: http://blog.csdn.net/ipromiseu/article/details/4169379