<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 小體積超低功耗語音喚醒耳機方案——帝思DSPG D4P

          小體積超低功耗語音喚醒耳機方案——帝思DSPG D4P

          作者:Biu~ 時間:2022-05-25 來源:大大通 收藏

          隨著AI的普及,越來越多人使用智能語音控制,從智能音箱慢慢開始延伸到智能耳機領(lǐng)域。目前市場的大部分耳機還是以手動喚醒語音助手為主,主要問題還是在語音檢測方面功耗和開發(fā)難度問題,。本方案將為大家介紹一套開發(fā)難度小且功耗低的語音喚醒方案——DBMD4P + QCC3044,該方案在頭戴耳機和運動型耳機上都適用。

          本文引用地址:http://www.ex-cimer.com/article/202205/434463.htm

          首先介紹一下這款DBMD4P的公司——DSP Group,它是家庭和辦公室的集成通信無線芯片產(chǎn)品全球領(lǐng)先的提供商。DSPg提供軟件半導(dǎo)體系統(tǒng)產(chǎn)品和參考設(shè)計,使ODM、 DEM、 消費電子產(chǎn)品制造商和服務(wù)提供商能夠經(jīng)濟高效地開發(fā),快速實現(xiàn)市場創(chuàng)收的新產(chǎn)品。該公司處于半導(dǎo)體創(chuàng)新的前沿并實現(xiàn)卓越運營超過二十年,提供了一個廣泛的無線芯片集成組合DEC/ CAT-iq、DECT ULE、Wi - Fi、PSTN、BoneTone智能語音增強和噪聲消除器、視頻和VoIP技術(shù)。 DSPg使集成的聲音、音頻、視頻和數(shù)據(jù)連接不同消費者和商業(yè)產(chǎn)品,包括連接多媒體屏幕、移動設(shè)備、家庭安全自動化、無線電話、網(wǎng)絡(luò)電話系統(tǒng)和家庭網(wǎng)關(guān)。利用行業(yè)領(lǐng)先的經(jīng)驗和專業(yè)知識,DSPg集團與CE制造商和服務(wù)提供商合作來塑造未來家庭和辦公室的集成通信。

          DBMD系列憑著極高的性價比,至今已向全球提供超一億顆芯片,國內(nèi)外各大智能語音引擎(如谷歌,亞馬遜,思必馳,出門問問等)都已有成熟算法方案在DBMD系列芯片上運行。從支持AI的TWS耳機到支持語音的智能家居,再到物聯(lián)網(wǎng),安防,手機,平板電腦和筆記本電腦中,DSPg的身影無處不在。

          其中DBMD4P是一款適用于電池供電設(shè)備(如手機,IoT,可穿戴設(shè)備等)的超語音和傳感器數(shù)據(jù)處理器。這處理器可實現(xiàn)各種應(yīng)用,例如語音觸發(fā)(VT)、語音驗證(VA)、語音命令(VC)、傳感器數(shù)據(jù)處理和均衡器功能。DBMD4P是基于TeakLite-III?DSP 架構(gòu)的處理器,具備與系統(tǒng)中其他設(shè)備(例如應(yīng)用處理器(AP),編解碼器,麥克風(fēng)和傳感器)進行通信所需的接口(如TDM,I2c,SPI,Uart等),加上已有的成熟算法,可為客戶快速開發(fā)出想要的功能。

          QCC3044大家應(yīng)該也很熟悉,這是高通推出的新一代雙聲道藍(lán)牙芯片,采用最新的BT5.2藍(lán)牙標(biāo)準(zhǔn),具備24bit DSP處理能力,這必然會帶有有高通優(yōu)秀的Aptx HD編碼。同時這款芯片內(nèi)置了flash,減少了外圍器件成本和采購flash的壓力。穩(wěn)定的平臺賦能,卓越的音樂品質(zhì),強悍的電源管理,豐富的功能接口和產(chǎn)業(yè)公認(rèn)的是這套方案的不二之選,搭配DSPg的芯片可謂強強聯(lián)合。

          方案實現(xiàn)

          D4p和QCC3044主要引腳連接

          DBMD_INT:當(dāng)D4P檢測到有較大幅度聲音變化時,就會啟動識別引擎去識別這聲音是否為喚醒詞,如果識別是喚醒詞,就通過這個引腳把AP喚醒,再進入語音傳輸模式(Audio Buffering)。

          RSTN:該引腳為D4P的復(fù)位腳,在每次燒錄FW之前,都需要下拉該引腳一段時間。

          WAKEUP:該引腳為AP喚醒D4P的引腳,當(dāng)D4P進入Hibernate時,只能通過該引腳喚醒。

          SPI(或I2C、Uart):這組引腳用于AP與D4P之間的數(shù)據(jù)交互(如FW文件傳輸,配置和控制指令)。在D4P進入語音傳輸模式時(Audio Buffering),AP會通過SPI(或I2C、Uart)讀取拾取的語音指令數(shù)據(jù)做進一步的語音指令識別。

          程序控制

          先了解D4p的5種工作模式,如下圖:

          Idle:Boot Firmware之后,系統(tǒng)會在idle模式,這個狀態(tài)主要用于配置參數(shù),為接下來的模式做準(zhǔn)備

          Audio Buffering:該模式是將聲音都放到buffer中,讓AP去提取使用

          Detection:在該模式下,系統(tǒng)用較低的功耗檢測環(huán)境聲音,當(dāng)有明顯聲音波動時,系統(tǒng)進入語音識別狀態(tài),識別成功后,進入聲音傳輸狀態(tài)

          Sleep:該模式關(guān)閉ADC采集和處理, 保留與AP通訊能力

          Hibernate:系統(tǒng)關(guān)閉處理功能,AP無法通訊,只有AP用IO喚醒才能恢復(fù)到Idle模式

          Microphone:該模式用于debug,mic聲音數(shù)據(jù)直接通過uart輸出

          根據(jù)這幾個模式,在QCC3044中加入對應(yīng)的處理

          1)QCC3044開機時,對D4P復(fù)位并燒錄FW文件(Idle模式)

          2)配置D4P參數(shù),并進入Sleep或Hibernate模式

          3)QCC3044接收到用戶指示,喚醒并控制D4P開啟語音檢測模式(Detection模式)

          4)D4P檢測喚醒詞,喚醒QCC3044做語音識別(Audio Buffering模式)

          設(shè)計要點

          1)Boot模式選擇:D4P支持多種boot模式,若需要獨立啟動可從flash加載程序;若從AP加載程序,可從Uart、SPI或I2C選一種加載,方便不同主控端選擇。加載時芯片會自動識別當(dāng)前通訊協(xié)議,從而自動選擇對應(yīng)的通訊方式。大致流程如下:

          2)Mic設(shè)計:mic輸入是差分信號,所以振幅比較低,設(shè)計時需要將mic的線路平行并盡可能靠近。Mic到D4p之間需要保持相同的距離和相同的阻抗。Mic的濾波電容應(yīng)靠近mic,而其他部分則盡可能靠近D4p端。

          3)實體mic之間的距離越大越好,這樣有助于算法做beam forming

          4)Uart引腳需要預(yù)留出來,調(diào)算法和debug時候都需要用到

          5)Reset引腳是必須要接上的,D4p每次燒Firmware之前都需要拉低reset一下

          6)Uart通訊時,D4p會自動識別比特率,但在此之前需要發(fā)送16個0進行同步

          此外這個設(shè)計的連接方式同樣適用于其他藍(lán)牙、WiFi、ARM等應(yīng)用平臺。如要做通話降噪應(yīng)用,D4P也提供了I2S接口,可將處理后的音頻數(shù)據(jù)傳入AP端。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();