Biu~筆記:高通藍牙ADK(44)-- 32k cvc usb voice

       Bui~ 在前面的博文中有提到,高通帶來了aptx voice這個新功能。這是一種能傳輸32k 採樣率的通話壓縮格式,能讓藍牙做到更高的通話音質。之前我們都是用16k和8k的cvc,而aptx voice是32k的採樣率,自然要用32k的cvc去處理,那麼(→ ω →)  (๑¯∀¯๑)

       既然都加了,不能只讓aptx voice用,好東西自然要一起用嘛。我們可以把這個cvc模塊用在那些有這麼高採樣率但沒有對應降噪的用戶場景。比如說32k usb voice ٩(๑❛ᴗ❛๑)۶ 雖然之前有篇48k usb voice的博文,但那只是讓speaker輸出48k,mic輸入還是只能做16k。這次有了新的cvc,這就得整上。

       小編用的是722.1的代碼做修改,因為目前的代碼基本上都做得很完善了,所以改動的地方不多,很有可能在未來的版本,高通自己都會加上去,所以大家想做這功能的時候,先看看release note或代碼有沒有相關的應用。目前版本是沒有的,所以小編稍微先幫高通完善一下。

       首先,我們要修改的是USB 音頻流描述符,這得讓PC知道設備支持什麼參數。這裡面主要是添加32k採樣率的描述

       Mic和speaker都改。其實speaker是可以不改的,或者改更高採樣率,但是沒必要也不建議,默認的speaker鏈路有重採樣做適配,而且現在的代碼都是音樂聲卡和通話聲卡分開的,平時聽音樂不會用到通話聲卡,所以還是建議speaker和mic做同樣的採樣率。

       再來,我們就創建一下swb(也就是32k voice)的chain文件,我們可以參考wb的chain來改一下他的cvc模塊

       最後,我們需要添加這個chain的引用。在chain_configs的結構體中多加一個.chain_usb_voice_swb_config = &chain_usb_voice_swb_config,然後在kymeraUsbVoice_CreateChain的函數中將這個配置用上。

       這裡有個細節要注意,case用的mode是usb_voice_mode_uwb而不是usb_voice_mode_swb。這是和高通後面要添加的功能有關,voice除了傳統的8k,16k的採樣率以外,還有22.4k,32k,甚至64k,所以他的命名規則有些出入。我們只需要查usb_voice_mode_t的枚舉,知道這是表示32k就好了,後面怎麼改動,隨機應變。



最後燒錄接上電腦去通話就可以在qact看到對應的swb的cvc模塊了



       改動步驟比較少,和之前的版本相比還是簡化了很多的,這就是模塊化編程的魅力。那這都沒問題了,那麼(→ ω →) 舉一反十。32k usb 2mic voice不就有了,32k usb speaker voice不就有了,32k usb speaker 2mic voice不就有了,骨傳導的usb voice不就有了(雖然產品形態不好理解),再大膽點,usb stereo voice ٩(๑❛ᴗ❛๑)۶

        以上是本期博文的全部內容,如有疑問就別在博文下方評論留言了,有什麼疑問或想了解的當面和我說(如果你知道我是誰的話ヽ( ̄▽ ̄)و),我會儘量安排上(o´ω`o)و。謝謝大家瀏覽,我們下期再見。

       簡單是長期努力的結果,而不是起點

                                                       —— 不是我說的

FAQ 1:mic的屬性顯示32k

A1:刪除聲卡驅動重新安裝

 

FAQ 2沒有找到聲卡

A2:要打開INCLUDE_USB_AUDIO(音樂) 和 INCLUDE_USB_VOICE(通話) 這兩個宏

 

FAQ 3能不能作假,聲卡設置到48k

A3:可以,鏈路多加一個重採樣

 

FAQ 4這樣usb voice就支持aptx voice了?

A4: 不能這樣理解,aptx voice是指無線傳輸的功能

 

FAQ 5: QCC30xx系列能不能做

A5: 只要他的dsp有這個模塊,都能做

技術文檔

類型標題檔案
硬件Patch

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論