开发板运行系统: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

Logo

更多推荐