当遇到回声问题时,开发者可以调用setaudioconfig 接口配置音频相关参数,以缓解回声现象以及查看声音质量。
支持高级音频设置,增加操作系统处理音频、回声消除配置、背景噪音抑制设置和自动麦克风增益设置。入会即可生效该配置,详细使用方法参考SDkDemo。
/* 在入会前设置音频配置 */
void SetAudioConfig(SDKAudioConfig audioConfig);
/* 如果audioConfig.audioQualityAnalysis等于1,则会定期上报声音质量 */
/// 注意:
/// NA表示没有结果
/// 上报周期:
/// 1. 通知:每10秒上报一次
/// 2. 统计:每5分钟上报一次,如果达到统计上报条件,该周期通知下将被统计替换
/// 上报方式:
/// 1. 通知:针对当前10秒数据,上报Notify
/// 2. 统计:针对当前所有数据,上报Statistics
void onAudioQualityAnalysis(SDKNotifyType type, SDKAudioQuality audioQuality);
/***音频高级设置***/
/// <summary>
/// 使用操作系统进行音频处理
/// </summary>
/// <param name="enable">true 随操作系统,SDK不做干预; false 尝试关闭系统音频增强</param>
void EnableSystemAudioEffect(bool enable);
/// <summary>
/// 回声消除
/// </summary>
/// <param name="echoAE"></param>
void SetEchoAudioEffect(SDKEchoAE echoAE);
/// <summary>
/// 背景噪音抑制
/// </summary>
/// <param name="denoiseAE"></param>
void SetDenoiseAudioEffect(SDKDenoiseAE denoiseAE);
/// <summary>
/// 自动调整麦克风增益
/// </summary>
/// <param name="enable"></param>
void EnableAutoMicrophoneAGC(bool enable);
#endregion
public class SDKAudioConfig
{
//音频质量诊断开关, 1打开,0关闭
public int audioQualityAnalysis = -1;
//回声前向搜索范围,即往过去时间寻找回声的范围,单位毫秒
//取值范围: 10 ~ 1500
public int forthDelay = -1;
//回声后向搜索范围,即往将来时间寻找回声的范围,单位毫秒
//取值范围: 10 ~ 1500
public int backDelay = -1;
//初始延时,呼叫开始时辅助采集和参考对齐
//取值范围: -300 ~ 1000
public int initDelay = -1;
//开启异常条件下重置AE,包括队列调整异常,回声检测异常
//0表示关闭,
//1表示普通,开启异常队列调整重置AE
//2表示加强,开启队列调整异常重置AE + 回声检测异常调整AE
public int resetAE = -1;
//重置AE需要满足的异常参数阈值,即帧数
//取值范围: 100 ~ 6000
public int resetAEThreshold = -1;
}
//声音质量
public class SDKAudioQuality
{
/// <summary>
/// 回声状态
/// 可能的取值包括:
/// - "continuous_echo":表示完整的回声状态
/// - "jitter, short_echo":表示抖动/短暂回声状态
/// - "init_echo":表示初始回声状态
/// - "sane":表示正常状态
/// </summary>
public string echo_status;
/// <summary>
/// 截波(clipping)状态
/// 可能的取值包括:
/// 呼叫中上报:
/// - "sane",正常状态
/// - "insane",无程度估计,因为数据不够充分
/// 呼叫结束上报:
/// - "sane",正常状态
/// - "severe":表示严重的截波状态
/// - "medium":表示中度的截波状态
/// - "light":表示轻度的截波状态
/// </summary>
public string clipping;
}
//数据上报类型
public enum SDKNotifyType
{
Notify, //通知
Statistics, //统计
Unknown
}
//回声消除
public enum SDKEchoAE
{
CLOSE_AE, //关闭回声消除
AUTO_AE, //自动回声消除
ENHANCE_AE //增强回声消除
}
//背景噪音抑制
public enum SDKDenoiseAE
{
CLOSE_AE, //关闭抑制
AUTO_AE, //自动抑制
LOW_AE, //低抑制
MID_AE, //中等抑制
HIGH_AE //高级抑制(预留位置)
}