合宙10月份推出的Air780E模組,是一款LTE Cat.1 bis通信模塊,采用移芯EC618平臺,支持4G全網(wǎng)通。
合宙也推出了相應(yīng)的開發(fā)板,別看開發(fā)板身材小,價(jià)格低,但是身手不差。
合宙Air780E模組支持TTS/MP3/AMR等語音功能,同時(shí)在Air780E開發(fā)板內(nèi)置了順芯7149Audio Codec。
為了方便開發(fā)者使用音頻功能,驅(qū)動各式喇叭,玩出花兒來,合宙還特別準(zhǔn)備了 Air780E音頻擴(kuò)展板以及喇叭 ,可輕松實(shí)現(xiàn)趣味TTS+AMR+MP3語音播放功能。
更更更讓開發(fā)者心顫的是,合宙還搞了個(gè)音頻擴(kuò)展板使用創(chuàng)意視頻大賽,想要進(jìn)一步從開發(fā)者腦細(xì)胞中榨汁:
然而這還不夠,這真的不夠,合宙居然還提供了一個(gè) 合宙Air780E云端音頻配置 ,讓開發(fā)者可以零基礎(chǔ)零代碼把板子和擴(kuò)展板給用起來:
這,這,這你弄了板子,不玩起來,不讓它響起來,你都對不起合宙了。
我第一時(shí)間搶了兩塊9塊9包郵的Aire780E開發(fā)板,后來又搶了兩塊9塊9包郵的音頻擴(kuò)展板。真可謂一坑接一坑,坑坑自愿跳啊!
下面,就將體驗(yàn)云喇叭功能的過程,給大家分享,最終讓Air780E開發(fā)板+音頻擴(kuò)展板用方言打麻將。
一、焊接和連線
先按照下圖,在正確的一面,為開發(fā)板焊上排針,在擴(kuò)展板上焊上母座:
然后,插上SIM卡,連接到喇叭,把開發(fā)板和擴(kuò)展板對插起來:
這里的SIM卡支持,可是全網(wǎng)通的,中國移動、聯(lián)通、電信通殺,全都支持。
另外一點(diǎn)要表揚(yáng)合宙的,合宙出的開發(fā)板,都貼心的提供了擴(kuò)展板,可以很方便的進(jìn)行應(yīng)用。
二、下載固件
-
為了使用云喇叭功能,需要刷入專門的固件。
-
官方提供了固件的源碼,以及編譯好的固件。
-
方便起見,這里直接使用官方提供的固件。
固件下載地址:http://tools.openluat.com/tools/yunlaba
本文編寫時(shí)的固件文件為:
下載固件后,按照下面的教程燒錄固件:https://doc.openluat.com/wiki/37?wiki_page_id=4489#_22
燒錄完成后,就可以開始好好玩了。
三、開機(jī)啟動
使用Type-C數(shù)據(jù)線,給開發(fā)板供電,板子上的紅燈就會亮起來:
因?yàn)椴辶薙IM卡,需要聯(lián)網(wǎng)才能使用,所以稍微等一會,等它聯(lián)網(wǎng)成功。
沒想到,等了半天,它居然一聲不吭,就是紅燈亮著,在那里悶頭悶?zāi)X的發(fā)悶氣。
是有哪里不對嗎?
趕緊看手冊,了解到了詳情:
按照說明,要按一下板子上的開機(jī)鍵:
按就按,誰怕誰呀!
按完后,還真害怕了。大半夜的,突然一下響起來,聲兒還賊大,差點(diǎn)把已經(jīng)睡覺的家人給吵醒了。
按完后,板子開始正常啟動了,綠燈亮了:
正常情況下,喇叭開始響起來:
如果聯(lián)網(wǎng)有問題,或者服務(wù)器無法連接,也會播放對應(yīng)的聲音。
現(xiàn)在板子啟動起來了,可以開始好好玩了。
四、喇叭云起來
用Air780E+音頻擴(kuò)展板,就是想通過云讓喇叭響起來,使用云喇叭工具即可。
合宙提供的云喇叭在線工具地址:http://tools.openluat.com/tools/yunlaba
直接訪問該界面,就能夠給開發(fā)板發(fā)送語音信息,讓喇叭響起來。
打開該界面后,按照如下的步驟使用:
點(diǎn)擊發(fā)送音頻數(shù)據(jù)到設(shè)備后,正常情況下,會提示發(fā)送成功:
稍后,音頻擴(kuò)展板的喇叭就會響起來了。
如果要讓發(fā)送的語音音色音速等更豐富,可以先設(shè)置語音參數(shù),再生成發(fā)送:
可以多多嘗試,找到自己喜歡的或者覺得不錯(cuò)的參數(shù)搭配。
五、探究云喇叭工具如何給設(shè)備發(fā)送數(shù)據(jù)
既然云喇叭在線工具是通過網(wǎng)頁操作的,而且它又沒有直接連接到喇叭,那么一定有什么方式讓兩者互通。
通過瀏覽器的開發(fā)者調(diào)試工具,可以查看端倪。
點(diǎn)擊 發(fā)送音頻數(shù)據(jù)到設(shè)備 ,會在調(diào)試工具的網(wǎng)絡(luò)界面中,看到如下的請求:
從上圖可以看到,云喇叭在線工具給 http://tools.openluat.com/api/site/yunlaba_mqtt 這個(gè)地址,POST發(fā)送了一些數(shù)據(jù)。
看名字,應(yīng)該是發(fā)送給MQTT服務(wù)了,然后在開發(fā)板上,通過MQTT服務(wù),獲取網(wǎng)頁工具發(fā)送的數(shù)據(jù),再進(jìn)行播放。
如果有興趣,可以查看固件對應(yīng)的源碼,其邏輯正是如此。
進(jìn)一步的,可以查看實(shí)際發(fā)送了什么數(shù)據(jù):
從上圖中,可以看到,具體發(fā)送的數(shù)據(jù)如下:
這是個(gè)JSON格式的數(shù)據(jù),格式如下:
-
tpoic:表示信息發(fā)布的主題,具體為:test20220929/IMEI號,后面的IMEI號,就是開發(fā)板上Air780E的IMEI,也就是網(wǎng)頁工具上填寫的
-
text:表示要發(fā)布的語音信息,如果設(shè)置了語音參數(shù),就會帶有一定的參數(shù)標(biāo)記。
了解到以上信息后,可以基本確定一點(diǎn),如果我們也能按照要求,給上述地址,發(fā)送對應(yīng)的JSON格式的數(shù)據(jù),那么也能在程序中,直接使用云喇叭工具提供的后臺服務(wù),來控制我們自己的喇叭了。
要發(fā)送JSON數(shù)據(jù)給直接的服務(wù)網(wǎng)址,可以用Python、nodejs、PHP、Go、Java等語言編程進(jìn)行,也可以直接使用命令行的curl命令來發(fā)送數(shù)據(jù)。
下面是一個(gè)最簡單的發(fā)送信息的shell腳本,該腳本需要在Linux或者macOS環(huán)境中運(yùn)行。如果是在Windows環(huán)境,則可以在WSL中運(yùn)行。
#!/bin/bash
# Air780E模組的IMEI
imei=$1
# 0-4,自己測試選定的幾組語音參數(shù)
idx=$2
# 要發(fā)送的文本內(nèi)容,不能包含空格,單雙引號
msg=$3
if [[ $idx -eq 0 ]];then
# 女1
class="[m53][n0][s7][t7][v1]"
fi
if [[ $idx -eq 1 ]];then
# 男1
class="[m51][n0][s6][v1]"
fi
if [[ $idx -eq 2 ]];then
# 男2
class="[m52][n0][s5][v1]"
fi
if [[ $idx -eq 3 ]];then
# 女2
class="[m53][n0][s6][t5][v1]"
fi
if [[ $idx -eq 4 ]];then
# 男3
class="[m55][n0][s6][v1]"
fi
curl -v 'http://tools.openluat.com/api/site/yunlaba_mqtt'
-H 'Accept: application/json, text/plain, */*'
-H 'Accept-Language: zh,en-US;q=0.9,en;q=0.8,zh-CN;q=0.7,it;q=0.6,ru;q=0.5,zh-TW;q=0.4'
-H 'Cache-Control: no-cache'
-H 'Content-Type: application/json'
-H 'Cookie: _clck=awncqb|1|f7t|0'
-H 'DNT: 1'
-H 'Origin: http://tools.openluat.com'
-H 'Pragma: no-cache'
-H 'Proxy-Connection: keep-alive'
-H 'Referer: http://tools.openluat.com/tools/yunlaba'
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.46'
--data-raw '{"topic":"test20220929/'$imei'","text":"'{$class}{$msg}'"}'
--compressed
--max-time 2
--insecure
(左右移動查看全部內(nèi)容)
在上述腳本中,首先接收3個(gè)參數(shù):
-
imei:IMEI號,對應(yīng)網(wǎng)頁中的IMEI號
-
idx:語音參數(shù)配置的序號
-
msg:文本內(nèi)容,會根據(jù)語音參數(shù)生成語音信息
其中,語音參數(shù)配置的序號,是指我根據(jù)自己的多次測試嘗試,選定了幾組語音配置信息:
你可以自己嘗試,選擇幾組合適的語音配置信息。
而文本內(nèi)容部分,就是要發(fā)送的語音對應(yīng)的文本了,注意不要包含空格、單雙引號等。
將上述腳本保存為send_mqtt.sh,然后執(zhí)行:
./send_mqtt.sh 8615510******** 先賺他個(gè)100億再說
(左右移動查看全部內(nèi)容)
注意將IMEI號替換為自己的開發(fā)板的。
發(fā)送成功后,喇叭就會根據(jù)設(shè)置,響起來了。
六、讓Air780E開發(fā)板+音頻擴(kuò)展板用方言打麻將
在上一步的研究基礎(chǔ)上,只要我們可以以不同的語音配置,將不同的語音信息發(fā)送給開發(fā)板,那么喇叭就能夠以不同的聲音播放不同的內(nèi)容了。
雖然,這些語音信息,也可以提前全部錄制出來,直接發(fā)給開發(fā)板播放,但是如果能夠進(jìn)行動態(tài)的生成播放,那還是更加吸引人的。
為了更好玩,我從一段打麻將的小視頻中,提取了對應(yīng)的對話信息,并經(jīng)過一定的處理,最終讓Air780E開發(fā)板+音頻擴(kuò)展板播放出來。
原始打麻將的小視頻地址:四川方言:老表打麻將,自摸的牌打出去了,把人笑安逸了
在該視頻中,一共有5個(gè)角色,分別標(biāo)識為:
-
前男(苦命男):也就是主角男
-
前女(女王女):也就是主角男的老婆
-
左女(陰險(xiǎn)女):打麻將的女性
-
后男(靦腆男):主角男對面的靦腆悶騷男
-
右男(道貌岸然男):另外一位打麻將的男性
將該視頻中的對話信息提取出來:
并將最后的輸出信息,拷貝到文本文件 對話.txt 中來:
在上一步的send_mqtt.sh中,設(shè)置了5組語音參數(shù)配置,剛好就是對應(yīng)5位角色:
-
前男(苦命男):1
-
前女(女王女):0
-
左女(陰險(xiǎn)女):2
-
后男(靦腆男):3
-
右男(道貌岸然男):4
因此,在提取信息到Excel中的時(shí)候,會設(shè)置對應(yīng)的語音配置編號:
這個(gè)編號,在后面的程序中,也會進(jìn)行調(diào)用,從而使用對應(yīng)的語音配置輸出信息。
最后,再編寫對應(yīng)的腳本:
#!/bin/bash
# Air780E開發(fā)板方言打麻將
send_cmd(){
curl -v 'http://tools.openluat.com/api/site/yunlaba_mqtt'
-H 'Accept: application/json, text/plain, */*'
-H 'Accept-Language: zh,en-US;q=0.9,en;q=0.8,zh-CN;q=0.7,it;q=0.6,ru;q=0.5,zh-TW;q=0.4'
-H 'Cache-Control: no-cache'
-H 'Content-Type: application/json'
-H 'Cookie: _clck=awncqb|1|f7t|0'
-H 'DNT: 1'
-H 'Origin: http://tools.openluat.com'
-H 'Pragma: no-cache'
-H 'Proxy-Connection: keep-alive'
-H 'Referer: http://tools.openluat.com/tools/yunlaba'
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.46'
--data-raw '{"topic":"test20220929/'$1'","text":"'{$2}'"}'
--compressed
--insecure 2>&1 | grep HTTP
echo ""
}
# Air780E模組的IMEI
imei=$1
send_text=""
send_count=0
while read line;
do
send_count=$(echo $line | cut -d " " -f 1)
idx=$(echo $line | cut -d " " -f 2)
msg=$(echo $line | cut -d " " -f 3)
echo i=$send_count idx=$idx msg=$msg
if [[ $idx -eq 0 ]];then
# 女1
class="[m53][n0][s7][t7][v1]"
fi
if [[ $idx -eq 1 ]];then
# 男1
class="[m51][n0][s6][v1]"
fi
if [[ $idx -eq 2 ]];then
# 男2
class="[m52][n0][s5][v1]"
fi
if [[ $idx -eq 3 ]];then
# 女2
class="[m53][n0][s6][t5][v1]"
fi
if [[ $idx -eq 4 ]];then
# 男3
class="[m55][n0][s6][v1]"
fi
send_text="$send_text$class$msg"
if [[ $((send_count%5)) -eq 0 ]];then
echo ""
echo $send_text
send_cmd $imei "$send_text"
send_text=""
sleep 1
fi
done < 對話.txt
if [[ "$send_text" != "" ]];then
echo $send_text
send_cmd $imei "$send_text"
fi
(左右移動查看全部內(nèi)容)
上述腳本的主要邏輯如下:
-
循環(huán)讀取 對話.txt 的每一行內(nèi)容
-
根據(jù)預(yù)先設(shè)置好的角色語音配置序號,生成對應(yīng)的帶標(biāo)記的預(yù)發(fā)送信息
-
累加要發(fā)送的信息,每滿5條,就調(diào)用一次發(fā)送接口發(fā)送信息
將腳本保存為 duihua_damajiang.sh后,然后執(zhí)行該腳本:
./duihua_damajiang.sh 8615510********
(左右移動查看全部內(nèi)容)
注意將IMEI號替換為自己的開發(fā)板的。
運(yùn)行后,待對話信息發(fā)送成功后,喇叭響起來,一圈麻將就打起來了。
打麻將的實(shí)際效果,可以點(diǎn)擊查看:
七、總結(jié)
Air780E開發(fā)板+音頻擴(kuò)展板 ,將云語音應(yīng)用的門檻大幅降低,可以說無門檻入門了。
在熟練使用云端工具配置的基礎(chǔ)上,還可以進(jìn)一步自己編程來實(shí)現(xiàn)更為個(gè)性化的功能。
如果你有多套 Air780E開發(fā)板+音頻擴(kuò)展板 ,那么可以進(jìn)行更為精細(xì)的控制,讓一桌麻將打得更為生動;在其他場合應(yīng)用,也會更為有趣。
本文由電子發(fā)燒友社區(qū)發(fā)布,轉(zhuǎn)載請注明以上來源。如需社區(qū)合作及入群交流,請?zhí)砑?/span>微信EEFans0806,或者發(fā)郵箱liuyong@huaqiu.com。
熱門推薦干貨好文
1、社區(qū)精選!PCB多層板設(shè)計(jì)挑戰(zhàn)賽作品集合
2、超強(qiáng)性能AI芯片,OpenHarmony多系統(tǒng)支持,可定制高性能AP(附10+開發(fā)Demo)
3、從零入門物聯(lián)網(wǎng)OH開源平臺,從簡單到高階項(xiàng)目,創(chuàng)客、電子愛好者都愛用!
4、低成本ESP32方案,支持OpenHarmony系統(tǒng)開發(fā)(附10+項(xiàng)目樣例Demo)
5、NO RTOS移植!32位、64線程開發(fā)板,超強(qiáng)實(shí)時(shí)性體驗(yàn)!
6、四核64位,超強(qiáng)CPU ,看RK3568“競”開發(fā)板DEMO!
7、人工智能也能這么玩, 簡單快速入手,還能自定義AI運(yùn)算
8、業(yè)界首款!支持富設(shè)備開發(fā),OpenHarmony開發(fā)者都選它!
9、高性能雙核RISC-V,滿足大多數(shù)開發(fā),這款國產(chǎn)MCU工程師都愛了!
原文標(biāo)題:【趣味開發(fā)】合宙Air780E開發(fā)板趣味應(yīng)用開發(fā):方言打麻將
文章出處:【微信公眾號:電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
電子技術(shù)
+關(guān)注
關(guān)注
18文章
890瀏覽量
55976 -
電子發(fā)燒友論壇
+關(guān)注
關(guān)注
4文章
197瀏覽量
1085
原文標(biāo)題:【趣味開發(fā)】合宙Air780E開發(fā)板趣味應(yīng)用開發(fā):方言打麻將
文章出處:【微信號:gh_9b9470648b3c,微信公眾號:電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論