混合变音音效(voicechanger) ========================================= | AD14N / AC104N SDK中新增voicechanger变音音效,可自行调整参数做到不同的效果,发出不同的人声或者鸟叫声。 ^^^^^^^^^^^^^^^^^^^^ 可选音效 ################################ * EFFECT_VC_AV_PITCHSHIFT:人声变音1 * EFFECT_VC_F0_TD:人声变音2 * EFFECT_VC_AV_F0_TD_AUTOFIT:人声变音3 * EFFECT_VC_AV_PITCHSHIFT_AUTOFIT:人声变音4 * EFFECT_VC_AV_BIRD:鸟叫声 * EFFECT_VC_AV_BIRD1:鸟叫声1 * EFFECT_VC_AV_BIRD2:鸟叫声2 * EFFECT_VC_AV_BIRD3:鸟叫声3 * EFFECT_VC_AV_BIRD4:鸟叫声4 * EFFECT_VC_AV_BIRD5:鸟叫声5 * EFFECT_VC_AV_BIRD6:鸟叫声6 其中EFFECT_VC_AV_PITCHSHIFT跟EFFECT_VC_AV_F0_TD是2种变声算法 EFFECT_VC_AV_PITCHSHIFT中formant_shift参数无效;EFFECT_VC_AV_F0_TD中可以通过组合不同的shiftv跟formant_shift调出不同的效果。 例如变女声可以设置成 formant_shift=80;shiftv=60; EFFECT_VC_AV_F0_TD_AUTOFIT跟EFFECT_VC_AV_PITCHSHIFT_AUTOFIT是会检测声音。 例如 如果是童音即使pitch设高,也不要调高那么多。 EFFECT_VC_AV_BIRD到EFFECT_VC_AV_BIRD6是把人声转换成鸟声,例如人声唱一段旋律, 然后转换出来对应的鸟叫声旋律。其中pitch会改变鸟声的整体音高, 鸟叫建议用 EFFECT_VC_AV_BIRD5或EFFECT_VC_AV_BIRD6 ^^^^^^^^^^^^^^^^^^^^ 配置参数说明 ################################ * const int VC_NG_THRES:能量阈值,低于这个能量的声音会被mute掉,建议默认设成0,根据实际底噪水平设置。 voicechanger变音音效的参数由两个结构体管理 结构体VOICECHANGER_AV_PARM * shiftv 调小,音调变高, 变声模式建议范围50到200, 鸟叫声模式建议范围30到100 * formant 在EFFECT_VC_AV_F0_TD,EFFECT_VC_AV_F0_TD_AUTOFIT 模式下,调小音色变亮, 调小音色变沉。 范围50到200 * speedv 变速参数,范围50到200. 如果是 实时变声,ad直接变声到da的,因为进出数据量需要一致。这时候speedv必须设成100,不然会有杂音。 下面参数是 EFFECT_VC_AV_BIRD5 跟 EFFECT_VC_AV_BIRD6模式下是调节颤音用的 结构体VOICESYN_AV_PARM * vibrate_rate_u 范围0-100, 非0代表开启颤音, 0代表关闭 * vibrate_rate_d 范围0-100,影响颤音最大幅度,越大颤音幅度越大(BIRD6无效) * vibrate_lenCtrol 范围0-100,颤音衰减速度,影响颤音持续时长,100代表最短,0代表最长 * randpercent 有效范围50-100【或者0到50,镜像对称】, 微调音色的(BIRD6无效) ^^^^^^^^^^^^^^^^^^^^ 相关函数接口 #################### 函数void \*link_voice_changer_sound(void \*p_sound_out, void p_dac_cbuf, void \**pp_effect, u32 in_sr) *********************************************************************************************************** 该函数为串联音频链路的标准接口,实现响应算法的启动,并添加到音频链路上,其中参数: :: 1、p_sound_out:当前算法的前级音频通道句柄; 2、p_dac_cbuf:输出的音频buff; 3、pp_effect:存放当前音效算法控制句柄指针的指针; 4、in_sr:采样率; 5、返回值:启动之后最新的音频通道句柄; 函数void \*voice_changer_api(void \*obuf, u32 sr, void \**ppsound) ************************************************************************* 该函数用于初始化变音音效相关参数,由函数link_voice_changer_sound()调用即可; 函数void update_voice_changer_parm(VOICECHANGER_AV_PARM \*new_vc_parm, VOICESYN_AV_PARM \*new_vsyn_ctrol) ******************************************************************************************************************** 该函数用于运行voicechanger变音音效时,动态调整参数,使用时注意采样率要和之前一致,其中参数: :: 1、new_vc_parm:修改配置后新的参数结构体1 2、new_vsyn_ctrol:修改配置后新的参数结构体2