Skip to content

AUAudioCapture

pengbin edited this page Aug 10, 2017 · 27 revisions

介绍

与声音处理相关的模块有如下两个:

  • KSYAUAudioCapture基于iOS的AudioUnit接口实现的音频采集和处理功能.
  • KSYBGMPlayer基于iOS的AudioQueue实现的背景音乐播放器.

其中音频处理主要包括如下四种:

  1. 美声(混响)是主播声音叠加增强的过程,让直播现场效果更强;金山云SDK暂支持录音棚、演唱会、KTV、小舞台四种效果,四种效果依次不断增强
  2. 变声是将主播声音变为搞怪的特效处理,能够增强互动时的趣味性;金山云SDK暂支持大叔、萝莉、庄重、机器人四种效果
  3. 降噪 是对主播声音的处理, 将背景噪声过滤掉, 使主播的声音更清晰; 金山云SDK支持4档不同强度的噪声抑制,可以根据具体场景选择.
  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来添加音频采集模块。

1. 推流环节说明

2. 特色功能说明

2.1 采集

2.2 音频处理

2.3 视频处理

2.4 编码

2.5 推流

2.6 输入多样化

2.7 集成

3. 第三方功能

4. 技术专栏

5. 已知问题

8. FAQ

金山云计算

Clone this wiki locally