-
Notifications
You must be signed in to change notification settings - Fork 271
AUAudioCapture
pengbin edited this page Aug 10, 2017
·
27 revisions
与声音处理相关的模块有如下两个:
- KSYAUAudioCapture基于iOS的AudioUnit接口实现的音频采集和处理功能.
- KSYBGMPlayer基于iOS的AudioQueue实现的背景音乐播放器.
其中音频处理主要包括如下四种:
- 美声(混响)是主播声音叠加增强的过程,让直播现场效果更强;金山云SDK暂支持录音棚、演唱会、KTV、小舞台四种效果,四种效果依次不断增强
- 变声是将主播声音变为搞怪的特效处理,能够增强互动时的趣味性;金山云SDK暂支持大叔、萝莉、庄重、机器人四种效果
- 降噪 是对主播声音的处理, 将背景噪声过滤掉, 使主播的声音更清晰; 金山云SDK支持4档不同强度的噪声抑制,可以根据具体场景选择.
- 升降调是主播唱歌时伴奏的特效处理,即从低沉到高亢的一个过程,更适用于较专业的唱歌直播;金山云SDK支持-3至3从低沉到高亢的7个等级的调节,0为原始音效,具体等级可根据客户业务需求做自定义处理
前三种为采集模块的功能, 最后一种为播放音乐时的功能.
- Kit类提供
@property (nonatomic, readonly) KSYAUAudioCapture *aCapDev;
- 创建音频采集对象
_aCapDev = [[KSYAUAudioCapture alloc] init];
- 启动音频采集
[_aCapDev startCapture];
- 停止音频采集
[_aCapDev stopCapture];
- 用户自定义音频采集后回调
_aCapDev.audioProcessingCallback = ^(CMSampleBufferRef buf){
}
_aCapDev.reverbType = 3;
- 取值及效果:
reverbType= 0;//关闭
reverbType =1;//录音棚
reverbType =2;//演唱会
reverbType =3;//KTV
reverbType =4;//小舞台
_aCapDev.effecType = KSYAudioEffectType_ROBOT;
取值范围请参见文档
KSYAudioEffectType_NONE = 0; //关闭
KSYAudioEffectType_MALE = 1; //大叔
KSYAudioEffectType_FEMALE = 2; //萝莉
KSYAudioEffectType_HEROIC = 3; //庄重
KSYAudioEffectType_ROBOT = 4; //机器人
- 是否播放采集的声音
@property(nonatomic, assign) BOOL bPlayCapturedAudio;
- 噪声抑制处理的等级(默认为KSYAudioNoiseSuppress_HIGH)
- 设置为KSYAudioNoiseSuppress_OFF 可以关闭噪声抑制
@property (nonatomic, assign) KSYAudioNoiseSuppress noiseSuppressionLevel
- 取值从0.0~1.0;
@property(nonatomic, assign) Float32 micVolume;
1. 本模块是基于AudioUnit实现的低延时音频采集模块;
2. 本模块能够对采集的语音添加混响效果(目前支持4类混响场景),用户可以在音频采集的过程自由切换混响场景;
3. 本模块能够对采集的声音低延时播放,帮助主播选择音效(又称"耳返");
4. 本模块采集的声音通过回调函数提供出来。
注意:当使用本模块时,需要禁用KSYGPUCamera中的音频采集,即在创建KSYGPUCamera对象后,
不需要调用addAudioInputsAndOutputs来添加音频采集模块。