最近业务上面有个文字转语音的想法,搜了下espeak可以实现这部分功能,搞下来试试效果!
一、源码包下载
1、下载pa_stable_v190700_20210406.tgz
http://www.portaudio.com/download.html
2、下载espeak-1.48.04-source.zip
http://espeak.sourceforge.net/download.html
3、中文语言包
http://espeak.sourceforge.net/data/zh_listx.zip
二、编译
这边先直接在编译服务器上面编译测试下效果,如果效果好再通过交叉编译安装到设备上。
1、编译portaudio
tar -zxvf pa_stable_v190700_20210406.tgz
./configure --prefix=/home/build #指定install的路径
make;make install
2、编译espeak
unzip espeak-1.48.04-source.zip
cp /home/build/include/portaudio.h ./espeak-1.48.04-source/src/portaudio.h
修改espeak-1.48.04-source/src/Makefile
第3行:DATADIR=/home/build/espeak-data
第5行:PREFIX=/home/build/
第48行:LIB_AUDIO=-L$(PREFIX)/lib -lportaudio
第94行:LIBS3=-lstdc++ $(LIB_AUDIO) -L . -lespeak
修改src/speech.h
第61行:#define PATH_ESPEAK_DATA “/home/build/espeak-data”
make;make install
3、安装中文包
unzip zh_listx.zip
cp zh_listx espeak-1.48.04-source/dictsource/
cd espeak-1.48.04-source/dictsource/
../src/espeak --compile=zh
三、测试
/home/build/bin/espeak -v zh "你好" -w ./hello.wav
用播放器播放hello.wav,听到“伦敦腔”的中文,功能可用。