人声音效
- C++
更新时间不可用
enableVoiceAITuner
启用或关闭语音 AI 调音器。
virtual int enableVoiceAITuner(bool enabled, VOICE_AI_TUNER_TYPE type) = 0;适用场景
社交娱乐场景,包括在线 KTV、在线播客和展厅直播等对音质要求较高的场景。
调用时机
该方法可在加入频道前或后调用。
参数
| 参数名 | 描述 |
|---|---|
enabled | |
type | 语音 AI 调音器的音效类型,详见 VOICE_AI_TUNER_TYPE。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setAdvancedAudioOptions
设置高级音频选项。
virtual int setAdvancedAudioOptions(AdvancedAudioOptions& options, int sourceType = 0) = 0;如果你有高级音频处理需求,例如采集和发送立体声音频,可以调用该方法设置高级音频选项。
注: 请在调用 joinChannel、enableAudio 和 enableLocalAudio 之前调用该方法。
参数
| 参数名 | 描述 |
|---|---|
options | 高级音频选项。详见 AdvancedAudioOptions。 |
sourceType |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setAINSMode
设置是否启用 AI 降噪功能并设置降噪模式。
virtual int setAINSMode(bool enabled, AUDIO_AINS_MODE mode) = 0;你可以调用该方法启用 AI 降噪功能。启用后,SDK 会在保证人声质量的前提下,自动检测并减少音频中的稳态和非稳态噪声。 稳态噪声是指在观察时间内平均统计特性恒定、幅度波动极小的噪声信号。常见来源包括:
- 电视;
- 空调;
- 机械设备等。
非稳态噪声是指在观察时间内幅度波动剧烈的噪声信号。常见来源包括:
- 雷声;
- 爆炸声;
- 破裂声等。
注:
- 该方法依赖 AI 降噪动态库 libagora_ai_noise_suppression_extension.dll。如果该动态库被删除,则无法启用该功能。
- 声网不建议在运行 Android 6.0 及以下版本的设备上启用该功能。
适用场景
在连麦、在线教育和视频会议等场景中,该功能可检测并减少背景噪声,从而提升体验。
调用时机
你可以在加入频道前或后调用该方法。
参数
| 参数名 | 描述 |
|---|---|
enabled | |
mode | AI 降噪模式。详见 AUDIO_AINS_MODE。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setAudioEffectParameters
设置 SDK 预设音效的参数。
virtual int setAudioEffectParameters(AUDIO_EFFECT_PRESET preset, int param1, int param2) = 0;调用该方法可以为发送音频流的本地用户设置以下参数:
ROOM_ACOUSTICS_3D_VOICE:设置声音围绕用户移动的循环周期。PITCH_CORRECTION:设置音高修正的基本模式和主音。
不同歌曲的模式和主音可能不同,声网建议将该方法与界面元素绑定,方便用户交互式调整音高修正效果。为了获得更好的人声效果,建议在调用该方法前先调用以下方法:
- 调用 setAudioScenario,将音频场景设置为高音质音频场景,即
AUDIO_SCENARIO_GAME_STREAMING(3)。 - 调用
setAudioProfile,将profile设置为AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)或AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)。
注:
-
请勿将
setAudioProfile中的profile设置为AUDIO_PROFILE_SPEECH_STANDARD(1)或AUDIO_PROFILE_IOT(6),否则该方法不生效。 -
该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
-
调用 setAudioEffectParameters 后,不建议再调用以下方法,否则该方法设置的效果会被覆盖:
-
该方法依赖语音美声动态库 libagora_audio_beauty_extension.dll,若该动态库被删除,该功能将无法启用。
调用时机
你可以在加入频道前或加入频道后调用该方法。
参数
| 参数名 | 描述 |
|---|---|
preset | |
param1 | |
param2 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setAudioEffectPreset
设置 SDK 预设的音效效果。
virtual int setAudioEffectPreset(AUDIO_EFFECT_PRESET preset) = 0;调用该方法为发送音频流的本地用户设置 SDK 预设的音效效果。该音效不会改变原始声音的性别特征。设置后,频道内所有用户都能听到该效果。 为了获得更好的音效效果,建议在调用该方法前,先调用以下方法:
- 调用 setAudioScenario,将音频场景设置为高音质音频场景,即
AUDIO_SCENARIO_GAME_STREAMING(3)。 - 调用
setAudioProfile,并将profile参数设置为AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)或AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)。
注:
-
不要将
setAudioProfile中的profile参数设置为AUDIO_PROFILE_SPEECH_STANDARD(1)或AUDIO_PROFILE_IOT(6),否则该方法不生效。 -
如果调用 setAudioEffectPreset 并设置的枚举值不是
ROOM_ACOUSTICS_3D_VOICE或PITCH_CORRECTION,请不要调用 setAudioEffectParameters,否则 setAudioEffectPreset 的设置会被覆盖。 -
调用 setAudioEffectPreset 后,声网不建议再调用以下方法,否则 setAudioEffectPreset 设置的效果会被覆盖:
-
此方法依赖于美声动态库 libagora_audio_beauty_extension.dll。如果该动态库被删除,则无法正常启用该功能。
调用时机
该方法可以在加入频道前或加入频道后调用。
参数
| 参数名 | 描述 |
|---|---|
preset | SDK 预设音效选项。详见 AUDIO_EFFECT_PRESET。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setLocalVoiceEqualization
设置本地语音的均衡效果。
virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain) = 0;调用时机
该方法可以在加入频道前或加入频道后调用。
参数
| 参数名 | 描述 |
|---|---|
bandFrequency | 频段索引,取值范围为 0 到 9,分别对应语音效果的 10 个中心频率段:31、62、125、250、500、1k、2k、4k、8k 和 16k Hz。详见 AUDIO_EQUALIZATION_BAND_FREQUENCY。 |
bandGain |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setLocalVoiceFormant
设置共振峰比例以改变人声音色。
virtual int setLocalVoiceFormant(double formantRatio) = 0;共振峰比例会影响声音的音色。值越小,声音越低沉;值越大,声音越尖锐。如果你希望同时改变音色和音调,建议同时使用 setLocalVoiceFormant 和 setLocalVoicePitch。
适用场景
你可以调用该方法设置本地音频的共振峰比例,以改变人声音色。
调用时机
该方法可以在加入频道前或加入频道后调用。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setLocalVoicePitch
设置本地语音的音调。
virtual int setLocalVoicePitch(double pitch) = 0;调用时机
你可以在加入频道前或加入频道后调用该方法。
参数
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
所属接口类
setLocalVoiceReverb
设置本地语音的混响效果。
virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value) = 0;你也可以使用更易用的方法 setAudioEffectPreset,直接实现如流行、R&B 和 KTV 等预设混响效果。
调用时机
你可以在加入频道前或加入频道后调用该方法。
参数
| 参数名 | 描述 |
|---|---|
reverbKey | 混响键,详见 AUDIO_REVERB_TYPE。 |
value |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setVoiceBeautifierParameters
设置预设的美声特效参数。
virtual int setVoiceBeautifierParameters(VOICE_BEAUTIFIER_PRESET preset, int param1, int param2) = 0;调用该方法为本地发送音频流的用户设置歌唱美声特效的性别特征和混响效果。设置后,频道内所有用户都能听到该效果。 为了获得更好的人声效果,建议在调用该方法前先调用以下 API:
- 调用 setAudioScenario,将音频场景设置为高音质音频场景,即
AUDIO_SCENARIO_GAME_STREAMING(3)。 - 调用
setAudioProfile,将profile参数设置为AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)或AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)。
注:
-
请勿将
setAudioProfile中的profile参数设置为AUDIO_PROFILE_SPEECH_STANDARD(1)或AUDIO_PROFILE_IOT(6),否则该方法不生效。 -
该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
-
调用 setVoiceBeautifierParameters 后,不建议再调用以下方法,否则会覆盖该方法设置的效果:
-
该方法依赖于美声特效动态库 libagora_audio_beauty_extension.dll。如果该动态库被删除,该功能将无法正常使用。
调用时机
你可以在加入频道前或加入频道后调用该方法。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setVoiceBeautifierPreset
设置预设的美声特效。
virtual int setVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET preset) = 0;调用该方法为发送音频流的本地用户设置预设的美声特效。你可以根据不同场景选择不同的美声特效。设置后,频道内所有用户都能听到该特效。
注:
-
不要将
setAudioProfile中的profile参数设置为AUDIO_PROFILE_SPEECH_STANDARD(1)或AUDIO_PROFILE_IOT(6),否则该方法不生效。 -
该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
-
调用 setVoiceBeautifierPreset 后,不建议再调用以下方法,否则会覆盖通过 setVoiceBeautifierPreset 设置的效果:
-
该方法依赖于美声特效动态库 libagora_audio_beauty_extension.dll。如果该动态库被删除,则无法正常启用该功能。
调用时机
该方法可以在加入频道前或加入频道后调用。
参数
| 参数名 | 描述 |
|---|---|
preset | 预设的美声特效选项,详见 VOICE_BEAUTIFIER_PRESET。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setVoiceConversionPreset
设置预设的声动语聊特效。
virtual int setVoiceConversionPreset(VOICE_CONVERSION_PRESET preset) = 0;调用该方法为发布音频流的本地用户设置预设的变声效果。设置后,频道内所有用户都能听到该变声效果。你可以根据不同场景为用户设置不同的变声效果。 为了获得更好的语音效果,建议在调用该方法前调用以下方法:
- 调用 setAudioScenario,将音频场景设置为高音质音频场景,即
AUDIO_SCENARIO_GAME_STREAMING(3)。 - 调用
setAudioProfile,将profile参数设置为AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)或AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)。
注:
-
请勿将
setAudioProfile中的profile参数设置为AUDIO_PROFILE_SPEECH_STANDARD(1)或AUDIO_PROFILE_IOT(6),否则该方法不生效。 -
该方法对人声处理效果最佳,不建议用于处理包含音乐的音频数据。
-
调用 setVoiceConversionPreset 后,不建议再调用以下方法,否则会覆盖该方法设置的效果:
-
该方法依赖声动语聊动态库 libagora_audio_beauty_extension.dll。若该动态库被删除,则该功能无法正常启用。
调用时机
该方法可在加入频道前或加入频道后调用。
参数
| 参数名 | 描述 |
|---|---|
preset | 预设的声动语聊特效选项,详见 VOICE_CONVERSION_PRESET。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。