人声音效
setAdvancedAudioOptions
设置音频的高级选项。
virtual int setAdvancedAudioOptions(media::base::AdvancedAudioOptions &options) = 0;
如果你对音频处理有进阶需求,例如需要采集和发送立体声,可以调用该方法设置音频的高级选项。
注意: 你需要在 joinChannel [2/2]
、enableAudio
和 enableLocalAudio
前调用该方法。
参数
参数名 | 描述 |
---|---|
options | 音频的高级选项。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setAINSMode
设置是否开启 AI 降噪功能并设置降噪模式。
virtual int setAINSMode(bool enabled, AUDIO_AINS_MODE mode) = 0;
v4.2.0
你可以调用开方法来开启 AI 降噪功能。该功能可以在保证语音质量的前提下,智能化检测并降低周围环境中多种稳态与非稳态噪声,使人声更加清晰。 稳态噪声指在任何时间点上都具有相同频率的噪声,常见的稳态噪声有:
-
电视机噪声
-
空调噪声
-
工厂机器噪声等
非稳态噪声是指随时间而快速变化的噪声,常见的非稳态噪声有:
-
雷声
-
爆炸声
-
破裂声等
注: 目前暂不推荐在 Android 6.0 及以下版本的设备上开启该功能。
参数
参数名 | 描述 |
---|---|
enabled | 是否开启 AI 降噪功能:
|
mode | 降噪模式,详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setAudioEffectParameters
设置 SDK 预设人声音效的参数。
virtual int setAudioEffectParameters(AUDIO_EFFECT_PRESET preset, int param1, int param2) = 0;
调用该方法可以对本地发流用户进行如下设置:
-
3D 人声音效:设置 3D 人声音效的环绕周期。
-
电音音效:设置电音音效的基础调式和主音音高。为方便用户自行调节电音音效,建议你将基础调式和主音音高配置选项与应用的 UI 元素绑定。
设置后,频道内所有用户都能听到该效果。
注意:
-
该方法在加入频道前后都能调用。
-
为获取更好的人声效果,建议你在调用该方法前将
setAudioProfile [1/2]
的scenario
设为AUDIO_SCENARIO_GAME_STREAMING
(3)。 -
请勿将
setAudioProfile [1/2]
的profile
参数设置为AUDIO_PROFILE_SPEECH_STANDARD
(1) 或AUDIO_PROFILE_IOT
(6),否则该方法不生效。 -
该方法对人声的处理效果最佳,不建议调用该方法处理含音乐的音频数据。
-
调用
setAudioEffectParameters
后,不建议调用以下方法,否则setAudioEffectParameters
设置的效果会被覆盖:
参数
参数名 | 描述 |
---|---|
preset | SDK 预设的音效,支持以下设置:
|
param1 |
|
param2 |
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setAudioEffectPreset
设置 SDK 预设的人声音效。
virtual int setAudioEffectPreset(AUDIO_EFFECT_PRESET preset) = 0;
调用该方法可以为本地发流用户设置 SDK 预设的人声音效,且不会改变原声的性别特征。设置音效后,频道内所有用户都能听到该效果。
为获取更好的人声效果,建议你在调用该方法前将 setAudioProfile [1/2]
的 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING
(3)。
注意:
-
该方法在加入频道前后都能调用。
-
请勿将
setAudioProfile [1/2]
的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 | 预设的音效选项,详见 |
返回值
-
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。详见 |
bandGain | 每个 band 的增益,单位是 dB,每一个值的范围是 [-15,15],默认值为 0。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setLocalVoiceFormant
设置共振峰比率以改变语音的音色。
virtual int setLocalVoiceFormant(double formantRatio) = 0;
v4.2.0
共振峰比率是影响声音音色的一个参数,共振峰比率取值越小声音会更低沉,取值越大声音会更尖锐。
在语音直播、语聊房、K 歌房等场景中,你可以调用该方法设置本地语音的共振峰比率参数从而改变音色效果。设置共振峰比率后,频道内所有用户都能听到该效果。如果你想要在调整音色的同时改变音调,声网推荐你搭配 setLocalVoicePitch
一起使用。
注意: 该方法在加入频道前后均可调用。
参数
参数名 | 描述 |
---|---|
formantRatio | 共振峰比率,取值范围为 [-1.0,1.0]。默认值为 0.0,即不改变原声的音色。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setLocalVoicePitch
setLocalVoiceReverb
设置本地音效混响。
virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value) = 0;
SDK 提供一个使用更为简便的方法 setAudioEffectPreset
,直接实现流行、R&B、KTV 等预置的混响效果。
注: 该方法在加入频道前后都能调用。
参数
参数名 | 描述 |
---|---|
reverbKey | 混响音效 Key。该方法共有 5 个混响音效 Key,详见 |
value | 各混响音效 Key 所对应的值。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setVoiceBeautifierParameters
设置预设美声效果的参数。
virtual int setVoiceBeautifierParameters(VOICE_BEAUTIFIER_PRESET preset, int param1, int param2) = 0;
调用该方法可以设置歌唱美声效果的性别特征和混响效果。该方法对本地发流用户进行设置。设置后,频道内所有用户都能听到该效果。
为获取更好的人声效果,建议你在调用该方法前将 setAudioProfile [1/2]
的 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING
(3),并将 profile
设为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY
(4) 或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO
(5)。
注意:
-
该方法在加入频道前后都能调用。
-
请勿将
setAudioProfile [1/2]
的profile
参数设置为AUDIO_PROFILE_SPEECH_STANDARD
(1) 或AUDIO_PROFILE_IOT
(6),否则该方法不生效。 -
该方法对人声的处理效果最佳,不建议调用该方法处理含音乐的音频数据。
-
调用
setVoiceBeautifierParameters
,不建议调用以下方法,否则setVoiceBeautifierParameters
设置的效果会被覆盖:
参数
参数名 | 描述 |
---|---|
preset | 预设的音效:
|
param1 | 歌声的性别特征:
|
param2 | 歌声的混响效果:
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setVoiceBeautifierPreset
设置预设的美声效果。
virtual int setVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET preset) = 0;
调用该方法可以为本地发流用户设置预设的人声美化效果。设置美声效果后,频道内所有用户都能听到该效果。根据不同的场景,你可以为用户设置不同的美声效果。
为获取更好的人声效果,建议你在调用该方法前将 setAudioProfile [1/2]
的 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING
(3),并将 profile
设为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY
(4) 或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO
(5)。
注意:
-
该方法在加入频道前后都能调用。
-
请勿将
setAudioProfile [1/2]
的profile
参数设置为AUDIO_PROFILE_SPEECH_STANDARD
(1) 或AUDIO_PROFILE_IOT
(6),否则该方法不生效。 -
该方法对人声的处理效果最佳,不建议调用该方法处理含音乐的音频数据。
-
调用
setVoiceBeautifierPreset
,不建议调用以下方法,否则setVoiceBeautifierPreset
设置的效果会被覆盖: -
该方法依赖于美声动态库
libagora_audio_beauty_extension.dll
,如果删除该动态库会导致无法正常开启该功能。
参数
参数名 | 描述 |
---|---|
preset | 预设的美声效果选项,详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setVoiceConversionPreset
设置预设的变声效果。
virtual int setVoiceConversionPreset(VOICE_CONVERSION_PRESET preset) = 0;
调用该方法可以为本地发流用户设置 SDK 预设的变声效果。设置变声效果后,频道内所有用户都能听到该效果。根据不同的场景,你可以为用户设置不同的变声效果。各变声效果的适用场景可参考《设置人声效果》。
为获取更好的人声效果,建议你在调用该方法前将 setAudioProfile [1/2]
的 profile
设为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY
(4) 或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO
(5),并将 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING
(3)。
注意:
-
该方法在加入频道前后都能调用。
-
请勿将
setAudioProfile [1/2]
的profile
参数设置为AUDIO_PROFILE_SPEECH_STANDARD
(1) 或AUDIO_PROFILE_IOT
(6),否则该方法不生效。 -
该方法对人声的处理效果最佳,不建议调用该方法处理含音乐的音频数据。
-
调用
setVoiceConversionPreset
后,不建议调用以下方法,否则setVoiceConversionPreset
设置的效果会被覆盖: -
该方法依赖于美声动态库
libagora_audio_beauty_extension.dll
,如果删除该动态库会导致无法正常开启该功能。
参数
参数名 | 描述 |
---|---|
preset | 预设的变声效果选项: |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。