音频前处理

本章节主要介绍网易云提供的各种音视频前处理功能。前处理介于采集和编码之间,按照数据类型分类,可以分为音频前处理和视频前处理,音频前处理包括降噪、回音消除、人声检测、自动增益等等。网易云Unity SDK提供音视采集数据的回调功能,开发者可以利用音频采集数据的回调功能,实现自定义的音频数据前处理,包括接入第三方变声。

音频前处理

监听采集音频数据

API介绍

监听音频数据(可以不监听,通过启动设备kNIMDeviceTypeAudioOut和kNIMDeviceTypeAudioOutChat由底层播放)

API原型

public static void SetAudioCaptureDataCb(handler handler, NIMVChatCustomAudioJsonEx audioJsonEx)

File: NIMDeviceAPI.cs

参数说明
参数 类型 说明
handler handler 数据回调。
audioJsonEx NIMVChatCustomAudioJsonEx json封装类,SampleRate有效,(要求返回的音频数据为指定的采样频,缺省为0使用默认采样频
示例
public void OnCaptureAudioDataCallback(ulong time, IntPtr data, uint size, int rate)
{

}
void DemoTest()
{
    DeviceAPI.SetAudioCaptureDataCb(OnCaptureAudioDataCallback, null);
}

特殊说明

同步监听采集音频数据

API介绍

监听采集音频数据,Android,ios有效

API原型

public static void SetAudioCaptureDataSyncCb(AudioDataSyncHandler handler)

File: NIMDeviceAPI.cs

参数说明
参数 类型 说明
handler handler 数据回调。
示例
public void OnCaptureAudioDataSyncCallback(IntPtr data,ref ulong size, int rate)
{
}
void DemoTest()
{
     DeviceAPI.SetAudioCaptureDataSyncCb(OnCaptureAudioDataSyncCallback);
}

特殊说明

此接口是同步回调接口,Android,ios有效

监听采集音频数据

API介绍

监听接收音频数据(可以不监听,通过启动设备kNIMDeviceTypeAudioOut和kNIMDeviceTypeAudioOutChat由底层播放)

API原型

public static void SetAudioReceiveDataCb(AudioDataHandler handler,NIMVChatCustomAudioJsonEx audioJsonEx)

File: NIMDeviceAPI.cs

参数说明
参数 类型 说明
handler handler 数据回调。
audioJsonEx NIMVChatCustomAudioJsonEx json封装类,SampleRate有效,(要求返回的音频数据为指定的采样频,缺省为0使用默认采样频
示例
public void OnReceiveAudioDataCallback(ulong time, IntPtr data, uint size, int rate)
{
    //将收到的数据回传,用来测试自定义数据
    NIMCustomAudioDataInfo info = new NIMCustomAudioDataInfo();
    info.SampleBit = 16;//采样位深都为16
    info.SampleRate = rate;
    DeviceAPI.CustomAudioData(time, data, size, info);
}
void DemoTest()
{
    DeviceAPI.SetAudioReceiveDataCb(OnReceiveAudioDataCallback, null);
}

特殊说明