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并播放。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/703674.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用MATLAB对地铁站、公交站等求解最短路径

使用MATLAB对城市的地铁站、公交站等站点,根据站点的经纬度坐标和彼此之间的权重,求解其最短路径、途径站点和路程 已知的数据如图,是西安市地铁站点的数据,保存在一个Excel里 如图,每列的内容都在上面,不…

smart_rtmpd 的后台管理

高效的流媒体服务器 smart_rtmpd,您值得拥有 smart_rtmpd 的下载地址 https://github.com/superconvert/smart_rtmpd smart_rtmpd 的管理后台 https://github.com/superconvert/smart_rtmpd/edit/master/web%20manager/src/README.md web 管理后台说明 web 管理…

鹏城实验室PCLmed团队荣获ImageCLEFmedical 2024冠军,实现医疗图像解读新突破

在近期举行的ImageCLEFmedical 2024全球医疗图像分析和文本生成竞赛中,鹏城实验室专注于医学模型研究的PCLmed团队凭借卓越的技术实力和创新的解决方案,从来自世界各地的61支参赛队伍中脱颖而出,斩获冠军殊荣。这一成就不仅彰显了团队在医疗图…

树结构的实现

树的概念 树是一种非线性的数据结构,它是由n个有限节点组成一个具有层次关系的集合,它看起来像棵树,所以称其为“树”。如下图: 树可以分为根和子树,而子树又可以被分为根和子树,故我们可以用递归对其进行实…

基恩士LT-X8000A的IP地址

在这里插入图片描述 192.168.0.256 192.168.0.1 LT-X8000A

Kotlin 协程真的轻量吗?

前言 在官方文档的介绍中,提到了: 协程是轻量的 并给出了一个例子: fun main() = runBlocking {repeat(50_000) {// 启动大量的协程launch {delay

Button按钮类

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 按钮是GUI界面中应用最为广泛的控件,它常用于捕获用户生成的单击事件,其最明显的用途是触发绑定到一个处理函数。 wxPython类…

180.二叉树:二叉搜索树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

MFC上下文菜单与定时器学习笔记

本博文简单介绍了上下文菜单以及定时器的知识内容,作为笔记发表在csdn上面。 在这里插入图片描述 菜单资源的使用 添加菜单资源加载菜单资源: 注册窗口类时设置菜单创建窗口传参设置菜单在主窗口WM_CREATE消息中利用SetMenu函数设置 加载菜单资…

Python学习笔记6:pychram相关知识及安装教程,后续需要学习的入门知识

上篇文章说了,今天去公司重新装一下IDE,最后也是把过程这边再记录一下,有需要的可以参考一下。 关于pychram pychram是什么? PyCharm是由JetBrains公司开发的一款流行的Python集成开发环境(IDE)。它专为…

RAM IP核配置

REVIEW 之前已经学习过: ROM:FPGA寄存器 Vivado IP核-CSDN博客 串口接收:Vivado 串口接收优化-CSDN博客 1. 今日摸鱼计划 RAM创建与测试 小梅哥视频: 21C_嵌入式块存储器RAM介绍_哔哩哔哩_bilibili 21D_嵌入式块存储器RAM实现和仿真_哔哩…

wordpress旅游网站模板

旅行社wordpress主题 简洁实用的旅行社wordpress主题,适用于旅行社建网站的wordpress主题模板。 https://www.jianzhanpress.com/?p4296 旅游WordPress主题 简洁实用的旅游WordPress主题,适合做旅游公司网站的WordPress主题模板。 https://www.jian…

网络故障排除:保持网络稳定与业务连续

目录 什么是网络故障? 网络故障排除的基本步骤 1. 问题识别 2. 确定故障范围 3. 检查物理连接 4. 检查设备配置 5. 测试与诊断 6. 实施解决方案 7. 验证与监控 了解更多 在现代企业中,网络的稳定性和性能直接影响业务的连续性和效率。作为一名…

上岸北科大计算机专业难度有多大?北京科技大学计算机考研考情分析!

北京科技大学计算机与通信工程学院源于1973年成立的计算机及应用专业,经过近40年的建设,学院在学科建设、科学研究水平和教育教学质量上实现了跨越式的发展与大力提升。学院目前设有计算机科学与技术系、软件工程系、通信工程系、物联网与电子工程系、信…

项目文件预览

在实际项目开发过程,项目使用数据存在多种形式,“文件”也是一种常见形式,因此,“文件预览”功能变成了常规需求。 kkFileView项目使用流行的spring boot搭建,易上手和部署。万能的文件预览开源项目,基本支…

知识图谱的应用---智慧外交

文章目录 智慧外交典型应用 智慧外交 智慧外交是指通过事件分析的手段,从历史、政治、经济、军事、文化等多个层面对各个国家的关系进行定量分析,提供智能化的外交关系研判和外交决策支撑。依托公开媒体、互联网及内部信息等海量资源数据,综合…

视频号小店常见问题全网最全的合集,赶紧收藏起来!

大家好,我是电商小V 新的电商项目视频号小店也是越来越火,想去操作的小伙伴也是越来越多,但是很多人对于这个项目本身不是很了解,咱们今天就来详细的说一下视频号小店,最关心的问题,一篇详解,建…

计算机组成原理(五)

一、链式查询方式 接口的优先级固定不变 在链式查询的情况下,设备的优先级通常与其在链中的位置有关。具体来说,越靠近查询链的起始位置的设备通常具有较高的优先级,而越靠近链的末尾位置的设备优先级较低。 优点: 简单实现&am…

12. ESP32-JSON(Arduino)

使用ESP32和Arduino框架处理JSON数据 在物联网(IoT)开发中,ESP32是一款功能强大的微控制器,它结合了Wi-Fi和蓝牙功能,适用于各种智能设备和传感器项目。JSON(JavaScript Object Notation)是一种…

StaticText文本类

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 创建完窗口以后,我们可以在窗口内添加一些控件,所谓的控件,就是经常使用的按钮、文本、输入框、单选框等。 于所…