RK3568笔记三十一:ekho 6.3 文本转语音移植

若该文为原创文章,转载请注明原文出处。

移植的目的是在在OCR识别基础上增加语音播放,把识别到的文字直接转TTS播报出来,形成类似点读机的功能。

1、下载文件

libsndfile-1.0.28.tar.gz
ekho-6.3.tar.xz

2、解压

tar zxvf libsndfile-1.0.28.tar.gz
tar xvf ekho-6.3.tar.xz

3、编译libsndfile

进入libsndfile-1.0.28,在当前目录下新创建install目录。

./configure --prefix=/home/alientek/tools/libsndfile-1.0.28/install --host=arm-linux --target=arm CC=/opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-gcc AR=/opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-ar --disable-external-libs
make 
make install

编译完成后,在install目录下的lib生成了库文件

4、交叉编译ekho

ekho目录中新建一个目录install

#记得export一下交叉编译工具链
export PATH=t/atk-dlrk356x-toolchain/usr/bin:$PATH

配置文件

./configure --prefix=/home/alientek/tools/ekho-6.3/install 
--host=aarch64-linux-gnu --target=aarch64 
CC=/opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-gcc 
CC=/opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-g++ 
CXX=/opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-g++ 
AR=/opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-ar
LDFLAGS=-L/home/alientek/tools/libsndfile-1.0.28/install/lib CFLAGS=-I/home/alientek/tools/libsndfile-1.0.28/install/include CPPFLAGS=-I/home/alientek/tools/libsndfile-1.0.28/install/include CXXFLAGS="-DNO_SSE" 
--without-pulseaudio 

注意,交叉编译工具链的设置要包括ar工具

make
make install

编译报错:./config.h:139:16: error: ‘rpl_malloc’ was not declared in this scope; did you mean ‘realloc’? 139 | #define malloc rpl_malloc

处理: 屏蔽了

报错,把libekho_a-dsp.o删除。

rm -rf /home/alientek/tools/ekho-6.3/sr-convert/libekho_a-dsp.o

编译正常,在install目录下生成可执行文件和库文件

5、测试

把编译好的文件拷贝到开发板

需要拷贝的文件有bin下的执行文件,拷贝到开发板bin下

动态库,拷贝到/usr/lib,动态文件是libsndfile.so等。

把ekho-data 文件夹下载到开发板的 /usr/share 目录

其中Cantonese(粤语)、Mandarin(普通话)、Ngangien(元朝前古汉语@_@)、Hakka(客家语)倒是能翻译普通话,Tibetan(藏语),Hangul(朝鲜语)就不行不行。默认是Mandarin,遗憾的是普通话下不能朗读字母,要Festival的支持才行。一开始用英文测试,还以为没安装成功。

红色框框的是其他语言库可以删除。

测试命令:

测试:
直接文字转语音
ekho "你好"

读取文本文字转语音
ekho -f test.txt

 文字转语音文件
ekho "测试音频" -o test.wav

文字转语音,广东话 
ekho -v Cantonese "你好"

通过参数-s,调整语速,默认为0
ekho "测试语速" -s 30

通过参数-p,调整语调,默认为0,(-100 ,100]
ekho "测试语调" -p 20

通过参数-a,调整音量,默认为0,(-100, 100]
ekho "测试音量" -a 20

更多命令使用查看: 
ekho  -h 

接下来结合OCR识别文件转成wav并播放。

如有侵权,或需要完整代码,请及时联系博主。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殷忆枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值