人声音效
setAudioEffectPreset
设置 SDK 预设的人声音效。
ArkTS
public abstract setAudioEffectPreset(preset:Constants.AudioEffectPreset):number;
调用该方法可以为本地发流用户设置 SDK 预设的人声音效,且不会改变原声的性别特征。设置音效后,频道内所有用户都能听到该效果。
根据不同的场景,你可以为用户设置不同的音效,各音效的适用场景可参考设置人声效果。
调用时机
加入频道前后均可调用。
为获取更好的人声效果,建议你在调用该方法前进行以下操作:
- 调用 setAudioScenario 将音频场景设为高音质场景,即 GAME_STREAMING(3)。
- 调用 setAudioProfile 将 profile 设为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5)。
调用限制
- 请勿将 setAudioProfile 的 profile 参数设置为 SPEECH_STANDARD(1),否则该方法不生效。
- 如果调用 setAudioEffectPreset 并设置除 ROOM_ACOUSTICS_3D_VOICE 或 PITCH_CORRECTION 外的枚举,请勿再调用 setAudioEffectParameters,否则 setAudioEffectPreset 设置的效果会被覆盖。
- 调用 setAudioEffectPreset 后,不建议调用以下方法,否则 setAudioEffectPreset 设置的效果会被覆盖:
- setVoiceBeautifierPreset
- setLocalVoicePitch
- setLocalVoiceEqualization
- setLocalVoiceReverb
- setVoiceBeautifierParameters
- setVoiceConversionPreset
- 该方法依赖于美声动态库
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 的 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 的 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 的 profile 参数设置为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设音效的设置无效。
- STYLE_TRANSFORMATION_POPULAR: 流行。使用该预设音效前,你需要将 setAudioProfile 的 profile 参数设置为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设音效的设置无效。
- PITCH_CORRECTION: 电音,即 SDK 以主音音高为 C 的自然大调为基础修正音频的实际音高。设置该音效后,你还可以调用 setAudioEffectParameters 调整修音的基础调式和主音音高。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setLocalVoiceEqualization
设置本地语音音效均衡。
ArkTS
public abstract setLocalVoiceEqualization(bandFrequency:Constants.AudioEqualizationBandFrequency,bandGain:number):number;
调用时机
加入频道前后均可调用。
调用限制
无。
参数
- bandFrequency
- 频谱子带索引。取值范围是 [0,9],分别代表音效的 10 个频带。对应的中心频率为 [31,62,125,250,500,1k,2k,4k,8k,16k] Hz。详见 AudioEqualizationBandFrequency 。每个 band 的增益,单位是 dB,每一个值的范围是 [-15,15],默认值为 0。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setLocalVoicePitch
setLocalVoiceReverb
设置本地音效混响。
ArkTS
public abstract setLocalVoiceReverb(reverbKey:Constants.AudioReverbType,value:number):number;
详情
SDK 提供一个使用更为简便的方法 setAudioEffectPreset,直接实现流行、R&B、KTV 等预置的混响效果。
信息
该方法在加入频道前后都能调用。
参数
- value
- 各混响音效 Key 所对应的值。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
setVoiceBeautifierPreset
设置预设的美声效果。
ArkTS
public abstract setVoiceBeautifierPreset(preset:Constants.VoiceBeautifierPreset):number;
调用该方法可以为本地发流用户设置预设的人声美化效果。设置美声效果后,频道内所有用户都能听到该效果。根据不同的场景,你可以为用户设置不同的美声效果。
调用时机
加入频道前后均可调用。
为获取更好的人声效果,建议你在调用该方法前进行以下操作:
- 调用 setAudioScenario 将音频场景设为高音质场景,即 GAME_STREAMING(3)。
- 调用 setAudioProfile 将 profile 设为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5)。
调用限制
- 请勿将 setAudioProfile 的 profile 参数设置为 SPEECH_STANDARD(1),否则该方法不生效。
- 该方法对人声的处理效果最佳,不建议调用该方法处理含音乐的音频数据。
- 调用 setVoiceBeautifierPreset,不建议调用以下方法,否则 setVoiceBeautifierPreset 设置的效果会被覆盖:
- setAudioEffectPreset
- setAudioEffectParameters
- setLocalVoicePitch
- setLocalVoiceEqualization
- setLocalVoiceReverb
- setVoiceBeautifierParameters
- setVoiceConversionPreset
- 该方法依赖于美声动态库
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 的 profile 参数设置为 MUSIC_HIGH_QUALITY(4) 或 MUSIC_HIGH_QUALITY_STEREO(5),且 scenario 参数设置为 GAME_STREAMING(3)。
- 如果用户的音频采集设备可以高度还原音频细节,建议你不要开启超高音质,否则 SDK 会过度还原音频细节,达不到预期效果。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。