6. 实时变速变调(SPEED,用于扩音)
AD16N 和 AW30N SDK均提供实时变速变调(SPEED,用于扩音)音效,该功能由 app_modules_h.c 里的 HAS_SPEED_EN 宏控制开关。
实时speed算法与song_speed算法功能基本一致,但侧重点与运算方法不一致,Speed运算量较小,实时性好,适用于mic直通喇叭等扩音应用此场景。在扩音场景下,Speed音效可实时修改变调音效。
6.1. 配置参数
Insample:输入音频采样率,与audio_adc采样率一致即可;
- Pitchrate:变调比例,用于调节变调效果,需要与const变量搭配使用;
当const变量SPITCH_PARM_PR_HResolution = 0时,pitchrate = 128为不变调;小于128时音调变高;大于128时音调变高;当const变量SPITCH_PARM_PR_HResolution = 1时,pitchrate = 32768为不变调;小于32768时音调变高;大于32768时音调变高;Speedin / Speedout:变速比例,扩音应用下默认为1;
Quality:变调运算质量,与运算速度成正比,配置范围3~8;
![]()
图1 实时变速变调参数初始化
6.2. 相关函数
6.2.1. 函数void *link_speed_sound(void *p_sound_out, void *p_dac_cbuf, void **pp_effect, u32 in_sr)
该函数为串联音频链路的标准接口,实现响应算法的启动,并添加到音频链路上,其中参数::
① p_sound_out:当前算法的前级音频通道句柄; ② p_dac_cbuf:输出的音频buff; ③ pp_effect:存放当前音效算法控制句柄指针的指针; ④ sr:当前输入音频的采样率; ⑤ 返回值:启动之后最新的音频通道句柄;