|||
近期需要在一个项目中应用到语音播报功能,开始的设计方案采用串口语音模块。后来发现串口语音模块市场上推出来的产品不多也不专业,并且这种模块控制不够灵活,需要分段提取语音,程序上控制也麻烦,还需要找专业播音员进行声音采集。采用TTS语音合成技术,解决了录音采集,以及语音音效的问题。通过在ARM9嵌入式板上理论验证后,完全满足目前要求。以下是在TTS中需要用到相关一些工具,只把编译步骤记录下来,防止日后遗忘。具体实现过程放在脑海里就行了。
先从SourceForge.net下载四个文件:madplay-0.15.2b.tar.gz,libid3tag-0.15.1b.tar.gz,libmad-0.15.1b.tar.gz,zlib-1.2.3.tar.gz(压缩库存,libid3tag需要用到它)。在编译前,请先在宿主机上配置好交叉编译环境,以下编译过程是在交叉版本为3.4.5编译器环境下通过。
1. 编译zlib
./configure --prefix=/usr/local/arm/crosstool/gcc-3.4.5-2.3.6/arm-linux/arm-linux
修改Makefile
CC=arm-linux-gcc
AR=arm-linux-ar rc
RANLIB=arm-linux-ranlib
执行 make,make install
成功编译后,zlib库就安装到了交叉编译器的目录下了。
2. 编译libid3tag
./configure CC=arm-linux-gcc --host=arm-linux --disable-debugging -disable-shared --prefix=/usr/local/arm/crosstool/gcc-3.4.5-2.3.6/arm-linux/arm-linux
make
make install
3. 编译libmad
./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/usr/local/arm/crosstool/gcc-3.4.5-2.3.6/arm-linux/arm-linux CC=arm-linux-gcc
make
make install
4. 编译madplay
./configure --host=arm-linux CC=arm-linux-gcc --disable-debugging --disable-shared
make
以上步骤完成后,把madplay拷贝到嵌入式板上即可,madpay依赖的库:libm.so.6,libc.so.6,它并不需要把步骤1,2,3编译好的库拷贝到嵌入式板上。
银行,医院,政务部门的排队叫号系统就是采用TTS语音合成技术的,我做完这个项目后才发现了这个秘密,一般人我是不告诉他的,嘿嘿。。。