合宙10月份推出的Air780E模組,是一款LTE Cat.1 bis通信模塊,采用移芯EC618平臺(tái),支持4G全網(wǎng)通。
合宙也推出了相應(yīng)的開(kāi)發(fā)板,別看開(kāi)發(fā)板身材小,價(jià)格低,但是身手不差。

合宙Air780E模組支持TTS/MP3/AMR等語(yǔ)音功能,同時(shí)在Air780E開(kāi)發(fā)板內(nèi)置了順芯7149Audio Codec。
為了方便開(kāi)發(fā)者使用音頻功能,驅(qū)動(dòng)各式喇叭,玩出花兒來(lái),合宙還特別準(zhǔn)備了 Air780E音頻擴(kuò)展板以及喇叭 ,可輕松實(shí)現(xiàn)趣味TTS+AMR+MP3語(yǔ)音播放功能。

更更更讓開(kāi)發(fā)者心顫的是,合宙還搞了個(gè)音頻擴(kuò)展板使用創(chuàng)意視頻大賽,想要進(jìn)一步從開(kāi)發(fā)者腦細(xì)胞中榨汁:
然而這還不夠,這真的不夠,合宙居然還提供了一個(gè) 合宙Air780E云端音頻配置 ,讓開(kāi)發(fā)者可以零基礎(chǔ)零代碼把板子和擴(kuò)展板給用起來(lái):

這,這,這你弄了板子,不玩起來(lái),不讓它響起來(lái),你都對(duì)不起合宙了。
我第一時(shí)間搶了兩塊9塊9包郵的Aire780E開(kāi)發(fā)板,后來(lái)又搶了兩塊9塊9包郵的音頻擴(kuò)展板。真可謂一坑接一坑,坑坑自愿跳啊!

下面,就將體驗(yàn)云喇叭功能的過(guò)程,給大家分享,最終讓Air780E開(kāi)發(fā)板+音頻擴(kuò)展板用方言打麻將。
一、焊接和連線
先按照下圖,在正確的一面,為開(kāi)發(fā)板焊上排針,在擴(kuò)展板上焊上母座:


然后,插上SIM卡,連接到喇叭,把開(kāi)發(fā)板和擴(kuò)展板對(duì)插起來(lái):

這里的SIM卡支持,可是全網(wǎng)通的,中國(guó)移動(dòng)、聯(lián)通、電信通殺,全都支持。
另外一點(diǎn)要表?yè)P(yáng)合宙的,合宙出的開(kāi)發(fā)板,都貼心的提供了擴(kuò)展板,可以很方便的進(jìn)行應(yīng)用。
二、下載固件
-
為了使用云喇叭功能,需要刷入專門(mén)的固件。
-
官方提供了固件的源碼,以及編譯好的固件。
-
方便起見(jiàn),這里直接使用官方提供的固件。
固件下載地址:http://tools.openluat.com/tools/yunlaba

本文編寫(xiě)時(shí)的固件文件為:

下載固件后,按照下面的教程燒錄固件:https://doc.openluat.com/wiki/37?wiki_page_id=4489#_22
燒錄完成后,就可以開(kāi)始好好玩了。
三、開(kāi)機(jī)啟動(dòng)
使用Type-C數(shù)據(jù)線,給開(kāi)發(fā)板供電,板子上的紅燈就會(huì)亮起來(lái):

因?yàn)椴辶薙IM卡,需要聯(lián)網(wǎng)才能使用,所以稍微等一會(huì),等它聯(lián)網(wǎng)成功。
沒(méi)想到,等了半天,它居然一聲不吭,就是紅燈亮著,在那里悶頭悶?zāi)X的發(fā)悶氣。
是有哪里不對(duì)嗎?
趕緊看手冊(cè),了解到了詳情:

按照說(shuō)明,要按一下板子上的開(kāi)機(jī)鍵:
按就按,誰(shuí)怕誰(shuí)呀!
按完后,還真害怕了。大半夜的,突然一下響起來(lái),聲兒還賊大,差點(diǎn)把已經(jīng)睡覺(jué)的家人給吵醒了。
按完后,板子開(kāi)始正常啟動(dòng)了,綠燈亮了:

正常情況下,喇叭開(kāi)始響起來(lái):

如果聯(lián)網(wǎng)有問(wèn)題,或者服務(wù)器無(wú)法連接,也會(huì)播放對(duì)應(yīng)的聲音。
現(xiàn)在板子啟動(dòng)起來(lái)了,可以開(kāi)始好好玩了。
四、喇叭云起來(lái)
用Air780E+音頻擴(kuò)展板,就是想通過(guò)云讓喇叭響起來(lái),使用云喇叭工具即可。
合宙提供的云喇叭在線工具地址:http://tools.openluat.com/tools/yunlaba
直接訪問(wèn)該界面,就能夠給開(kāi)發(fā)板發(fā)送語(yǔ)音信息,讓喇叭響起來(lái)。
打開(kāi)該界面后,按照如下的步驟使用:

點(diǎn)擊發(fā)送音頻數(shù)據(jù)到設(shè)備后,正常情況下,會(huì)提示發(fā)送成功:

稍后,音頻擴(kuò)展板的喇叭就會(huì)響起來(lái)了。
如果要讓發(fā)送的語(yǔ)音音色音速等更豐富,可以先設(shè)置語(yǔ)音參數(shù),再生成發(fā)送:

可以多多嘗試,找到自己喜歡的或者覺(jué)得不錯(cuò)的參數(shù)搭配。
五、探究云喇叭工具如何給設(shè)備發(fā)送數(shù)據(jù)
既然云喇叭在線工具是通過(guò)網(wǎng)頁(yè)操作的,而且它又沒(méi)有直接連接到喇叭,那么一定有什么方式讓兩者互通。
通過(guò)瀏覽器的開(kāi)發(fā)者調(diào)試工具,可以查看端倪。
點(diǎn)擊 發(fā)送音頻數(shù)據(jù)到設(shè)備 ,會(huì)在調(diào)試工具的網(wǎng)絡(luò)界面中,看到如下的請(qǐng)求:

從上圖可以看到,云喇叭在線工具給 http://tools.openluat.com/api/site/yunlaba_mqtt 這個(gè)地址,POST發(fā)送了一些數(shù)據(jù)。
看名字,應(yīng)該是發(fā)送給MQTT服務(wù)了,然后在開(kāi)發(fā)板上,通過(guò)MQTT服務(wù),獲取網(wǎng)頁(yè)工具發(fā)送的數(shù)據(jù),再進(jìn)行播放。
如果有興趣,可以查看固件對(duì)應(yīng)的源碼,其邏輯正是如此。
進(jìn)一步的,可以查看實(shí)際發(fā)送了什么數(shù)據(jù):

從上圖中,可以看到,具體發(fā)送的數(shù)據(jù)如下:

這是個(gè)JSON格式的數(shù)據(jù),格式如下:
-
tpoic:表示信息發(fā)布的主題,具體為:test20220929/IMEI號(hào),后面的IMEI號(hào),就是開(kāi)發(fā)板上Air780E的IMEI,也就是網(wǎng)頁(yè)工具上填寫(xiě)的
-
text:表示要發(fā)布的語(yǔ)音信息,如果設(shè)置了語(yǔ)音參數(shù),就會(huì)帶有一定的參數(shù)標(biāo)記。
了解到以上信息后,可以基本確定一點(diǎn),如果我們也能按照要求,給上述地址,發(fā)送對(duì)應(yīng)的JSON格式的數(shù)據(jù),那么也能在程序中,直接使用云喇叭工具提供的后臺(tái)服務(wù),來(lái)控制我們自己的喇叭了。
要發(fā)送JSON數(shù)據(jù)給直接的服務(wù)網(wǎng)址,可以用Python、nodejs、PHP、Go、Java等語(yǔ)言編程進(jìn)行,也可以直接使用命令行的curl命令來(lái)發(fā)送數(shù)據(jù)。
下面是一個(gè)最簡(jiǎn)單的發(fā)送信息的shell腳本,該腳本需要在Linux或者macOS環(huán)境中運(yùn)行。如果是在Windows環(huán)境,則可以在WSL中運(yùn)行。
#!/bin/bash
# Air780E模組的IMEI
imei=$1
# 0-4,自己測(cè)試選定的幾組語(yǔ)音參數(shù)
idx=$2
# 要發(fā)送的文本內(nèi)容,不能包含空格,單雙引號(hào)
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
(左右移動(dòng)查看全部?jī)?nèi)容)
在上述腳本中,首先接收3個(gè)參數(shù):
-
imei:IMEI號(hào),對(duì)應(yīng)網(wǎng)頁(yè)中的IMEI號(hào)
-
idx:語(yǔ)音參數(shù)配置的序號(hào)
-
msg:文本內(nèi)容,會(huì)根據(jù)語(yǔ)音參數(shù)生成語(yǔ)音信息
其中,語(yǔ)音參數(shù)配置的序號(hào),是指我根據(jù)自己的多次測(cè)試嘗試,選定了幾組語(yǔ)音配置信息:

你可以自己嘗試,選擇幾組合適的語(yǔ)音配置信息。
而文本內(nèi)容部分,就是要發(fā)送的語(yǔ)音對(duì)應(yīng)的文本了,注意不要包含空格、單雙引號(hào)等。
將上述腳本保存為send_mqtt.sh,然后執(zhí)行:
./send_mqtt.sh 8615510******** 先賺他個(gè)100億再說(shuō)
(左右移動(dòng)查看全部?jī)?nèi)容)
注意將IMEI號(hào)替換為自己的開(kāi)發(fā)板的。
發(fā)送成功后,喇叭就會(huì)根據(jù)設(shè)置,響起來(lái)了。
六、讓Air780E開(kāi)發(fā)板+音頻擴(kuò)展板用方言打麻將
在上一步的研究基礎(chǔ)上,只要我們可以以不同的語(yǔ)音配置,將不同的語(yǔ)音信息發(fā)送給開(kāi)發(fā)板,那么喇叭就能夠以不同的聲音播放不同的內(nèi)容了。
雖然,這些語(yǔ)音信息,也可以提前全部錄制出來(lái),直接發(fā)給開(kāi)發(fā)板播放,但是如果能夠進(jìn)行動(dòng)態(tài)的生成播放,那還是更加吸引人的。
為了更好玩,我從一段打麻將的小視頻中,提取了對(duì)應(yīng)的對(duì)話信息,并經(jīng)過(guò)一定的處理,最終讓Air780E開(kāi)發(fā)板+音頻擴(kuò)展板播放出來(lái)。
原始打麻將的小視頻地址:四川方言:老表打麻將,自摸的牌打出去了,把人笑安逸了

在該視頻中,一共有5個(gè)角色,分別標(biāo)識(shí)為:
-
前男(苦命男):也就是主角男
-
前女(女王女):也就是主角男的老婆
-
左女(陰險(xiǎn)女):打麻將的女性
-
后男(靦腆男):主角男對(duì)面的靦腆悶騷男
-
右男(道貌岸然男):另外一位打麻將的男性
將該視頻中的對(duì)話信息提取出來(lái):




并將最后的輸出信息,拷貝到文本文件 對(duì)話.txt 中來(lái):

在上一步的send_mqtt.sh中,設(shè)置了5組語(yǔ)音參數(shù)配置,剛好就是對(duì)應(yīng)5位角色:
-
前男(苦命男):1
-
前女(女王女):0
-
左女(陰險(xiǎn)女):2
-
后男(靦腆男):3
-
右男(道貌岸然男):4
因此,在提取信息到Excel中的時(shí)候,會(huì)設(shè)置對(duì)應(yīng)的語(yǔ)音配置編號(hào):

這個(gè)編號(hào),在后面的程序中,也會(huì)進(jìn)行調(diào)用,從而使用對(duì)應(yīng)的語(yǔ)音配置輸出信息。
最后,再編寫(xiě)對(duì)應(yīng)的腳本:
#!/bin/bash
# Air780E開(kāi)發(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 < 對(duì)話.txt
if [[ "$send_text" != "" ]];then
echo $send_text
send_cmd $imei "$send_text"
fi
(左右移動(dòng)查看全部?jī)?nèi)容)
上述腳本的主要邏輯如下:
-
循環(huán)讀取 對(duì)話.txt 的每一行內(nèi)容
-
根據(jù)預(yù)先設(shè)置好的角色語(yǔ)音配置序號(hào),生成對(duì)應(yīng)的帶標(biāo)記的預(yù)發(fā)送信息
-
累加要發(fā)送的信息,每滿5條,就調(diào)用一次發(fā)送接口發(fā)送信息
將腳本保存為 duihua_damajiang.sh后,然后執(zhí)行該腳本:
./duihua_damajiang.sh 8615510********
(左右移動(dòng)查看全部?jī)?nèi)容)
注意將IMEI號(hào)替換為自己的開(kāi)發(fā)板的。
運(yùn)行后,待對(duì)話信息發(fā)送成功后,喇叭響起來(lái),一圈麻將就打起來(lái)了。
打麻將的實(shí)際效果,可以點(diǎn)擊查看:
七、總結(jié)
Air780E開(kāi)發(fā)板+音頻擴(kuò)展板 ,將云語(yǔ)音應(yīng)用的門(mén)檻大幅降低,可以說(shuō)無(wú)門(mén)檻入門(mén)了。
在熟練使用云端工具配置的基礎(chǔ)上,還可以進(jìn)一步自己編程來(lái)實(shí)現(xiàn)更為個(gè)性化的功能。
如果你有多套 Air780E開(kāi)發(fā)板+音頻擴(kuò)展板 ,那么可以進(jìn)行更為精細(xì)的控制,讓一桌麻將打得更為生動(dòng);在其他場(chǎng)合應(yīng)用,也會(huì)更為有趣。
本文由電子發(fā)燒友社區(qū)發(fā)布,轉(zhuǎn)載請(qǐng)注明以上來(lái)源。如需社區(qū)合作及入群交流,請(qǐng)?zhí)砑?/span>微信EEFans0806,或者發(fā)郵箱[email protected]。
熱門(mén)推薦干貨好文
1、社區(qū)精選!PCB多層板設(shè)計(jì)挑戰(zhàn)賽作品集合
2、超強(qiáng)性能AI芯片,OpenHarmony多系統(tǒng)支持,可定制高性能AP(附10+開(kāi)發(fā)Demo)
3、從零入門(mén)物聯(lián)網(wǎng)OH開(kāi)源平臺(tái),從簡(jiǎn)單到高階項(xiàng)目,創(chuàng)客、電子愛(ài)好者都愛(ài)用!
4、低成本ESP32方案,支持OpenHarmony系統(tǒng)開(kāi)發(fā)(附10+項(xiàng)目樣例Demo)
5、NO RTOS移植!32位、64線程開(kāi)發(fā)板,超強(qiáng)實(shí)時(shí)性體驗(yàn)!
6、四核64位,超強(qiáng)CPU ,看RK3568“競(jìng)”開(kāi)發(fā)板DEMO!
7、人工智能也能這么玩, 簡(jiǎn)單快速入手,還能自定義AI運(yùn)算
8、業(yè)界首款!支持富設(shè)備開(kāi)發(fā),OpenHarmony開(kāi)發(fā)者都選它!
9、高性能雙核RISC-V,滿足大多數(shù)開(kāi)發(fā),這款國(guó)產(chǎn)MCU工程師都愛(ài)了!
原文標(biāo)題:【趣味開(kāi)發(fā)】合宙Air780E開(kāi)發(fā)板趣味應(yīng)用開(kāi)發(fā):方言打麻將
文章出處:【微信公眾號(hào):電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
電子技術(shù)
+關(guān)注
關(guān)注
18文章
922瀏覽量
57123 -
電子發(fā)燒友論壇
+關(guān)注
關(guān)注
4文章
197瀏覽量
1245
原文標(biāo)題:【趣味開(kāi)發(fā)】合宙Air780E開(kāi)發(fā)板趣味應(yīng)用開(kāi)發(fā):方言打麻將
文章出處:【微信號(hào):gh_9b9470648b3c,微信公眾號(hào):電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Air780E模組的ADC之旅 LuatOS開(kāi)發(fā)實(shí)例

關(guān)于Air780E:使用文件系統(tǒng)存儲(chǔ)溫濕度數(shù)據(jù)怎么操作?

關(guān)于Air780E:與服務(wù)器的加密通信操作方法

RNDIS網(wǎng)卡應(yīng)用看這篇!合宙Air780EP低功耗4G模組AT開(kāi)發(fā)示例

FTP應(yīng)用看這篇!合宙Air780EP低功耗4G模組AT開(kāi)發(fā)示例

合宙低功耗4G模組AIR780EX ——開(kāi)發(fā)板使用說(shuō)明

合宙LuatOS開(kāi)發(fā)板Core_Air780EP使用說(shuō)明

基于合宙Air780E開(kāi)發(fā)板集成ec11旋轉(zhuǎn)編碼器實(shí)例

合宙 Air780E/Air780EP/Air780EQ/Air201模塊遇到死機(jī)問(wèn)題如何分析

評(píng)論