Page History

Audio_filter

Last edited by 王琳

音频滤镜

支持变声和升降调两种滤镜:

  • 变声,将主播声音变为搞怪的特效处理,能够增强互动时的趣味性;金山云SDK暂支持大叔、萝莉、庄重、机器人四种效果
  • 升降调,主播唱歌时伴奏(背景音乐)的特效处理,即从低沉到高亢的一个过程,更适用于较专业的唱歌直播;金山云SDK支持-3至3从低沉到高亢的7个等级的调节,0为原始音效,具体等级可根据客户业务需求做自定义处理

混响设置方法

参考代码:

CNAudioReverbFilter reverbFilter = new CNAudioReverbFilter();
reverbFilter.setReverbLevel(IStreamer.AUDIO_REVERB_LEVEL_1);
mStreamer.getAudioFilterMgt().setFilter(reverbFilter);

混响预设效果:

常量名 说明
AUDIO_REVERB_LEVEL_1 录音棚
AUDIO_REVERB_LEVEL_2 KTV
AUDIO_REVERB_LEVEL_3 小舞台
AUDIO_REVERB_LEVEL_4 演唱会

变声设置方法 参考代码

CNAudioEffectFilter effectFilter = new CNAudioEffectFilter(ICNAudioEffectFilter.AUDIO_EFFECT_TYPE_FEMALE);
mStreamer.getAudioFilterMgt().setFilter(effectFilter );

目前支持的变声音效类型如下:

常量名 说明
AUDIO_EFFECT_TYPE_FEMALE 萝莉
AUDIO_EFFECT_TYPE_MALE 大叔
AUDIO_EFFECT_TYPE_HEROIC 庄严
AUDIO_EFFECT_TYPE_ROBOT 机器人

升降调音效设置方法

  1. 创建CNAudioEffectFilter 实例,类型设置为AUDIO_EFFECT_TYPE_PITCH。
  2. 设置升降调 调用CNAudioEffectFilter 的setPitchLevel接口设置升级调的等级,目前支持的等级有:
   /**
     * pitch level from -3 to 3
     */
    public static int AUDIO_PITCH_LEVEL_1 = -3;
    public static int AUDIO_PITCH_LEVEL_2 = -2;
    public static int AUDIO_PITCH_LEVEL_3 = -1;
    public static int AUDIO_PITCH_LEVEL_4 = 0;
    public static int AUDIO_PITCH_LEVEL_5 = 1;
    public static int AUDIO_PITCH_LEVEL_6 = 2;
    public static int AUDIO_PITCH_LEVEL_7 = 3;

参考代码

CNAudioEffectFilter audioEffectFilter = new CNAudioEffectFilter(ICNAudioEffectFilter.AUDIO_EFFECT_TYPE_PITCH);
audioEffectFilter.setPitchLevel(level);
mStreamer.getBGMAudioFilterMgt().setFilter(audioEffectFilter);

设置多种音频滤镜

List<CNAudioFilterBase> filterBases = new LinkedList<CNAudioFilterBase>();
CNAudioReverbFilter reverbFilter = new CNAudioReverbFilter();
reverbFilter.setReverbLevel(IStreamer.AUDIO_REVERB_LEVEL_1);
filterBases.add(reverbFilter);
mStreamer.getAudioFilterMgt().setFilter(filterBases);

注:所有音频滤镜的设置在推流过程中设置均可生效