【導(dǎo)讀】低能耗藍(lán)牙被業(yè)界廣泛認(rèn)為是實現(xiàn)物聯(lián)網(wǎng)(IoT)應(yīng)用愿景的關(guān)鍵技術(shù)。事實上,極低的功耗使其成為電池供電的物聯(lián)網(wǎng)產(chǎn)品最理想的無線通信解決方案,盡管目前低能耗藍(lán)牙技術(shù)規(guī)范還是局限于幾種特定應(yīng)用,但是,創(chuàng)新的解決方案可促使這項技術(shù)拓展到不同的應(yīng)用領(lǐng)域,例如,多媒體流。按照這個發(fā)展方向,本文介紹一個叫做BlueVoice的低能耗藍(lán)牙設(shè)備語音流應(yīng)用。
本文從支持語音流服務(wù)所需的擴展服務(wù)集開始介紹BlueVoice應(yīng)用,然后在實際硬件設(shè)備上評估BlueVoice的性能。在所選的硬件平臺上,BlueVoice應(yīng)用完全支持語音流服務(wù),同時避免能源浪費。
I. 前言
經(jīng)歷過去幾十年的快速增長,互聯(lián)網(wǎng)幾乎滲透到人類社會日常生活的方方面面。未來互聯(lián)網(wǎng)將擴展到萬物互聯(lián),數(shù)十億甚至數(shù)百億個有唯一身份的“物品”通過無線通信與人類和周圍環(huán)境交互,執(zhí)行高級任務(wù)。在這一構(gòu)想中,“物品”可能是傳感器、致動器、家電、玩具,總之,可以是任何能夠被識別的虛擬或?qū)嶓w物品,這種互聯(lián)網(wǎng)演進構(gòu)想被稱為物聯(lián)網(wǎng)(IoT)。
物聯(lián)網(wǎng)概念是通過標(biāo)準(zhǔn)協(xié)議解決方案(即互聯(lián)網(wǎng)協(xié)議)和無線通信接口,把所有產(chǎn)品設(shè)備連接在一起,組成一個全球網(wǎng)絡(luò)。實現(xiàn)萬物互聯(lián),雖然可以使用現(xiàn)有的大量的射頻通信技術(shù),但是當(dāng)物聯(lián)網(wǎng)產(chǎn)品是部署在現(xiàn)場的自主型電池供電裝置時,低功耗無線通信技術(shù)才會是最適合的通信解決方案。在這個方面,低能耗藍(lán)牙(Bluetooth LE) [1]技術(shù)被視為最有效的物聯(lián)網(wǎng)通信解決方案,同時正在融入互聯(lián)網(wǎng)世界[2]。
在今天的物聯(lián)網(wǎng)應(yīng)用中,低能耗藍(lán)牙解決方案主要用于生命參數(shù)監(jiān)視用途。除傳統(tǒng)的監(jiān)視服務(wù)外,近幾年業(yè)界開始探索基于其它技術(shù)的先進應(yīng)用。例如,參考文獻[3]提出并分析了基于IEEE802.15.4的網(wǎng)絡(luò)[4]語音通信。在這個方面,通過低能耗藍(lán)牙傳輸多媒體數(shù)據(jù)還是處于起步階段,缺少可用的解決方案主要是因為最初設(shè)想時未考慮到這些應(yīng)用(例如,最初主要考慮的是醫(yī)療、健身等應(yīng)用)。本文以在低能耗藍(lán)牙設(shè)備上支持語音流服務(wù)的BlueVoice應(yīng)用為例,探討如何解決這些技術(shù)限制問題。我們先了解一下低能耗藍(lán)牙技術(shù),然后詳細(xì)介紹支持該新應(yīng)用概念所需的擴展服務(wù)集,再介紹應(yīng)用設(shè)計,最后在STM32 Nucleo L476板上測試實際性能。
本文的有要內(nèi)容安排如下:第二章介紹低能耗藍(lán)牙工作原理,先描述整個工作棧;然后介紹配置文件(Profiles)概念。第三章介紹應(yīng)用方案設(shè)計,描述其低能耗藍(lán)牙配置文件,然后介紹其設(shè)計原則、設(shè)計實現(xiàn)及實際性能。第四章是結(jié)論。
II. 低能耗藍(lán)牙技術(shù)概述
BLE低能耗藍(lán)牙規(guī)范于2010年寫入藍(lán)牙4.0核心規(guī)范,盡管與基本藍(lán)牙相似,但是低能耗藍(lán)牙規(guī)范主要是為超低功耗應(yīng)用設(shè)計開發(fā)。通過低能耗藍(lán)牙技術(shù)連接電池供電設(shè)備的潛在應(yīng)用非常少,醫(yī)療、健身和智慧家居是其中僅有的幾例。
圖1. 低能耗藍(lán)牙協(xié)議棧
如圖1所示,低能耗藍(lán)牙協(xié)議棧總體結(jié)構(gòu)主要由兩個部分組成:控制器和主機。應(yīng)用軟件使用協(xié)議棧主機層的協(xié)議提供的服務(wù)。主機層分為五層:邏輯鏈路控制和適配協(xié)議(L2CAP)、屬性協(xié)議(ATT)、通用屬性配置文件(GATT)、安全管理協(xié)議(SM)、通用訪問配置文件(GAP)??刂破鞑糠种挥袃蓪樱何锢韺?PHY)和鏈路層(LL)。如圖1所示,主機-控制器(HCI)接口是控制器與主機的通信通道。
物理層負(fù)責(zé)比特調(diào)制,通過無線通道收發(fā)數(shù)據(jù)。最高數(shù)據(jù)速率是1 Mb/s,典型通信距離是幾十米。
鏈路層規(guī)定兩個設(shè)備之間雙向通信的功能。低能耗藍(lán)牙節(jié)點有兩個角色:主設(shè)備和從設(shè)備。通常是主設(shè)備(例如,筆記本電腦、智能手機)搜索從設(shè)備(例如,體感設(shè)備);必要時,從設(shè)備向主設(shè)備發(fā)送數(shù)據(jù)。從設(shè)備通常處于睡眠狀態(tài),并在固定間隔內(nèi)喚醒,以便被主設(shè)備搜到。
在鏈路層之上,邏輯鏈路控制和適配協(xié)議(L2CAP)有兩個主要功能。該協(xié)議的主要作用是提供多路傳輸功能,按照標(biāo)準(zhǔn)低能耗藍(lán)牙分組數(shù)據(jù)格式,封裝轉(zhuǎn)換頂層多協(xié)議數(shù)據(jù)。安全管理協(xié)議(SM)和通用訪問配置文件(GAP)分別提供數(shù)據(jù)安全和服務(wù)管理功能。詳細(xì)的說,安全管理協(xié)議定義密鑰的生成方式,以及如何在兩個設(shè)備(主從設(shè)備)之間交換密鑰,建立安全加密通信通道,而通用訪問配置文件則規(guī)定兩個設(shè)備如何在底層交互操作
屬性協(xié)議(ATT)和通用屬性配置文件是開發(fā)新應(yīng)用時需要重點考慮的兩個協(xié)議組件。屬性協(xié)議是一個無狀態(tài)的客戶機/服務(wù)器協(xié)議:不考慮設(shè)備的底層角色是主設(shè)備還是從設(shè)備,每個設(shè)備都可以設(shè)為服務(wù)器、客戶機或是客戶機兼服務(wù)器??蛻魴C請求服務(wù)器數(shù)據(jù)發(fā)送數(shù)據(jù),服務(wù)器向客戶機發(fā)送數(shù)據(jù),數(shù)據(jù)以屬性的形式保存在服務(wù)器內(nèi),每個屬性都含有GATT管理的數(shù)據(jù),而且該數(shù)據(jù)被分配一個通用唯一標(biāo)識符(UUID)。通過一個L2CAP專用通道,屬性協(xié)議在服務(wù)器屬性與客戶機之間建立一條通信通道。通用屬性配置文件(GATT)在屬性協(xié)議層添加一個數(shù)據(jù)抽象模型,負(fù)責(zé)搜索屬性協(xié)議保存的數(shù)據(jù),在兩個設(shè)備之間交換特征。每個低能耗藍(lán)牙設(shè)備都有一套可能屬性(存儲服務(wù))和特征(與存儲服務(wù)相關(guān)的屬性)。如果在低能耗藍(lán)牙棧上建立一個新應(yīng)用,則必須定義屬性和特征。某一特定應(yīng)用的特征、屬性和底層規(guī)范合稱配置文件,標(biāo)準(zhǔn)配置文件可保證不同品牌的產(chǎn)品能夠互聯(lián)互通。
III. BLUEVOICE應(yīng)用
下面我們介紹BlueVoice應(yīng)用,首先定義語音通信低能耗藍(lán)牙配置文件,然后討論所涉及設(shè)備的通信角色、音頻處理和壓縮選擇、數(shù)據(jù)分組問題和帶寬要求。我們提出兩個在音頻采集和功耗方面不同的系統(tǒng)配置,以滿足不同的應(yīng)用要求。本章最后一部分介紹在一個實際硬件設(shè)備上實現(xiàn)的BlueVoice應(yīng)用,然后比較并討論實際測量到的應(yīng)用性能,例如,功耗、存儲器占用、處理性能要求和自動語音識別(ASR)性能。
A. 服務(wù)定義
考慮到音頻流用例不屬于低能耗藍(lán)牙標(biāo)準(zhǔn)配置文件,為實現(xiàn)語音流服務(wù),BlueVoice應(yīng)用在低能耗藍(lán)牙協(xié)議棧上,定義了一個叫做BlueVoice Service(BVS)的“廠商專用配置文件”,指定了服務(wù)器與客戶機之間交換語音數(shù)據(jù)的方式。此外,考慮到半雙工通信需要特別的設(shè)計選擇,本章稍后詳細(xì)討論這個問題。
如前文所述,屬性協(xié)議ATT是通用屬性配置文件GATT在不同設(shè)備之間交換數(shù)據(jù)的傳輸協(xié)議,屬性是ATT定義的最小的實體,是可尋址的信息段(內(nèi)置UUID標(biāo)識碼),可能含有用戶數(shù)據(jù)或關(guān)于屬性本身架構(gòu)的元信息,例如,權(quán)限、加密和授權(quán)屬性。GATT服務(wù)器屬性按特定順序組成一個服務(wù)序列,序列開始部分是服務(wù)聲明屬性,后面跟一個或多個特征和可能的描述符。每個特征都是一個被披露的屬性。除標(biāo)準(zhǔn)配置文件UUID外,在定制應(yīng)用中,開發(fā)人員可使用獨有的和廠商專用的UUID開發(fā)有自己特征的新服務(wù),BlueVoice應(yīng)用就是這種情況。考慮到單向音頻流系統(tǒng)不對稱性,服務(wù)器通過BVS配置文件向客戶機披露數(shù)據(jù)類型和格式以及訪問方式。BVS服務(wù)包含下列屬性,如圖2所示。
服務(wù)聲明(Handle 0x0010)
– UUID: 標(biāo)準(zhǔn)16位UUID,用于主服務(wù)聲明(0x2800).
– 權(quán)限:讀
– 數(shù)值: 獨有128位BVS UUID.
特征聲明 (Handle 0x0011)
– UUID: 標(biāo)準(zhǔn)16位UUID,用于特征聲明 (0x2803).
– 權(quán)限: 讀
– 數(shù)值: 獨有128位音頻UUID, 僅用于通知, Handle: 0x012.
特征數(shù)據(jù) (Handle 0x0012)
– UUID: 獨有128位音頻UUID.
– 權(quán)限: 無
– 數(shù)值: 實際音頻數(shù)據(jù)
特征聲明 (Handle 0x0014)
– UUID: 標(biāo)準(zhǔn)16位UUID,用于特征聲明 (0x2803).
– 權(quán)限:讀
– 數(shù)值: 獨有128位同步UUID,僅用于通知,Handle: 0x0015.
特征數(shù)據(jù) (Handle 0x0015)
– UUID: 獨有128位同步UUID.
– 權(quán)限: 無
– 數(shù)值: 實際同步數(shù)據(jù)
根據(jù)該標(biāo)準(zhǔn),主服務(wù)聲明是服務(wù)的第一個屬性,其數(shù)值域包含該聲明引入的UUID定義。BlueVoice應(yīng)用聲明使用一個128位獨有的UUID(BVS UUID)。BVS包含兩個特征,分別叫做音頻(Audio)和同步(Sync) 特征。在低能耗藍(lán)牙規(guī)范中,每個特征至少包含兩個屬性,分別是特征聲明和特征數(shù)值。特征聲明以元數(shù)據(jù)的形式定義其屬性,特征數(shù)值則是包含實際特征數(shù)據(jù)。在BlueVoice情況中,音頻和同步特征都包含一個單一的由獨有128位UUID定義 (AudioData和SyncData UUID) 的屬性,分別含有實際音頻數(shù)據(jù)和邊信息同步數(shù)值。音頻和同步特征聲明將AudioData和SyncData屬性定義為”僅通知”,未取得客戶機的讀寫權(quán)限,表示音頻數(shù)據(jù)和同步數(shù)據(jù)只以通知的形式傳輸,服務(wù)器不答復(fù)客戶機。為與低能耗藍(lán)牙服務(wù)的分層架構(gòu)一致,其它特征可能會增加到未來發(fā)布的BlueVoice應(yīng)用。
圖2. BlueVoice服務(wù)(BVS)定義
B. 應(yīng)用設(shè)計
本章主要介紹BlueVoice應(yīng)用設(shè)計的(i)低能耗藍(lán)牙通信(ii)音頻處理。
1) 低能耗藍(lán)牙通信
按照低能耗藍(lán)牙協(xié)議,通信可以是多點廣播,也可以是點對點連接。BlueVoice應(yīng)用鏈路層使用連接通信模式,在兩個設(shè)備之間建立永久性的點對點連接,這兩個設(shè)備扮演兩個不同的角色:中央設(shè)備和周邊設(shè)備。中央設(shè)備又稱主設(shè)備,支持與周邊設(shè)備(從設(shè)備)相關(guān)的復(fù)雜功能。中央設(shè)備是發(fā)起通信連接,執(zhí)行自適應(yīng)跳頻,數(shù)據(jù)加密,管理通信時序,定義設(shè)備間數(shù)據(jù)交換方式。該角色分配符合低能耗藍(lán)牙的非對稱設(shè)計概,為能效要求高的設(shè)備分配更少的工作任務(wù)。電池供電的便攜設(shè)備通常是從設(shè)備,不過,必須說明的是,根據(jù)規(guī)范[1],每個設(shè)備在每個連接事件發(fā)生時可單獨發(fā)送數(shù)據(jù),且角色不在數(shù)據(jù)吞吐量上強加限制或優(yōu)先權(quán)??紤]到半雙工通信情況,BlueVoice應(yīng)用可運行在自主的電池供電無線傳感設(shè)備上,且這些設(shè)備配備麥克風(fēng)(和最終標(biāo)量傳感器,如典型物聯(lián)網(wǎng)概念中無處不在的監(jiān)視應(yīng)用), 因此,角色分配不再與收發(fā)功能有關(guān)。
在鏈路層之上,GATT層定義互動設(shè)備的客戶機和服務(wù)器角色,與前文描述的主設(shè)備和從設(shè)備無關(guān)。服務(wù)器是提供信息的設(shè)備,而客戶機是請求或接收最新信息的設(shè)備??紤]到單向音頻流是非對稱系統(tǒng),裝備麥克風(fēng)的設(shè)備是唯一有語音信息的設(shè)備,因此可將其視為通信服務(wù)器,另一個設(shè)備是客戶機,向服務(wù)器發(fā)送信息請求,并接收服務(wù)器發(fā)起的含有語音數(shù)據(jù)的更新信息。在雙向通信系統(tǒng)中,語音數(shù)據(jù)是雙向傳輸,架構(gòu)是對稱的,中央設(shè)備和周邊設(shè)備都配備麥克風(fēng),都可以充當(dāng)服務(wù)器,輸出任何屬性格式的音頻數(shù)據(jù)。同時,服務(wù)器也能充當(dāng)客戶機,發(fā)送信息請求,并接受另一個設(shè)備發(fā)送的更新信息。
雙向語音數(shù)據(jù)流是基于服務(wù)器以固定間隔向客戶機發(fā)送通知,不需要接收設(shè)備發(fā)送請求或回復(fù)信號。從設(shè)備在上電階段進入廣播模式,以低頻發(fā)送廣播數(shù)據(jù)包,主設(shè)備進入搜索模式,掃描是否有其它設(shè)備存在,反之亦然。收到廣播數(shù)據(jù)包代表主設(shè)備發(fā)現(xiàn)了相關(guān)從設(shè)備,然后,主設(shè)備發(fā)送一個連接請求。在連接建立過程結(jié)束后,按照所選的通信傳輸方向:中央設(shè)備至周邊設(shè)備或周圍設(shè)備-中央設(shè)備,以固定間隔從服務(wù)器向客戶機發(fā)送含有音頻數(shù)據(jù)的異步通知數(shù)據(jù)包。圖3所示是BlueVoice在GATT 層的角色分配。
圖3:BlueVoice配置文件角色分配
2)音頻處理
BlueVoice的音頻處理目的是在根據(jù)應(yīng)用所選的接收端上,取得8kHz 或16 kHz的目標(biāo)音頻采樣。事實上,對于低功耗要求極其嚴(yán)格但是對音質(zhì)要求不高的應(yīng)用場景,例如,無需人耳聽清楚的自動語音識別服務(wù)輸入音頻,8kHz采樣率可能是一個不錯的選擇。
使用自適應(yīng)差分脈沖碼調(diào)制算法壓縮低能耗藍(lán)牙音頻傳輸信號,可使音頻信號適用于現(xiàn)有的數(shù)據(jù)傳輸速率,同時最大限度縮減射頻傳輸時間以及功耗。我們使用數(shù)字MEMS麥克風(fēng)設(shè)計一個全數(shù)字解決方案,尺寸和音質(zhì)等特性使其適用于無線傳感器設(shè)備。圖4所示是16 kHz采樣率的完整語音處理鏈。該解決方案首先采集數(shù)字MEMS麥克風(fēng)生成的1 MHz 的1位脈沖密度調(diào)制(PDM)信號,并將其轉(zhuǎn)換成16 kHz 的16位脈沖編碼調(diào)制(PCM)采樣,然后以16000個采樣/秒的采樣率,再將其壓縮成4位ADPCM采樣信號,并準(zhǔn)備發(fā)送。
此外,以較低的頻率發(fā)送邊信息同步數(shù)據(jù)集合,所需帶寬是64 kbps音頻數(shù)據(jù)與300 bps同步信息數(shù)據(jù)之和,總計64.3 kbps。對于8kHz采樣率,最終ADPCM采樣率是8000個采樣/秒,導(dǎo)致31.3 kbps帶寬需求,包括邊信息。下面章節(jié)深入介紹上述模塊。
圖4:16kHz 配置的BlueVoice數(shù)據(jù)傳輸鏈
MEMS麥克風(fēng)的容性傳感器生成的模擬信號經(jīng)放大和高速率采樣后,交由整合量化和噪聲修整操作的內(nèi)部sigma-delta調(diào)制器處理,輸出的數(shù)據(jù)是一個單一的高采樣率的PDM格式比特,PCM轉(zhuǎn)換是從PDM到無線通道發(fā)送壓縮音頻數(shù)據(jù)的整個處理鏈的中間環(huán)節(jié)。為了把PDM流轉(zhuǎn)換成PCM數(shù)據(jù),需要使用一個抽取濾波器和兩個可單獨配置的濾波器(低通濾波器和高通濾波器。該處理模塊輸出16位PCM格式采樣流。按照所選采樣頻率,采用一個不同配置的抽取濾波器,以取得16位PCM數(shù)據(jù)采樣。
ADPCM編碼模塊壓縮PCM采樣,通過減少數(shù)據(jù)包傳輸量,節(jié)省傳輸帶寬,降低能耗,如前文所述,ADPCM 是一個用于損耗波形編碼的壓縮算法,其基本原理是根據(jù)上一個數(shù)值預(yù)測當(dāng)前數(shù)值,只傳輸自適應(yīng)量化步驟量化的實際值與預(yù)測值的差值。存在諸多可選壓縮標(biāo)準(zhǔn),卻單單選用ADPCM標(biāo)準(zhǔn),這是因為它是基于波形編碼方法,與基于聲碼器的復(fù)雜解決方案相比,更適用于傳感器網(wǎng)絡(luò)設(shè)備(通?;谖⒖刂破?。在BlueVoice應(yīng)用中,每個16位PCM采樣都壓縮成4位ADPCM數(shù)據(jù),這樣所需的應(yīng)用傳輸帶寬是32 kbps或64 kbps,至于具體速率取決于采樣頻率,而且兼容低能耗藍(lán)牙流媒體功能。
如前文所述,BlueVoice應(yīng)用的總體帶寬實際需求高于32 kbps或64 kbps的理論值,這是因為BlueVoice為提高通信穩(wěn)健性,在通過通道發(fā)送數(shù)據(jù)時增加了附加信息。16 kHz 配置采用10 ms連接間隔,而8 kHz 配置采用25 ms連接間隔。事實上,如果被傳輸?shù)臄?shù)據(jù)量較少,可提高連接間隔數(shù)值,從而節(jié)省能源。為盡可能地利用每個數(shù)據(jù)包現(xiàn)有有效載荷,語音數(shù)據(jù)包發(fā)送20個字節(jié)。
因此,在16 kHz配置中,語音數(shù)據(jù)每10 ms發(fā)送4個數(shù)據(jù)包,而在8 kHz配置中,語音數(shù)據(jù)每20 ms發(fā)送4個數(shù)據(jù)包,結(jié)果傳輸帶寬分別是64 kbps和32 kbps。發(fā)送器的邊信息發(fā)送頻率較低,每160 ms發(fā)送一個6字節(jié)的附加包,對應(yīng)16個或8個連接間隔。圖5描述了低能耗藍(lán)牙協(xié)議棧上的數(shù)據(jù)分組總體策略。通過音頻特征,每10ms或20 ms連接間隔,發(fā)送4個語音數(shù)據(jù)包(每包20字節(jié)),而發(fā)送器邊信息的發(fā)送是,通過同步特征,每160ms間隔發(fā)送一個附加數(shù)據(jù)包。
圖5:BlueVoice數(shù)據(jù)分組機制
C. 在實際硬件上實現(xiàn)應(yīng)用
為了在支持低能耗藍(lán)牙通信的不是十分復(fù)雜的實際硬件無線傳感器網(wǎng)絡(luò)平臺上評估BlueVoice的可行性,我們在實際硬件設(shè)備上實現(xiàn)了第三章B部分所描述的應(yīng)用軟件的全部功能。所選硬件平臺是意法半導(dǎo)體的STM32 Nucleo L476開發(fā)板[5],這是一個基于STM32L476 80 MHz 32位ARM Cortex-M4微控制器的開放式開發(fā)平臺。我們選擇STM32 Nucleo開發(fā)板的原因是,板載微控制器的性能高于普通無線傳感器網(wǎng)絡(luò)平臺,同時還具備很高的靈活性和多功能性。該開發(fā)板配備很多接口和擴展排針,插接專用擴展板擴大板子功能簡單容易,方便設(shè)計人員研究、開發(fā)和驗證新創(chuàng)意。特別值得一提的是,STM32L4微控制器具有市場領(lǐng)先的低功耗特性,其內(nèi)置數(shù)字濾波器配合Sigma-Delta調(diào)制器(DFSDM)外設(shè),可實現(xiàn)圖4的PDM至PCM的格式轉(zhuǎn)換,這些特性使其特別適合BlueVoice應(yīng)用。通過在STM32Nucleo開發(fā)板上接插一塊低能耗藍(lán)牙連接板和一塊麥克風(fēng)擴展板,BlueVoice中央模塊和周邊模塊可以組成一個基于STM32Nucleo的對稱硬件配置,展示一個半雙工通信通道。低能耗藍(lán)牙連接板基于意法半導(dǎo)體的BlueNRG [6],BlueNRG是一個超低功耗的低能耗藍(lán)牙單模網(wǎng)絡(luò)處理器,兼容藍(lán)牙規(guī)范4.0版,可設(shè)為主設(shè)備和從設(shè)備模式,當(dāng)?shù)湍芎乃{(lán)牙協(xié)議棧啟動時,數(shù)據(jù)傳輸最大電流8.2 mA,可降至1.7 uA。附加的麥克風(fēng)擴展板用于采集語音信號,基于意法半導(dǎo)體的MP34DT01 [7]數(shù)字萬向MEMS 麥克風(fēng),聲學(xué)過載點120 dBSPL, 信噪比63 dB,靈敏度-26 dBFS。MP34DT01采用一個容式傳感器和一個內(nèi)置sigma-delta調(diào)制器和噪聲修整機制的集成電路,提供1-3.25 MHz的PDM輸出。
圖6是實際硬件設(shè)備的框圖:STM32微控制器通過與外設(shè)模塊DMA相連的DFSDM模塊采集麥克風(fēng)的PDM采樣輸出,同時通過一套專用應(yīng)用程序界面(API)和串行外設(shè)接口(SPI)與BlueNRG模塊通信,對于中央模塊和周邊模塊,模塊化架構(gòu)是對稱的。框圖中還有一個USB音頻接口,用于向PC機提供重構(gòu)的音頻信號。圖7是硬件設(shè)備的實際原型。
D. 性能
我們用第三章C部分描述的實際系統(tǒng)作為實驗平臺,評估BlueVoice應(yīng)用的功能、存儲器占用、性能需求和ASR識別率。特別是考慮到現(xiàn)場部署一系列微型無線麥克風(fēng)模塊的應(yīng)用場景和低能耗藍(lán)牙本身的非對稱性(從設(shè)備-外設(shè)模塊必須尺寸緊湊且功耗極低),本章討論的性能評估主要討論 8 kHz和16 kHz兩種配置的從設(shè)備-外設(shè)模塊的功耗、存儲器占用和性能震求。此外,在接收端測量的ASR性能是另一個性能評估指標(biāo),實際上,該參數(shù)可能是語音通信的一個重要的音質(zhì)指標(biāo),對于新興的聲控應(yīng)用(遙控器、物聯(lián)網(wǎng)產(chǎn)品)具有重要意義。
圖6. BlueVoice框圖
圖7:發(fā)送器和接收器原型
1) 功耗、存儲器占用和性能需求
如前文所述,我們把BlueVoice應(yīng)用實現(xiàn)在一個硬件設(shè)備上,該硬件設(shè)備使用意法半導(dǎo)體的 STM32 Nucleo開發(fā)板充當(dāng)主機,并使用低能耗藍(lán)牙網(wǎng)絡(luò)模塊充當(dāng)控制設(shè)備。表1列出了在BlueVoice的廣播、連接和傳輸三個不同狀態(tài)下,主機和控制設(shè)備(STM32和BlueNRG)的功耗值。這些數(shù)據(jù)是在3.3 V工作電壓時的測量值,對8 kHz和16 kHz配置的功耗進行了比較。必須強調(diào)的是,微控制器功耗完全取決于硬件特征和低功耗配置,因此,微控制器功率是在計算總功耗時加在總功耗中與平臺相關(guān)的數(shù)值。
本表所列數(shù)值可以視為一個指示性參考值,可能會隨實際應(yīng)用情況而發(fā)生變化。
表I:BLUEVOICE功耗
按照低能耗藍(lán)牙標(biāo)準(zhǔn),在兩個節(jié)點之間建立連接前,從設(shè)備是處于廣播模式,而主設(shè)備則是進入掃描模式。當(dāng)主設(shè)備收到廣播數(shù)據(jù)包,發(fā)現(xiàn)從設(shè)備存在時,就立即建立連接。在BlueVoice解決方案中,考慮到一個外設(shè)模塊對中央模塊的通信,外設(shè)節(jié)點是發(fā)送器(服務(wù)器),而中央節(jié)點是接收器(客戶機):服務(wù)器以固定周期向客戶機發(fā)送通知。對于8 kHz配置中,在廣播階段,發(fā)送器外設(shè)模塊(STM32 + BlueNRG)總平均功耗極低,只有3.50mW,當(dāng)建立連接時,功耗是3.98 mW。對于16 kHz配置,廣播階段功耗是8.22 mW,而連接階段是9.48 mW。這里應(yīng)著重指出的是,連接階段的功耗與連接間隔選擇關(guān)系密切,這也是8 kHz和16 kHz配置(分別是20 ms和10 ms)的主要區(qū)別。在這兩情況中,連接間隔設(shè)為接近標(biāo)準(zhǔn)規(guī)定的最小值(7.5 ms),以確保傳輸延遲最小。一旦連接建立, BlueVoice應(yīng)用立即進入傳輸狀態(tài),8 kHz配置的平均功耗是10.07 mW,16 kHz配置的平均功耗是19.84 mW,因此,基于STM32 + BlueNRG的物聯(lián)網(wǎng)節(jié)點,假設(shè)電池容量是200 mAh,在連續(xù)傳送數(shù)據(jù)流時,兩種配置的理論續(xù)航時間分別是約65小時和33小時。這些功耗值表明BlueVoice方法的適用于以低能耗藍(lán)牙為載體的音頻流,特別是8 kHz配置,可大幅降低功耗。
除分析功耗外,通過考慮存儲器占用情況,我們還評估了應(yīng)用的可行性。如表II所示,BlueVoice應(yīng)用軟件兩種配置占用閃存空間相同(21.85 kB),但是,8 kHz配置占用13.32 kB的RAM空間,而16 kHz配置只占用7.86 kB的RAM空間。兩種配置占用RAM空間不同的原因是,為降低該解決方案的額外開銷和功耗,8 kHz和16 kHz分別每20 ms 和10 ms執(zhí)行音頻處理步驟(PDM轉(zhuǎn)PCM和ADPCM壓縮),從而導(dǎo)致8 kHz配置在兩個連續(xù)步驟之間存儲的數(shù)據(jù)變大。在這兩種情況中,這些數(shù)值十分符合資源受限的系統(tǒng)要求。
表II
發(fā)送端BLUEVOICE存儲器占用
2) ASR性能
BlueVoice在功耗、處理性能和存儲器占用方面表現(xiàn)出的可行性并不能保證語音信號質(zhì)量在接收端達(dá)到可以接受的水平,在BlueVoice解決方案性能評估最后,我們利用一個網(wǎng)絡(luò)ASR服務(wù)進行了大量的傳輸測試,在接收端測量ASR 性能。16 kHz USB麥克風(fēng)和8 kHz/16 kHz BlueVoice系統(tǒng)以并行方式記錄若干個包含已知英文單詞的音頻采樣(作為參考),并將其傳輸?shù)紸SR引擎,表III列出了不同解決方案的單詞識別率比較測試結(jié)果。測試結(jié)果證明,ADPCM壓縮沒有降低信號質(zhì)量,因此適合ASR應(yīng)用:BlueVoice 16 kHz配置的性能十分接近USB麥克風(fēng),而 8 kHz系統(tǒng)的性能稍有降低(18 %),適用于低功耗要求極嚴(yán)的應(yīng)用。事實上,8 kHz系統(tǒng)以16 kHz配置50%的功耗取得了相同的ASR性能。
表III
BLUEVOICE ASR性能
IV. 結(jié)論
本文介紹一個以低能耗藍(lán)牙為載體傳送音頻流的解決方案,首先介紹一個廠商專用的半雙工通信低能耗藍(lán)牙配置文件,然后介紹BlueVoice應(yīng)用設(shè)計,并討論了慮涉及設(shè)備的通信角色、音頻處理和壓縮編碼選擇、數(shù)據(jù)分組和帶寬需求。BlueVoice應(yīng)用由一個中央節(jié)點和一個外設(shè)節(jié)點組成,按照所選通信方向,分別充當(dāng)?shù)湍芎乃{(lán)牙的服務(wù)器和客戶機。在連接建立后,服務(wù)器按固定周期向客戶機發(fā)送通知。我們對8 kHz和16 kHz兩個沒配置進行了比較,在發(fā)送器節(jié)點上,MEMS麥克風(fēng)的數(shù)字PDM格式輸出信號被采集并轉(zhuǎn)換成PCM格式,然后壓縮成ADPCM數(shù)據(jù),最終在低能耗藍(lán)牙鏈接上產(chǎn)生32或64 kbps的藍(lán)牙帶寬。該配置文件還定義一個低頻邊信息機制,雖然需要一些額外的帶寬,但是提高了錯誤抑制功能。為評估解決方案的性能, BlueVoice被實現(xiàn)在實際硬件設(shè)備上。該設(shè)備是由MEMS麥克風(fēng)和STM32微控制器組成與網(wǎng)絡(luò)模塊組成的全數(shù)字系統(tǒng),前者充當(dāng)主機,后者充當(dāng)?shù)湍芎乃{(lán)牙控制器。本文的性能評估表明,我們提出的解決方案在功耗、處理性能和存儲器占用方面適用于低功耗語音流應(yīng)用。特別是,在8 kHz和16 kHz音頻流傳輸過程中,傳感器設(shè)備的功耗測量值分別為10.07 mW和19.84 mW,存儲器占用和性能需求完全可接受。此外,我們還測量了音頻質(zhì)量指標(biāo)ASR性能,8 kHz配置和816kHz配置的單詞識別率分別達(dá)到67%和82%,而16 kHz USB麥克風(fēng)的識別率達(dá)到85%,這表明BlueVoice應(yīng)用能夠在接收端達(dá)到非常高的音質(zhì),并具有極低的功耗。
【推薦閱讀】
超級電容在電動車中應(yīng)用研究及發(fā)展趨勢分析
采用高度集成的電機控制方案應(yīng)對最新的汽車趨勢
數(shù)字電路PCB設(shè)計中的EMI控制技術(shù)
新國標(biāo)下的交流充電樁電源及信號接口解決方案
如何將EMC問題“扼殺”在產(chǎn)品開發(fā)過程中的“搖籃里”?