作者:Bougas Pavlos, Iliopoulos Marios
引言
最初,電視、機頂盒和空調(diào)等電器僅需少量控制功能[1]。在大多數(shù)情況下,開/關(guān)按鈕、幾個選擇按鈕和兩組增加/減少控制足以完全控制您的設(shè)備。
但隨著設(shè)備支持的功能增加,用戶使用的命令和配置選項也隨之增加。然而,用戶仍希望只用一個遙控器來管理所有功能。為了解決這個問題,工程師們開始整合更復雜的用戶界面(UI)。分層菜單出現(xiàn)在電視屏幕上,而越來越多的按鈕被填充到遙控器中,以便用戶調(diào)用和瀏覽菜單。
今天的重要趨勢是讓設(shè)備更“智能”。智能設(shè)備可以連接到其他設(shè)備和互聯(lián)網(wǎng),來提供更多功能和服務(wù)。使用菜單瀏覽,并用遙控器上的小按鈕鍵輸入一大字符串是不切實際的,也不是個愉快的體驗。
在本文中,我們將討論如何使用語音命令來提供更好的用戶體驗。我們特別研究了使用Dialog基于DA14585的高級語音遙控參考設(shè)計,通過藍牙低功耗(BLE)實現(xiàn)語音命令。
圖1較大的 QWERTY遙控器
用語音作為命令界面
語音是一個非常強大和直觀的界面。一個簡單的短語可以包含足夠的信息來描述非常復雜的命令。然而,在嘈雜的環(huán)境中捕捉短語并提取有實際意義的信息(通常以字符串的形式),這在技術(shù)上是一個挑戰(zhàn)。幸運的是,產(chǎn)生這個需求的源頭,即智能設(shè)備與互聯(lián)網(wǎng)的連接,也為這一復雜問題提供了解決方案。設(shè)備現(xiàn)在可以訪問云計算,并且可以受益于最先進的語音到文本識別引擎,如Nuance Communications、微軟、谷歌、亞馬遜等公司提供的技術(shù)。如今,基于云的語音識別服務(wù)足以提供非常好的用戶體驗。
我們?yōu)槭裁催€需要遙控器呢?
其實,不斷監(jiān)聽語音命令的解決方案很早就開發(fā)出來了,設(shè)備可以不斷地收聽周圍的聲音并搜索命令。但是,背景噪音和用戶與麥克風的距離問題,使得難以正確識別信息。此外,設(shè)備和云服務(wù)之間交換的數(shù)據(jù)量非常巨大,語音識別引擎面臨大量的請求,其中大部分是不相關(guān)的。環(huán)境聲音的不斷記錄也帶來了嚴重的安全和隱私隱患。
我們需要一種觸發(fā)器,一般通過按鈕、手勢或可識別的單詞或短語來實現(xiàn)。這種解決方案適用于用戶和設(shè)備距離很近,例如智能手機。但要在智能電視、機頂盒和用戶離設(shè)備較遠的其他應(yīng)用中,正確識別觸發(fā)信號并提供良好的用戶體驗就要困難很多。麥克風需要靠近用戶,不是有遙控器嘛。那么將麥克風嵌入遙控器就再自然不過了。
量化語音識別要求
簡單來說,語音命令功能的挑戰(zhàn)可以表述為:“捕獲‘足夠’的高質(zhì)量語音記錄,將其發(fā)送到語音識別引擎,然后處理文本結(jié)果以得出用戶的命令”。這個短語包含兩組基本要求。首先是需要觸發(fā)器。實際上,需要兩個觸發(fā)器:第一個指示命令的開始,第二個指示結(jié)束。
第二組要求與音頻信號本身有關(guān)。語音記錄應(yīng)采用適合引擎處理的格式進行編碼,而且質(zhì)量要“足夠”好。質(zhì)量“足夠”好怎么定義呢。安卓兼容性定義文檔[2]介紹了有關(guān)音頻捕獲質(zhì)量指標的一些想法。
頻率響應(yīng)應(yīng)該在100 Hz到4000 Hz的語音頻譜上幾乎保持平坦(+/- 3 dB)。這是描述窄帶語音信號的眾所周知的規(guī)范。關(guān)于麥克風產(chǎn)生的信號電平,安卓兼容性指南定義了聲功率級-RMS圖中的單點,以及線性跟蹤聲功率級的范圍。
在1 kHz時聲壓級(SPL)為90 dB的聲音,對于16位PCM信號,應(yīng)產(chǎn)生2500的RMS。這幾乎是16位有符號信號整體振幅范圍的10%。想要感覺一下SPL范圍的話,正常水平的電視機或典型的人類對話能在1米距離內(nèi)產(chǎn)生60 dB SPL。相比之下,柴油貨車在10米距離處產(chǎn)生90 dB SPL。
圖2. 聲壓級示例
當然,我們不能期望用戶在隨時想使用語音命令的時候,都能把麥克風放在精確的位置并以特定的音量水平說話。鑒于PCM振幅水平可以線性追蹤變化,語音識別引擎可以在一系列不同的聲壓級工作。要求至少30 dB的范圍。從90 dB SPL點開始,麥克風應(yīng)至少從-18 dB至+12 dB進行線性跟蹤; 因此在+72 dB SPL和+108 dB SPL之間。這相當于將麥克風放在離嘴0.8厘米至25厘米之間,并以正常強度說話。
圖3. PCM到SPL坐標圖
語音識別引擎似乎對非線性行為比較敏感。對于麥克風上90 dB SPL輸入電平的1 kHz正弦波,總諧波失真應(yīng)小于1%。降噪處理、自動增益控制(如果存在)必須禁用。
其他要求
過去曾使用過無線音頻協(xié)議的人,通常比較懷疑使用面向數(shù)據(jù)的協(xié)議來傳輸語音命令,例如藍牙低功耗。
傳輸語音命令與傳輸實時音頻或人聲(如電話交談)略有不同。由于用戶不必回聽他們的聲音或保持對話,所以延遲要求可以放寬,因為固定的和一定范圍內(nèi)的延遲是不可避免的。但是,數(shù)據(jù)丟失要求是很嚴格的,因為缺少音頻片段可能使語音識別引擎無法成功提取用戶的初始信息。當然機器可以要求您重復這條信息,但這不是人們想要的體驗。
構(gòu)建語音命令遙控器
現(xiàn)在我們看看語音命令遙控器的架構(gòu),我們將按照通過系統(tǒng)的音頻信號的路徑來看。在這個過程中,我們將著眼于在實現(xiàn)經(jīng)濟有效、功率效率高的語音遙控器時經(jīng)常遇到的挑戰(zhàn),以及可能的解決方法。
圖4. 典型的語音捕獲信號路徑
一切都從音頻捕獲子系統(tǒng)開始。這可以基于不貴的模擬麥克風和編解碼電路,或數(shù)字麥克風,將樣本數(shù)字化并根據(jù)已知的串行協(xié)議進行傳輸。
對于電池供電的系統(tǒng)(如語音命令遙控器),將功耗降到最低至關(guān)重要。因此,強烈建議對麥克風或外部編解碼器等外部元件的電源進行功率門控。
音頻采樣率必須至少為8k Samples / s以滿足4 kHz音頻帶寬要求。但是,每個采樣至少16位的16k Samples / s是更常規(guī)的選擇。采用16位采樣可確保足夠的聲壓級范圍,從而捕獲的音頻信號將包含足夠的信息,以便語音到文字的識別工作正常進行。
采樣音頻涉及中斷或某種形式的硬件 DMA,以獲取采樣并將其傳輸?shù)骄彌_區(qū)。該緩沖區(qū)需要將嚴格定時的音頻采樣與隨后的音頻處理解耦。對于低成本設(shè)備,音頻處理由服務(wù)應(yīng)用程序的相同處理器處理,在某些情況下由BLE協(xié)議棧處理。因此,緩沖區(qū)的大小將取決于音頻處理模塊接入CPU、處理音頻數(shù)據(jù)并將其移至下一步所需的最大預(yù)期時間。典型的時間在幾毫秒內(nèi)。對于16位16k Samples /s信號,每毫秒產(chǎn)生32個字節(jié),160-200字節(jié)緩沖器一般足以允許5毫秒以內(nèi)的處理時間。
音頻處理模塊實現(xiàn)簡單的音頻處理,并對音頻數(shù)據(jù)進行編碼以降低其總體速率。音頻處理包括非常基礎(chǔ)的濾波,如直流偏移消除或帶通濾波,和固定增益以優(yōu)化音頻振幅。原始音頻數(shù)據(jù)為256 kbit / s,可以通過BLE進行有余量地流數(shù)據(jù)傳輸。為了降低速率并更好地利用帶寬,使用已知的音頻壓縮算法對音頻進行編碼。編碼器的選擇比較多樣,從簡單的固定速率有損編解碼器(如IMA-ADPCM),到復雜的處理密集型固定或可變速率算法(如OPUS)。簡單的編解碼器可以在MIPS容量較低的CPU上運行,但在相同的輸出比特率下,生成的音頻流質(zhì)量較低。另一方面,復雜的算法可以提高編碼音頻流的質(zhì)量,但需要較貴且耗電較多的CPU。
編碼器的輸出包含需要通過無線傳輸?shù)淖罱K有效載荷,并且需要一個額外的緩沖器來幫助均衡即時RF數(shù)據(jù)速率與編碼器的平均輸出速率。編碼器的輸出速率等于采樣音頻速率除以實現(xiàn)的壓縮比率。下面的表格顯示了Dialog的語音遙控器(Voice RCU)參考設(shè)計支持的典型原始和編碼音頻速率。
表1. 原始的和 IMADPCM 編碼的音頻
BLE是一種基于數(shù)據(jù)包的協(xié)議,在特定時間點交換數(shù)據(jù)包,由定期連接間隔分隔開。如果干擾在會合點期間發(fā)生使數(shù)據(jù)包失真,則數(shù)據(jù)將在下一個數(shù)據(jù)包中重新傳輸。每個連接間隔都發(fā)生在不同的頻率通道中。通常,一個頻率范圍內(nèi)會經(jīng)常出現(xiàn)干擾信號,使多個連接事件失真并顯著降低帶寬。
BLE提供了一種叫做信道映射更新的機制來解決這個問題。主設(shè)備將檢測受影響的頻率范圍,并實施信道映射更新程序。在此之前,BLE連接可能會經(jīng)歷RF數(shù)據(jù)速率的顯著下降。編碼器輸出端的緩沖區(qū)的大小應(yīng)相應(yīng)調(diào)整,以便能承受此類事件。大小調(diào)整可以使用超安全方法,例如緩沖完整5秒鐘信息需要40k字節(jié),或者以一半的速率進行5秒鐘的緩沖,而不丟失任何數(shù)據(jù),這需要20k字節(jié)的緩沖。考慮市場上可用的設(shè)備,這是一個非常難以滿足的要求。大多數(shù)設(shè)備的整個協(xié)議棧和應(yīng)用程序都只有20 - 40 kbytes的總可用RAM。這個資源不能浪費在單個緩沖區(qū)上。需要注意是,緩沖區(qū)的大小與編碼器輸出速率和確保數(shù)據(jù)不丟失的時間成正比。
市場上已經(jīng)提出了很多種技術(shù),可以單獨使用或組合使用來解決這個問題,而無需很大的緩沖區(qū)。在流傳輸音頻樣本時增加RF輸出功率,以盡可能減少干擾;快速微調(diào)信道映射;使用更復雜的編碼器來降低所需的RF數(shù)據(jù)速率,或者甚至在檢測到明顯的RF帶寬下降時動態(tài)地降低質(zhì)量。每種技術(shù)都會以犧牲某些其他資源(如能耗、CPU占用或音頻質(zhì)量)的代價來處理問題,而不是使用更多的RAM。
根據(jù)所使用的編碼器算法,可以將數(shù)據(jù)存儲為連續(xù)流或預(yù)定義了長度的數(shù)據(jù)包列表。為了更好地利用BLE帶寬,最好將數(shù)據(jù)視為未經(jīng)編碼器分包的數(shù)據(jù)流。BLE傳輸?shù)臒o損性質(zhì)確保我們始終能夠在遙控器上重建我們的初始數(shù)據(jù)流。多個BLE連接參數(shù) -- 連接間隔、ATT_MTU大小、數(shù)據(jù)信道PDU大小和連接事件長度 -- 會影響B(tài)LE數(shù)據(jù)包的理論最佳大小的選擇。在運行時,實際的錯誤率可能需要進一步優(yōu)化數(shù)據(jù)包大小。由于消除了遙控器響應(yīng)和數(shù)據(jù)包之間間隙所需的時間,使用大一些的數(shù)據(jù)PDU可以有效地使有效數(shù)據(jù)速率加倍。另一方面,單個數(shù)據(jù)包的傳輸時間延長,增加了在傳輸數(shù)據(jù)包期間發(fā)生錯誤的可能性以及重傳成本。在嚴重無線污染的環(huán)境中,使用小一點的數(shù)據(jù)PDU可能會比使用已溝通的最大協(xié)議數(shù)據(jù)單元更有效。
所有這些要求決定了智能模塊的出現(xiàn),智能模塊將數(shù)據(jù)從編碼流中提取出來,根據(jù)連接特性打包數(shù)據(jù),并將其推入BLE協(xié)議棧,同時監(jiān)測實際BLE數(shù)據(jù)速率和錯誤率。打包器還應(yīng)具有某種形式的仲裁和流量控制,以避免過多數(shù)據(jù)涌入BLE協(xié)議棧,并為其他應(yīng)用保留足夠的帶寬,以便在音頻傳輸過程中使用BLE進行數(shù)據(jù)交換,以確保設(shè)備不會無響應(yīng)。
Dialog先進語音遙控解決方案
為了讓設(shè)計人員能夠評估功能完整的語音命令遙控器的性能,Dialog提供了基于單個DA14585 藍牙低功耗(BLE)SoC的先進語音遙控參考設(shè)計。該設(shè)計不僅支持語音,還支持一系列附加功能,如無線鼠標、觸摸板、紅外線以及按鍵,這些功能都存在于現(xiàn)代遙控器設(shè)計中,為用戶提供更自然的方式與終端設(shè)備進行交互并瀏覽菜單和結(jié)果。
圖5. Dialog 語音遙控器開發(fā)套件
第二代參考設(shè)計包括整個軟件架構(gòu)的重要變化,更加模塊化、更易于適應(yīng)最終產(chǎn)品要求。所有的功能都被組織成模塊,具有平臺相關(guān)和獨立的部分。這些模塊連接到驅(qū)動程序,用于DA14585內(nèi)部外設(shè)或為Dialog先進語音遙控開發(fā)板選擇的外部元件。
音頻路徑是根據(jù)前面介紹的原則構(gòu)建的。
圖6. Dialog語音遙控解決方案的系統(tǒng)架構(gòu)
為了提高音頻質(zhì)量,該設(shè)計采用了數(shù)字麥克風。對于成本敏感型應(yīng)用,PDM麥克風比I2S / PCM會更適合。DA14585的集成PDM-PCM轉(zhuǎn)換器將高頻PDM信號轉(zhuǎn)換為24位音頻PCM采樣,并通過專用DMA信道將其傳送至存儲器緩沖區(qū)。
M0 CPU執(zhí)行音頻處理和流傳輸模塊。從主循環(huán)中,調(diào)用一個預(yù)處理模塊來應(yīng)用直流阻斷和24位至16位的轉(zhuǎn)換。如果需要,下采樣單元可以將音頻采樣率從16k Samples / s減少到8k Samples / s。音頻預(yù)處理單元的結(jié)果被饋送到IMA ADPCM編碼器。根據(jù)配置的不同,編碼器會為每個16位音頻采樣生成一個4位或3位采樣。
圖7. Dialog語音遙控解決方案音頻路徑
作為設(shè)計選擇,該參考設(shè)計支持自適應(yīng)音頻速率機制,以防止可能的緩沖區(qū)欠載。音頻采樣的采樣率和/或IMA ADPCM編碼器的配置可隨時更改,從而可以在不同的輸出速率之間切換。為了支持這種機制,已經(jīng)開發(fā)了帶內(nèi)信令機制。編碼器的輸出和帶內(nèi)信令共享同一個的數(shù)據(jù)流緩沖區(qū)。
打包器模塊收集來自數(shù)據(jù)流緩沖區(qū)的數(shù)據(jù),并高效地將它們推入?yún)f(xié)議棧,同時盡量不溢出。除了考慮連接參數(shù)外,打包器還密切監(jiān)測錯誤率和瞬時可用帶寬。這有助于其在自適應(yīng)音頻速率機制啟用時,做出是否降低或提高音頻質(zhì)量的決定。
所有策略,如使用固定或自適應(yīng)音頻速率,音頻開始和停止的方式,均由用戶或遠程設(shè)備控制。單獨的緩沖區(qū)大小都是配置選項,因為根據(jù)最終應(yīng)用的不同,可能適合不同的用戶體驗。
結(jié)論
將設(shè)備連接到互聯(lián)網(wǎng)的能力,與現(xiàn)代基于云的語音識別服務(wù)相結(jié)合,實現(xiàn)了強大的新用戶界面 - 語音命令。智能手機、智能電視和機頂盒已經(jīng)在使用語音命令。通過將低成本的麥克風集成到BLE連接的外圍設(shè)備中,用戶的語音識別體驗可以大大增強。從遙控器、智能手表和可穿戴設(shè)備收集的命令,通過智能設(shè)備傳輸?shù)皆浦械恼Z音識別引擎,可以控制智能設(shè)備本身以及與智能設(shè)備相連的外圍設(shè)備或由語音助理控制的其他設(shè)備。
-
遙控器
+關(guān)注
關(guān)注
18文章
837瀏覽量
66125 -
dialog
+關(guān)注
關(guān)注
12文章
273瀏覽量
92942 -
藍牙低功耗
+關(guān)注
關(guān)注
0文章
30瀏覽量
9046
發(fā)布評論請先 登錄
相關(guān)推薦
評論