人声音效
- macOS
更新时间不可用
enableVoiceAITuner:type:
启用或关闭语音 AI 调音器。
- (int)enableVoiceAITuner:(BOOL)enabled type:(AgoraVoiceAITunerType)type NS_SWIFT_NAME(enableVoiceAITuner(_:type:));支持增强音质和调整音色风格。
适用场景
社交娱乐场景,包括在线 KTV、在线播客和展厅直播等对音质要求较高的场景。
调用时机
你可以在加入频道前或后调用该方法。
参数
| 参数名 | 描述 |
|---|---|
enabled | |
type | 语音 AI 调音器的音效类型,详见 AgoraVoiceAITunerType。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setAdvancedAudioOptions:
设置音频高级选项。
- (int)setAdvancedAudioOptions:(AgoraAdvancedAudioOptions * _Nonnull)options NS_SWIFT_NAME(setAdvancedAudioOptions(_:));如果你有高级音频处理需求,例如采集和发送立体声音频,可以调用此方法设置音频高级选项。
注: 请在调用 joinChannelByToken、enableAudio 和 enableLocalAudio 之前调用此方法。
参数
| 参数名 | 描述 |
|---|---|
options | 音频的高级选项,详见 AgoraAdvancedAudioOptions。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setAINSMode:mode:
设置是否启用 AI 降噪功能并设置降噪模式。
- (int)setAINSMode:(BOOL)enabled mode:(AUDIO_AINS_MODE)mode NS_SWIFT_NAME(setAINSMode(_:mode:));你可以调用此方法启用 AI 降噪功能。启用后,SDK 会在保证人声质量的前提下,自动检测并减少音频中的稳定噪声和非稳定噪声。 稳定噪声是指在观察时间内平均统计特性恒定、音量波动极小的噪声信号。常见的稳定噪声来源包括:
- 电视;
- 空调;
- 机械设备等。
非稳定噪声是指在观察时间内音量波动剧烈的噪声信号。常见的非稳定噪声来源包括:
- 雷声;
- 爆炸声;
- 破裂声等。
注: 该方法依赖 AI 降噪动态库 AgoraAiNoiseSuppressionExtension.xcframework。如果该动态库被删除,则无法启用该功能。
适用场景
在连麦、在线教育和视频会议等场景中,该功能可检测并减少背景噪声,从而提升体验。
调用时机
你可以在加入频道前或加入频道后调用此方法。
参数
| 参数名 | 描述 |
|---|---|
enabled | |
mode | AI 降噪模式,详见 AUDIO_AINS_MODE。 |
返回值
0:方法调用成功。 < 0:方法调用失败。
所属接口类
setAudioEffectParameters:param1:param2:
设置 SDK 预设音效的参数。
- (int)setAudioEffectParameters:(AgoraAudioEffectPreset)preset param1:(int)param1 param2:(int)param2 NS_SWIFT_NAME(setAudioEffectParameters(_:param1:param2:));调用该方法可为发送音频流的本地用户设置以下参数:
- 3D 人声效果:设置 3D 人声效果的循环周期。
- 音高修正效果:设置音高修正效果的基本调式和主音。
不同的歌曲有不同的调式和主音。声网建议将该方法与界面元素绑定,以便你交互式地调整音高修正效果。设置音效参数后,频道内所有用户都能听到效果。为了获得更好的人声效果,建议你在调用该方法前调用以下 API:
- 调用 setAudioScenario: 将音频场景设置为高音质音频场景,即
AgoraAudioScenarioGameStreaming(3)。 - 调用 setAudioProfile: 将
profile参数设置为AgoraAudioProfileMusicHighQuality(4)或AgoraAudioProfileMusicHighQualityStereo(5)。
注:
-
你可以在加入频道前或加入频道后调用该方法。
-
不要将 setAudioProfile: 中的
profile参数设置为AgoraAudioProfileSpeechStandard(1),否则该方法不生效。 -
该方法在人声处理方面效果最佳,声网不建议使用该方法处理包含音乐的音频数据。
-
调用 setAudioEffectParameters:param1:param2: 后,不建议再调用以下方法,否则会覆盖该方法设置的效果:
-
该方法依赖于语音美声动态库
AgoraAudioBeautyExtension.xcframework(iOS)或 AgoraAudioBeautyExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
参数
| 参数名 | 描述 |
|---|---|
preset | SDK 预设音效的选项,详见 AgoraAudioEffectPreset:
|
param1 | |
param2 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setAudioEffectPreset:
设置 SDK 预设的音效效果。
- (int)setAudioEffectPreset:(AgoraAudioEffectPreset)preset NS_SWIFT_NAME(setAudioEffectPreset(_:));你可以调用该方法为发送音频流的本地用户设置声网预设的音效效果。该音效不会改变原始声音的性别特征。设置后,频道内所有用户都能听到该音效效果。 建议你在调用该方法前,先调用以下 API 以获得更好的人声效果:
- 调用 setAudioScenario: 将音频场景设置为高音质音频场景,即
AgoraAudioScenarioGameStreaming(3)。 - 调用 setAudioProfile: 将
profile参数设置为AgoraAudioProfileMusicHighQuality(4)或AgoraAudioProfileMusicHighQualityStereo(5)。
注:
-
不要将 setAudioProfile: 中的
profile参数设置为AgoraAudioProfileSpeechStandard(1),否则该方法不生效。 -
如果调用 setAudioEffectPreset: 并设置的枚举值不是
AgoraAudioEffectPresetRoomAcous3DVoice或AgoraAudioEffectPresetPitchCorrection,请不要调用 setAudioEffectParameters:param1:param2:,否则 setAudioEffectPreset: 的设置会被覆盖。 -
调用 setAudioEffectPreset: 后,声网不建议你再调用以下方法,否则 setAudioEffectPreset: 设置的效果会被覆盖:
-
该方法依赖于美声特效动态库
AgoraAudioBeautyExtension.xcframework(iOS)或 AgoraAudioBeautyExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
调用时机
该方法可以在加入频道前或加入频道后调用。
参数
| 参数名 | 描述 |
|---|---|
preset | 声网预设的音效选项,详见 AgoraAudioEffectPreset。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setLocalVoiceEqualizationOfBandFrequency:withGain:
设置本地语音的均衡效果。
- (int)setLocalVoiceEqualizationOfBandFrequency:(AgoraAudioEqualizationBandFrequency)bandFrequency withGain:(NSInteger)gain NS_SWIFT_NAME(setLocalVoiceEqualizationOf(_:withGain:));调用时机
该方法可以在加入频道前或加入频道后调用。
参数
| 参数名 | 描述 |
|---|---|
bandFrequency | 频段频率,详见 AgoraAudioEqualizationBandFrequency。取值范围为 0 到 9,分别对应语音特效的 10 个中心频率段:31、62、125、250、500、1k、2k、4k、8k 和 16k Hz。 |
gain |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setLocalVoiceFormant:
设置共振峰比例以改变人声音色。
- (int)setLocalVoiceFormant:(double)formantRatio;共振峰比例会影响声音的音色。值越小,声音越低沉;值越大,声音越尖锐。设置共振峰比例后,频道内所有用户都能听到改变后的声音。如果你希望同时改变音色和音调,声网建议同时使用 setLocalVoiceFormant: 和 setLocalVoicePitch: 方法。
适用场景
你可以调用该方法设置本地音频的共振峰比例,以改变人声音色。
调用时机
该方法可以在加入频道前或加入频道后调用。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setLocalVoicePitch:
改变本地语音的音调。
- (int)setLocalVoicePitch:(double)pitch NS_SWIFT_NAME(setLocalVoicePitch(_:));调用时机
该方法可以在加入频道前或加入频道后调用。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setLocalVoiceReverbOfType:withValue:
设置本地语音的混响效果。
- (int)setLocalVoiceReverbOfType:(AgoraAudioReverbType)reverbType withValue:(NSInteger)value NS_SWIFT_NAME(setLocalVoiceReverbOf(_:withValue:));你可以在加入频道前或加入频道后调用该方法。SDK 提供了更易用的方法 setAudioEffectPreset:,可直接实现如流行、R&B 和 KTV 等预设混响效果。
参数
| 参数名 | 描述 |
|---|---|
reverbType | 混响键。详见 AgoraAudioReverbType。 |
value |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setVoiceBeautifierParameters:param1:param2:
设置预设美声特效的参数。
- (int)setVoiceBeautifierParameters:(AgoraVoiceBeautifierPreset)preset param1:(int)param1 param2:(int)param2 NS_SWIFT_NAME(setVoiceBeautifierParameters(_:param1:param2:));调用该方法为美声特效设置性别特征和混响效果。该方法为发送音频流的本地用户设置参数。设置完成后,频道内所有用户都能听到该效果。为了获得更好的人声效果,建议在调用本方法前调用以下 API:
- 调用 setAudioScenario: 将音频场景设置为高音质音频场景,即
AgoraAudioScenarioGameStreaming(3)。 - 调用 setAudioProfile: 将
profile参数设置为AgoraAudioProfileMusicHighQuality(4)或AgoraAudioProfileMusicHighQualityStereo(5)。
注:
-
你可以在加入频道前或加入频道后调用该方法。
-
请勿将 setAudioProfile: 中的
profile参数设置为AgoraAudioProfileSpeechStandard(1),否则该方法不生效。 -
该方法对人声处理效果最佳,不建议用于处理包含音乐的音频数据。
-
调用 setVoiceBeautifierParameters:param1:param2: 后,不建议再调用以下方法,否则会覆盖该方法设置的效果:
-
该方法依赖于美声特效动态库
AgoraAudioBeautyExtension.xcframework(iOS)或 AgoraAudioBeautyExtension.framework(macOS)。如果该动态库被删除,功能将无法正常启用。
参数
| 参数名 | 描述 |
|---|---|
preset | |
param1 | |
param2 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setVoiceBeautifierPreset:
设置预设的美声特效。
- (int)setVoiceBeautifierPreset:(AgoraVoiceBeautifierPreset)preset NS_SWIFT_NAME(setVoiceBeautifierPreset(_:));调用该方法为发送音频流的本地用户设置预设的美声特效。设置后,频道内所有用户都能听到该特效。你可以根据不同场景设置不同的美声特效。
注:
-
不要将 setAudioProfile: 中的
profile参数设置为AgoraAudioProfileSpeechStandard(1),否则该方法不生效。 -
此方法对人声处理效果最佳,不建议用于处理包含音乐的音频数据。
-
调用 setVoiceBeautifierPreset: 后,不建议再调用以下方法,否则会覆盖该方法设置的效果:
-
此方法依赖于美声特效动态库
AgoraAudioBeautyExtension.xcframework(iOS)或 AgoraAudioBeautyExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
调用时机
该方法可以在加入频道前或加入频道后调用。
参数
| 参数名 | 描述 |
|---|---|
preset | 预设的美声特效选项,详见 AgoraVoiceBeautifierPreset。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setVoiceConversionPreset:
设置预设的变声效果。
- (int)setVoiceConversionPreset:(AgoraVoiceConversionPreset)preset NS_SWIFT_NAME(setVoiceConversionPreset(_:));调用该方法为在频道中发布音频流的本地用户设置预设的变声效果。设置后,频道内所有用户都能听到该变声效果。你可以根据不同的场景为用户设置不同的变声效果。
注:
-
不要将 setAudioProfile: 中的
profile参数设置为AgoraAudioProfileSpeechStandard(1),否则该方法不生效。 -
该方法对人声处理效果最佳,声网不建议使用该方法处理包含音乐的音频数据。
-
调用 setVoiceConversionPreset: 后,声网不建议你再调用以下方法,否则会覆盖 setVoiceConversionPreset: 设置的效果:
-
该方法依赖于美声特效动态库
AgoraAudioBeautyExtension.xcframework(iOS)或 AgoraAudioBeautyExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
调用时机
该方法可以在加入频道前或加入频道后调用。为获得更好的音效,建议在调用该方法前先调用以下方法:
- 调用 setAudioScenario: 将音频场景设置为高音质场景,即
AgoraAudioScenarioGameStreaming(3)。 - 调用 setAudioProfile: 并将
profile参数设置为AgoraAudioProfileMusicHighQuality(4)或AgoraAudioProfileMusicHighQualityStereo(5)。
参数
| 参数名 | 描述 |
|---|---|
preset | 预设的变声效果选项,详见 AgoraVoiceConversionPreset。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。