h1_key

當前位置:首頁 >新聞資訊 > 產品資訊>意法半導體>STM32WB利用Opus實現(xiàn)BLE全雙工語音流
STM32WB利用Opus實現(xiàn)BLE全雙工語音流
2022-11-14 1032次

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

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

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

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

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

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

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

  兼容STBLESensor App。

  免費開源。

 

 

  軟件架構

 

▲圖1.軟件架構圖

 

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

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

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

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

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

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

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

  

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

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

  比特率范圍:6kb /s510 kb/s

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

  幀大小:2.5 ms60 ms

  比特率,采樣率,幀大小動態(tài)可調節(jié)

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

  支持語音和音樂

  支持單聲道和立體聲

  最多支持255個通道

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

  支持浮點和定點

 

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

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

  

 

2.GATT角色分配

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

  ? BlueVoiceOPUS服務

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

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

  

 

1.BlueVoiceOPUS服務屬性表

  ? BLUEVoiceOPUS實現(xiàn)

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

  

 

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

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

  

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

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

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

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

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

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

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

  

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

  通過LED顯示設備的狀態(tài)。

  廣播/發(fā)現(xiàn)狀態(tài):綠色LED閃爍

  連接狀態(tài):藍色LED緩慢閃爍

  語音流狀態(tài):藍色LED正常閃爍

  接收狀態(tài):藍色LED穩(wěn)定點亮(不閃爍)

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

  

 

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

  

 

  3.應用流程圖

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

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

  雙方互相完成服務和特性發(fā)現(xiàn)流程。

  從設備通過按鈕,請求打開特性通知,主設備打開通知,從設備發(fā)送語音流,此時狀態(tài)為語音流狀態(tài)。

  相反地,主設備通過按鈕,請求打開特性通知,從設備打開通知,主設備發(fā)送語音流,此時狀態(tài)變?yōu)槿p工狀態(tài)。

  可以通過按鈕,開關語音流,改變語音流狀態(tài)。

  

  系統(tǒng)部署指導

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

  兩塊STM32WB開發(fā)板之間的全雙工音頻流

  

 

4.NUCLEO+CCA02M2的組合

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

  

 

5.STM325MM-DK探索板

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

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

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

 

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

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

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

 

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

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

 

  • ST LIS331DLH:高性能超低功耗三軸MEMS加速度計詳解
  • ST意法半導體推出的LIS331DLH是一款超低功耗高性能三軸線性加速度計,屬于其著名的“nano”系列MEMS傳感器產品。這款器件采用先進的微機電系統(tǒng)技術,在微型化封裝中實現(xiàn)了卓越的運動感知能力。其3×3×1mm的超緊湊尺寸和僅20mg的重量,使它在消費電子和工業(yè)控制領域獲得了廣泛應用。
    2025-05-29 260次
  • ?意法半導體STM32N657Z0H3Q:重新定義高性能嵌入式系統(tǒng)的未來?
  • 在物聯(lián)網(IoT)、工業(yè)自動化及人工智能(AI)技術飛速發(fā)展的今天,嵌入式系統(tǒng)的性能、能效與集成度成為開發(fā)者關注的核心。意法半導體(STMicroelectronics)作為全球半導體行業(yè)的領軍企業(yè),近期推出的?STM32N657Z0H3Q?微控制器,以其突破性的架構設計、多領域適應性及卓越的能效表現(xiàn),為下一代智能設備樹立了全新標桿。本文將深入剖析這款產品的核心優(yōu)勢與技術亮點。
    2025-05-06 244次
  • 意法半導體STM32N657L0H3Q:集成專用AI加速單元,專為高效計算
  • 意法半導體STM32N657L0H3Q是STM32N6系列中的一款高性能微控制器(MCU),專為需要高效計算與人工智能加速的場景設計。作為ST首款集成專用AI加速單元的產品,其融合了Cortex-M55內核、Neural-ART NPU及多項創(chuàng)新技術,推動工業(yè)自動化、智能硬件等領域的邊緣計算能力升級。
    2025-05-06 302次
  • 意法半導體STM32N657B0H3Q:專為?邊緣AI與高性能計算場景?設計
  • STM32N657B0H3Q是意法半導體(STMicroelectronics)推出的?STM32N6系列旗艦級微控制器?,專為?邊緣AI與高性能計算場景?設計。其核心亮點包括集成?NPU(神經處理單元)?、大容量片上SRAM、以及多媒體處理引擎,目標應用涵蓋智能眼鏡、工業(yè)視覺、車載電子等領域。
    2025-05-06 344次
  • 意法半導體STM32N657I0H3Q微控制器深度解析
  • STM32N657I0H3Q是意法半導體(STMicroelectronics)推出的高性能ARM Cortex-M55內核微控制器(MCU),屬于STM32N6系列中的旗艦型號。該芯片采用16nm FinFET先進制程工藝,主頻高達800MHz,集成4.2MB連續(xù)SRAM,并融合了神經網絡加速器、圖形處理單元(GPU)及多模態(tài)外設接口,專為實時信號處理、邊緣AI及復雜嵌入式系統(tǒng)設計。
    2025-04-30 351次

    萬聯(lián)芯微信公眾號

    元器件現(xiàn)貨+BOM配單+PCBA制造平臺
    關注公眾號,優(yōu)惠活動早知道!
    10s
    溫馨提示:
    訂單商品問題請移至我的售后服務提交售后申請,其他需投訴問題可移至我的投訴提交,我們將在第一時間給您答復
    返回頂部