人声音效
enableVoiceAITuner
开启或关闭 AI 调音器功能。
public abstract int enableVoiceAITuner(boolean enabled, Constants.VOICE_AI_TUNER_TYPE type);
AI 调音器功能支持美化音质,调整音色风格。
适用场景
在线 K 歌、在线播客、秀场直播等对音质有较高要求的社交娱乐场景。
调用时机
加入频道前后均可调用。
调用限制
无。
参数
- enabled
- 是否开启 AI 调音器功能:
true
:开启 AI 调音器功能。false
:(默认)关闭 AI 调音器功能。
- type
- AI 调音器音效类型,详见 VOICE_AI_TUNER_TYPE。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
getAudioEffectManager
获取 IAudioEffectManager
类,以管理音效文件。
public abstract IAudioEffectManager getAudioEffectManager();
返回值
IAudioEffectManager
所属接口类setAdvancedAudioOptions
设置音频的高级选项。
public abstract int setAdvancedAudioOptions(AdvancedAudioOptions options);
详情
如果你对音频处理有进阶需求,例如需要采集和发送立体声,可以调用该方法设置音频的高级选项。
参数
- options
- 音频的高级选项。详见 AdvancedAudioOptions。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setAINSMode
设置是否开启 AI 降噪功能并设置降噪模式。
public abstract int setAINSMode(boolean enabled, int mode);
- 电视机噪声
- 空调噪声
- 工厂机器噪声等
- 雷声
- 爆炸声
- 破裂声等
适用场景
在语音连麦、在线教育、在线会议等场景中,如果周围环境比较嘈杂,AI 降噪功能可以在保证语音质量的前提下,识别并降低周围的稳态噪声和非稳态噪声,提高语音质量和体验。
调用时机
该方法在加入频道前后均可调用。
调用限制
- 该方法依赖于 AI 降噪动态库
libagora_ai_noise_suppression_extension.so
,如果删除该动态库会导致无法正常开启该功能。 - 目前暂不推荐在 Android 6.0 及以下版本的设备上开启该功能。
参数
- enabled
- 是否开启 AI 降噪功能:
true
:开启 AI 降噪功能。false
:(默认)关闭 AI 降噪功能。
- mode
- 降噪模式:
- 0:(默认)均衡降噪模式。如果你希望实现对噪声抑制和延时都较为均衡的降噪效果,可选择该模式。
- 1:强降噪模式;适用于对噪声抑制性能要求较高的场景,如户外直播。该模式可以更大程度地减少噪声,但同时可能会造成语音损伤。
- 2:低延时强降噪模式。该模式的降噪延时比弱降噪和强降噪模式大约低一半,适用于对降噪及低延时要求较高的场景,如实时合唱。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setAudioEffectParameters
设置 SDK 预设人声音效的参数。
public abstract int setAudioEffectParameters(int preset, int param1, int param2);
详情
- 3D 人声音效:设置 3D 人声音效的环绕周期。
- 电音音效:设置电音音效的基础调式和主音音高。为方便用户自行调节电音音效,建议你将基础调式和主音音高配置选项与应用的 UI 元素绑定。
设置后,频道内所有用户都能听到该效果。
- 调用 setAudioScenario 将音频场景设为高音质场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
- 调用 setAudioProfile [2/2] 将 profile 设为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5)。
- 该方法在加入频道前后都能调用。
- 请勿将 setAudioProfile [2/2] 的 profile 参数设置为 SPEECH_STANDARD(1),否则该方法不生效。
- 该方法对人声的处理效果最佳,不建议调用该方法处理含音乐的音频数据。
- 调用 setAudioEffectParameters 后,不建议调用以下方法,否则 setAudioEffectParameters 设置的效果会被覆盖:
- 该方法依赖于美声动态库
libagora_audio_beauty_extension.so
,如果删除该动态库会导致无法正常开启该功能。
参数
- preset
- SDK 预设的音效,支持以下设置:
- ROOM_ACOUSTICS_3D_VOICE,3D 人声音效。
- 你需要在使用该枚举前将 setAudioProfile [2/2] 的 profile 参数设置 为 MUSIC_STANDARD_STEREO(3) 或 MUSIC_HIGH_QUALITY_STEREO(5),否则该枚举设置无效。
- 启用 3D 人声后,用户需要使用支持双声道的音频播放设备才能听到预期效果。
- PITCH_CORRECTION,电音音效。
- ROOM_ACOUSTICS_3D_VOICE,3D 人声音效。
- param1
- 如果 preset 设为 ROOM_ACOUSTICS_3D_VOICE ,则 param1 表示 3D 人声音效的环绕周期。取值范围为 [1,60],单位为秒。默认值为 10,表示人声会 10 秒环绕 360 度。
- 如果 preset 设为 PITCH_CORRECTION,则 param1 表示电音音效的基础调式:
1
: (默认)自然大调。2
: 自然小调。3
: 和风小调。
- param2
- 如果 preset 设为 ROOM_ACOUSTICS_3D_VOICE,你需要将 param2 设置为
0
。 - 如果 preset 设为 PITCH_CORRECTION,则 param2 表示电音音效的主音音高:
1
: A2
: A#3
: B4
: (Default) C5
: C#6
: D7
: D#8
: E9
: F10
: F#11
: G12
: G#
- 如果 preset 设为 ROOM_ACOUSTICS_3D_VOICE,你需要将 param2 设置为
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setAudioEffectPreset
设置 SDK 预设的人声音效。
public abstract int setAudioEffectPreset(int preset);
调用该方法可以为本地发流用户设置 SDK 预设的人声音效,且不会改变原声的性别特征。设置音效后,频道内所有用户都能听到该效果。
根据不同的场景,你可以为用户设置不同的音效,各音效的适用场景可参考设置人声效果。
调用时机
加入频道前后均可调用。
- 调用 setAudioScenario 将音频场景设为高音质场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
- 调用 setAudioProfile [2/2] 将 profile 设为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5)。
调用限制
- 请勿将 setAudioProfile [2/2] 的 profile 参数设置为 SPEECH_STANDARD(1),否则该方法不生效。
- 如果调用 setAudioEffectPreset 并设置除 ROOM_ACOUSTICS_3D_VOICE 或 PITCH_CORRECTION 外的枚举,请勿再调用 setAudioEffectParameters,否则 setAudioEffectPreset 设置的效果会被覆盖。
- 调用 setAudioEffectPreset 后,不建议调用以下方法,否则 setAudioEffectPreset 设置的效果会被覆盖:
- 该方法依赖于美声动态库
libagora_audio_beauty_extension.so
,如果删除该动态库会导致无法正常开启该功能。
参数
- preset
- 预设的音效选项。
- AUDIO_EFFECT_OFF: 原声,即关闭人声音效。
- ROOM_ACOUSTICS_KTV: KTV。
- ROOM_ACOUSTICS_VOCAL_CONCERT: 演唱会。
- ROOM_ACOUSTICS_STUDIO: 录音棚。
- ROOM_ACOUSTICS_PHONOGRAPH: 留声机。
- ROOM_ACOUSTICS_VIRTUAL_STEREO: 虚拟立体声,即 SDK 将单声道的音频渲染出双声道的音效。使用该预设音效前,你需要将 setAudioProfile [2/2] 的 profile 参数设置为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设音效的设置无效。
- ROOM_ACOUSTICS_SPACIAL: 空旷。
- ROOM_ACOUSTICS_ETHEREAL: 空灵。
- ROOM_ACOUSTICS_VIRTUAL_SURROUND_SOUND: 虚拟环绕声,即 SDK 在双声道的基础上产生仿真的环绕声场,从而营造出具有环绕感的音效。 注意启用虚拟环绕声后,用户需要使用支持双声道的音频播放设备才能听到预期效果。
- ROOM_ACOUSTICS_CHORUS: 合唱。声网推荐你在合唱场景下使用,使人声更具空间立体感。
- ROOM_ACOUSTICS_3D_VOICE: 3D 人声,即 SDK 将音频渲染出在用户周围环绕的效果。环绕周期默认为 10 秒。设置该音效后,你还可以调用 setAudioEffectParameters 修改环绕周期。
- 使用该预设音效前,你需要将 setAudioProfile [2/2] 的 profile 参数设置为 MUSIC_STANDARD_STEREO(3) 或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设音效的设置无效。
- 启用 3D 人声后,用户需要使用支持双声道的音频播放设备才能听到预期效果。
- VOICE_CHANGER_EFFECT_UNCLE: 大叔。建议用于处理男声,否则无法达到预期效果。
- VOICE_CHANGER_EFFECT_OLDMAN: 老年男性。建议用于处理男声,否则无法达到预期效果。
- VOICE_CHANGER_EFFECT_BOY: 男孩。建议用于处理男声,否则无法达到预期效果。
- VOICE_CHANGER_EFFECT_SISTER: 少女。建议用于处理女声,否则无法达到预期效果。
- VOICE_CHANGER_EFFECT_GIRL: 女孩。建议用于处理女声,否则无法达到预期效果。
- VOICE_CHANGER_EFFECT_PIGKING: 猪八戒。
- VOICE_CHANGER_EFFECT_HULK: 绿巨人。
- STYLE_TRANSFORMATION_RNB: R&B。使用该预设音效前,你需要将 setAudioProfile [2/2] 的 profile 参数设置为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设音效的设置无效。
- STYLE_TRANSFORMATION_POPULAR: 流行。使用该预设音效前,你需要将 setAudioProfile [2/2] 的 profile 参数设置为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设音效的设置无效。
- PITCH_CORRECTION: 电音,即 SDK 以主音音高为 C 的自然大调为基础修正音频的实际音高。设置该音效后,你还可以调用 setAudioEffectParameters 调整修音的基础调式和主音音高。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setLocalVoiceEqualization
设置本地语音音效均衡。
public abstract int setLocalVoiceEqualization(
Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain);
调用时机
加入频道前后均可调用。
调用限制
无。
参数
- bandFrequency
- 频谱子带索引。取值范围是 [0,9],分别代表音效的 10 个频带。对应的中心频率为 [31,62,125,250,500,1k,2k,4k,8k,16k] Hz。详见 AUDIO_EQUALIZATION_BAND_FREQUENCY 。
- bandGain
- 每个 band 的增益,单位是 dB,每一个值的范围是 [-15,15],默认值为 0。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setLocalVoiceFormant
设置共振峰比率以改变语音的音色。
public abstract int setLocalVoiceFormant(double formantRatio);
共振峰比率是影响声音音色的一个参数,共振峰比率取值越小声音会更低沉,取值越大声音会更尖锐。设置共振峰比率后,频道内所有用户都能听到该效果。如果你想要在调整音色的同时改变音调,声网推荐你搭配 setLocalVoicePitch 一起使用。
适用场景
在语音直播、语聊房、K 歌房等场景中,你可以调用该方法设置本地语音的共振峰比率参数从而改变音色效果。
调用时机
加入频道前后均可调用。
调用限制
无。
参数
- formantRatio
- 共振峰比率,取值范围为 [-1.0,1.0]。默认值为 0.0,即不改变原声的音色。信息声网推荐的取值范围为 [-0.4,0.6] ,超出此范围外音效听感可能不佳。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setLocalVoicePitch
setLocalVoiceReverb
设置本地音效混响。
public abstract int setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE reverbKey, int value);
详情
SDK 提供一个使用更为简便的方法 setAudioEffectPreset,直接实现流行、R&B、KTV 等预置的混响效果。
参数
- reverbKey
- 混响音效 Key。该方法共有 5 个混响音效 Key,详见 AUDIO_REVERB_TYPE。
- value
- 各混响音效 Key 所对应的值。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setVoiceBeautifierParameters
设置预设美声效果的参数。
public abstract int setVoiceBeautifierParameters(int preset, int param1, int param2);
详情
调用该方法可以设置歌唱美声效果的性别特征和混响效果。该方法对本地发流用户进行设置。设置后,频道内所有用户都能听到该效果。
- 调用 setAudioScenario 将音频场景设为高音质场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
- 调用 setAudioProfile [2/2] 将 profile 设为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5)。
- 该方法在加入频道前后都能调用。
- 请勿将 setAudioProfile [2/2] 的 profile 参数设置为 SPEECH_STANDARD(1),否则该方法不生效。
- 该方法对人声的处理效果最佳,不建议调用该方法处理含音乐的音频数据。
- 调用 setVoiceBeautifierParameters,不建议调用以下方法,否则 setVoiceBeautifierParameters 设置的效果会被覆盖:
- 该方法依赖于美声动态库
libagora_audio_beauty_extension.so
,如果删除该动态库会导致无法正常开启该功能。
参数
- preset
- 预设的音效:
SINGING_BEAUTIFIER
: 歌唱美声。
- param1
- 歌声的性别特征:
1
: 男声。2
: 女声。
- param2
- 歌声的混响效果:
1
: 歌声在小房间的混响效果。2
: 歌声在大房间的混响效果。3
: 歌声在大厅的混响效果。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setVoiceBeautifierPreset
设置预设的美声效果。
public abstract int setVoiceBeautifierPreset(int preset);
调用该方法可以为本地发流用户设置预设的人声美化效果。设置美声效果后,频道内所有用户都能听到该效果。根据不同的场景,你可以为用户设置不同的美声效果。各美声效果的适用场景可参考设置人声效果。
调用时机
加入频道前后均可调用。
- 调用 setAudioScenario 将音频场景设为高音质场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
- 调用 setAudioProfile [2/2] 将 profile 设为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5)。
调用限制
- 请勿将 setAudioProfile [2/2] 的 profile 参数设置为 SPEECH_STANDARD(1),否则该方法不生效。
- 该方法对人声的处理效果最佳,不建议调用该方法处理含音乐的音频数据。
- 调用 setVoiceBeautifierPreset,不建议调用以下方法,否则 setVoiceBeautifierPreset 设置的效果会被覆盖:
- 该方法依赖于美声动态库
libagora_audio_beauty_extension.so
,如果删除该动态库会导致无法正常开启该功能。
参数
- preset
- 预设的美声效果选项:
- VOICE_BEAUTIFIER_OFF: 原声,即关闭美声效果。
- CHAT_BEAUTIFIER_MAGNETIC: 磁性(男)。
- CHAT_BEAUTIFIER_FRESH: 清新(女)。
- CHAT_BEAUTIFIER_VITALITY: 活力(女)。
- SINGING_BEAUTIFIER: 歌唱美声。
- 如果调用 setVoiceBeautifierPreset(SINGING_BEAUTIFIER),你可以美化男声并添加歌声在小房间的混响效果。请勿用于设置女声,否则音频会失真。
- 如果调用 setVoiceBeautifierParameters(SINGING_BEAUTIFIER, param1, param2),你可以美化男声或女声并添加混响效果。
- TIMBRE_TRANSFORMATION_VIGOROUS: 浑厚。
- TIMBRE_TRANSFORMATION_DEEP: 低沉。
- TIMBRE_TRANSFORMATION_MELLOW: 圆润。
- TIMBRE_TRANSFORMATION_FALSETTO: 假音。
- TIMBRE_TRANSFORMATION_FULL: 饱满。
- TIMBRE_TRANSFORMATION_CLEAR: 清澈。
- TIMBRE_TRANSFORMATION_RESOUNDING: 高亢。
- TIMBRE_TRANSFORMATION_RINGING: 嘹亮。
- ULTRA_HIGH_QUALITY_VOICE: 超高音质,即让音频更清晰、细节更丰富。
- 为达到更好的效果,建议在调用该方法前将 setAudioProfile [2/2] 的 profile 参数设置为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5),且 scenario 参数设置为 AUDIO_SCENARIO_GAME_STREAMING(3)。
- 如果用户的音频采集设备可以高度还原音频细节,建议你不要开启超高音质,否则 SDK 会过度还原音频细节,达不到预期效果。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setVoiceConversionPreset
设置预设的变声效果。
public abstract int setVoiceConversionPreset(int preset);
调用该方法可以为本地发流用户设置 SDK 预设的变声效果。设置变声效果后,频道内所有用户都能听到该效果。根据不同的场景,你可以为用户设置不同的变声效果。
各变声效果的适用场景可参考设置人声效果。
调用时机
加入频道前后均可调用。
- 调用 setAudioScenario 将音频场景设为高音质场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
- 调用 setAudioProfile [2/2] 将 profile 设为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5)。
调用限制
- 请勿将 setAudioProfile [2/2] 的 profile 参数设置为 SPEECH_STANDARD(1),否则该方法不生效。
- 该方法对人声的处理效果最佳,不建议调用该方法处理含音乐的音频数据。
- 调用 setVoiceConversionPreset 后,不建议调用以下方法,否则 setVoiceConversionPreset 设置的效果会被覆盖:
- 该方法依赖于美声动态库
libagora_audio_beauty_extension.so
,如果删除该动态库会导致无法正常开启该功能。
参数
- preset
- 预设的变声效果选项:
- VOICE_CONVERSION_OFF: 原声,即关闭变声效果。
- VOICE_CHANGER_NEUTRAL: 中性。为避免音频失真,请确保仅对女声设置该效果。
- VOICE_CHANGER_SWEET: 甜美。为避免音频失真,请确保仅对女声设置该效果。
- VOICE_CHANGER_SOLID: 稳重。为避免音频失真,请确保仅对男声设置该效果。
- VOICE_CHANGER_BASS: 低沉。为避免音频失真,请确保仅对男声设置该效果。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。