人声音效

  • Android

更新时间不可用

enableVoiceAITuner

启用或关闭语音 AI 调音器。

Java
public abstract int enableVoiceAITuner(boolean enabled, Constants.VOICE_AI_TUNER_TYPE type);

支持增强音质和调整音色风格。

适用场景

社交娱乐场景,包括在线 KTV、在线播客和展厅直播等对音质要求较高的场景。

调用时机

该方法可在加入频道前或后调用。

参数

参数名描述
enabled

是否启用语音 AI 调音器:

  • true:启用语音 AI 调音器。
  • false:(默认)关闭语音 AI 调音器。
type

语音 AI 调音器的音效类型,详见 VOICE_AI_TUNER_TYPE。

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

返回值

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

所属接口类

getAudioEffectManager

获取用于管理音效文件的 IAudioEffectManager 实例。

Java
public abstract IAudioEffectManager getAudioEffectManager();

返回值

方法调用成功,返回 IAudioEffectManager 实例。

所属接口类

setAdvancedAudioOptions

设置高级音频选项。

Java
public abstract int setAdvancedAudioOptions(AdvancedAudioOptions options);

如果你有高级音频处理需求,例如采集和发送立体声音频,可以调用此方法。

注: 请在调用 joinChannel、enableAudio 和 enableLocalAudio 之前调用此方法。

参数

参数名描述
options

高级音频选项。详见 AdvancedAudioOptions。

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

返回值

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

所属接口类

setAINSMode

设置是否启用 AI 降噪功能并设置降噪模式。

Java
public abstract int setAINSMode(boolean enabled, int mode);

你可以调用此方法启用 AI 降噪功能。启用后,SDK 会在保证人声质量的前提下,自动检测并减少音频中的稳态和非稳态噪声。

  • 稳态噪声是指在观察时间内平均统计特性恒定、幅度波动极小的噪声信号,常见来源包括:

    • 电视;
    • 空调;
    • 机械设备等。
  • 非稳态噪声是指在观察时间内幅度波动剧烈的噪声信号,常见来源包括:

    • 雷声;
    • 爆炸声;
    • 破裂声等。

注:

  • 此方法依赖于 AI 降噪动态库 libagora_ai_noise_suppression_extension.so。如果该动态库被删除,则无法启用该功能。
  • 声网不建议在运行 Android 6.0 及以下版本的设备上启用此功能。

适用场景

在连麦、在线教育和视频会议等场景中,该功能可检测并减少背景噪声,从而提升体验。

调用时机

你可以在加入频道前或加入频道后调用此方法。

参数

参数名描述
enabled

是否启用 AI 降噪功能:

  • true:启用 AI 降噪。
  • false:(默认)关闭 AI 降噪。
mode

AI 降噪模式:

  • 0:(默认)平衡模式。该模式在降噪效果和延迟之间提供平衡表现。
  • 1:激进模式。适用于对降噪效果要求较高的场景,如户外活动直播。该模式降噪更强,但可能会影响音频的原始特性。
  • 2:低延迟激进模式。该模式的降噪延迟约为平衡模式和激进模式的一半,适用于对低延迟降噪有较高要求的场景,如实时在线合唱。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

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

所属接口类

setAudioEffectParameters

设置 SDK 预设音效的参数。

Java
public abstract int setAudioEffectParameters(int preset, int param1, int param2);

自从

自 v3.2.0 版本新增。

调用该方法可以为发送音频流的本地用户设置以下参数:

  • 3D 人声特效:设置 3D 人声的循环周期。
  • 音高修正特效:设置音高修正的基本模式和主音。

声网建议将该方法与界面元素绑定,方便用户交互式地调整音高修正效果。为了获得更好的人声效果,建议在调用该方法前先调用以下 API:

  • 调用 setAudioScenario 将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • 调用 setAudioProfile,将 profile 设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5)。

注:

参数

参数名描述
preset

SDK 预设音效的选项:

  • ROOM_ACOUSTICS_3D_VOICE:3D 人声特效。

    • 设置该枚举值前,需要将 setAudioProfile 中的 profile 设置为 MUSIC_STANDARD_STEREO(3)或 MUSIC_HIGH_QUALITY_STEREO(5),否则设置不生效。
    • 启用该特效后,用户需使用立体声播放设备才能听到预期效果。
  • PITCH_CORRECTION:音高修正特效。

param1
  • 当 preset 为 ROOM_ACOUSTICS_3D_VOICE 时,表示 3D 人声特效的循环周期,单位为秒,取值范围为 [1,60],默认值为 10,表示声音每 10 秒绕你一圈。

  • 当 preset 为 PITCH_CORRECTION 时,表示音高修正特效的基本模式:

    • 1:(默认)自然大调。
    • 2:自然小调。
    • 3:日本五声音阶。
param2
  • 当 preset 为 ROOM_ACOUSTICS_3D_VOICE 时,需将 param2 设置为 0。

  • 当 preset 为 PITCH_CORRECTION 时,表示音高修正特效的主音:

    • 1:A
    • 2:A#
    • 3:B
    • 4:(默认)C
    • 5:C#
    • 6:D
    • 7:D#
    • 8:E
    • 9:F
    • 10:F#
    • 11:G
    • 12:G#
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

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

所属接口类

setAudioEffectPreset

设置 SDK 预设的音效效果。

Java
public abstract int setAudioEffectPreset(int preset);

自从

自 v3.2.0 版本新增。

该方法不会改变原始声音的性别特征。设置后,频道内所有用户都能听到该效果。 为获得更好的人声效果,建议在调用该方法前先调用以下方法:

  • 调用 setAudioScenario 将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • 调用 setAudioProfile,将 profile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5)。

注:

调用时机

该方法可在加入频道前或加入频道后调用。

参数

参数名描述
preset

预设的音效效果:

  • AUDIO_EFFECT_OFF(0):关闭音效,使用原始声音。
  • ROOM_ACOUSTICS_KTV(1):KTV 场所典型的混响风格。
  • ROOM_ACOUSTICS_VOCAL_CONCERT(2):音乐会场所典型的混响风格。
  • ROOM_ACOUSTICS_STUDIO(3):录音棚典型的混响风格。
  • ROOM_ACOUSTICS_PHONOGRAPH(4):老式留声机典型的混响风格。
  • ROOM_ACOUSTICS_VIRTUAL_STEREO(5):虚拟立体声效果,将单声道音频渲染为立体声。使用前需将 setAudioProfile 的 profile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设无效。
  • ROOM_ACOUSTICS_SPACIAL(6):更具空间感的音效。
  • ROOM_ACOUSTICS_ETHEREAL(7):更空灵的音效。
  • ROOM_ACOUSTICS_VIRTUAL_SURROUND_SOUND(8):虚拟环绕声效果,SDK 在立体声通道基础上生成模拟环绕声场。启用后,用户需使用立体声播放设备才能听到预期音效。
  • ROOM_ACOUSTICS_CHORUS(9):合唱音效,适用于合唱场景,可增强人声的层次感和空间感。
  • ROOM_ACOUSTICS_3D_VOICE(10):3D 声音效果,使声音在用户周围移动,默认循环周期为 10 秒。使用前需将 setAudioProfile 的 profile 参数设置为 MUSIC_STANDARD_STEREO(3)或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设无效。启用后,用户需使用立体声播放设备才能听到预期音效。
  • VOICE_CHANGER_EFFECT_UNCLE(11):大叔音效,建议用于处理男性音色,否则可能无法听到预期效果。
  • VOICE_CHANGER_EFFECT_OLDMAN(12):老人音效,建议用于处理男性音色,否则可能无法听到预期效果。
  • VOICE_CHANGER_EFFECT_BOY(13):男孩音效,建议用于处理男性音色,否则可能无法听到预期效果。
  • VOICE_CHANGER_EFFECT_SISTER(14):年轻女性音效,建议用于处理女性音色,否则可能无法听到预期效果。
  • VOICE_CHANGER_EFFECT_GIRL(15):女孩音效,建议用于处理女性音色,否则可能无法听到预期效果。
  • VOICE_CHANGER_EFFECT_PIGKING(16):猪八戒音效,声音如熊吼。
  • VOICE_CHANGER_EFFECT_HULK(17):绿巨人音效。
  • STYLE_TRANSFORMATION_RNB(18):R&B 音乐典型的混响风格。使用前需将 setAudioProfile 的 profile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设无效。
  • STYLE_TRANSFORMATION_POPULAR(19):流行音乐典型的混响风格。使用前需将 setAudioProfile 的 profile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设无效。
  • PITCH_CORRECTION(20):音高修正效果,根据自然 C 大调音阶修正用户音高。设置该效果后,可调用 setAudioEffectParameters 调整调音的基本模式和主音音高。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

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

所属接口类

setLocalVoiceEqualization

设置本地语音的均衡效果。

Java
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

每个频段的增益值,单位为 dB。取值范围为 -15 到 15,默认值为 0。

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

返回值

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

所属接口类

setLocalVoiceFormant

设置共振峰比例以改变人声音色。

Java
public abstract int setLocalVoiceFormant(double formantRatio);

共振峰比例会影响声音的音色。值越小,声音越低沉;值越大,声音越尖锐。如果你希望同时改变音色和音调,建议同时使用 setLocalVoiceFormant 和 setLocalVoicePitch 方法。

适用场景

你可以调用该方法设置本地音频的共振峰比例,以改变人声音色。

调用时机

该方法可以在加入频道前或加入频道后调用。

参数

参数名描述
formantRatio

共振峰比例。取值范围为 [-1.0, 1.0]。(默认值为 0.0)

注: 建议将该值设置在 [-0.4, 0.6] 范围内,否则声音可能会严重失真。

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

返回值

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

所属接口类

setLocalVoicePitch

设置本地语音的音调。

Java
public abstract int setLocalVoicePitch(double pitch);

调用时机

你可以在加入频道前或加入频道后调用该方法。

参数

参数名描述
pitch

本地语音的音调。取值范围为 [0.5, 2.0]。值越小,音调越低。(默认值为 1.0,表示不改变音调。)

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

返回值

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

所属接口类

setLocalVoiceReverb

设置本地语音的混响效果。

Java
public abstract int setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE reverbKey, int value);

你可以使用更易用的方法 setAudioEffectPreset 实现如流行、R&B 和 KTV 等预设混响效果。

注: 你可以在加入频道前或加入频道后调用该方法。

参数

参数名描述
reverbKey

混响键。详见 AUDIO_REVERB_TYPE。

value

混响键的取值。

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

返回值

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

所属接口类

setVoiceBeautifierParameters

设置预设美声特效的参数。

Java
public abstract int setVoiceBeautifierParameters(int preset, int param1, int param2);

自从

自 v3.3.0 版本新增。

为了获得更好的人声效果,建议在调用该方法前先调用以下 API:

  • 调用 setAudioScenario 将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • 调用 setAudioProfile,将 profile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5)。

注:

参数

参数名描述
preset

预设音效选项:

  • SINGING_BEAUTIFIER:美声特效。
param1

歌声的性别特征选项:

  • 1:男性音色。
  • 2:女性音色。
param2

歌声的混响效果选项:

  • 1:小房间混响效果。
  • 2:大房间混响效果。
  • 3:大厅混响效果。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

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

所属接口类

setVoiceBeautifierPreset

设置预设的美声效果。

Java
public abstract int setVoiceBeautifierPreset(int preset);

自从

自 v3.2.0 版本新增。

你可以根据不同场景设置不同的美声效果。 为获得更好的人声效果,建议在调用该方法前调用以下 API:

  • 调用 setAudioScenario 将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • 调用 setAudioProfile,将 profile 设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5)。

注:

调用时机

该方法可在加入频道前或加入频道后调用。

参数

参数名描述
preset

预设的美声效果选项:

  • VOICE_BEAUTIFIER_OFF:关闭美声效果,使用原始声音。

  • CHAT_BEAUTIFIER_MAGNETIC:更具磁性的声音(仅限男性)。

  • CHAT_BEAUTIFIER_FRESH:更清新的声音(仅限女性)。

  • CHAT_BEAUTIFIER_VITALITY:更有活力的声音(仅限女性)。

  • SINGING_BEAUTIFIER:歌唱美声效果。

    • 调用 setVoiceBeautifierPreset 设置该选项可美化男性声音,并添加类似在小房间中歌唱的混响效果。建议用于处理男性声音,否则可能出现声音失真。
    • 调用 setVoiceBeautifierParameters 设置该选项可美化男性或女性声音,并添加混响效果。
  • 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 设置为 AUDIO_SCENARIO_GAME_STREAMING(3)。
    • 如果你使用的音频采集设备已经可以高度还原音频细节,建议不要启用超高音质人声,否则 SDK 可能会过度还原音频细节,导致无法听到预期的声音效果。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

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

所属接口类

setVoiceConversionPreset

设置 SDK 预设的变声效果。

Java
public abstract int setVoiceConversionPreset(int preset);

自从

自 v3.3.1 版本新增。

你可以调用该方法为发布音频流的本地用户设置预设的变声效果。设置后,频道内所有用户都能听到该变声效果。你可以根据不同场景为用户设置不同的变声效果。 为了获得更好的音效效果,建议在调用该方法前调用以下 API:

  • 调用 setAudioScenario 将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • 调用 setAudioProfile,并将 profile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5)。

注:

调用时机

该方法可在加入频道前或加入频道后调用。

参数

参数名描述
preset

SDK 预设的变声效果选项:

  • VOICE_CONVERSION_OFF:关闭变声效果,使用原始声音。
  • VOICE_CHANGER_NEUTRAL:中性声音。为避免音频失真,建议用于处理女性音色。
  • VOICE_CHANGER_SWEET:甜美声音。为避免音频失真,建议用于处理女性音色。
  • VOICE_CHANGER_SOLID:沉稳声音。为避免音频失真,建议用于处理男性音色。
  • VOICE_CHANGER_BASS:低沉声音。为避免音频失真,建议用于处理男性音色。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

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

所属接口类