人声音效

  • HarmonyOS

更新时间不可用

setAudioEffectPreset

设置 SDK 预设的人声音效。

TypeScript
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 设置的效果会被覆盖:

  • 该方法依赖于美声动态库 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

设置本地语音音效均衡。

TypeScript
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

设置本地语音音调。

TypeScript
public abstract setLocalVoicePitch(pitch:number):number;

调用时机

加入频道前后均可调用。

调用限制

无。

参数

参数名描述
pitch

语音频率。可以 [0.5,2.0] 范围内设置。取值越小,则音调越低。默认值为 1.0,表示不需要修改音调。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

setLocalVoiceReverb

设置本地音效混响。

TypeScript
public abstract setLocalVoiceReverb(reverbKey:Constants.AudioReverbType,value:number):number;

详情

SDK 提供一个使用更为简便的方法 setAudioEffectPreset,直接实现流行、R&B、KTV 等预置的混响效果。

注: 该方法在加入频道前后都能调用。

参数

参数名描述
value

各混响音效 Key 所对应的值。

表格内容超出当前宽度,可横向滚动查看更多列。

混响音效 Key。该方法共有 5 个混响音效 Key,详见 AudioReverbType。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

setVoiceBeautifierPreset

设置预设的美声效果。

TypeScript
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 设置的效果会被覆盖:

  • 该方法依赖于美声动态库 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: 方法调用失败。详见错误码了解详情和解决建议。

所属接口类