您的位置: 主页>机器人编程>ROBOLAB编程>【体验】朗读机器人是如何炼成的!带你体验TTS语
加盟酷吧机器人 培养孩子核心能力

【体验】朗读机器人是如何炼成的!带你体验TTS语

TTS相信大家都有所耳闻,就是文字转语音,即语音合成。可以理解是个朗读机器人,我给他文字他给我阅读出来。听起来非常爽吧,懒得看书,找个机器人给我读书....

今天带大家体验一个TTS硬件模块,看看硬件模块语音合成效果如何

效果视频:

需要准备的东西和工具

材料:

Nodemcu(ESP8266)

【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试

TTS串口文字转语音模块

【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试

扬声器

按钮

工具:

电烙铁

windows 10 PC电脑

软件:

arduino

python3

系统结构及流程:

按钮会触发一个低电平,ESP8266得到这个触发事件,去调用API获得一首随机唐诗,将数据通过串口发送给TTS模块,TTS模块通过喇叭诵读唐诗。

【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试

硬件连接:

ESP8266使用的针脚如图所示:

【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试

TTS_B719的背面很清晰,按照标识连接即可。黄色框选处连接TTS_B719的电源,红色框选处连接TTS_B719的串口。蓝色框选处连接按钮。

【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试

需要注意:

ESP8266的TX要连接TTS_B719的RX。ESP8266的RX要连接TTS_B719的TX。

按钮是低电平触发,按钮焊接D4和ESP8266上随便找个GND即可。

【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试

本项目使用了如下项目及代码:        1.   唐诗数据库

https://github.com/chinese-poetry/chinese-poetry/tree/master/json

2.   json到sqlite转换工具

https://github.com/animalize/QuanTangshi/blob/master/tools/ok_make_db.py

这是一个安卓项目,作者提供了一个转换工具。我在其基础上增加了繁体转简体。以及删掉了标题、内容中包含括号、书名号等字符的诗。

3.   繁体转简体

https://github.com/skydark/nstools/tree/master/zhtools

4.   flask框架

https://palletsprojects.com/p/flask/

API部分使用flask框架。

5.   arduino 的 esp8266 支持库

在arduino的首选项中,增加如下内容:

https://arduino.esp8266.com/stable/package_esp8266com_index.json

打开开发板管理器,搜索esp8266并安装。

【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试

6.   wifimanager

让arduino方便配网的库。可自定义热点名称。连接后输入192.168.4.1进行配网,从而让esp8266可以联网。

打开库管理器,搜索wifimanager tzapu,按照下图所示,点击安装。

【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试

程序使用:

克隆本项目:https://github.com/my-products/tangshi,进入 api/json2sqlite 目录,执行 python3 get.py 把json数据库转为sqlite。

然后到api目录,执行 python3 web.py 开启服务。

git clonehttps://github.com/my-products/tangshi.git

cd tangshi

cd api

cdjson2sqlite

python3get.py

cd ..

python3web.py

在浏览器中访问 http://localhost:5000/json 可以随机获得一首唐诗(json格式)

【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试

为了方便语音合成,还可以访问 http://localhost:5000/text/utf8 随机获得一首唐诗(纯文本格式)。

使用arduino打开目录arduinotangshi,tangshi.ino是源代码。打开后直接使用arduino烧录即可。

tangshi.ino.nodemcu.bin 是生成的二进制。如果你想直接用,可以使用esp8266的烧录工具直接烧录。烧录地址,0x00。烧录工具:乐鑫官方地址下载https://www.espressif.com/sites/default/files/tools/flash_download_tools_v3.6.7.zip

直接使用乐鑫烧录时,需要注意的是,在需要做配置的地方,参考arduino的参数即可:

【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试

该固件中,API调用的http://106.12.133.66:5000/text/gbk是我临时的服务器地址,没准儿什么时候会停止,所以建议大家还是使用自己的API。

遇到的问题及解决方法:

utf8格式的文本tts语音合成模块不认。去卖家店铺看了一下详细说明,发现这个模块支持的是ansi编码,解决的方法有下边两种:

方法1:ino源文件以ansi编码保存

这种方法不好。arduino再编辑,又是utf8格式的。除非你每次烧录前用记事本保存为ansi格式,使用arduino别点击保存,直接烧录。

方法2:输出ansi编码给串口

使用python3,在控制台可以通过.encode("ansi")进行转换。但是,linux下似乎无效,提示找不到这个ansi编码。在linux下,可以使用.encode("gbk")来获得ansi字符。

所以,API中也提供了ansi和gbk两种方式调用。如访问 http://localhost:5000/text/gbk 随机获得一首唐诗(gbk格式)。

总结:

和各种云计算平台提供的TTS相比还是有差距的…,30元的模块,要什么自行车

后记,小编朋友公司研发了一个游戏化的少儿编程在线课程(5-12岁),游戏化教学结合scratch(一款在线少儿编程工具,类似乐高的积木拼搭),我家娃娃学了几次课,非常喜欢(超预期),16次课才200多块钱,对锻炼孩子的思维能力和动手动力很有帮助。

欧美思机器人教育加盟 赚钱好项目
上一篇:用Arduino Uno实现简易数字示波器
下一篇:走进STEM课堂, 在做中学科学
您可能喜欢
回到顶部