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 曲线
记录下每个频段点的 频率值 和 增益大小值,以及 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 来调整