开发板运行系统: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
(红色标记部分请参考自己交叉编译链的安装位置自行修改)
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