精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

無門檻!巧用合宙Air780E云喇叭,實現多音色『打麻將』

合宙LuatOS ? 2023-01-29 10:33 ? 次閱讀

今天要跟大家分享的是——合宙Air780E開發板Air780E音頻擴展板喇叭套裝都是首發9.9元包郵搶到的。通過合宙提供的Air780E云端音頻配置平臺,開發者可以輕松實現趣味TTS+AMR+MP3語音播放功能。

接下來具體分享一下體驗云喇叭功能的過程,最終讓Air780E開發板+音頻擴展板實現視頻中多音色打麻將對話功能。在熟練使用云端工具配置的基礎上,還可以進一步自己編程來實現更為個性有趣的應用。

一、焊接和連線


先按照下圖,在正確的一面,為開發板焊上排針,在擴展板上焊上母座:

44c591e6-96e8-11ed-ad0d-dac502259ad0.jpg

44ddd1a2-96e8-11ed-ad0d-dac502259ad0.jpg

然后插上SIM卡,連接到喇叭,把開發板和擴展板對插起來:

44ef2006-96e8-11ed-ad0d-dac502259ad0.jpg

這里的SIM卡支持,可是全網通的,中國移動、聯通、電信通殺,全都支持。

另外一點要表揚合宙的,合宙出的開發板,都貼心的提供了擴展板,可以很方便的進行應用。

二、下載固件


為了使用云喇叭功能,需要刷入專門的固件。官方提供了固件的源碼,以及編譯好的固件。

方便起見,這里直接使用官方提供的固件。

固件下載地址:

http://tools.openluat.com/tools/yunlaba

4500be2e-96e8-11ed-ad0d-dac502259ad0.png

本文編寫時的固件文件為:

45126bce-96e8-11ed-ad0d-dac502259ad0.png


燒錄完成后,就可以開始好好玩了。

三、開機啟動


Type-C數據線,給開發板供電,板子上的紅燈就會亮起來:

45310ae8-96e8-11ed-ad0d-dac502259ad0.jpg

因為插了SIM卡,需要聯網才能使用,所以稍微等一會,等它聯網成功。

沒想到,等了半天,它居然一聲不吭,就是紅燈亮著,在那里悶頭悶腦的發悶氣。

是有哪里不對嗎?

趕緊看手冊,了解到了詳情:

4540ee7c-96e8-11ed-ad0d-dac502259ad0.png

按照說明,要按一下板子上的開機鍵:

458797e6-96e8-11ed-ad0d-dac502259ad0.png

按就按,誰怕誰呀!

按完后,還真害怕了。大半夜的,突然一下響起來,聲兒還賊大,差點把已經睡覺的家人給吵醒了。

按完后,板子開始正常啟動了,綠燈亮了:

459e745c-96e8-11ed-ad0d-dac502259ad0.jpg

正常情況下,喇叭開始響起來:

播報"歡迎使用合宙云端音頻播放設備"

播報"服務器連接成功"

如果聯網有問題,或者服務器無法連接,也會播放對應的聲音。

現在板子啟動起來了,可以開始好好玩了。

四、喇叭云起來


Air780E開發板+音頻擴展板,就是想通過云讓喇叭響起來,使用云喇叭工具即可。

合宙云喇叭在線工具:
http://tools.openluat.com/tools/yunlaba

直接訪問該界面,就能夠給開發板發送語音信息,讓喇叭響起來。

打開該界面后,按照如下的步驟使用:

45aff484-96e8-11ed-ad0d-dac502259ad0.png

點擊發送音頻數據到設備后,正常情況下,會提示發送成功:

45bd05ac-96e8-11ed-ad0d-dac502259ad0.png

稍后,音頻擴展板的喇叭就會響起來了。

如果要讓發送的語音音色音速等更豐富,可以先設置語音參數,再生成發送:

45d1878e-96e8-11ed-ad0d-dac502259ad0.png

可以多多嘗試,找到自己喜歡的或者覺得不錯的參數搭配。

五、給設備發送數據


接下來可以探究云喇叭工具如何給設備發送數據——既然云喇叭在線工具是通過網頁操作的,而且它又沒有直接連接到喇叭,那么一定有什么方式讓兩者互通。

通過瀏覽器的開發者調試工具,可以查看端倪。

點擊發送音頻數據到設備,會在調試工具的網絡界面中,看到如下的請求:

45de0bd0-96e8-11ed-ad0d-dac502259ad0.png

從上圖可以看到,云喇叭在線工具給http://tools.openluat.com/api/site/yunlaba_mqtt 這個地址,POST發送了一些數據。

看名字,應該是發送給MQTT服務了,然后在開發板上,通過MQTT服務,獲取網頁工具發送的數據,再進行播放。

如果有興趣,可以查看固件對應的源碼,其邏輯正是如此。

進一步的,可以查看實際發送了什么數據:

45edd60a-96e8-11ed-ad0d-dac502259ad0.png

從上圖中,可以看到,具體發送的數據如下:

45fbb22a-96e8-11ed-ad0d-dac502259ad0.png

這是個JSON格式的數據,格式如下:

tpoic:
表示信息發布的主題,具體為:test20220929/IMEI號,后面的IMEI號,就是開發板上Air780E的IMEI,也就是網頁工具上填寫的。

text:
表示要發布的語音信息,如果設置了語音參數,就會帶有一定的參數標記。

了解到以上信息后,可以基本確定一點——如果我們也能按照要求,給上述地址發送對應的JSON格式的數據,那么也能在程序中,直接使用云喇叭工具提供的后臺服務,來控制我們自己的喇叭了。

要發送JSON數據給直接的服務網址,可以用Python、nodejs、PHP、Go、Java等語言編程進行,也可以直接使用命令行的curl命令來發送數據。

下面是一個最簡單的發送信息的shell腳本:

該腳本需要在Linux或者macOS環境中運行。如果是在Windows環境,則可以在WSL中運行。

手機橫屏/上下滑動查看完整內容:

#!/bin/bash

# Air780E模組的IMEI
imei=$1

# 0-4,自己測試選定的幾組語音參數
idx=$2

# 要發送的文本內容,不能包含空格,單雙引號
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

在上述腳本中,首先接收3個參數:

imei:IMEI號,對應網頁中的IMEI號;

idx:語音參數配置的序號;

msg:文本內容,會根據語音參數生成語音信息。

其中,語音參數配置的序號,是指我根據自己的多次測試嘗試,選定了幾組語音配置信息:

4607943c-96e8-11ed-ad0d-dac502259ad0.png

你可以自己嘗試,選擇幾組合適的語音配置信息。

而文本內容部分,就是要發送的語音對應的文本了,注意不要包含空格、單雙引號等。

將上述腳本保存為send_mqtt.sh,然后執行:

./send_mqtt.sh 8615510********
先賺他個100億再說

注意將IMEI號替換為自己的開發板的。

發送成功后,喇叭就會根據設置,響起來了。

六、喇叭一響,麻將打起!



在上一步的研究基礎上,只要我們可以用不同的語音配置,將不同的語音信息發送給開發板,那么喇叭就能夠以不同的聲音播放不同的內容了。

雖然,這些語音信息,也可以提前全部錄制出來,直接發給開發板播放,但是如果能夠進行動態的生成播放,那還是更加吸引人的。

為了更好玩,我從一段打麻將的小視頻中,提取了對應的對話信息,并經過一定的處理,最終讓Air780E開發板+音頻擴展板播放出來。

一共有5個角色,分別標識為:

前男(苦命男):也就是主角男

前女(女王女):也就是主角男的老婆

左女(陰險女):打麻將的女性

后男(靦腆男):主角男對面的靦腆悶騷男

右男(道貌岸然男):另外一位打麻將的男性

將該視頻中的對話信息提取到Excel文件中,文末【閱讀原文】鏈接獲取源文件:

462e9104-96e8-11ed-ad0d-dac502259ad0.gif

并將最后的輸出信息,拷貝到文本文件對話.txt中來:

11哎呀,婆娘,你怎么又來了嘛

21好不容易打回清凈麻將啊

30我來看會熱鬧

44保長才趣哇

54人家皮蛋來耍嘛就讓她耍會嘛

63人家也想來看會玩意兒嘛

73等人家皮蛋在這兒

80你看嘛,她們都想我來

91那是嘛,你來我就輸了

101肯定想你來啥

……

在上一步的send_mqtt.sh中,設置了5組語音參數配置,剛好就是對應5位角色:

前男(苦命男):1

前女(女王女):0

左女(陰險女):2

后男(靦腆男):3

右男(道貌岸然男):4

因此,在提取信息到Excel中的時候,會設置對應的語音配置編號。

文末【閱讀原文】鏈接獲取源文件:

463bd224-96e8-11ed-ad0d-dac502259ad0.png

這個編號,在后面的程序中,也會進行調用,從而使用對應的語音配置輸出信息。

最后,再編寫對應的腳本:

手機橫屏/上下滑動查看完整內容:

#!/bin/bash
# Air780E開發板方言打麻將

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

上述腳本的主要邏輯如下:

循環讀取 對話.txt 的每一行內容;

根據預先設置好的角色語音配置序號,生成對應的帶標記的預發送信息;

累加要發送的信息,每滿5條,就調用一次發送接口發送信息。

將腳本保存為duihua_damajiang.sh,然后執行該腳本:

./duihua_damajiang.sh 8615510********

注意將IMEI號替換為自己的開發板的。

運行后,待對話信息發送成功后,喇叭響起來,一圈麻將就打起來了。

七、總結


Air780E開發板+音頻擴展板,將云語音應用的門檻大幅降低,可以說無門檻入門了。

在熟練使用云端工具配置的基礎上,還可以進一步自己編程來實現更為個性化的功能。

如果你有多套Air780E開發板+音頻擴展板,那么可以進行更為精細的控制,讓一桌麻將打得更為生動;在其他場合應用,也會更為有趣。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 音頻
    +關注

    關注

    29

    文章

    2839

    瀏覽量

    81373
  • 開發板
    +關注

    關注

    25

    文章

    4959

    瀏覽量

    97213
收藏 人收藏

    評論

    相關推薦

    干貨分享:Air780E開發板如何使用?

    ? 一、概述 CORE-AIR780E 開發板是通信推出的基于 Air780E 模組所開發的,包含電源,SIM 卡,USB,天線,音頻等必要功能的最小硬件系統。以方便用戶在設計前期
    的頭像 發表于 10-25 17:46 ?234次閱讀
    干貨分享:<b class='flag-5'>Air780E</b>開發板如何使用?

    如何使用Air780E開發板?看這篇就夠了!

    ? 一、綜述 CORE-AIR780E 開發板是通信推出的基于 Air780E 模組所開發的,包含電源,SIM 卡,USB,天線,音頻等必要功能的最小硬件系統。以方便用戶在設計前期
    的頭像 發表于 10-23 17:07 ?300次閱讀
    如何使用<b class='flag-5'>Air780E</b>開發板?看這篇就夠了!

    硬件設計很簡單?低功耗4G模組Air780E—開機啟動及外圍電路設計

    ?Air780E低功耗4G-Cat.1模組經典型號之一,上期我們解答了大家關心的系列問題,并講解了[選型的注意要點] 有朋友問:能不能講些硬件設計相關的內容? 模組的上電開機,是硬件設計調試
    的頭像 發表于 10-15 10:18 ?317次閱讀
    硬件設計很簡單?低功耗4G模組<b class='flag-5'>Air780E</b>—開機啟動及外圍電路設計

    干貨分享:Air780E怎么連接華為

    文檔對接不同的協議,看著都頭大!!! 為解決繁瑣的平臺開發困擾, IoT_CLOUD應運而生,一庫打通所有平臺! 本文將以Air780E
    的頭像 發表于 10-15 07:30 ?251次閱讀
    干貨分享:<b class='flag-5'>Air780E</b>怎么連接華為<b class='flag-5'>云</b>?

    關于Air780E:與服務器的加密通信操作方法

    ?今天我們來學習低功耗4G模組Air780E快速入門之跟服務器之間的加密通信,伙伴們,一起學起來! 一、 編寫腳本 1.1 準備資料 Air780E開發板購買
    的頭像 發表于 10-12 07:31 ?225次閱讀
    關于<b class='flag-5'>Air780E</b>:與服務器的加密通信操作方法

    選型4G-Cat.1模組Air780E時,我應該注意什么?

    ?Air780E低功耗4G-Cat.1模組經典型號之一,累計出貨數量2000萬+,廣泛應用于物聯網各行業。在此,特別感謝各位大佬的信任與支持。 寫這篇文檔的目的是什么呢? 從用戶的角度, 解答
    的頭像 發表于 09-27 07:07 ?400次閱讀
    選型4G-Cat.1模組<b class='flag-5'>Air780E</b>時,我應該注意什么?

    硬件設計很簡單?低功耗4G模組Air780E—開機啟動及外圍電路設計

    ?Air780E低功耗4G-Cat.1模組經典型號之一,上期我們解答了大家關心的系列問題,并講解了[選型的注意要點] 有朋友問:能不能講些硬件設計相關的內容? 模組的上電開機,是硬件設計調試
    的頭像 發表于 09-27 07:04 ?2081次閱讀
    硬件設計很簡單?<b class='flag-5'>合</b><b class='flag-5'>宙</b>低功耗4G模組<b class='flag-5'>Air780E</b>—開機啟動及外圍電路設計

    4G模組Air780E開發板使用手冊

    開發板Air780E使用說明
    的頭像 發表于 09-09 18:22 ?618次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>4G模組<b class='flag-5'>Air780E</b>開發板使用手冊

    Air780E硬件設計手冊02

    低功耗4G模組Air780E硬件設計介紹
    的頭像 發表于 09-06 12:02 ?408次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air780E</b>硬件設計手冊02

    低功耗4G模組Air780E——產品規格書

    低功耗4G模組Air780E的規格信息速覽
    的頭像 發表于 09-02 18:04 ?883次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>低功耗4G模組<b class='flag-5'>Air780E</b>——產品規格書

    Air780EP模塊Lua開發阿里應用指南

    Air780EP模塊Lua開發阿里超詳細教學!看完包學會!
    的頭像 發表于 08-08 09:00 ?876次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air780</b>EP模塊Lua開發阿里<b class='flag-5'>云</b>應用指南

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析簡介本文檔適用于
    的頭像 發表于 08-01 17:27 ?700次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b> <b class='flag-5'>Air780E</b>/<b class='flag-5'>Air780</b>EP/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201模塊遇到死機問題如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到內存死機如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到內存死機如何分析簡介本文檔適用于
    的頭像 發表于 07-19 16:07 ?486次閱讀
    <b class='flag-5'>Air780E</b>/<b class='flag-5'>Air780</b>EP/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201模塊遇到內存死機如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析簡介本文檔適用于
    的頭像 發表于 07-19 15:37 ?595次閱讀
    <b class='flag-5'>Air780E</b>/<b class='flag-5'>Air780</b>EP/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201模塊遇到死機問題如何分析

    Air780E硬件設計手冊

    電子發燒友網站提供《Air780E硬件設計手冊.pdf》資料免費下載
    發表于 04-14 09:57 ?20次下載