clearinterval函数不生效_高能QCC系列中leakthrough如何永久生效

高通QCC304X及QCC514x的Leakthrough是声音透传功能,也就是Sidetone;可以通过配置一个按键来开启和关闭该功能。目前官方SDK中支持开启和关闭,不支持动态调整增益级别。tunning该功能时,只会临时起作用,当重新上电或者reset芯片后,tunning后的配置就会自动消失,所以在此对如何让配置永久生效做了解释,希望对相关开发人员有所帮助。


QCC系列的Leakthrough功能涉及到如下几个方面:

1. 如何使能该功能

2. 如何用按钮打开和关闭;

3. 如何调整增益;

4. 如何调整透传声音的品质,也即EQ。

下面对其一 一解析。


1. 如何使能leakthrough功能

打开MDE工程,在工程的配置属性中通过添加定义ENABLE_AEC_LEAKTHROUGH 及INCLUDE_KYMERA_AEC来使能该功能。下图为QCC514X&QCC304X的示例:

72d9c5a24f1eeb4e1d551f465c3e566e.png

2. 如何用按钮打开和关闭

通过在UI定义中添加按键动作来支持,定义在源文件earbud_ui_config.c中的earbud_ui_config_table[]结构中,示例定义如下:

f7f022af1713e78e853abb0af6aba367.png

注意,uiprovider_audio_curation也可以换成其它事件provider,比如ui_provider_device。图所不两行,是用来切换打开和关闭,一个用于在leakthough关闭的时候执行,一个是leakthrough打开的时候执行,在源码audio_curation.c中的函数static unsigned getLeakthroughCurrentContext(void)用于返回当前leakthough是否已经处于打开或关闭的状态,该状态记忆在全局变量leakthrough_task_data中,该变量定义在文件aec_leakthrough.c中。

源文件audio_curation.c中, 函数 static void handleUiDomainInput(MessageId ui_input)为UI事件的部分解决函数,主要是负责解析和处理leakthrough和anc相关UI定义的事件,其中消息ui_input_leakthrough_toggle_on_off会用来切换leakthrough的开与关;

3. 如何调整增益

需要首先编译工程并下载到芯片中,通过USB线连电脑或URB调试器连接电脑,然后找开QACT软件,对QACT进入如下配置:

fbda69bd4d8de360c5379d419757a280.png

配置文件路径分别是(依据实际的安装路径来选择,这里是笔者的安装路径):

Configuration:

> KalAccess DLL Path = D:ProgramFilesQualcommqtilADK_Toolkit_1.0.1.19_x64toolskalaccess_devwin32kalaccess.dll

>Workspace File = D:WorkPrjTWSDevCodeGitee-QCC514X-QCC304Xaudioqcc514x_qcc304xkalimbakymeraoutputstreplus_rom_releaseQACTQACT_Modules.qwsp

然后点击按钮Connect To Device下面的<Connection Confguration>来进入配置界面,如果是USB方式调试,则进入前会弹出一个选择USB设备的窗口,如下图所示,这时先择第一个(第二个会连接失败):

0ba65c6665da47d9dc6ab464bd02a5ff.png

进入后,点左侧栏中第一个<Download AECRef>,及右边的Mic Gain图标,注意,用QACT前需要先打开Leakthrough,否则连接后会看不到内容。连接成功后,就可以修改如图中红圈起来的增益值了,修改后记得点下方的Set Data才会即时生效。

729493051d80e923321726ac73a783fc.png

edf6104f2d9bfddcb7b6f7b6d102d12c.png

注意:此处更改仅为临时生效,若要降其发布到产品中,则需要把该增益写入到固件中,办法是通过File菜单导出为HTF格式的文件,然后打开该导出的文件,把其中的内容添加到工程中名为aec_reference_config.htf文件中,然后擦除芯片所有内容à 重新编译工程à DeployAll(下载工程到芯片),然后重新给产品上电,新的增益就可以生效了。

或者通过菜单DSP中的Write Persistence来直接写入芯片中。

下面内容为一个htf文件的示例:

file = audio

# PSID=0x20038E, capID=0x4007, UCID=0x0007

# -> [ 1009 0000 0001 0000 2090 000B 0001 0000 0001 000E 0002 0000 0005 2800 0000 0014 0001 9186 6F00 0017 0001 92BB 0300 0019 0001 9186 6F00 001C 0001 92BB 0300 001E 0001 9186 6F00 0021 0001 92BB 0300 ]

0x20038E = [ 09 10 00 00 01 00 00 00 90 20 0B 00 01 00 00 00 01 00 0E 00 02 00 00 00 05 00 00 28 00 00 14 00 01 00 86 91 00 6F 17 00 01 00 BB 92 00 03 19 00 01 00 86 91 00 6F 1C 00 01 00 BB 92 00 03 1E 00 01 00 86 91 00 6F 21 00 01 00 BB 92 00 03 ]

Aec_reference_config.htf

2e5af829ac6278ff84f2fc1dbfa94f65.png

4. 如何调整透传声音的品质,也即EQ。

初次调整leakthrough的Gain后,透传过来的声音听起来非常不自然,此时就需要通过调节EQ来解决该问题。EQ的调整同样是在QACT中,当QACT与芯片连接后,通过点面功能View中的EQ可以实现EQ的调节,调节后,同样需要做Gain类似的动作来让新EQ配置永久生效。

d185c93c9042be8cc22033874899ad89.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值