【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试...
微信關(guān)注?“DLGG創(chuàng)客DIY”
設(shè)為“星標(biāo)”,重磅干貨,第一時(shí)間送達(dá)。
TTS相信大家都有所耳聞,就是文字轉(zhuǎn)語音,即語音合成。可以理解是個(gè)朗讀機(jī)器人,我給他文字他給我閱讀出來。聽起來非常爽吧,懶得看書,找個(gè)機(jī)器人給我讀書....
今天帶大家體驗(yàn)一個(gè)TTS硬件模塊,看看硬件模塊語音合成效果如何
效果視頻:
需要準(zhǔn)備的東西和工具
材料:
Nodemcu(ESP8266)
TTS串口文字轉(zhuǎn)語音模塊
揚(yáng)聲器
按鈕
工具:
電烙鐵
windows 10 PC電腦
軟件:
arduino
python3
系統(tǒng)結(jié)構(gòu)及流程:
按鈕會(huì)觸發(fā)一個(gè)低電平,ESP8266得到這個(gè)觸發(fā)事件,去調(diào)用API獲得一首隨機(jī)唐詩(shī),將數(shù)據(jù)通過串口發(fā)送給TTS模塊,TTS模塊通過喇叭誦讀唐詩(shī)。
硬件連接:
ESP8266使用的針腳如圖所示:
TTS_B719的背面很清晰,按照標(biāo)識(shí)連接即可。黃色框選處連接TTS_B719的電源,紅色框選處連接TTS_B719的串口。藍(lán)色框選處連接按鈕。
需要注意:
ESP8266的TX要連接TTS_B719的RX。ESP8266的RX要連接TTS_B719的TX。
按鈕是低電平觸發(fā),按鈕焊接D4和ESP8266上隨便找個(gè)GND即可。
本項(xiàng)目使用了如下項(xiàng)目及代碼:
????????1.???唐詩(shī)數(shù)據(jù)庫(kù)
https://github.com/chinese-poetry/chinese-poetry/tree/master/json
2.???json到sqlite轉(zhuǎn)換工具
https://github.com/animalize/QuanTangshi/blob/master/tools/ok_make_db.py
這是一個(gè)安卓項(xiàng)目,作者提供了一個(gè)轉(zhuǎn)換工具。我在其基礎(chǔ)上增加了繁體轉(zhuǎn)簡(jiǎn)體。以及刪掉了標(biāo)題、內(nèi)容中包含括號(hào)、書名號(hào)等字符的詩(shī)。
3.???繁體轉(zhuǎn)簡(jiǎn)體
https://github.com/skydark/nstools/tree/master/zhtools
4.???flask框架
https://palletsprojects.com/p/flask/
API部分使用flask框架。
?
5.???arduino 的 esp8266 支持庫(kù)
在arduino的首選項(xiàng)中,增加如下內(nèi)容:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
打開開發(fā)板管理器,搜索esp8266并安裝。
6.???wifimanager
讓arduino方便配網(wǎng)的庫(kù)。可自定義熱點(diǎn)名稱。連接后輸入192.168.4.1進(jìn)行配網(wǎng),從而讓esp8266可以聯(lián)網(wǎng)。
打開庫(kù)管理器,搜索wifimanager tzapu,按照下圖所示,點(diǎn)擊安裝。
程序使用:
克隆本項(xiàng)目:https://github.com/my-products/tangshi,進(jìn)入 api/json2sqlite 目錄,執(zhí)行 python3 get.py 把json數(shù)據(jù)庫(kù)轉(zhuǎn)為sqlite。
然后到api目錄,執(zhí)行 python3 web.py 開啟服務(wù)。
git clonehttps://github.com/my-products/tangshi.git
cd tangshi
cd api
cdjson2sqlite
python3get.py
cd ..
python3web.py
在瀏覽器中訪問?http://localhost:5000/json?可以隨機(jī)獲得一首唐詩(shī)(json格式)
為了方便語音合成,還可以訪問?http://localhost:5000/text/utf8?隨機(jī)獲得一首唐詩(shī)(純文本格式)。
?
使用arduino打開目錄arduino\tangshi,tangshi.ino是源代碼。打開后直接使用arduino燒錄即可。
tangshi.ino.nodemcu.bin 是生成的二進(jìn)制。如果你想直接用,可以使用esp8266的燒錄工具直接燒錄。燒錄地址,0x00。燒錄工具:樂鑫官方地址下載https://www.espressif.com/sites/default/files/tools/flash_download_tools_v3.6.7.zip
直接使用樂鑫燒錄時(shí),需要注意的是,在需要做配置的地方,參考arduino的參數(shù)即可:
該固件中,API調(diào)用的http://106.12.133.66:5000/text/gbk是我臨時(shí)的服務(wù)器地址,沒準(zhǔn)兒什么時(shí)候會(huì)停止,所以建議大家還是使用自己的API。
?
遇到的問題及解決方法:
utf8格式的文本tts語音合成模塊不認(rèn)。去賣家店鋪看了一下詳細(xì)說明,發(fā)現(xiàn)這個(gè)模塊支持的是ansi編碼,解決的方法有下邊兩種:
方法1:ino源文件以ansi編碼保存
這種方法不好。arduino再編輯,又是utf8格式的。除非你每次燒錄前用記事本保存為ansi格式,使用arduino別點(diǎn)擊保存,直接燒錄。
方法2:輸出ansi編碼給串口
使用python3,在控制臺(tái)可以通過.encode("ansi")進(jìn)行轉(zhuǎn)換。但是,linux下似乎無效,提示找不到這個(gè)ansi編碼。在linux下,可以使用.encode("gbk")來獲得ansi字符。
所以,API中也提供了ansi和gbk兩種方式調(diào)用。如訪問?http://localhost:5000/text/gbk?隨機(jī)獲得一首唐詩(shī)(gbk格式)。
總結(jié):
和各種云計(jì)算平臺(tái)提供的TTS相比還是有差距的…,30元的模塊,要什么自行車
轉(zhuǎn)了嗎贊了嗎在看嗎 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【笔记】SFTP、ssh密钥连接远程服务
- 下一篇: 【AI2】更新app inventor2