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

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

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

3天內不再提示

如何實現BLE全雙工語音通訊

意法半導體中國 ? 來源:意法半導體中國 ? 作者:意法半導體中國 ? 2022-04-14 08:47 ? 次閱讀

一簡介

在無線藍牙領域,既能滿足超低功耗,又能進行全雙工語音通訊,一直是市場上的需求,比如:無線門鈴,短距離對講機等應用。針對BLE語音相關的應用場景,ST推出了FP-AUD-BVLINKWB1這個軟件包供客戶評估。

本文將對這個軟件包展開介紹,該軟件包主要包含以下特性:

使用Opus v1.3編碼和解碼,通過BLE實現全雙工立體音頻流。

使用自定義BlueVoiceOPUS協議,通過API即可使用Opus功能。

源碼包含數字音頻捕獲和處理。

可以通過USB進行音頻流的回放。

可使用麥克風擴展板X-NUCLEO-CCA02M2 + Nucleo開發板P-NUCLEO-WB55的組合或者探索板STM32WB5MM-DK。

兼容STBLESensor App。

免費開源。

感興趣的話歡迎下載該軟件包進行評估

點擊這里下載軟件包

二軟件介紹

軟件架構

如何實現BLE全雙工語音通訊

▲圖1.軟件架構圖

Hardware Abstraction:硬件抽象層,使用了STM32的HAL庫提供底層的硬件驅動。

BSP層:在HAL層之上,提供了板級支持包,包含了SPI,ADC,LED和User Button等驅動。

Middleware層:中間件層,主要包含了以下內容:

□ STM32 WPAN:提供BLE,ThreadZigbee等協議相關的接口API,本應用只使用了BLE協議。

□ USB Device:提供各種不同USB device類的實現,本應用中只使用了USB Audio類。

□ PDM Lib:提供了數字麥克風PDM信號到PCM信號轉換的軟件實現。

□ OPUS:開源第三方的OPUS庫,版本v1.3。

Opus簡介Opus是完全開源免費的高通用性音頻編解碼協議,由Internet Engineering Task Force (IETF)標準化。

Opus可以處理廣泛的音頻應用,包括IP語音、視頻會議、游戲內聊天,甚至遠程現場音樂表演。它可以從低比特率窄帶語音縮放到非常高質量的立體聲音樂,并且具備以下特點:

比特率范圍:6kb /s到510 kb/s

采樣率范圍:8khz(窄帶)到48kHz(全帶)

幀大小:2.5 ms到60 ms

比特率,采樣率,幀大小動態可調節

支持固定比特率(CBR)和可變比特率(VBR)

支持語音和音樂

支持單聲道和立體聲

最多支持255個通道

良好的魯棒性和丟包隱藏能力

支持浮點和定點

BlueVoiceOPUS協議BlueVoiceOPUS是自定義的協議,Central和Peripheral是GAP層的角色,在點對點通訊中,主動發起連接請求的設備為Central。在GATT協議中,Server接受請求和命令,將數據保存在屬性中。Client實施服務發現流程,并向Server請求數據。

如果是單向的非對稱語音系統,那么具備麥克風的設備可以定義為Server,客戶端可以主動或被動接收Server的語音數據流。

如何實現BLE全雙工語音通訊

▲圖2.GATT角色分配

如圖2,FP-AUD-BVLINKWB1提供了雙向的系統,雙方設備都具備語音的能力,所以雙方都實現了GATT Server以及Client的角色。并且,Server的語音數據基于notification性質,將以異步的方式主動發送給Client。

? BlueVoiceOPUS服務

ATT協議用于在設備中進行數據交換,ATT的最小實體稱為屬性。GATT服務由各種服務組成,其中服務由服務申明屬性作為起始,每一個服務又包含若干特性,特性由任意屬性或屬性描述符組成。

表1是典型的BLE服務的屬性表,其中包含了1個服務申明以及3個特性。Audio特性用來通知對方設備音頻數據。Ctrl特性通知對方設備控制數據,比如播放,暫停等。Music特性用來通知對方音樂數據,該特性只在ST BLE Sensor APP中實現,取代Audio特性,用來傳輸壓縮后的48KHz立體音樂。

如何實現BLE全雙工語音通訊

▲表1.BlueVoiceOPUS服務屬性表

? BLUEVoiceOPUS實現

在Middleware層,和BlueVoiceOPUS協議相關的文件包括:

bvopus_service_stm:該文件管理所有和BLE相關的功能,包括添加服務和添加特性,以及數據的接收和發送。其中包含了一個簡單的數據封包和解析協議。

opus_interface_stm:該文件實現了Opus編碼器和BlueVoiceOPUS服務的接口。提供簡單的API用于Opus初始化,配置,數據壓縮和解壓等。

應用層介紹在軟件包中包含了三個主要的工程:

BVLCentral:作為主設備主動發起連接,并提供BlueVoiceOPUS服務。

BVLPeripheral:作為從設備廣播,并提供BlueVoiceOPUS服務。

BVLPeripheral_FullBand:作為從設備廣播,提供BlueVoiceOPUS服務, 可以通過BLE接收立體聲音樂,但目前只能和ST BLE Sensor相連。

BVLCentral和BVLPeripheral分別燒錄到WB55的開發板中,分別作為主機和從機,通過開啟或停止音頻通知,可以達到三種不同類型的通訊:單工,半雙工和全雙工。

當設備在輸出音頻流時,應用層負責語音的獲取,數據壓縮和封包,然后通過BlueVoiceOPUS協議發送出去。

當設備在接收音頻流時,應用層通過從BlueVoiceOPUS協議中接收BLE數據包,然后解包和解碼OPUS語音數據。

通過P-NUCLEO-WB55上的SW1控制打開或關閉語音流通道。

通過LED顯示設備的狀態。

廣播/發現狀態:綠色LED閃爍

連接狀態:藍色LED緩慢閃爍

語音流狀態:藍色LED正常閃爍

接收狀態:藍色LED穩定點亮(不閃爍)

全雙工狀態:藍色LED快速閃爍(雙方設備)

BVLCentral可以由APP(ST BLE Sensor)代替,完成設備和手機端的全雙工語音通訊。

如何實現BLE全雙工語音通訊

▲圖3.應用流程圖

整個應用流程如圖3所示,整個流程介紹如下:

從設備廣播,主設備發起連接,直到連接建立成功。

雙方互相完成服務和特性發現流程。

從設備通過按鈕,請求打開特性通知,主設備打開通知,從設備發送語音流,此時狀態為語音流狀態。

相反地,主設備通過按鈕,請求打開特性通知,從設備打開通知,主設備發送語音流,此時狀態變為全雙工狀態。

可以通過按鈕,開關語音流,改變語音流狀態。

三系統部署指導

下面將從不同方面分別介紹Demo的部署流程。

兩塊STM32WB開發板之間的全雙工音頻流

如何實現BLE全雙工語音通訊

▲圖4.NUCLEO+CCA02M2的組合

如上圖4 ,可以使用P-NUCLEO-WB55開發板與一塊麥克風擴展板X-NUCLEO-CCA02M2進行組合。然后分別燒錄BVLCentral工程和BVLPeripheral工程。當雙方設備建立連接以后,通過Nucleo上的SW1按鈕,就可以建立起半雙工或全雙工的語音流了。麥克風擴展板可以對語音信號以8kHz或16kHz進行采集,并通過BlueVoiceOPUS協議傳輸,當對方設備接收到語音數據后,也通過usb傳輸到PC,使用刻錄軟件(如audacity)進行刻錄保存,然后使用Audacity或其他語音軟件播放。

如何實現BLE全雙工語音通訊

▲圖5.STM325MM-DK探索板

如上圖5,也可以使用STM32WB5MM-DK進行同樣的操作,該開發板使用了STM32WB5MM的模組,并且板載了一塊OLED顯示屏供開發。

當然也可以使用圖4和圖5的組合,只要一塊燒錄的是主機程序,另一塊燒錄的是從機程序即可。

STM32WB開發板和手機之間的全雙工音頻流除了上面的配置方法外,ST還提供了ST BLE Sensor手機APP供測試。

如何實現BLE全雙工語音通訊

▲圖6.手機和開發板之間的音頻流

如圖6,手機可以作為主設備,掃描然后連接STM32WB55開發板,建立全雙工的音頻流的BLE鏈路。語音信號可以從開發板采集,發送到手機側進行播放。也可以從手機側采集,發送到開發板后,再通過USB進行播放。

STM32WB開發板和手機之間的立體聲音樂播放上面介紹的都是8kHz/16kHz的語音流,該軟件包還提供了全帶(Full-Band)的48kHz立體聲音樂流方案。

如何實現BLE全雙工語音通訊

▲圖7.48kHz立體聲音樂流方案

如圖7,手機掃描設備后,發起并建立連接,完成GATT服務發現流程,然后通過按鈕打開特性的通知屬性,建立全帶音樂流。APP使用OPUS對手機內音樂進行壓縮和封包,然后通過BLE發送給開發板。開發板通過USB將數據導出到PC上,最后使用Audacity或其他語音軟件進行播放。

原文標題:無線與云連接技術專題之二:利用Opus在STM32WB上實現BLE全雙工語音流

文章出處:【微信公眾號:意法半導體中國】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅

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

    關注

    32

    文章

    1120

    瀏覽量

    128551
  • BLE
    BLE
    +關注

    關注

    12

    文章

    634

    瀏覽量

    59179
  • 語音通訊
    +關注

    關注

    0

    文章

    5

    瀏覽量

    5982

原文標題:無線與云連接技術專題之二:利用Opus在STM32WB上實現BLE全雙工語音流

文章出處:【微信號:STMChina,微信公眾號:意法半導體中國】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何使用普通IO模擬串口實現非阻塞全雙工通訊功能?

    如何使用普通IO模擬串口實現非阻塞全雙工通訊功能?
    發表于 12-03 06:14

    如何使用普通IO模擬串口實現全雙工通訊功能

    STM32使用IO口模擬串口期望效果:使用普通IO模擬串口,實現全雙工通訊功能。硬件資源:1.2個IO口2.1個外部中斷3.1個定時器串口相關知識簡述:1.波特率波特率,即每秒傳輸的位個數。例
    發表于 02-08 07:29

    AT32F4xx SPI使用全雙工模式通訊

    AT32F4xx SPI使用全雙工模式通訊演示AT32F403Axx SPI使用全雙工模式通訊,其余系列的使用方式與此類似。
    發表于 10-27 07:27

    HT46R46使用IO PORT進行SPI全雙工通訊

    HT46R46使用IO PORT進行SPI全雙工通訊:
    發表于 04-11 08:45 ?23次下載

    網卡的全雙工

     網卡的全雙工   網卡的全雙工(Full Duplex)是指網卡
    發表于 12-26 11:47 ?1113次閱讀

    單工、半雙工全雙工簡介

    單工、半雙工全雙工簡介 串行通訊簡單認識 串行通訊的基本概念:與外界的信息交換
    發表于 01-13 14:33 ?4515次閱讀
    單工、半<b class='flag-5'>雙工</b>和<b class='flag-5'>全雙工</b>簡介

    全雙工,全雙工是什么意思

    全雙工,全雙工是什么意思 概念及實例: 單工即Simplex Communication,指在通信過程的任意時刻,信息只能由一方A傳到另
    發表于 03-17 16:21 ?4301次閱讀

    全雙工傳輸,全雙工傳輸原理是什么?

    全雙工傳輸,全雙工傳輸原理是什么? 全雙工模式(Full-duplex Transmissions)是指同時發生在兩個方向上的一種數據傳輸方式。簡單的解釋就是就像電
    發表于 03-17 16:22 ?4541次閱讀

    基于LPC1768的全雙工UART的軟件模擬實現

    基于LPC1768的全雙工UART的軟件模擬實現
    發表于 09-26 09:14 ?14次下載
    基于LPC1768的<b class='flag-5'>全雙工</b>UART的軟件模擬<b class='flag-5'>實現</b>

    通過BLE實現全雙工立體音頻流

    在無線藍牙領域,既能滿足超低功耗,又能進行全雙工語音通訊,一直是市場上的需求,比如:無線門鈴,短距離對講機等應用。針對 BLE 語音相關的應
    的頭像 發表于 08-27 09:30 ?2453次閱讀

    AN4678_STM32F4系列實現模擬全雙工SPI通訊

    AN4678_STM32F4系列實現模擬全雙工SPI通訊
    發表于 11-21 08:11 ?2次下載
    AN4678_STM32F4系列<b class='flag-5'>實現</b>模擬<b class='flag-5'>全雙工</b>SPI<b class='flag-5'>通訊</b>

    UM2382_基于BLE全雙工語音流傳輸的STM32ODE功能軟件包入門指南

    UM2382_基于BLE全雙工語音流傳輸的STM32ODE功能軟件包入門指南
    發表于 11-22 19:25 ?0次下載
    UM2382_基于<b class='flag-5'>BLE</b><b class='flag-5'>全雙工</b><b class='flag-5'>語音</b>流傳輸的STM32ODE功能軟件包入門指南

    單工、雙工、半雙工全雙工通信常識

    根據通信雙方的分工和信號傳輸方向可將通信分為三種方式:單工、半雙工全雙工。單工通信指通信雙方設備中發送器與接收器分工明確,只能在由發送器向接收器的單一固定方向上傳送數據,并且不能實現雙向通信,
    的頭像 發表于 03-31 17:57 ?6639次閱讀

    雙工全雙工通信模式的比較

    雙工全雙工通信模式的比較? 半雙工全雙工是兩種不同的通信模式,在不同的通信需求下,它們各有優劣。下面,我將詳細介紹半雙工
    的頭像 發表于 01-09 14:00 ?1463次閱讀

    全雙工與半雙工技術解析

    A到B的同時可以B到A。這種通信方式極大地提高了數據傳輸的效率和實時性。在手機通信中,全雙工模式的應用尤為突出,使得電話的兩邊的人在同一時刻都可以說話發送數據,實現了真正的雙向通信。 全雙工模式的優點在于能夠
    的頭像 發表于 06-16 10:18 ?486次閱讀