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次,发文人进小黑屋喔~

评论