Audio算法参数调节说明

1. 简介

在 audio hal 中,对接音频算法库,将 audio effect 参数分别作用于 input 和 output 上,达到音效作用。

1.1 文件路径

  • 相关参数的代码路径: device\sigmastar\pioneer5\factory\system_control_factory_configuration.xml vendor\sigmastar\hardware\systemcontrol\system_control_user_configuration.xml

  • 板端路径: /data/vendor/hardware/system_control/system_control_user_configuration.xml /mnt/factory/system_control_factory_configuration.xml

  • 板端备份路径:(板端路径下文件异常时候,开机会从备份路径拷贝覆盖) /vendor/etc/system_control/

  • 所有音效当前只作用在 Speaker 输出上

1.2 DEBUG调试

  • 修改相关文件后,adb push 到板端对应路径后,断电重启后生效。
  • system_control_factory_configuration.xml 部分参数可以在 FactoryMenu app 中调试
  • system_control_user_configuration.xml 部分参数可以在SStarCustomizedMenu中调试。
  • 在 APP 中调试后,可以导出 板端路径下的 xml 和 代码路径下的 xml 做对比后更新。
  • 保存音频 PCM 文件(默认48K/16bit/2Channel):

    • 板端路径:/data/vendor/audio/
    • 开始保存: 音效处理前的节点:setprop debug.vendor.audio.dump_out 1 音效处理后的节点:setprop debug.vendor.audio.dump_out_aef 1

    • 结束保存: 音效处理前的节点:setprop debug.vendor.audio.dump_out 0 音效处理后的节点:setprop debug.vendor.audio.dump_out_aef 0

    • 注意:音频每次是追加保存,需要单独 debug peq 的时候,可以关闭其他音效开关。

  • log 打印方法:

    • systemControl hal 的 TAG:vendor.sstar.hardware.systemcontrol-service
    • systemControl app的 TAG:SystemControlService
    • audio hal 的 TAG:audio_hw_primary,(默认不输出,需要单独开启:setprop log.tag.audio_hw_primary V )

2. PEQ

2.1 简介

当前支持 10 段 PEQ filter 调整,filter 结构如下:

typedef struct {
    EQ_FILTER_TYPE type;
    int f0;
    int q_factor;
    int gain;
} AudioFilterConfig;
  • type:支持的枚举取值如下

    typedef enum {
        EQ_NOTCH_FILTER,      // 0:陷波滤波
        EQ_HIGH_PASS_FILTER,  // 1:高通滤波
        EQ_LOW_PASS_FILTER    // 2:低通滤波
    } EQ_FILTER_TYPE;
    
  • f0:频点值(任意频率)

  • q_factor:品质因素 Q,表示 频带宽度,即 0~8 范围内任意可调式,Q 越大,该频点影响的频率范围越小
  • gain:增益大小(当前预设范围 -8db ~ 8db)

2.2 注意事项

  • 最大支持 10 段 PEQ 参数调整,其中 第1-8 段用作声音模式的调节,第 9 段用作 Bass 调节、第 10 段用作 Treble 调节。
  • 每段PEQ 的 gain 调节范围为 -8db 到 8 db
  • 每段 PEQ 的 type 类型使用为 EQ_NOTCH_FILTER:0, 陷波滤波器
  • 设置菜单 Settings -> Audio Settings -> Sound Mode 应用的各个声音模式的参数即为不同的 EQ 参数
  • 其中声音模式中的 Customized 模式,提供固定 5 个频段(120Hz/500Hz/1500Hz/5000Hz/10000Hz)的增益大小(-8 db 到 8 db)给到用户调整。

2.3 调试方法

2.3.1 参数更新

以参考 Adobe Audtion 为例调整参数,

播放一个参考音频,打开 “效果->滤波与均衡->参数均衡器” 来调整一个适合的 PEQ 曲线

PEQ

记录下每个频段点的 频率值 和 增益大小值,以及 Q/宽度值,更新到对应的 xml 中,例如上图的 ⅘ 频段2个点对应以下 xml 配置:

<filter_index index="INDEX_0">
    <filter_parameter para="QFACTOR">2</filter_parameter>
    <filter_parameter para="F0">3200</filter_parameter>
    <filter_parameter para="TYPE">0</filter_parameter>
    <filter_parameter para="GAIN">0</filter_parameter>
</filter_index>
<filter_index index="INDEX_1">
    <filter_parameter para="QFACTOR">2</filter_parameter>
    <filter_parameter para="F0">12800</filter_parameter>
    <filter_parameter para="TYPE">0</filter_parameter>
    <filter_parameter para="GAIN">0</filter_parameter>
</filter_index>

其中声音模式中的 Customized 模式,固定 5 个频段(120Hz/500Hz/1500Hz/5000Hz/10000Hz)的增益大小(-8 db 到 8 db)默认值调整:

在 vendor\sigmastar\hardware\systemcontrol\system_control_user_configuration.xml 文件中调整

<audio_eq>
    <!-- the value corresponds to the audio equalizer frequency(Hz) and gain : -->
    <filter_index index="INDEX_0">120,0</filter_index>
    <filter_index index="INDEX_1">500,0</filter_index>
    <filter_index index="INDEX_2">1500,0</filter_index>
    <filter_index index="INDEX_3">5000,0</filter_index>
    <filter_index index="INDEX_4">10000,0</filter_index>
</audio_eq>

2.3.2 开关使能

EQ 的使能开关在 device\sigmastar\pioneer5\factory\system_control_factory_configuration.xml 文件中调整,

<apc_switch_item>
    <apc_switch_name name="IN">
        <apc_switch_type type="EQ">false</apc_switch_type>
    </apc_switch_name>
    <apc_switch_name name="OUT">
        <apc_switch_type type="EQ">true</apc_switch_type>
    </apc_switch_name>
</apc_switch_item>

或者 Factory APP -> Parametric EQualizer -> Enable -> On/Off 中调整。

On:所有mode PEQ 开启,Off:所有mode PEQ 关闭

2.3.3 声音模式

设置菜单 Settings -> Audio Settings -> Sound Mode ,用户遥控器切换的时候,会应用不同的 PEQ 参数

工厂菜单 Factory APP -> Parametric EQualizer -> Sound Mode,可以调整每个 声音模式下的 PEQ 参数,(On/Off 开关为全局开关,对所有声音模式均生效)

2.3.4 处理顺序

EQ 的节点处理顺序在 device\sigmastar\pioneer5\factory\system_control_factory_configuration.xml 文件调整:

<apc_sequence_item>
    <!-- the value corresponds to the following apc sequence type : -->
    <!-- "AEC:1", "ANR:2", "EQ:3", "AGC:4", "DRC:5", "CUS1:6", "CUS2:7" -->
    <apc_sequence_name name="OUT">4,3,5,0,0,0,0</apc_sequence_name>
</apc_sequence_item>

3. Bass/Treble

3.1 注意事项

  • 第 9 段用作 Bass 调节、第10 段用作 Treble 调节。
  • bass/treble 作用开关同 EQ 开关
  • bass/treble 所在段 filter 的 type / f 0 / q_factor 的值可以在 工厂菜单中依据客制化需求修改。其中 gain 值会被 用户调整的 gain 值覆盖掉。 (即 system_control_factory_configuration.xml 中 bass/treble 的 gain 值 和 system_control_user_configuration.xml 中的 bass/treble 值,只有 user xml 的值最终生效。)

3.2 调试方法

默认参数在 device\sigmastar\pioneer5\factory\system_control_factory_configuration.xml 文件中调整(bass 对应 INDEX_8, treble 对应 INDEX_9)

<!-- bass -->
<filter_index index="INDEX_8">
    <filter_parameter para="QFACTOR">1</filter_parameter>
    <filter_parameter para="F0">400</filter_parameter>
    <filter_parameter para="TYPE">0</filter_parameter>
    <filter_parameter para="GAIN">0</filter_parameter>
</filter_index>
<!-- treble -->
<filter_index index="INDEX_9">
    <filter_parameter para="QFACTOR">1</filter_parameter>
    <filter_parameter para="F0">4000</filter_parameter>
    <filter_parameter para="TYPE">0</filter_parameter>
    <filter_parameter para="GAIN">0</filter_parameter>
</filter_index>

GAIN 默认大小,在 vendor\sigmastar\hardware\systemcontrol\system_control_user_configuration.xml 文件中调整

<audio_bass>0</audio_bass>
<audio_treble>0</audio_treble>

或者设置菜单: Settings -> Audio Settings -> Bass/Treble 来调整

4. DRC

4.1 注意事项

  • 开关有 2 个地方,system_control_user_configuration.xml 中配置的值比system_control_factory_configuration.xml中优先级高

  • 处理顺序必须放在最后节点,即 DRC 后面不建议再加其他音效处理。

    <apc_sequence_item>
        <!-- the value corresponds to the following apc sequence type : -->
        <!-- "AEC:1", "ANR:2", "EQ:3", "AGC:4", "DRC:5", "CUS1:6", "CUS2:7" -->
        <apc_sequence_name name="OUT">4,3,5,0,0,0,0</apc_sequence_name>
    </apc_sequence_item>
    

4.2 调试方法

默认参数在 device\sigmastar\pioneer5\factory\system_control_factory_configuration.xml 文件中调整

<drc_name drcName="OUT">
    <userMode>1</userMode>
    <gainMax>50</gainMax>
    <gainMin>-50</gainMin>
    <gainInit>0</gainInit>
    <dropGainMax>15</dropGainMax>
    <dropGainThreshold>0</dropGainThreshold>
    <gainStep>1</gainStep>
    <attackTime>1</attackTime>
    <releaseTime>1</releaseTime>
    <noiseGate>-80</noiseGate>
    <noiseGateAttenuation>0</noiseGateAttenuation>
    <!-- the compression ration corresponds to the point 0-6 : -->
    <reference name="COMPRESSION_RATIO_INPUT">-65,-55,-48,-25,-18,-12,0</reference>
    <reference name="COMPRESSION_RATIO_OUTPUT">-65,-55,-48,-25,-18,-12,0</reference>
    <reference name="LOW_COMPRESSION_RATIO_INPUT">-80,-60,-40,-20,0,0,0</reference>
    <reference name="LOW_COMPRESSION_RATIO_OUTPUT">-5,-5,-5,-5,-5,-5,-5</reference>
    <reference name="MID_COMPRESSION_RATIO_INPUT">-80,-60,-40,-20,0,0,0</reference>
    <reference name="MID_COMPRESSION_RATIO_OUTPUT">-80,-60,-40,-20,0,0,0</reference>
    <reference name="HIGH_COMPRESSION_RATIO_INPUT">-80,-60,-40,-20,0,0,0</reference>
    <reference name="HIGH_COMPRESSION_RATIO_OUTPUT">-80,-60,-40,-20,0,0,0</reference>
</drc_name>

enable 默认开关,在 vendor\sigmastar\hardware\systemcontrol\system_control_user_configuration.xml 文件中调整

<audio_drc_enable>true</audio_drc_enable>

或者设置菜单: Settings -> Audio Settings -> DRC on/off 来调整