人声音效
- Android
更新时间不可用
enableVoiceAITuner
启用或关闭语音 AI 调音器。
public abstract int enableVoiceAITuner(boolean enabled, Constants.VOICE_AI_TUNER_TYPE type);支持增强音质和调整音色风格。
适用场景
社交娱乐场景,包括在线 KTV、在线播客和展厅直播等对音质要求较高的场景。
调用时机
该方法可在加入频道前或后调用。
参数
| 参数名 | 描述 |
|---|---|
enabled | |
type | 语音 AI 调音器的音效类型,详见 VOICE_AI_TUNER_TYPE。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
getAudioEffectManager
获取用于管理音效文件的 IAudioEffectManager 实例。
public abstract IAudioEffectManager getAudioEffectManager();返回值
方法调用成功,返回 IAudioEffectManager 实例。
所属接口类
setAdvancedAudioOptions
设置高级音频选项。
public abstract int setAdvancedAudioOptions(AdvancedAudioOptions options);如果你有高级音频处理需求,例如采集和发送立体声音频,可以调用此方法。
注: 请在调用 joinChannel、enableAudio 和 enableLocalAudio 之前调用此方法。
参数
| 参数名 | 描述 |
|---|---|
options | 高级音频选项。详见 AdvancedAudioOptions。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setAINSMode
设置是否启用 AI 降噪功能并设置降噪模式。
public abstract int setAINSMode(boolean enabled, int mode);你可以调用此方法启用 AI 降噪功能。启用后,SDK 会在保证人声质量的前提下,自动检测并减少音频中的稳态和非稳态噪声。
-
稳态噪声是指在观察时间内平均统计特性恒定、幅度波动极小的噪声信号,常见来源包括:
- 电视;
- 空调;
- 机械设备等。
-
非稳态噪声是指在观察时间内幅度波动剧烈的噪声信号,常见来源包括:
- 雷声;
- 爆炸声;
- 破裂声等。
注:
- 此方法依赖于 AI 降噪动态库 libagora_ai_noise_suppression_extension.so。如果该动态库被删除,则无法启用该功能。
- 声网不建议在运行 Android 6.0 及以下版本的设备上启用此功能。
适用场景
在连麦、在线教育和视频会议等场景中,该功能可检测并减少背景噪声,从而提升体验。
调用时机
你可以在加入频道前或加入频道后调用此方法。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setAudioEffectParameters
设置 SDK 预设音效的参数。
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)。
注:
-
你可以在加入频道前或加入频道后调用该方法。
-
请勿将
setAudioProfile中的profile设置为SPEECH_STANDARD(1),否则该方法不生效。 -
该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
-
调用 setAudioEffectParameters 后,不建议再调用以下方法,否则会覆盖该方法设置的效果:
-
该方法依赖语音美声动态库 libagora_audio_beauty_extension.so。如果该动态库被删除,将无法正常启用该功能。
参数
| 参数名 | 描述 |
|---|---|
preset | |
param1 | |
param2 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setAudioEffectPreset
设置 SDK 预设的音效效果。
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)。
注:
-
不要将
setAudioProfile中的profile参数设置为SPEECH_STANDARD(1),否则该方法不生效。 -
如果调用 setAudioEffectPreset 设置的枚举值不是
ROOM_ACOUSTICS_3D_VOICE或PITCH_CORRECTION,则不要调用 setAudioEffectParameters,否则 setAudioEffectPreset 的设置会被覆盖。 -
调用 setAudioEffectPreset 后,声网不建议再调用以下方法,否则 setAudioEffectPreset 设置的效果会被覆盖:
-
该方法依赖语音美声动态库 libagora_audio_beauty_extension.so。如果该动态库被删除,则无法正常启用该功能。
调用时机
该方法可在加入频道前或加入频道后调用。
参数
| 参数名 | 描述 |
|---|---|
preset | 预设的音效效果:
|
返回值
- 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 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setLocalVoiceFormant
设置共振峰比例以改变人声音色。
public abstract int setLocalVoiceFormant(double formantRatio);共振峰比例会影响声音的音色。值越小,声音越低沉;值越大,声音越尖锐。如果你希望同时改变音色和音调,建议同时使用 setLocalVoiceFormant 和 setLocalVoicePitch 方法。
适用场景
你可以调用该方法设置本地音频的共振峰比例,以改变人声音色。
调用时机
该方法可以在加入频道前或加入频道后调用。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setLocalVoicePitch
设置本地语音的音调。
public abstract int setLocalVoicePitch(double pitch);调用时机
你可以在加入频道前或加入频道后调用该方法。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setLocalVoiceReverb
设置本地语音的混响效果。
public abstract int setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE reverbKey, int value);你可以使用更易用的方法 setAudioEffectPreset 实现如流行、R&B 和 KTV 等预设混响效果。
注: 你可以在加入频道前或加入频道后调用该方法。
参数
| 参数名 | 描述 |
|---|---|
reverbKey | 混响键。详见 AUDIO_REVERB_TYPE。 |
value |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setVoiceBeautifierParameters
设置预设美声特效的参数。
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)。
注:
-
可在加入频道前或加入频道后调用该方法。
-
请勿将
setAudioProfile中的profile参数设置为SPEECH_STANDARD(1),否则该方法不生效。 -
该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
-
调用 setVoiceBeautifierParameters 后,不建议再调用以下方法,否则会覆盖该方法设置的效果:
-
该方法依赖于美声动态库 libagora_audio_beauty_extension.so。若该动态库被删除,则无法正常启用该功能。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setVoiceBeautifierPreset
设置预设的美声效果。
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)。
注:
-
不要将
setAudioProfile中的profile设置为SPEECH_STANDARD(1),否则该方法不生效。 -
该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
-
调用 setVoiceBeautifierPreset 后,不建议再调用以下方法,否则会覆盖通过该方法设置的效果:
-
该方法依赖于美声动态库 libagora_audio_beauty_extension.so。如果该动态库被删除,则无法正常启用该功能。
调用时机
该方法可在加入频道前或加入频道后调用。
参数
| 参数名 | 描述 |
|---|---|
preset | 预设的美声效果选项:
|
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setVoiceConversionPreset
设置 SDK 预设的变声效果。
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)。
注:
-
不要将
setAudioProfile中的profile参数设置为SPEECH_STANDARD(1),否则该方法不生效。 -
该方法对人声处理效果最佳,声网不建议使用该方法处理包含音乐的音频数据。
-
调用 setVoiceConversionPreset 后,声网不建议你再调用以下方法,否则会覆盖 setVoiceConversionPreset 设置的效果:
-
该方法依赖于美声特效动态库 libagora_audio_beauty_extension.so。如果该动态库被删除,该功能将无法正常启用。
调用时机
该方法可在加入频道前或加入频道后调用。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。