日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 字符串 声波,识别成功率100%的声波配网,看完你也可以实现一个

發布時間:2023/12/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 字符串 声波,识别成功率100%的声波配网,看完你也可以实现一个 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好久沒更新文章了,蠢作者剛好最近寫了個有意思的小工具,所以就寫它好啦~1.什么是聲波配網

2.聲波傳輸的技術原理

3.聲波傳輸編碼

4.聲波傳輸解碼

1.什么是聲波配網

現在很火的一些智能硬件,比如對話機器人,智能音響等,在使用的過程中都是需要聯網的,比如聯網抓取語料,獲取服務器指令,或者與手機APP綁定。而由于成本限制,這些智能硬件很多又沒有屏幕、鍵盤或者其它輸入設備無法輸入WIFI初始化信息(SSID+密碼)。所以通過手機播放聲波把WIFI的初始化連接信息傳遞給智能設備,讓設備識別完成WIFI初始化流程建立網絡連接是值得考慮的一種方式。

2.聲波傳輸的技術原理

顯然聲波配網技術中的技術難點就是聲波傳輸技術。而聲波傳輸的應用其實已經很廣啦:支付寶的聲波支付,QQ音樂中的歌曲的聲波分享,茄子快傳,蛐蛐兒等等。

聲波傳輸可以理解為類似NFC的一種近場通訊技術。聽起來很高大上有沒有~

其實原理很簡單啦,可以近似理解為對稱加密,加解密的過程大概如下所示~

僅傳輸ASCII可打印字符

傳輸UTF-8字符串

簡單的說就是在發送端把你把要識別的字符映射成頻率,然后把一個頻率映射成一個音節信號(單頻率的正弦波)編碼成音頻播放;在接收端接收到音頻信號后,解析出頻率,然后根據兩邊共同的碼表找到頻率對應的字符,從而解碼出數據。具體來說就是我們可以將700HZ的正弦波對應成字符'a',800HZ的正弦波對應數字'b',900HZ的正弦波對應數字'c',以此類推。那么數字串"abc"就對應成頻率串就是{700,800,900},然后把這個頻率串變成3個音節的正弦波音頻。如果規定每個音節持續100ms,則{700,800,900}對應300毫秒的音頻段。接收方錄制聲音,對收到的聲音進行解析,識別出700HZ,800HZ,900HZ三段正弦波頻率,然后查找碼表,解碼出的字符串就是"abc"。

關于聲波傳輸最根本的原理其實是時域頻域的相互轉換,所以我們繞不開傅里葉變換的相關知識, 貼兩篇不錯的科普,可以點進去看個熱鬧哈。

看了嗎~~~是不是懷疑自己大學上了假的高數課~~~~

不過其實,看不懂沒關系啦hiahiahia,記住下面這張圖就好啦,反正不影響我們寫代碼的~

網上關于聲波傳輸的資料不多,零星幾篇分析原理的文章詳細寫了聲波的編碼,解碼卻是一筆帶過。Github上面能找到的開源項目,識別成功率高的沒有核心代碼(他們的so庫按平臺收費23333,好吧,知識變現,沒毛病~),有完整源碼的識別成功率又達不到投入實際中使用的要求。所以蠢作者花了一些時間,在了解原理之后嘗試了好幾種解碼的方案,踩過一些坑才最終把這個小工具優化好。

最終的效果是在手機中等播放音量,距離接收端30cm內的時候可以做到識別成功率100%,不受環境噪音影響,沒有傳輸長度的限制(網上有一個說法【一般來說傳輸總字符如果達到40個以上,解碼正確率就會下降,數據量越大,出錯率就會升高】,雖然看不到他們的核心代碼,但踩過一些坑之后,大概知道造成這種現象的原因,在聲波傳輸解碼里我會說明)。當然隨著距離的增加,受環境噪音的影響,成功率也就有所下降。不過用作配網,30cm夠用啦,有處理音頻底子的寶寶可以自己加降噪的算法,這樣識別距離就可以變長啦~

關于聲波傳輸的編碼和解碼我都會單獨寫一篇詳細的文章(避坑指南)出來,有興趣的寶寶可以關注一下奧~

(都看到這里了就點個贊吧!^^)

End~

總結

以上是生活随笔為你收集整理的android 字符串 声波,识别成功率100%的声波配网,看完你也可以实现一个的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。