数据类型

音频输入输出

音频输入输出相关数据类型、数据结构定义如下:

  • OT_AIO_MAX_NUM:定义音频输入/输出设备的最大个数。

  • OT_AI_DEV_MAX_NUM:定义音频输入设备的最大个数。

  • OT_AO_DEV_MAX_NUM:定义音频输出设备的最大个数。

  • OT_AIO_MAX_CHN_NUM:定义音频输入/输出设备的最大通道数。

  • OT_AI_MAX_CHN_NUM:定义音频输入设备的最大通道数。

  • OT_AO_MAX_CHN_NUM:定义音频输出设备的最大通道数。

  • OT_AO_SYS_CHN_ID:定义音频输出设备系统音通道ID。

  • OT_AI_TALKVQE_MASK_HPF:TalkVQE HPF功能的Mask。

  • OT_AI_TALKVQE_MASK_AEC:TalkVQE AEC功能的Mask。

  • OT_AI_TALKVQE_MASK_AGC:TalkVQE AGC功能的Mask。

  • OT_AI_TALKVQE_MASK_EQ:TalkVQE EQ功能的Mask。

  • OT_AI_TALKVQE_MASK_ANR:TalkVQE ANR功能的Mask。

  • OT_AI_RECORDVQE_MASK_HPF:RecordVQE HPF功能的Mask。

  • OT_AI_RECORDVQE_MASK_RNR:RecordVQE RNR功能的Mask。

  • OT_AI_RECORDVQE_MASK_HDR:RecordVQE HDR功能的Mask。

  • OT_AI_RECORDVQE_MASK_DRC:RecordVQE DRC功能的Mask。

  • OT_AI_RECORDVQE_MASK_EQ:RecordVQE EQ功能的Mask。

  • OT_AI_RECORDVQE_MASK_AGC:RecordVQE AGC功能的Mask。

  • OT_AI_TALKVQEV2_MASK_PNR:定义TalkVqeV2 PNR功能的Mask。

  • OT_AI_TALKVQEV2_MASK_NR:定义TalkVqeV2 NR功能的Mask。

  • OT_AI_TALKVQEV2_MASK_EQ:定义TalkVqeV2 EQ功能的Mask。

  • OT_AI_TALKVQEV2_MASK_AGC:定义TalkVqeV2 AGC功能的Mask。

  • OT_AI_TALKVQEV2_MASK_DRC:定义TalkVqeV2 DRC功能的Mask。

  • OT_AI_TALKVQEV2_MASK_LIMITER:定义TalkVqeV2 LIMITER功能的Mask。

  • OT_AI_TALKVQEV2_MASK_DEREVERB:定义TalkVqeV2 DEREVERB功能的Mask。

  • OT_AI_TALKVQEV2_MASK_FMP:定义TalkVqeV2 FMP功能的Mask。

  • OT_AI_TALKVQEV2_MASK_WNR:定义TalkVqeV2 WNR功能的Mask。

  • OT_AI_TALKVQEV2_MASK_AEC:定义TalkVqeV2 AEC功能的Mask。

  • OT_AI_TALKVQEV2_MASK_HS:定义TalkVqeV2 HS功能的Mask。

  • OT_AO_VQE_MASK_HPF:AO VQE HPF功能的Mask。

  • OT_AO_VQE_MASK_ANR:AO VQE ANR功能的Mask。

  • OT_AO_VQE_MASK_AGC:AO VQE AGC功能的Mask。

  • OT_AO_VQE_MASK_EQ:AO VQE EQ功能的Mask。

  • OT_MAX_AUDIO_FILE_PATH_LEN:音频保存文件的路径的最大长度限制。

  • OT_MAX_AUDIO_FILE_NAME_LEN:音频保存文件的名称的最大长度限制。

  • OT_AUDIO_FRAME_CHN_NUM:定义存放音频数据的最大声道数。

  • OT_VQE_EQ_BAND_NUM:定义EQ功能可调节的频段数。

  • OT_VQE_DRC_SEC_NUM:定义DRC动态曲线可配置级数。

  • OT_AEC_ERL_BAND_NUM:定义AEC功能ERL保护频段的数目。

  • OT_AEC_ERL_BAND_VALUE_NUM:定义AEC功能ERL保护频段值的数目。

  • OT_TALKVQEV2_EQ_BAND_NUM:定义TalkVqeV2 EQ功能可调节的频段数。

  • ot_audio_clk_select:定义音频时钟源。

  • ot_audio_sample_rate:定义音频采样率。

  • ot_audio_bit_width:定义音频采样精度。

  • ot_aio_mode:定义音频输入输出工作模式。

  • ot_aio_i2s_type:定义设备I2S对接设备类型。

  • ot_audio_snd_mode:定义音频声道模式。

  • ot_audio_mod_param:定义音频模块参数结构体。

  • ot_aio_attr:定义音频输入输出设备属性结构体。

  • ot_ai_chn_param:定义通道参数结构体。

  • ot_audio_frame:定义音频帧数据结构体。

  • ot_aec_frame:定义回声抵消参考帧信息结构体。

  • ot_audio_agc_cfg:定义音频自动增益控制配置信息结构体。

  • ot_ai_aec_cfg:定义音频回声抵消配置信息结构体。

  • ot_audio_anr_cfg:定义音频语音降噪功能配置信息结构体。

  • ot_audio_hpf_freq:定义音频高通滤波截止频率。

  • ot_audio_hpf_cfg:定义音频高通滤波截止频率。

  • ot_ai_rnr_cfg:定义音频录音噪声消除功能配置信息结构体。

  • ot_vqe_work_state:定义音频高通滤波功能配置信息结构体。

  • ot_vqe_record_type:定义录音类型。

  • ot_audio_eq_cfg:定义音频均衡器功能配置信息结构体。

  • ot_ai_hdr_cfg:定义音频高动态范围功能配置信息结构体。

  • ot_ai_drc_cfg:定义音频动态压缩控制功能配置信息结构体。

  • ot_ai_talk_v2_pnr_cfg:定义音频TalkVqeV2二次降噪功能配置信息结构体。

  • ot_ai_talk_v2_nr_cfg:定义音频TalkVqeV2降噪功能配置信息结构体。

  • ot_ai_talk_v2_agc_cfg:定义音频TalkVqeV2自动增益控制功能配置信息结构体。

  • ot_ai_talk_v2_eq_cfg:定义音频TalkVqeV2均衡器功能配置信息结构体。

  • ot_ai_talk_v2_aec_cfg:定义音频TalkVqeV2回声抵消功能配置信息结构体。

  • ot_ai_talk_v2_wnr_cfg: 定义音频TalkVqeV2降风噪功能配置信息结构体。

  • ot_ai_talk_v2_fmp_cfg:定义音频TalkVqeV2并行处理功能配置信息结构体。

  • ot_ai_talk_v2_hs_cfg:定义音频TalkVqeV2抗啸叫功能配置信息结构体。

  • ot_ai_talk_vqe_cfg:定义音频输入声音质量增强(Talk)配置信息结构体。

  • ot_ai_record_vqe_cfg:定义音频输入声音质量增强(Record)配置信息结构体。

  • ot_ai_talk_vqe_v2_cfg:定义音频输入声音质量增强(Talk V2)配置信息结构体。

  • ot_ao_vqe_cfg:定义音频输出声音质量增强配置信息结构体。

  • ot_vqe_mod_cfg:定义声音质量增强及重采样模块配置信息结构体。

  • ot_audio_vqe_register:定义声音质量增强及重采样模块注册结构体。

  • ot_audio_stream:定义音频码流结构体。

  • ot_ao_chn_state:音频输出通道的数据缓存状态结构体。

  • ot_audio_track_mode:音频设备声道模式类型。

  • ot_audio_fade_rate:音频设备淡入淡出速率类型。

  • ot_audio_fade:音频设备淡入淡出设置结构体。

  • ot_g726_bps:定义G.726编解码协议速率。

  • ot_adpcm_type:定义ADPCM编解码协议类型。

  • ot_audio_save_file_info:定义音频保存文件功能配置信息结构体。

  • ot_audio_file_status:定义音频文件保存状态结构体。

  • ot_ai_chn_mode:定义AI通道的工作模式。

  • ot_ai_chn_attr:定义AI通道属性结构体。

OT_AIO_MAX_NUM

【说明】

定义音频输入/输出设备的最大个数。

【定义】

#define OT_AIO_MAX_CHN_NUM ((OT_AO_MAX_CHN_NUM > OT_AI_MAX_CHN_NUM) ? OT_AO_MAX_CHN_NUM : OT_AI_MAX_CHN_NUM)

【注意事项】

无。

【相关数据类型及接口】

无。

OT_AI_DEV_MAX_NUM

【说明】

定义音频输入设备的最大个数。

【定义】

SS528V100/SS524V100:

#define OT_AI_DEV_MAX_NUM         2

SS928V100/SS626V100:

#define OT_AI_DEV_MAX_NUM         1

【注意事项】

无。

【相关数据类型及接口】

无。

OT_AO_DEV_MAX_NUM

【说明】

定义音频输出设备的最大个数。

【定义】

SS528V100/SS524V100/SS928V100:

#define OT_AO_DEV_MAX_NUM      2

SS626V100:

#define OT_AO_DEV_MAX_NUM      3

【注意事项】

无。

【相关数据类型及接口】

无。

OT_AIO_MAX_CHN_NUM

【说明】

定义音频输入/输出设备的最大通道数。

【定义】

#define OT_AIO_MAX_NUM ((OT_AO_DEV_MAX_NUM > OT_AI_DEV_MAX_NUM) ? OT_AO_DEV_MAX_NUM : OT_AI_DEV_MAX_NUM)

【注意事项】

无。

【相关数据类型及接口】

无。

OT_AI_MAX_CHN_NUM

【说明】

定义音频输入设备的最大通道个数。

【定义】

SS528V100/SS524V100/SS626V100:

#define OT_AI_MAX_CHN_NUM      20

SS928V100:

#define OT_AI_MAX_CHN_NUM      16

【注意事项】

无。

【相关数据类型及接口】

无。

OT_AO_MAX_CHN_NUM

【说明】

定义音频输出设备的最大通道个数。

【定义】

SS528V100/SS524V100/SS928V100:

#define OT_AO_MAX_CHN_NUM         9

SS626V100:

#define OT_AO_MAX_CHN_NUM         3

【注意事项】

其中,该计数中包括AO系统音通路,实体通路数为OT_AO_MAX_CHN_NUM – 1。

【相关数据类型及接口】

无。

OT_AO_SYS_CHN_ID

【说明】

定义音频输出设备的系统音通道ID。

【定义】

#define OT_AO_SYS_CHN_ID         (OT_AO_MAX_CHN_NUM - 1)

【注意事项】

每个输出设备的系统音通道相互独立。其中,送至系统音通道的数据会在各个实体通道的基础上混音并最终输出,可用于全局提示音、按键音等场景。

【相关数据类型及接口】

无。

OT_AI_TALKVQE_MASK_HPF

【说明】

定义TalkVQE HPF功能的Mask。

【定义】

#define OT_AI_TALKVQE_MASK_HPF		0x1

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_cfg结构体成员open_mask表示开启HPF功能。如open_mask = OT_AI_TALKVQE_MASK_AEC | OT_AI_TALKVQE_MASK_HPF;表示开启AEC和HPF功能。

OT_AI_TALKVQE_MASK_AEC

【说明】

定义TalkVQE AEC功能的Mask。

【定义】

#define OT_AI_TALKVQE_MASK_AEC		0x2

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_cfg结构体成员open_mask表示开启AEC功能。如open_mask =OT_AI_TALKVQE_MASK_AEC | OT_AI_TALKVQE_MASK_HPF;表示开启AEC和HPF功能。

OT_AI_TALKVQE_MASK_AGC

【说明】

定义TalkVQE AGC功能的Mask。

【定义】

#define OT_AI_TALKVQE_MASK_AGC		0x8

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_cfg结构体成员open_mask表示开启AGC功能。如open_mask = OT_AI_TALKVQE_MASK_AEC | OT_AI_TALKVQE_MASK_AGC;表示开启AEC和AGC功能。

OT_AI_TALKVQE_MASK_EQ

【说明】

定义TalkVQE EQ功能的Mask。

【定义】

#define OT_AI_TALKVQE_MASK_EQ		0x10

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_cfg结构体成员open_mask表示开启EQ功能。如open_mask = OT_AI_TALKVQE_MASK_AEC | OT_AI_TALKVQE_MASK_EQ;表示开启AEC和EQ功能。

OT_AI_TALKVQE_MASK_ANR

【说明】

定义TalkVQE ANR功能的Mask。

【定义】

#define OT_AI_TALKVQE_MASK_ANR		0x20

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_cfg结构体成员open_mask表示开启ANR功能。如open_mask = OT_AI_TALKVQE_MASK_AEC | OT_AI_TALKVQE_MASK_ANR;表示开启AEC和ANR功能。

OT_AI_RECORDVQE_MASK_HPF

【说明】

定义RecordVQE HPF功能的Mask。

【定义】

#define OT_AI_RECORDVQE_MASK_HPF		0x1

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_record_vqe_cfg结构体成员open_mask表示开启HPF功能。如open_mask = OT_AI_RECORDVQE_MASK_HPF | OT_AI_RECORDVQE_MASK_HDR;表示开启HPF和HDR功能。

OT_AI_RECORDVQE_MASK_RNR

【说明】

定义RecordVQE RNR功能的Mask。

【定义】

#define OT_AI_RECORDVQE_MASK_RNR		0x2

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_record_vqe_cfg结构体成员open_mask表示开启RNR功能。如open_mask = OT_AI_RECORDVQE_MASK_HPF | OT_AI_RECORDVQE_MASK_RNR;表示开启HPF和RNR功能。

OT_AI_RECORDVQE_MASK_HDR

【说明】

定义RecordVQE HDR功能的Mask。

【定义】

#define OT_AI_RECORDVQE_MASK_HDR		0x4

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_record_vqe_cfg结构体成员open_mask表示开启HDR功能。如open_mask = OT_AI_RECORDVQE_MASK_HPF | OT_AI_RECORDVQE_MASK_HDR;表示开启HPF和HDR功能。

OT_AI_RECORDVQE_MASK_DRC

【说明】

定义RecordVQE DRC功能的Mask。

【定义】

#define OT_AI_RECORDVQE_MASK_DRC		0x8

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_record_vqe_cfg结构体成员open_mask表示开启DRC功能。如open_mask = OT_AI_RECORDVQE_MASK_HPF | OT_AI_RECORDVQE_MASK_DRC;表示开启HPF和DRC功能。

OT_AI_RECORDVQE_MASK_EQ

【说明】

定义RecordVQE EQ功能的Mask。

【定义】

#define OT_AI_RECORDVQE_MASK_EQ		0x10

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_record_vqe_cfg结构体成员open_mask表示开启EQ功能。如open_mask = OT_AI_RECORDVQE_MASK_HPF | OT_AI_RECORDVQE_MASK_EQ;表示开启HPF和EQ功能。

OT_AI_RECORDVQE_MASK_AGC

【说明】

定义RecordVQE AGC功能的Mask。

【定义】

#define OT_AI_RECORDVQE_MASK_AGC		0x20

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_record_vqe_cfg结构体成员open_mask表示开启AGC功能。如open_mask =OT_AI_RECORDVQE_MASK_HPF | OT_AI_RECORDVQE_MASK_AGC;表示开启HPF和AGC功能。

OT_AI_TALKVQEV2_MASK_PNR

【说明】

定义TalkVqeV2 PNR功能的Mask。

【定义】

#define OT_AI_TALKVQEV2_MASK_PNR		0x1

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_v2_cfg结构体成员open_mask表示开启PNR功能。如open_mask = OT_AI_TALKVQEV2_MASK_PNR | OT_AI_TALKVQEV2_MASK_NR;表示开启PNR和NR功能。

OT_AI_TALKVQEV2_MASK_NR

【说明】

定义TalkVqeV2 NR功能的Mask。

【定义】

#define OT_AI_TALKVQEV2_MASK_NR		0x2

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_v2_cfg结构体成员open_mask表示开启NR功能。如open_mask = OT_AI_TALKVQEV2_MASK_PNR | OT_AI_TALKVQEV2_MASK_NR;表示开启PNR和NR功能。

OT_AI_TALKVQEV2_MASK_EQ

【说明】

定义TalkVqeV2 EQ功能的Mask。

【定义】

#define OT_AI_TALKVQEV2_MASK_EQ		0x4

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_v2_cfg结构体成员open_mask表示开启EQ功能。如open_mask = OT_AI_TALKVQEV2_MASK_PNR | OT_AI_TALKVQEV2_MASK_NR;表示开启PNR和NR功能。

OT_AI_TALKVQEV2_MASK_AGC

【说明】

定义TalkVqeV2 AGC功能的Mask。

【定义】

#define OT_AI_TALKVQEV2_MASK_AGC		0x8

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_v2_cfg结构体成员open_mask表示开启AGC功能。如open_mask = OT_AI_TALKVQEV2_MASK_PNR | OT_AI_TALKVQEV2_MASK_NR;表示开启PNR和NR功能。

OT_AI_TALKVQEV2_MASK_DRC

【说明】

定义TalkVqeV2 DRC功能的Mask。

【定义】

#define OT_AI_TALKVQEV2_MASK_DRC		0x10

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_v2_cfg结构体成员open_mask表示开启DRC功能。如open_mask = OT_AI_TALKVQEV2_MASK_PNR | OT_AI_TALKVQEV2_MASK_NR;表示开启PNR和NR功能。

OT_AI_TALKVQEV2_MASK_LIMITER

【说明】

定义TalkVqeV2 LIMITER功能的Mask。

【定义】

#define OT_AI_TALKVQEV2_MASK_LIMITER		0x20

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_v2_cfg结构体成员open_mask表示开启LIMITER功能。如open_mask = OT_AI_TALKVQEV2_MASK_PNR | OT_AI_TALKVQEV2_MASK_NR;表示开启PNR和NR功能。

OT_AI_TALKVQEV2_MASK_DEREVERB

【说明】

定义TalkVqeV2 DEREVERB功能的Mask。

【定义】

#define OT_AI_TALKVQEV2_MASK_DEREVERB		0x40

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_v2_cfg结构体成员open_mask表示开启DEREVERB功能。如open_mask = OT_AI_TALKVQEV2_MASK_PNR | OT_AI_TALKVQEV2_MASK_NR;表示开启PNR和NR功能。

OT_AI_TALKVQEV2_MASK_FMP

【说明】

定义TalkVqeV2 FMP功能的Mask。

【定义】

#define OT_AI_TALKVQEV2_MASK_FMP		0x80

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_v2_cfg结构体成员open_mask表示开启FMP功能。如open_mask = OT_AI_TALKVQEV2_MASK_PNR | OT_AI_TALKVQEV2_MASK_NR;表示开启PNR和NR功能。

OT_AI_TALKVQEV2_MASK_WNR

【说明】

定义TalkVqeV2 WNR功能的Mask。

【定义】

#define OT_AI_TALKVQEV2_MASK_WNR		0x100

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_v2_cfg结构体成员open_mask表示开启WNR功能。如open_mask = OT_AI_TALKVQEV2_MASK_PNR | OT_AI_TALKVQEV2_MASK_NR;表示开启PNR和NR功能。

OT_AI_TALKVQEV2_MASK_AEC

【说明】

定义TalkVqeV2 AEC功能的Mask。

【定义】

#define OT_AI_TALKVQEV2_MASK_AEC       0x200

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_v2_cfg结构体成员open_mask表示开启AEC功能。如open_mask = OT_AI_TALKVQEV2_MASK_PNR | OT_AI_TALKVQEV2_MASK_NR;表示开启PNR和NR功能。

OT_AI_TALKVQEV2_MASK_HS

【说明】

定义TalkVqeV2 HS功能的Mask。

【定义】

#define OT_AI_TALKVQEV2_MASK_HS        0x400

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ai_talk_vqe_v2_cfg结构体成员open_mask表示开启HS功能。如open_mask =OT_AI_TALKVQEV2_MASK_PNR | OT_AI_TALKVQEV2_MASK_NR;表示开启PNR和NR功能。

OT_AO_VQE_MASK_HPF

【说明】

定义AO VQE HPF功能的Mask。

【定义】

#define OT_AO_VQE_MASK_HPF		0x1

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ao_vqe_cfg结构体成员open_mask表示开启HPF功能。如open_mask = OT_AO_VQE_MASK_AGC | OT_AO_VQE_MASK_HPF;表示开启AGC和HPF功能。

OT_AO_VQE_MASK_ANR

【说明】

定义AO VQE ANR功能的Mask。

【定义】

#define AO_TALKVQE_MASK_ANR		0x2

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ao_vqe_cfg结构体成员open_mask表示开启ANR 功能。如open_mask = OT_AO_VQE_MASK_AGC | OT_AO_VQE_MASK_ANR;表示开启AGC和ANR功能。

OT_AO_VQE_MASK_AGC

【说明】

定义AO VQE AGC功能的Mask。

【定义】

#define OT_AO_VQE_MASK_AGC		0x4

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ao_vqe_cfg结构体成员open_mask表示开启AGC 功能。如open_mask = OT_AO_VQE_MASK_AGC | OT_AO_VQE_MASK_EQ;表示开启AGC和EQ 功能。

OT_AO_VQE_MASK_EQ

【说明】

定义AO VQE EQ功能的Mask。

【定义】

#define OT_AO_VQE_MASK_EQ		0x8

【注意事项】

无。

【相关数据类型及接口】

赋值给ot_ao_vqe_cfg结构体成员open_mask表示开启EQ功能。如open_mask = OT_AO_VQE_MASK_AGC | OT_AO_VQE_MASK_EQ;表示开启AGC和EQ 功能。

OT_MAX_AUDIO_FILE_PATH_LEN

【说明】

定义音频保存文件的路径的最大长度限制。

【定义】

#define OT_MAX_AUDIO_FILE_PATH_LEN	256

【注意事项】

无。

【相关数据类型及接口】

ot_audio_save_file_info

OT_MAX_AUDIO_FILE_NAME_LEN

【说明】

定义音频保存文件的名称的最大长度限制。

【定义】

#define OT_MAX_AUDIO_FILE_NAME_LEN	256

【注意事项】

无。

【相关数据类型及接口】

ot_audio_save_file_info

OT_AUDIO_FRAME_CHN_NUM

【说明】

定义存放音频数据的最大声道数。

【定义】

#define OT_AUDIO_FRAME_CHN_NUM    2

【注意事项】

无。

【相关数据类型及接口】

ot_audio_save_file_info

OT_VQE_EQ_BAND_NUM

【说明】

定义EQ功能可调节的频段数。

【定义】

#define OT_VQE_EQ_BAND_NUM  10

【注意事项】

无。

【相关数据类型及接口】

ot_audio_eq_cfg

OT_VQE_DRC_SEC_NUM

【说明】

定义DRC动态曲线可配置级数。

【定义】

#define OT_VQE_DRC_SEC_NUM	5

【注意事项】

无。

【相关数据类型及接口】

ot_ai_drc_cfg

OT_AEC_ERL_BAND_NUM

【说明】

定义AEC功能ERL保护频段的数目。

【定义】

#define OT_AEC_ERL_BAND_NUM  6

【注意事项】

无。

【相关数据类型及接口】

ot_ai_aec_cfg

OT_AEC_ERL_BAND_VALUE_NUM

【说明】

定义AEC功能ERL保护频段值的数目。

【定义】

#define OT_AEC_ERL_BAND_VALUE_NUM    7

【注意事项】

无。

【相关数据类型及接口】

ot_ai_aec_cfg

OT_TALKVQEV2_EQ_BAND_NUM

【说明】

定义TalkVqeV2 EQ功能可调节的频段数。

【定义】

#define OT_TALKVQEV2_EQ_BAND_NUM 30

【注意事项】

无。

【相关数据类型及接口】

ot_ai_talk_v2_eq_cfg

ot_audio_clk_select

【说明】

定义音频时钟源。

【定义】

typedef enum {
    OT_AUDIO_CLK_SELECT_BASE       = 0,  /* Audio base clk. */
    OT_AUDIO_CLK_SELECT_SPARE,           /* Audio spare clk. */
    OT_AUDIO_CLK_SELECT_BUTT,
} ot_audio_clk_select;

【成员】

成员名称

描述

OT_AUDIO_CLK_SELECT_BASE

默认时钟源SPLL。

OT_AUDIO_CLK_SELECT_SPARE

备用时钟源VPLL。

【注意事项】

默认时钟源SPLL的音频质量更好,但是当其他模块(如AO/MIPI)使用SPLL时,需要切换到备用时钟源VPLL。

【相关数据类型及接口】

ot_audio_sample_rate

【说明】

定义音频采样率。

【定义】

typedef enum {
    OT_AUDIO_SAMPLE_RATE_8000   = 8000,    /* 8kHz sample rate */
    OT_AUDIO_SAMPLE_RATE_12000  = 12000,   /* 12kHz sample rate */
    OT_AUDIO_SAMPLE_RATE_11025  = 11025,   /* 11.025kHz sample rate */
    OT_AUDIO_SAMPLE_RATE_16000  = 16000,   /* 16kHz sample rate */
    OT_AUDIO_SAMPLE_RATE_22050  = 22050,   /* 22.05kHz sample rate */
    OT_AUDIO_SAMPLE_RATE_24000  = 24000,   /* 24kHz sample rate */
    OT_AUDIO_SAMPLE_RATE_32000  = 32000,   /* 32kHz sample rate */
    OT_AUDIO_SAMPLE_RATE_44100  = 44100,   /* 44.1kHz sample rate */
    OT_AUDIO_SAMPLE_RATE_48000  = 48000,   /* 48kHz sample rate */
    OT_AUDIO_SAMPLE_RATE_64000  = 64000,   /* 64kHz sample rate */
    OT_AUDIO_SAMPLE_RATE_96000  = 96000,   /* 96kHz sample rate */
    OT_AUDIO_SAMPLE_RATE_BUTT,
} ot_audio_sample_rate;

【成员】

成员名称

描述

OT_AUDIO_SAMPLE_RATE_8000

8kHz采样率。

OT_AUDIO_SAMPLE_RATE_12000

12kHz采样率。

OT_AUDIO_SAMPLE_RATE_11025

11.025kHz采样率。

OT_AUDIO_SAMPLE_RATE_16000

16kHz采样率。

OT_AUDIO_SAMPLE_RATE_22050

22.050kHz采样率。

OT_AUDIO_SAMPLE_RATE_24000

24kHz采样率。

OT_AUDIO_SAMPLE_RATE_32000

32kHz采样率。

OT_AUDIO_SAMPLE_RATE_44100

44.1kHz采样率。

OT_AUDIO_SAMPLE_RATE_48000

48kHz采样率。

OT_AUDIO_SAMPLE_RATE_64000

64kHz采样率。

OT_AUDIO_SAMPLE_RATE_96000

96kHz采样率。

【注意事项】

  • 这里枚举值不是从0开始,而是与实际的采样率值相同。

  • 96kHz的采样率仅适用于AI采集、AO播放,不支持96kHz采样率的数据做重采样、VQE等处理。

【相关数据类型及接口】

ot_aio_attr

ot_audio_bit_width

【说明】

定义音频采样精度。

【定义】

typedef enum {
    OT_AUDIO_BIT_WIDTH_8   = 0,   /* 8bit width */
    OT_AUDIO_BIT_WIDTH_16  = 1,   /* 16bit width */
    OT_AUDIO_BIT_WIDTH_24  = 2,   /* 24bit width */
    OT_AUDIO_BIT_WIDTH_BUTT,
} ot_audio_bit_width;

【成员】

成员名称

描述

OT_AUDIO_BIT_WIDTH_8

采样精度为8bit位宽。

OT_AUDIO_BIT_WIDTH_16

采样精度为16bit位宽。

OT_AUDIO_BIT_WIDTH_24

采样精度为24bit位宽。

【注意事项】

SS528V100/SS524V100/SS928V100/SS626V100支持16bit/24bit位宽。

【相关数据类型及接口】

ot_aio_attr

ot_aio_mode

【说明】

定义音频输入输出设备工作模式。

【定义】

typedef enum {
    OT_AIO_MODE_I2S_MASTER  = 0,    /* AIO I2S master mode */
    OT_AIO_MODE_I2S_SLAVE,          /* AIO I2S slave mode */
    OT_AIO_MODE_PCM_SLAVE_STD,      /* AIO PCM slave standard mode */
    OT_AIO_MODE_PCM_SLAVE_NON_STD,  /* AIO PCM slave non-standard mode */
    OT_AIO_MODE_PCM_MASTER_STD,     /* AIO PCM master standard mode */
    OT_AIO_MODE_PCM_MASTER_NON_STD, /* AIO PCM master non-standard mode */
    OT_AIO_MODE_BUTT
} ot_aio_mode;

【成员】

成员名称

描述

OT_AIO_MODE_I2S_MASTER

I2S主模式。

OT_AIO_MODE_I2S_SLAVE

I2S从模式。

OT_AIO_MODE_PCM_SLAVE_STD

PCM从模式(标准协议)

OT_AIO_MODE_PCM_SLAVE_NON_STD

PCM从模式(自定义协议)

OT_AIO_MODE_PCM_MASTER_STD

PCM主模式(标准协议)

OT_AIO_MODE_PCM_MASTER_NON_STD

PCM主模式(自定义协议)

【注意事项】

对接内置Audio Codec时,只支持I2S主模式。

【相关数据类型及接口】

ot_aio_attr

ot_aio_i2s_type

【说明】

定义设备I2S对接设备类型。

【定义】

typedef enum {
    OT_AIO_I2STYPE_INNERCODEC = 0, /* AIO I2S connect inner audio CODEC */
    OT_AIO_I2STYPE_INNERHDMI,       /* AIO I2S connect Inner HDMI */
    OT_AIO_I2STYPE_EXTERN,          /* AIO I2S connect extern hardware */
} ot_aio_i2s_type;

【成员】

成员名称

描述

OT_AIO_I2STYPE_INNERCODEC

对接内置CODEC。

OT_AIO_I2STYPE_INNERHDMI

对接内置HDMI。

OT_AIO_I2STYPE_EXTERN

对接外接设备。

【注意事项】

i2s_type可以配置I2S对接设备的类型属性,其具体对应关系如下表所示。

解决方案

AIDEV0

AIDEV1

AODEV0

AODEV1

AODEV2

SS528V100

OT_AIO_I2STYPE_EXTERN

OT_AIO_I2STYPE_EXTERN

OT_AIO_I2STYPE_EXTERN

OT_AIO_I2STYPE_INNERHDMI

不支持

SS625V100

OT_AIO_I2STYPE_EXTERN/ OT_AIO_I2STYPE_INNERCODEC

OT_AIO_I2STYPE_EXTERN

OT_AIO_I2STYPE_EXTERN/ OT_AIO_I2STYPE_INNERCODEC

OT_AIO_I2STYPE_INNERHDMI

不支持

SS524V100

OT_AIO_I2STYPE_EXTERN

OT_AIO_I2STYPE_EXTERN

OT_AIO_I2STYPE_EXTERN

OT_AIO_I2STYPE_INNERHDMI

不支持

SS928V100

OT_AIO_I2STYPE_EXTERN/ OT_AIO_I2STYPE_INNERCODEC

不支持

OT_AIO_I2STYPE_EXTERN/ OT_AIO_I2STYPE_INNERCODEC

OT_AIO_I2STYPE_INNERHDMI/OT_AIO_I2STYPE_INNERCODEC

不支持

SS626V100

OT_AIO_I2STYPE_EXTERN/ OT_AIO_I2STYPE_INNERCODEC

不支持

OT_AIO_I2STYPE_EXTERN/ OT_AIO_I2STYPE_INNERCODEC

OT_AIO_I2STYPE_EXTERN/OT_AIO_I2STYPE_INNERHDMI

OT_AIO_I2STYPE_EXTERN/OT_AIO_I2STYPE_INNERHDMI

【相关数据类型及接口】

ot_aio_attr

ot_audio_snd_mode

【说明】

定义音频声道模式。

【定义】

typedef enum {
    OT_AUDIO_SOUND_MODE_MONO   = 0, /* mono */
    OT_AUDIO_SOUND_MODE_STEREO = 1, /* stereo */
    OT_AUDIO_SOUND_MODE_BUTT
} ot_audio_snd_mode;

【成员】

成员名称

描述

OT_AUDIO_SOUND_MODE_MONO

单声道。

OT_AUDIO_SOUND_MODE_STEREO

双声道。

【注意事项】

音频声道分为stereo模式和mono模式:

  • 对于stereo模式

    • 使能左通道时对应的右通道亦会同步使能;

    • 通过获取帧接口获取到的音频帧结构体中左、右声道均有数据,即virt_addr[0]和virt_addr[1]均有效。

  • 对于mono模式

    • 只会使能当前通道。

    • 通过获取帧接口获取到的音频帧结构体中仅左声道有数据,即virt_addr[0]有效,virt_addr[1]为空。

  • 例如对于需要开启2通道的情况:

    • 如果使用mono模式,则需要分别使能两个通道,并分别通过获取帧接口获取音频数据;

    • 如果使用stereo模式,则只需要使能通道0,通过获取帧接口可同时获取两通道的音频数据。

  • I2S模式下,左右声道对应的通道请查看“音频接口时序和AI、AO通道排列”小节,以立体声为例,左声道对应通道0,右声道对应通道1。

  • 对AI来说,单声道默认从左声道输入,如果需要配置为右声道输入,可以考虑两种方法:

    • 仅打开右声道并处理。

    • 打开左右声道,按左声道处理,使用ss_mpi_ai_set_track_mode配置AI声道模式为“OT_AUDIO_TRACK_EXCHANGE”。

  • 对AO来说,单声道默认从左声道输出,如果需要配置为右声道输出,可以考虑两种方法:

    • 仅打开右声道并处理。

    • 打开左右声道,按左声道处理,使用ss_mpi_ao_set_track_mode配置AO声道模式为“OT_AUDIO_TRACK_EXCHANGE”。

  • 对于双声道模式,只应对左声道(即编号小于设备属性中通道数chn_cnt一半的通道)进行操作,SDK内部会自动对右声道也进行相应的操作。

【相关数据类型及接口】

ot_aio_attr

ot_audio_mod_param

【说明】

定义音频模块参数结构体。

【定义】

typedef struct {
    ot_audio_clk_select clk_select;
} ot_audio_mod_param;

【成员】

成员名称

描述

clk_select

音频时钟源选择。

请参考ot_audio_clk_select

【注意事项】

无。

【相关数据类型及接口】

无。

ot_aio_attr

【说明】

定义音频输入输出设备属性结构体。

【定义】

typedef struct {
    ot_audio_sample_rate  sample_rate; /* sample rate */
    ot_audio_bit_width  bit_width; /* bit_width */
    ot_aio_mode  work_mode; /* master or slave mode */
    ot_audio_snd_mode  snd_mode; /* momo or stereo */
    td_u32  expand_flag; 
    td_u32  frame_num; /* frame num in buf[2,OT_MAX_AUDIO_FRAME_NUM] */
    td_u32  point_num_per_frame;
    td_u32  chn_cnt; /* channle number on FS, valid value:1/2/4/8 */
    td_u32  clk_share;
    ot_aio_i2s_type  i2s_type; /* i2s type */
} ot_aio_attr; 

【成员】

成员名称

描述

sample_rate

音频采样率(从模式下,此参数不起作用)。

静态属性。

bit_width

音频采样精度(从模式下,此参数必须和音频AD/DA的采样精度匹配)。

静态属性。

work_mode

音频输入输出工作模式。

静态属性。

snd_mode

音频声道模式。

静态属性。

expand_flag

取值范围:{0, 1, 2}。

  • 0:不扩展。
  • 1:扩展成16位,8bit到16bit扩展标志(只对AI采样精度为8bit时有效)。
  • 2:24位裁剪成16位,在外置Codec的场景下可能用到。

静态属性,保留参数,一般设置成1即可。

frame_num

缓存帧数目。

取值范围:[2, OT_MAX_AUDIO_FRAME_NUM]。

静态属性。

point_num_per_frame

每帧的采样点个数。

取值范围:G711、G726、ADPCM_DVI4编码时取值为80、160、240、320、480;ADPCM_IMA编码时取值为81、161、241、321、481。

AI取值范围为:[80, 2048],AO取值范围为:[80, 4096]。

静态属性。

chn_cnt

支持的通道数目。

AI取值:1、2、4、8、16、20。

AO取值:1、2、8。

(内置Codec输入最多支持2个通道,外置Codec输入最多支持OT_AI_MAX_CHN_NUM个通道;内置Codec输出最多支持2个通道,外置Codec输出最多支持OT_AO_MAX_CHN_NUM – 1个通道)。

clk_share

配置AI设备0是否复用AO设备0的帧同步时钟及位流时钟。

取值:0、1。

0:不复用;

1:复用。

i2s_type

配置设备I2S类型。

AI取值:OT_AIO_I2STYPE_INNERCODEC, OT_AIO_I2STYPE_EXTERN

AO取值:OT_AIO_I2STYPE_INNERCODEC, OT_AIO_I2STYPE_EXTERN,OT_AIO_I2STYPE_INNERHDMI。

静态属性。

【注意事项】

每帧的采样点个数point_num_per_frame和采样率sample_rate的取值决定了硬件产生中断的频率,频率过高会影响系统的性能,跟其他业务也会相互影响,建议这两个参数的取值满足算式:(point_num_per_frame*1000)/ sample_rate>=10,比如在采样率为16000Hz时,建议设置采样点个数大于或者等于160。

【相关数据类型及接口】

  • ss_mpi_ai_set_pub_attr

  • ss_mpi_ao_set_pub_attr

ot_ai_chn_param

【说明】

定义通道参数结构体。

【定义】

typedef struct {
    td_u32 usr_frame_depth;
} ot_ai_chn_param;

【成员】

成员名称

描述

usr_frame_depth

音频帧缓存深度。该参数取值范围:[5, frame_num], 并且不能大于30。

frame_num请参见ot_aio_attr

【注意事项】

无。

【相关数据类型及接口】

无。

ot_audio_frame

【说明】

定义音频帧结构体。

【定义】

typedef struct {
    ot_audio_bit_width   bit_width;     /* audio frame bit_width */
    ot_audio_snd_mode    snd_mode;    /* audio frame momo or stereo mode */
    td_u8 ATTRIBUTE * virt_addr[OT_AUDIO_FRAME_CHN_NUM];
    ot_phys_addr_t ATTRIBUTE phys_addr[OT_AUDIO_FRAME_CHN_NUM];
    td_u64  time_stamp;                 /* audio frame time stamp */
    td_u32  seq;                        /* audio frame seq */
    td_u32  len;                        /* data lenth per channel in frame */
    td_u32  pool_id[OT_AUDIO_FRAME_CHN_NUM];
} ot_audio_frame;

【成员】

成员名称

描述

bit_width

音频采样精度。

snd_mode

音频声道模式。

virt_addr

音频帧数据虚拟地址。

phys_addr

音频帧数据物理地址。

time_stamp

音频帧时间戳。

以μs为单位。

seq

音频帧序号。

len

音频帧长度。

以byte为单位。

pool_id

音频帧缓存池ID。

【注意事项】

  • len(音频帧长度)指单个声道的数据长度。

  • 单声道数据存放的虚拟地址为virt_addr [0],长度为len;立体声数据按左右声道分开存放,虚拟地址virt_addr [0]存放长度为len的左声道数据,虚拟地址virt_addr [1]存放长度为len的右声道数据。

【相关数据类型及接口】

无。

ot_aec_frame

【说明】

定义音频回声抵消参考帧信息结构体。

【定义】

typedef struct {
    ot_audio_frame ref_frame;      /* AEC reference audio frame */
    td_bool     valid;             /* whether frame is valid */
    td_bool     sys_bind;          /* whether is sysbind */
} ot_aec_frame;

【成员】

成员名称

描述

ref_frame

回声抵消参考帧结构体。

valid

参考帧有效的标志。

TD_TRUE:参考帧有效。

TD_FALSE:参考帧无效,无效时不能使用此参考帧进行回声抵消。

sys_bind

AI和AENC是否系统绑定。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_audio_agc_cfg

【说明】

定义音频自动增益控制配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode; 
    td_s8 target_level;
    td_s8 noise_floor;
    td_s8 max_gain;
    td_s8 adjust_speed;
    td_s8 improve_snr;
    td_s8 use_hpf;
    td_s8 output_mode;
    td_s16 noise_suppress_switch;
    td_s32 reserved;
} ot_audio_agc_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认为0关闭

target_level

目标电平,该值为经过AGC处理后的最大电平门限;范围:[-40 ~ -1]dB;调整步长1dB

noise_floor

噪声底线;范围:TalkVQE/AO VQE [-65, -20]dB, RecordVQE [-50, -20]dB;调整步长1dB。

注:噪声底线需要开启输出模式才能生效。

max_gain

最大增益;范围:[0 ~ 30]dB;调整步长1dB

adjust_speed

调整速度;范围:[0 ~ 10]dB/s;调整步长1dB/s

improve_snr

提高信噪比开关;范围:[0:不提升, 1:上限3dB, 2:上限6dB]

use_hpf

打开高通滤波标志,该值为配置AGC内置高通滤波截止频率;范围:[0:关闭, 1:80Hz, 2:120Hz, 3:150Hz, 4:300Hz, 5:500Hz]

output_mode

输出模式,低于noise_floor的信号输出静音;范围:[0:关闭, 1:打开]。

注:输出模式需要配合噪声底线使用,配置为1后,低于噪声底线的信号将会静音输出。

noise_suppress_switch

噪声抑制开关;

0表示关闭,1表示开启

reserved

保留。

【注意事项】

  • 当用户模式开启时,以上各个高级参数才生效,否则按照ot_ai_talk_vqe_cfg/ot_ao_vqe_cfg/ot_ai_record_vqe_cfg中的工作模式work_state对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

  • ot_ai_talk_vqe_cfg/ot_ao_vqe_cfg/ot_ai_record_vqe_cfg中的AGC只支持对信号电平进行放大,不支持对信号电平进行缩小。

【相关数据类型及接口】

ot_ai_aec_cfg

【说明】

定义音频回声抵消配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;
    td_s8 cozy_noisy_mode; /* cosy-noisy mode:0 close,1 open, default 1*/
    td_s8 near_all_pass_energy;                
    td_s8 near_clean_sup_energy;               
    td_s16 double_talk_threshold;              
    td_s16 echo_band_low;                   
    td_s16 echo_band_high;                    
    td_s16 echo_band_low2;                     
    td_s16 echo_band_high2;                    
    td_s16 erl_band[OT_AEC_ERL_BAND_NUM];    
    td_s16 erl[OT_AEC_ERL_BAND_VALUE_NUM];   
    td_s16 voice_protect_freq_l;             
    td_s16 voice_protect_freq_l1;   
    td_s32 reserved;
} ot_ai_aec_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认为0关闭

cozy_noisy_mode

是否开启舒适噪声模式:

0:关闭

1:开启

near_all_pass_energy

判断近端是否透传的远端能量阈值,默认为1,取值:[0:-59dBm0, 1:-49dBm0, 2:-39dBm0]

near_clean_sup_energy

近端信号强制清零的能量阈值,默认为2,取值:[0:12dB, 1:15dB, 2:18dB]

double_talk_threshold

单双讲判断门限值,标为Q15,默认取16384,取值:[0, 32767]

echo_band_low

语音处理频段1,低频参数,8kHz下配置参数[1, 63),16kHz下配置参数[1, 127),默认10

echo_band_high

语音处理频段1,高频参数, 8kHz下配置参数(echo_band_low, 63], 16kHz下配置参数(echo_band_low, 127],默认41

echo_band_low2

语音处理频段2,低频参数,8kHz下配置参数[1, 63),16kHz下配置参数[1, 127),默认47

echo_band_high2

语音处理频段2,高频参数,8kHz下配置参数(echo_band_low2, 63],默认63,16kHz下配置参数(echo_band_low2, 127],默认72

erl_band

ERL(回波衰减路径)保护频段数组参数,8kHz下配置参数[1, 63], 16kHz下配置参数[1, 127],其中,配置频段参数必须每段递增,即erl_band[n+1] > erl_band[n]。建议配置参数{4, 6, 36, 49, 50, 51};

erl

ERL(回波衰减路径)频段保护值数组参数,配合参数erl_band [6]使用,erl_band将erl值分频段设置,0至 erl_band[0]频带对应值为erl[0],erl_band[0] 至 erl_band[1]频带对应值为erl[1],以此类推,erl_band[5]至MaxBand频带对应值为erl[6],其中MaxBand在8kHz下为65,在16kHz下为129。该参数对应取值越小,保护力度越大,参数范围[0, 18],建议配置参数{7, 10, 16, 10, 18, 18, 18}

voice_protect_freq_l

近端低频保护区域频点参数, 8kHz下配置参数[1, 63),16kHz下配置参数[1, 127),默认为3

voice_protect_freq_l1

近端低频保护区域频点参数1,8kHz下配置参数(voice_protect_freq_l, 63],16kHz下配置参数(voice_protect_freq_l, 127],默认为6

reserved

保留,未使用。

【注意事项】

  • 当用户模式开启时,其他参数才生效,否则按照ot_ai_talk_vqe_cfg中的工作模式work_state对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_ai_talk_vqe_cfg

ot_audio_anr_cfg

【说明】

定义音频语音降噪功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;   
    td_s16 nr_intensity;       
    td_s16 noise_db_threshold;        
    td_s8  music_probe_switch;        
    td_s32 reserved;
} ot_audio_anr_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式;

1:用户模式。

默认为0关闭。

nr_intensity

降噪力度配置,取值为[0, 25],配置值越大降噪力度越高,但同时也会带来细节音的丢失/损伤。

noise_db_threshold

噪声门限配置,取值为[30,60],配置值越大,检测力度越弱,声音更平滑

music_probe_switch

音乐检测开关,取值为[0,1],开启后增加对音乐细节的检测,喧闹场景下不建议开启

reserved

保留,未使用。

【注意事项】

  • 当用户模式开启时,以上各个高级参数才生效,否则按照ot_ai_talk_vqe_cfg /ot_ao_vqe_cfg中的工作模式work_state对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_audio_hpf_freq

【说明】

定义音频高通滤波截止频率。

【定义】

typedef enum {
    OT_AUDIO_HPF_FREQ_80   = 80,    /* 80Hz */
    OT_AUDIO_HPF_FREQ_120  = 120,   /* 120Hz */
    OT_AUDIO_HPF_FREQ_150  = 150,   /* 150Hz */
    OT_AUDIO_HPF_FREQ_BUTT,
} ot_audio_hpf_freq;

【成员】

成员名称

描述

OT_AUDIO_HPF_FREQ_80

截止频率为80Hz。

OT_AUDIO_HPF_FREQ_120

截止频率为120Hz。

OT_AUDIO_HPF_FREQ_150

截止频率为150Hz。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_audio_hpf_cfg

【说明】

定义音频高通滤波功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;
    ot_audio_hpf_freq hpf_freq; /* freq to be processed */
} ot_audio_hpf_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认为0关闭。

hpf_freq

高通滤波截止频率选择:

80:截止频率为80Hz

120:截止频率为120Hz

150:截止频率为150Hz

取值:TalkVQE/AO VQE (80Hz,120Hz,150Hz),RecordVQE(80Hz)

【注意事项】

  • 当用户模式开启时,高级参数才生效,否则按照ot_ai_talk_vqe_cfg/ot_ao_vqe_cfg/ot_ai_record_vqe_cfg中的工作模式对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_ai_rnr_cfg

【说明】

定义音频录音噪声消除功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;           /* mode 0: auto, mode 1: mannual. */
    td_s32  nr_mode;            /* mode 0: floor noise; 1:ambient noise */
    td_s32  max_nr_level;      /* max NR level range:[2,20]dB */
    td_s32  noise_threshold;  /* noise threshold, range:[-80, -20] */
} ot_ai_rnr_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认为0关闭。

nr_mode

降噪模式。

0:降底噪;

1:降环境噪声。

max_nr_level

最大降噪能力;范围:[2, 20]dB;调整步长1dB。

noise_threshold

噪声阈值;范围: [-80, -20]。

【注意事项】

  • 当用户模式开启时,高级参数才生效,否则按照ot_ai_record_vqe_cfg中的工作模式对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

  • 当nr_mode为1时,不支持48kHz工作采样率(work_sample_rate)。

【相关数据类型及接口】

ot_vqe_work_state

【说明】

定义声音质量增强的工作模式。

【定义】

typedef enum {
    OT_VQE_WORK_STATE_COMMON  = 0,
    OT_VQE_WORK_STATE_MUSIC   = 1,
    OT_VQE_WORK_STATE_NOISY   = 2,
} ot_vqe_work_state;

【成员】

成员名称

描述

OT_VQE_WORK_STATE_COMMON

一般模式。

OT_VQE_WORK_STATE_MUSIC

音乐模式。

OT_VQE_WORK_STATE_NOISY

噪声模式。

【注意事项】

无。

【相关数据类型及接口】

ot_vqe_record_type

【说明】

定义录音类型。

【定义】

typedef enum {
    OT_VQE_RECORD_NORMAL      = 0,
    OT_VQE_RECORD_BUTT,
} ot_vqe_record_type;

【成员】

成员名称

描述

OT_VQE_RECORD_NORMAL

标准类型。

【注意事项】

无。

【相关数据类型及接口】

ot_ai_record_vqe_cfg

ot_audio_eq_cfg

【说明】

定义音频均衡器功能配置信息结构体。

【定义】

typedef struct {
    td_s8  gain_db[OT_VQE_EQ_BAND_NUM];
    td_s32 reserved;
} ot_audio_eq_cfg;

【成员】

成员名称

描述

gain_db

EQ频段增益调节频段依次为100Hz,200Hz, 250Hz, 350Hz, 500Hz, 800Hz, 1.2kHz, 2.5kHz, 4kHz, 8kHz.其中,8kHz只有在工作采样率配置为16kHz时有效。每个频段取值范围:TalkVQE/AO VQE [-100, 20]dB, RecordVQE [-50, 20]dB;调整步长1dB

reserved

保留。

【注意事项】

该功能没有自动模式,需通过高级参数的配置生效。

【相关数据类型及接口】

无。

ot_ai_hdr_cfg

【说明】

定义音频高动态范围功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;
    td_s32 min_gain_db;
    td_s32 max_gain_db;
    td_s32 mic_gain_db;
    td_s32 mic_gain_step_db;
    func_gain_call_back callback;
} ot_ai_hdr_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式。

0:自动模式;

1:用户模式。

默认为0,表示采用默认的内置audio codec方式调节。

min_gain_db

CODEC允许最小配置增益,取值范围[0, 120]

max_gain_db

CODEC允许最大配置增益,取值范围[0, 120]

mic_gain_db

CODEC当前配置增益,取值范围[min_gain_db, max_gain_db]

mic_gain_step_db

增益调整步长,取值范围[1, 3]

callback

修改CODEC增益的函数指针。

【注意】

  • 该功能需要用户根据CODEC配置相应的参数。

  • 当用户模式开启时,高级参数才生效,否则按照ot_ai_record_vqe_cfg中的工作模式对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_ai_drc_cfg

【说明】

定义音频自动音量控制功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;
    td_s16  attack_time;
    td_s16  release_time;
    td_s16 old_level_db[OT_VQE_DRC_SEC_NUM];
    td_s16 new_level_db[OT_VQE_DRC_SEC_NUM];
} ot_ai_drc_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式。

0:自动模式;

1:用户模式。

默认为0关闭。

attack_time

信号从大变小的时间(ms),取值范围HiFiVqe[10, 250],RecordVqe [10, 126]

release_time

信号从小变大的时间(ms),取值范围HiFiVqe [10, 250] ,RecordVqe [10, 126]

old_level_db

动态曲线调整前拐点电平Q4,取值范围[-1440, 0], 从大往小存储,即old_level_db [n]>= old_level_db [n+1];默认值[0, -472, -792, -960, -1280]。同时必须满足new_level_db [n]>= old_level_db [n]。

new_level_db

动态曲线调整后拐点电平Q4,取值范围[-1440,0], 从大往小存储,即new_level_db [n]>= new_level_db [n+1];默认值[0, -174, -410, -608, -1021]。同时必须满足new_level_db [n]>= old_level_db [n]。

【注意】

  • 当用户模式开启时,高级参数才生效,否则按照ot_ai_record_vqe_cfg中的工作模式对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_ai_talk_v2_pnr_cfg

【说明】

定义音频TalkVqeV2二次降噪功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;   
    td_s16 min_gain_limit;       
    td_s16 snr_prior_limit;        
    td_s16 ht_threshold;        
    td_s16 hs_threshold;
    td_s16 alpha_ph;
    td_s16 alpha_psd;
    td_s16 prior_snr_fixed;
    td_s16 cep_threshold;
    td_s16 cep_amp; 
    td_s16 low_freq_protect;
    td_s16 speech_protect_threshold;
    td_s16 hem_enable;
    td_s16 tcs_enable;
    td_s16 reserved[3];
} ot_ai_talk_v2_pnr_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认为0关闭。

min_gain_limit

所允许的最大降噪力度,取值为[0, 32767],默认值为5827。值越小,噪声抑制能力越强。

snr_prior_limit

先验信噪比最小值,取值为[0, 32767],默认值为3276。值越小,噪声抑制能力越强。

ht_threshold

语音判定阈值,取值为[0, 80],默认值为10。值越小,越容易判定为语音。

hs_threshold

谐波检测阈值,取值为[100, 1100],默认值为100。值越小,越容易判定为语音。

alpha_ph

语音概率平滑系数,取值为[0, 100],默认值为90。值越大,越保护语音。

alpha_psd

噪声估计平滑系数,取值为[0, 100],默认值为65。值越小,对噪声跟踪越快。

prior_snr_fixed

固定先验信噪比,取值为[1, 499],默认值为30。值越小,越保护语音。

cep_threshold

倒谱平滑语音阈值,取值为[0, 100],默认值为16。值越小,越保护语音。

cep_amp

语音保护参数,取值为[100, 1000],默认值为120。值越大,越保护语音。

low_freq_protect

低频信号保护,取值为[0, 1],默认值为1。

0代表关闭,1代表开启。

speech_protect_threshold

语音保护参数,取值为[1, 99],默认值为90。值越大,越保护语音。

hem_enable

谐波增强开关,取值为[0, 1],默认值为1。

0代表关闭,1代表开启。

tcs_enable

倒谱平滑开关,取值为[0, 1],默认值为0。

0代表关闭,1代表开启。

reserved[3]

保留参数。

【注意事项】

  • 当用户模式开启时,以上各个高级参数才生效,否则按照ot_ai_talk_vqe_v2_cfg中的工作模式work_state对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_ai_talk_vqe_v2_cfg

ot_ai_talk_v2_nr_cfg

【说明】

定义音频TalkVqeV2降噪功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;   
    td_s16 min_gain_limit;       
    td_s16 snr_prior_limit;        
    td_s16 ht_threshold;        
    td_s16 hs_threshold;    
    td_s16 prior_snr;    
    td_s16 snr_smooth_factor; 
    td_s16 speech_prob_smooth_factor; 
    td_s16 noise_pwr_smooth_factor; 
    td_s8 low_freq_suppress_enable; 
    td_s8 low_freq_gain_suppress; 
    td_s16 env_mode;
    td_s16 reserved[6];
} ot_ai_talk_v2_nr_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认为0关闭。

min_gain_limit

所允许的最大降噪力度,取值为[1, 32767],默认值为5827。值越小,噪声抑制能力越强。

snr_prior_limit

先验信噪比最小值,取值为[1, 32767] ,默认值为1036。值越小,噪声抑制能力越强。

ht_threshold

语音判定阈值,取值为[0, 1000],默认值为130。值越小,越容易判定为语音。

hs_threshold

谐波检测阈值,取值为[100, 1100],默认值为100。值越小,越容易判定为语音。

prior_snr

先验信噪比,取值为[0, 20],默认值为20。值越大,越偏向降噪。

snr_smooth_factor

信噪比平滑系数,取值为[5000, 10000],默认值为6666。值越大,跟踪越平稳。

speech_prob_smooth_factor

语音概率平滑系数,取值为[5000, 10000],默认值为7900。值越大,跟踪越平稳。

noise_pwr_smooth_factor

噪声能量平滑系数,取值为[5000, 10000],默认值为7594。值越大,跟踪越平稳。

low_freq_suppress_enable

低频抑制开关,减弱低频,取值为[0, 1],默认值为1。0代表关闭,1代表开启。

low_freq_gain_suppress

低频增益抑制模式,减弱低频信号增益,取值为[0, 2],默认值为2。0代表关闭,1代表输出抑制,2代表平滑抑制。

env_mode

噪声环境模式选择,取值为[0, 1],默认值为1。0代表indoor,1代表outdoor。

reserved[6]

保留参数。

【注意事项】

  • 当用户模式开启时,以上各个高级参数才生效,否则按照ot_ai_talk_vqe_v2_cfg中的工作模式work_state对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_ai_talk_vqe_v2_cfg

ot_ai_talk_v2_agc_cfg

【说明】

定义音频TalkVqeV2自动增益控制功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;
    td_s8 target_level;
    td_u8 max_gain;
    td_s8 min_gain;
    td_s16 up_gradient_ratio;   
    td_s16 down_gradient_ratio; 
    td_s16 decay;               
    td_s32 vad_threshold;       
    td_s16 vad_ctrl;
    td_s16 reserved[3];
} ot_ai_talk_v2_agc_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认为0关闭。

target_level

目标电平,取值为[-120, 0],默认值为-16。值越大,增益越大。

max_gain

所允许的最大增益,取值为[-120, 240],默认值为96。值越大,增益越大。

min_gain

所允许的最小增益,取值为[-120, 0],默认值为-60。值越大,增益越大。

up_gradient_ratio

抬升速度,取值为[1, 30],默认值为9。值越大,输入信号抬升的越快。

down_gradient_ratio

压制速度,取值为[1, 30],默认值为3。

decay

慢包络下降速率控制,取值为[-650, 0],默认值为-260。值越小,包络下降越快,音量抬升越快。

vad_threshold

语音判断阈值,取值为[0, 1024],默认值为100。值越大,小语音越可能判断为噪声。

vad_ctrl

vad控制开关,取值为[0, 1],默认值为1。0代表agc增益不参考vad值,1代表agc增益参考vad值。

reserved[3]

保留参数。

【注意事项】

  • 当用户模式开启时,以上各个高级参数才生效,否则按照ot_ai_talk_vqe_v2_cfg中的工作模式enWorkstate对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_ai_talk_vqe_v2_cfg

ot_ai_talk_v2_eq_cfg

【说明】

定义音频TalkVqeV2均衡器功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;
    td_s8  gain_db[OT_TALKVQEV2_EQ_BAND_NUM];
} ot_ai_talk_v2_eq_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认为0关闭。

gain_db

EQ频段增益调节,频段依次为:

60,100,150,200,250,350,500,800,1200,1600,2000,2400,2500,2800,3100,3400,3600,3800,3900,4000,4500,5000,5500,6000,6500,7000,7300,7600,7800,8000。每个频段取值范围为 [-50, 20]dB;调整步长为1dB。

【注意事项】

  • 当用户模式开启时,以上各个高级参数才生效,否则按照ot_ai_talk_vqe_v2_cfg中的工作模式work_state对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_ai_talk_vqe_v2_cfg

ot_ai_talk_v2_aec_cfg

【说明】

定义音频TalkVqeV2回声抵消功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;
    td_u16 pure_delay;
    td_u16 switch_nlp;
    td_u16 band1;
    td_u16 band2;
    td_u16 band3;
    td_u16 band4;
    td_u16 gain_lower_limit1;
    td_u16 gain_lower_limit2;
    td_u16 gain_lower_limit3;
    td_u16 gain_lower_limit4;
    td_u16 gain_lower_limit5;
    td_u16 reserved[9];
} ot_ai_talk_v2_aec_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认为0关闭。

pure_delay

开启噪声补偿标记:

1:开启

0:关闭

默认值为1。

switch_nlp

非线性滤波开关,取值范围为[0,1],默认值为1。 0代表关闭,1代表开启。

band1

增益控制子带1,取值范围为[0, 6000],默认值为100,单位: Hz。

band2

增益控制子带2,取值范围为[band1, 6000],默认值为1500,单位: Hz。

band3

增益控制子带3,取值范围为[band2, 6000],默认值为3000,单位: Hz。

band4

增益控制子带4, 取值范围为[band3, 6000],默认值为4500,单位: Hz。

gain_lower_limit1

0-band1子带控制增益下限,越大双讲效果越好,但是回声残差也越大,取值范围为[0, 100],默认值为0。

gain_lower_limit2

band1-band2子带控制增益下限,效果同上,取值范围为[0, 100],默认值为0。

gain_lower_limit3

band2-band3子带控制增益下限,效果同上,取值范围为[0, 100],默认值为0。

gain_lower_limit4

band3-band4子带控制增益下限,效果同上,取值范围为[0, 100],默认值为0。

gain_lower_limit5

band4-8kHz 子带控制增益下限,效果同上,取值范围为[0, 100],默认值为0。

td_u16 reserved[9]

保留参数。

【注意事项】

  • 当用户模式开启时,以上各个高级参数才生效,否则按照ot_ai_talk_vqe_v2_cfg中的工作模式work_state对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_ai_talk_vqe_v2_cfg

ot_ai_talk_v2_wnr_cfg

【说明】

定义音频TalkVqeV2降风噪功能配置信息结构体。

【定义】

typedef struct {
    td_s8 reserved[6];          /* 6: reserved */
} ot_ai_talk_v2_wnr_cfg;

【成员】

成员名称

描述

reserved[6]

保留,未使用。

【注意事项】

无。

【相关数据类型及接口】

ot_ai_talk_vqe_v2_cfg

ot_ai_talk_v2_fmp_cfg

【说明】

定义音频TalkVqeV2并行处理功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;
    td_s8 comfort_flag;
    td_s8 comfort_intensity;
} ot_ai_talk_v2_fmp_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认为0关闭。

comfort_flag

开启噪声补偿标记,取值为[0,1],默认值为1。

0:代表关闭;

1:代表开启。

comfort_intensity

噪声补偿力度因子,取值为[1, 10],默认值为3,即补偿的噪声幅值放大3倍。

【注意事项】

  • 当用户模式开启时,以上各个高级参数才生效,否则按照ot_ai_talk_vqe_v2_cfg中的工作模式work_state对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_ai_talk_vqe_v2_cfg

ot_ai_talk_v2_hs_cfg

【说明】

定义音频TalkVqeV2抗啸叫功能配置信息结构体。

【定义】

typedef struct {
    td_bool usr_mode;
    td_s32 hold_time;
    td_s32 min_gain;
    td_s32 threshold;
    td_s32 smooth_time;
    td_s32 freq_move;
    td_u16 reserved[4];
} ot_ai_talk_v2_hs_cfg;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认为0关闭。

hold_time

调整抑制啸叫增益的等待时间(ms),取值为[0, 1000],默认值为100。越大则调整增益之前等待的时间越久。

min_gain

啸叫抑制力度,取值为[0, 100],默认值为10。值越小抑制力度越大。

threshold

啸叫判定阈值,取值为[0, 10],默认值为2。越大越容易判断成啸叫。

smooth_time

信号能量平滑时间(ms),取值为[0, 1000],默认值为200。越大越判断啸叫越鲁棒,但及时性也越差。

freq_move

移频力度(Hz),取值为[0, 40],默认值为5。数字越大可能会对抗啸叫越有帮助,但是对语音损伤也越大。

reserved[4]

保留参数。

【注意事项】

  • 当用户模式开启时,以上各个高级参数才生效,否则按照ot_ai_talk_vqe_v2_cfg中的工作模式work_state对应的默认值来配置。

  • 配置参数时,只有在用户模式开启时,才会对高级参数做正确性检查,只有正确的高级参数才能配置成功。

【相关数据类型及接口】

ot_ai_talk_vqe_v2_cfg

ot_ai_talk_vqe_cfg

【说明】

定义音频输入声音质量增强(Talk)配置信息结构体。

【定义】

typedef struct {
    td_u32            open_mask;
    td_s32            work_sample_rate;
    td_s32            frame_sample;
    ot_vqe_work_state work_state;
    ot_audio_hpf_cfg  hpf_cfg;
    ot_ai_aec_cfg     aec_cfg;
    ot_audio_anr_cfg  anr_cfg;
    ot_audio_agc_cfg  agc_cfg;
    ot_audio_eq_cfg   eq_cfg;
} ot_ai_talk_vqe_cfg;

【成员】

成员名称

描述

open_mask

TalkVQE的各功能使能的Mask值。

work_sample_rate

工作采样频率。该参数为内部功能算法工作采样率。

取值范围:8kHz/16kHz。默认值为8kHz。

frame_sample

VQE的帧长,即采样点数目。

支持范围:[80, 4096]

work_state

工作模式。

hpf_cfg

高通滤波功能相关配置信息。

aec_cfg

回声抵消功能相关配置信息。

anr_cfg

语音降噪功能相关配置信息。

agc_cfg

自动增益控制相关配置信息。

eq_cfg

均衡器相关配置信息。

【注意事项】

TalkVQE各个场景模式下的默认参数配置如表1所示。

表 1 TalkVQE各个场景模式下的默认参数配置表

参数

场景模式

COMMON

MUSIC

NOISY

HPF

hpf_freq

OT_AUDIO_HPF_FREQ_120

OT_AUDIO_HPF_FREQ_120

OT_AUDIO_HPF_FREQ_120

AEC

cozy_noisy_mode

1

1

1

ANR

nr_intensity

15

8

15

noise_db_threshold

45

60

45

music_probe_switch

1

1

0

AGC

target_level

-2

-2

-2

noise_floor

-40

-40

-40

max_gain

15

10

15

adjust_speed

10

5

10

improve_snr

2

0

2

use_hpf

0

0

0

output_mode

0

0

0

noise_suppress_switch

1

0

1

【相关数据类型及接口】

无。

ot_ai_record_vqe_cfg

【说明】

定义音频输入声音质量增强(Record)配置信息结构体。

【定义】

typedef struct {
    td_u32            open_mask;
    td_s32            work_sample_rate;
    td_s32            frame_sample;
    ot_vqe_work_state  work_state;
    td_s32            in_chn_num;
    td_s32            out_chn_num;
    ot_vqe_record_type   record_type;
    ot_audio_hpf_cfg  hpf_cfg;
    ot_ai_rnr_cfg     rnr_cfg;
    ot_ai_hdr_cfg     hdr_cfg;
    ot_ai_drc_cfg     drc_cfg;
    ot_audio_eq_cfg   eq_cfg;
    ot_audio_agc_cfg  agc_cfg;
} ot_ai_record_vqe_cfg;

【成员】

成员名称

描述

open_mask

RecordVQE的各功能使能的Mask值。

work_sample_rate

工作采样频率。该参数为内部功能算法工作采样率。

取值范围:16kHz或者48kHz。默认值为48kHz。

frame_sample

VQE的帧长,即采样点数目。

支持范围:[80, 4096]。

work_state

工作模式。

in_chn_num

VQE处理的输入通道数目。

取值范围:[1, 2]。

out_chn_num

VQE处理的输出通道数目。

取值范围:[1, 2]。

record_type

录音类型。

hpf_cfg

高通滤波功能相关配置信息。

rnr_cfg

录音噪声消除功能相关配置信息。

hdr_cfg

高动态范围功能相关配置信息。

drc_cfg

动态压缩控制功能配置信息。

eq_cfg

均衡器相关配置信息。

agc_cfg

自动增益控制相关配置信息。

【注意事项】

  • RecordVQE各个场景模式下的默认参数配置如RecordVQE各个场景模式下的默认参数配置表所示。

表 1 RecordVQE各个场景模式下的默认参数配置表

参数

场景模式

COMMON

MUSIC

NOISY

HPF

hpf_freq

OT_AUDIO_HPF_FREQ_120

OT_AUDIO_HPF_FREQ_120

OT_AUDIO_HPF_FREQ_120

RNR

nr_mode

0

0

0

max_nr_level

12

12

12

noise_threshold

-45

-45

-45

DRC

attack_time

24

24

24

release_time

100

100

100

old_level_db

{0, -472, -792, -960, -1280}

{0, -472, -792, -960, -1280}

{0, -472, -792, -960, -1280}

new_level_db

{0, -174, -528, -736, -1200}

{0, -174, -528, -736, -1200}

{0, -174, -528, -736, -1200}

AGC

target_level

-3

-3

-3

noise_floor

-50

-50

-50

max_gain

2

2

2

adjust_speed

0

0

0

improve_snr

2

2

2

use_hpf

0

0

0

output_mode

0

0

0

noise_suppress_switch

0

0

0

  • 各解决方案对RecordVQE接口支持情况请参考Vqe、HiFiVqe、TalkVqe和RecordVqe接口支持情况表。

  • 当前仅支持in_chn_num等于out_chn_num的设置。

    • 当AI设备的声道属性为OT_AUDIO_SOUND_MODE_MONO时,in_chn_num、out_chn_num需设置为1;

    • 当AI设备的声道属性为OT_AUDIO_SOUND_MODE_STEREO时,in_chn_num、out_chn_num需设置为2。

  • HDR需要在有内置audio codec的前提下,才能配置为自动模式。

【相关数据类型及接口】

无。

ot_ai_talk_vqe_v2_cfg

【说明】

定义音频输入声音质量增强(Talk V2)配置信息结构体。

【定义】

typedef struct {
    td_u32            open_mask;
    td_s32            work_sample_rate;
    td_s32            frame_sample;
    ot_vqe_work_state work_state;
    td_s32            in_chn_num;
    td_s32            out_chn_num;
    ot_ai_talk_v2_pnr_cfg   pnr_cfg;
    ot_ai_talk_v2_nr_cfg    nr_cfg;
    ot_ai_talk_v2_agc_cfg   agc_cfg;
    ot_ai_talk_v2_eq_cfg    eq_cfg; 
    ot_ai_talk_v2_fmp_cfg   fmp_cfg; 
    ot_ai_talk_v2_aec_cfg   aec_cfg; 
    ot_ai_talk_v2_wnr_cfg   wnr_cfg; 
    ot_ai_talk_v2_hs_cfg    hs_cfg; 
    td_u8 reserved[8];  
} ot_ai_talk_vqe_v2_cfg

【成员】

成员名称

描述

open_mask

Talk Vqe V2的各功能使能的Mask值。

work_sample_rate

工作采样频率。该参数为内部功能算法工作采样率。

只支持16kHz。

frame_sample

VQE的帧长,即采样点数目。

支持范围[80, 4096]。

work_state

工作模式。

in_chn_num

VQE处理的输入通道数目。

取值:2

out_chn_num

VQE处理的输出通道数目。

取值:2

pnr_cfg

二次降噪功能相关配置信息。

nr_cfg

降噪功能相关配置信息。

agc_cfg

自动增益控制相关配置信息。

eq_cfg

均衡器功能相关配置信息。

fmp_cfg

并行处理功能相关配置信息。

aec_cfg

自动回声抵消功能相关配置信息。

wnr_cfg

降风噪相关配置信息。

hs_cfg

抗啸叫功能相关配置信息。

reserved[8]

保留,未使用。

【注意事项】

Talk Vqe V2目前只支持OT_VQE_WORK_STATE_COMMON场景模式,其默认参数配置如表1所示。

表 1 Talk Vqe V2各个场景模式下的默认参数配置表

参数

场景模式

COMMON

MUSIC

NOISY

PNR

min_gain_limit

5827

NA

NA

snr_prior_limit

1036

NA

NA

ht_threshold

10

NA

NA

hs_threshold

100

NA

NA

alpha_ph

90

NA

NA

alpha_psd

65

NA

NA

prior_snr_fixed

30

NA

NA

cep_threshold

16

NA

NA

cep_amp

120

NA

NA

low_freq_protect

1

NA

NA

speech_protect_threshold

75

NA

NA

hem_enable

0

NA

NA

tcs_enable

1

NA

NA

NR

min_gain_limit

5827

NA

NA

snr_prior_limit

1036

NA

NA

ht_threshold

130

NA

NA

hs_threshold

100

NA

NA

prior_snr

20

NA

NA

snr_smooth_factor

6666

NA

NA

speech_prob_smooth_factor

7900

NA

NA

noise_pwr_smooth_factor

7594

NA

NA

low_freq_suppress_enable

1

NA

NA

low_freq_gain_suppress

2

NA

NA

td_s16 env_mode

1

NA

NA

AGC

target_level

-16

NA

NA

max_gain

80

NA

NA

min_gain

-60

NA

NA

up_gradient_ratio

9

NA

NA

down_gradient_ratio

3

NA

NA

decay

-260

NA

NA

vad_threshold

100

NA

NA

vad_ctrl

1

NA

NA

EQ

gain_db[0]~ gain_db[9]

{-40,-40,-15,-15,-15,-13,-10,0,0,0}

NA

NA

gain_db[10]~ gain_db[19]

{1,1,1,1,1,1,1,1,1,1}

NA

NA

gain_db[20]~ gain_db[29]

{0,0,0,0,0,0,0,0,0,0}

NA

NA

AEC

pure_delay

0

NA

NA

switch_nlp

1

NA

NA

band1

100

NA

NA

band2

1500

NA

NA

band3

3000

NA

NA

band4

4500

NA

NA

gain_lower_limit1

0

NA

NA

gain_lower_limit2

0

NA

NA

gain_lower_limit3

0

NA

NA

gain_lower_limit4

0

NA

NA

gain_lower_limit5

0

NA

NA

FMP

comfort_flag

1

NA

NA

comfort_intensity

3

NA

NA

HS

hold_time

100

NA

NA

min_gain

10

NA

NA

threshold

2

NA

NA

smooth_time

200

NA

NA

freq_move

5

NA

NA

【相关数据类型及接口】

无。

ot_ao_vqe_cfg

【说明】

定义音频输出声音质量增强配置信息结构体。

【定义】

typedef struct {
    td_u32 open_mask;
    td_s32 work_sample_rate;
    td_s32 frame_sample;
    ot_vqe_work_state work_state;
    ot_audio_hpf_cfg hpf_cfg;
    ot_audio_anr_cfg anr_cfg;
    ot_audio_agc_cfg agc_cfg;
    ot_audio_eq_cfg  eq_cfg;
} ot_ao_vqe_cfg;

【成员】

成员名称

描述

open_mask

AO VQE的各功能使能的Mask值。

work_sample_rate

工作采样频率。该参数为内部功能算法工作采样率。

取值范围:8kHz/16kHz/48kHz。默认值为8kHz。(仅HPF支持48kHz)

frame_sample

VQE的帧长,即采样点数目。

支持范围[80, 4096]。

work_state

工作模式。

hpf_cfg

高通滤波功能相关配置信息。

anr_cfg

语音降噪功能相关配置信息。

agc_cfg

自动增益控制相关配置信息。

eq_cfg

均衡器相关配置信息。

【注意事项】

DnVQE各个场景模式下的默认参数配置如表1所示。

表 1 DnVQE各个场景模式下的默认参数配置表

参数

场景模式

COMMON

MUSIC

NOISY

HPF

hpf_freq

OT_AUDIO_HPF_FREQ_120

OT_AUDIO_HPF_FREQ_120

OT_AUDIO_HPF_FREQ_120

ANR

nr_intensity

15

8

15

noise_db_threshold

45

60

45

music_probe_switch

1

1

0

AGC

target_level

-2

-2

-2

noise_floor

-40

-40

-40

max_gain

15

10

15

adjust_speed

10

5

10

improve_snr

2

0

2

use_hpf

0

0

0

output_mode

0

0

0

noise_suppress_switch

1

0

1

【相关数据类型及接口】

无。

ot_vqe_mod_cfg

【说明】

定义声音质量增强及重采样模块配置信息结构体。

【定义】

typedef struct {
    td_void *handle;
} ot_vqe_mod_cfg;

【成员】

成员名称

描述

handle

注册句柄。

【注意事项】

对于各声音质量增强及重采样模块的注册句柄,用户可通过调用句柄获取接口进行获取。

【相关数据类型及接口】

无。

ot_audio_vqe_register

【说明】

定义声音质量增强及重采样模块注册结构体。

【定义】

typedef struct {
    ot_vqe_mod_cfg resample_mod_cfg;
    ot_vqe_mod_cfg hpf_mod_cfg;
    ot_vqe_mod_cfg hdr_mod_cfg;
    ot_vqe_mod_cfg gain_mod_cfg;
    ot_vqe_mod_cfg record_mod_cfg;
    ot_vqe_mod_cfg aec_mod_cfg;
    ot_vqe_mod_cfg anr_mod_cfg;
    ot_vqe_mod_cfg agc_mod_cfg;
    ot_vqe_mod_cfg eq_mod_cfg;
    ot_vqe_mod_cfg rnr_mod_cfg;
    ot_vqe_mod_cfg drc_mod_cfg;
    ot_vqe_mod_cfg peq_mod_cfg;
    ot_vqe_mod_cfg talkv2_mod_cfg;
    ot_vqe_mod_cfg wnr_mod_cfg;
} ot_audio_vqe_register;

【成员】

成员名称

描述

resample_mod_cfg

重采样模块相关配置。

hpf_mod_cfg

高通滤波模块相关配置。

hdr_mod_cfg

高动态范围模块相关配置。

gain_mod_cfg

音量调节模块相关配置。

record_mod_cfg

RecordVQE模块相关配置。

aec_mod_cfg

回声抵消模块相关配置。

anr_mod_cfg

语音降噪模块相关配置。

agc_mod_cfg

自动增益控制模块相关配置。

eq_mod_cfg

均衡器模块相关配置。

rnr_mod_cfg

录音噪声消除模块相关配置。

drc_mod_cfg

动态压缩控制模块相关配置。

peq_mod_cfg

参量均衡器模块相关配置。

talkv2_mod_cfg

TalkVQEV2模块相关配置。

【注意事项】

  • 各模块的功能说明请参考VQE库的应用关系表。

  • 各解决方案对声音质量增强及重采样模块的支持情况请参考Vqe、HiFiVqe、TalkVqe和RecordVqe接口支持情况表。

【相关数据类型及接口】

无。

ot_audio_stream

【说明】

定义音频码流结构体。该结构体的定义在不同解决方案平台上略有不同。具体见下面的描述。

【定义】

typedef struct {
    td_u8 ATTRIBUTE *stream;     /* the virtual address of stream */
    td_u64 ATTRIBUTE phys_addr;  /* the physics address of stream */
    td_u32 len;                     /* stream lenth, by bytes */
    td_u64 time_stamp;            /* frame time stamp */
    td_u32 seq;                    /* frame seq, if stream is not a valid 
    frame,seq is 0 */
} ot_audio_stream;

【成员】

成员名称

描述

stream

音频码流数据指针。

phys_addr

音频码流的物理地址。

len

音频码流长度。以byte为单位。

time_stamp

音频码流时间戳。

seq

音频码流序号。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_aenc_get_stream

ot_ao_chn_state

【说明】

音频输出通道的数据缓存状态结构体。

【定义】

typedef struct {
    td_u32 chn_total_num;
    td_u32 chn_free_num;
    td_u32 chn_busy_num;
} ot_ao_chn_state;

【成员】

成员名称

描述

chn_total_num

输出通道总的缓存块数。

chn_free_num

可用的空闲缓存块数。

chn_busy_num

被占用缓存块数。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_ao_query_chn_stat

ot_audio_track_mode

【说明】

定义音频设备声道模式类型。

【定义】

typedef enum {
    OT_AUDIO_TRACK_NORMAL       = 0,
    OT_AUDIO_TRACK_BOTH_LEFT   = 1,
    OT_AUDIO_TRACK_BOTH_RIGHT  = 2,
    OT_AUDIO_TRACK_EXCHANGE    = 3,
    OT_AUDIO_TRACK_MIX          = 4,
    OT_AUDIO_TRACK_LEFT_MUTE   = 5,
    OT_AUDIO_TRACK_RIGHT_MUTE  = 6,
    OT_AUDIO_TRACK_BOTH_MUTE   = 7,
    OT_AUDIO_TRACK_BUTT
} ot_audio_track_mode;

【成员】

成员名称

描述

OT_AUDIO_TRACK_NORMAL

正常模式,不做处理

OT_AUDIO_TRACK_BOTH_LEFT

两个声道全部为左声道声音

OT_AUDIO_TRACK_BOTH_RIGHT

两个声道全部为右声道声音

OT_AUDIO_TRACK_EXCHANGE

左右声道数据互换,左声道为右声道声音,右声道为左声道声音

OT_AUDIO_TRACK_MIX

左右两个声道输出为左右声道相加(混音)

OT_AUDIO_TRACK_LEFT_MUTE

左声道静音,右声道播放原右声道声音

OT_AUDIO_TRACK_RIGHT_MUTE

右声道静音,左声道播放原左声道声音

OT_AUDIO_TRACK_BOTH_MUTE

左右声道均静音

【注意事项】

对于I2S多路复用的应用场景,设置声道模式无效。

【相关数据类型及接口】

  • ss_mpi_ai_set_track_mode

  • ss_mpi_ao_set_track_mode

ot_audio_fade_rate

【说明】

定义音频输出设备淡入淡出速度类型。

【定义】

typedef enum {
    OT_AUDIO_FADE_RATE_1   = 0,
    OT_AUDIO_FADE_RATE_2   = 1,
    OT_AUDIO_FADE_RATE_4   = 2,
    OT_AUDIO_FADE_RATE_8   = 3,
    OT_AUDIO_FADE_RATE_16  = 4,
    OT_AUDIO_FADE_RATE_32  = 5,
    OT_AUDIO_FADE_RATE_64  = 6,
    OT_AUDIO_FADE_RATE_128 = 7,
    OT_AUDIO_FADE_RATE_BUTT
} ot_audio_fade_rate;

【成员】

成员名称

描述

OT_AUDIO_FADE_RATE_1

1个采样点改变一次

OT_AUDIO_FADE_RATE_2

2个采样点改变一次

OT_AUDIO_FADE_RATE_4

4个采样点改变一次

OT_AUDIO_FADE_RATE_8

8个采样点改变一次

OT_AUDIO_FADE_RATE_16

16个采样点改变一次

OT_AUDIO_FADE_RATE_32

32个采样点改变一次

OT_AUDIO_FADE_RATE_64

64个采样点改变一次

OT_AUDIO_FADE_RATE_128

128个采样点改变一次

【注意事项】

无。

【相关数据类型及接口】

无。

ot_audio_fade

【说明】

音频输出设备淡入淡出配置结构体。

【定义】

typedef struct {
    td_bool         fade;
    ot_audio_fade_rate fade_in_rate;
    ot_audio_fade_rate fade_out_rate;
} ot_audio_fade;

【成员】

成员名称

描述

fade

是否开启淡入淡出功能。

TD_TRUE:开启淡入淡出功能。

TD_FALSE:关闭淡入淡出功能。

fade_in_rate

音频输出设备音量淡入速度。

fade_out_rate

音频输出设备音量淡出速度。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_ao_set_mute

ot_g726_bps

【说明】

定义G.726编解码协议速率。

【定义】

typedef enum {
    OT_G726_16K = 0,      /* G726 16kbps, see RFC3551.txt  4.5.4 G726-16 */
    OT_G726_24K,           /* G726 24kbps, see RFC3551.txt  4.5.4 G726-24 */
    OT_G726_32K,           /* G726 32kbps, see RFC3551.txt  4.5.4 G726-32 */
    OT_G726_40K,           /* G726 40kbps, see RFC3551.txt  4.5.4 G726-40 */
    OT_MEDIA_G726_16K,    /* G726 16kbps for ASF ... */
    OT_MEDIA_G726_24K,    /* G726 24kbps for ASF ... */
    OT_MEDIA_G726_32K,    /* G726 32kbps for ASF ... */
    OT_MEDIA_G726_40K,    /* G726 40kbps for ASF ... */
    OT_G726_BUTT,
} ot_g726_bps;

【成员】

成员名称

描述

OT_G726_16K

16kbps G.726,请参见“RFC3551文档4.5.4 G72616”。

OT_G726_24K

24kbps G.726,请参见“RFC3551文档4.5.4 G72624”。

OT_G726_32K

32kbps G.726,请参见“RFC3551文档4.5.4 G72632”。

OT_G726_40K

40kbps G.726,请参见“RFC3551文档4.5.4 G72640”。

OT_MEDIA_G726_16K

G726 16kbps for ASF。

OT_MEDIA_G726_24K

G726 24kbps for ASF。

OT_MEDIA_G726_32K

G726 32kbps for ASF。

OT_MEDIA_G726_40K

G726 40kbps for ASF。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_adpcm_type

【说明】

定义ADPCM编解码协议类型。

【定义】

typedef enum {
    OT_ADPCM_TYPE_DVI4 = 0,
    OT_ADPCM_TYPE_IMA,
    OT_ADPCM_TYPE_ORG_DVI4,
    OT_ADPCM_TYPE_BUTT,
} ot_adpcm_type;

【成员】

成员名称

描述

OT_ADPCM_TYPE_DVI4

32kbit/s ADPCM(DVI4)

OT_ADPCM_TYPE_IMA

32kbit/s ADPCM(IMA)

OT_ADPCM_TYPE_ORG_DVI4

32kbit/s ADPCM(ORG_DVI4)

【注意事项】

无。

【相关数据类型及接口】

无。

ot_audio_save_file_info

【说明】

定义音频保存文件功能配置信息结构体。

【定义】

typedef struct {
    td_bool cfg;
    td_char file_path[OT_MAX_AUDIO_FILE_PATH_LEN];
    td_char file_name[OT_MAX_AUDIO_FILE_NAME_LEN];
    td_u32  file_size;  /* in KB */
} ot_audio_save_file_info;

【成员】

成员名称

描述

cfg

配置使能开关。

file_path[OT_MAX_AUDIO_FILE_PATH_LEN]

音频文件保存路径。

file_name[OT_MAX_AUDIO_FILE_NAME_LEN]

音频文件保存名称。

file_size

文件大小,取值范围[1, 10240]KB。

【注意事项】

file_path默认使用当前位置,file_name默认使用“default”, file_size默认使用1M。其中file_name只是保存音频文件真正文件名的一部分,例如AI0 通道0在8k采样率下采用默认文件名保存的三个文件的真正名字为:sin_ai_dev0_chn0_8k_default.pcm、rin_ai_dev0_chn0_8k_default.pcm、sou_ai_dev0_chn0_8k_default.pcm。

【相关数据类型及接口】

无。

ot_audio_file_status

【说明】

定义音频文件保存状态结构体。

【定义】

typedef struct {
    td_bool saving;
} ot_audio_file_status;

【成员】

成员名称

描述

saving

是否处于存文件状态。

  • TD_TRUE:处于存文件状态;
  • TD_FALSE:不处于存文件状态。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_ai_chn_mode

【说明】

定义AI通道的工作模式。

【定义】

typedef enum {
    OT_AI_CHN_MODE_NORMAL = 0,     /* normal mode for AI chn */
    OT_AI_CHN_MODE_FAST,           /* fast mode for AI chn */
    OT_AI_CHN_MODE_BUTT,
} ot_ai_chn_mode;

【成员】

成员名称

描述

OT_AI_CHN_MODE_NORMAL

典型模式。

OT_AI_CHN_MODE_FAST

快速模式。

【注意事项】

无。

【相关数据类型及接口】

ot_ai_chn_attr

ot_ai_chn_attr

【说明】

定义AI通道属性结构体。

【定义】

typedef struct {
    ot_ai_chn_mode mode;       /* operating mode */
} ot_ai_chn_attr;

【成员】

成员名称

描述

mode

工作模式。

【注意事项】

无。

【相关数据类型及接口】

无。

音频编码

音频编码相关数据类型、数据结构定义如下:

  • OT_AENC_MAX_CHN_NUM:定义音频编码通道的最大个数。

  • OT_MAX_ENCODER_NAME_LEN:定义音频编码器名称最大长度

  • ot_aenc_attr_g711:定义G.711编码协议属性结构体。

  • ot_aenc_attr_g726:定义G.726编码协议属性结构体。

  • ot_aenc_attr_adpcm:定义ADPCM编码协议属性结构体。

  • ot_aenc_attr_lpcm:定义LPCM编码协议属性结构体。

  • ot_aenc_chn_attr:定义音频编码通道属性结构体。

  • ot_aenc_encoder:定义编码器属性结构体。

OT_AENC_MAX_CHN_NUM

【说明】

定义音频编码通道的最大个数。

【定义】

SS528V100/SS524V100/SS626V100:

#define OT_AENC_MAX_CHN_NUM         49

SS928V100:

#define OT_AENC_MAX_CHN_NUM         32

【注意事项】

无。

【相关数据类型及接口】

OT_MAX_ENCODER_NAME_LEN

【说明】

定义音频编码器名称最大长度。

【定义】

#define OT_MAX_ENCODER_NAME_LEN        17

【注意事项】

无。

【相关数据类型及接口】

ot_aenc_encoder

ot_aenc_attr_g711

【说明】

定义G.711编码协议属性结构体。

【定义】

typedef struct {
    td_u32 reserved;
} ot_aenc_attr_g711;

【成员】

成员名称

描述

reserved

待扩展用(目前暂未使用)。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_aenc_attr_g726

【说明】

定义G.726编码协议属性结构体。

【定义】

typedef struct {
    ot_g726_bps g726bps;
} ot_aenc_attr_g726;

【成员】

成员名称

描述

g726bps

G.726协议码率。

【注意事项】

无。

【相关数据类型及接口】

ot_g726_bps

ot_aenc_attr_adpcm

【说明】

定义ADPCM编码协议属性结构体。

【定义】

typedef struct {
    ot_adpcm_type adpcm_type;
} ot_aenc_attr_adpcm;

【成员】

成员名称

描述

adpcm_type

ADPCM类型。

【注意事项】

无。

【相关数据类型及接口】

ot_adpcm_type

ot_aenc_attr_lpcm

【说明】

定义LPCM编码协议属性结构体。

【定义】

typedef struct {
    td_u32 reserved;            /* reserve item */
} ot_aenc_attr_lpcm;

【成员】

成员名称

描述

reserved

待扩展用(目前暂未使用)。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_aenc_chn_attr

【说明】

定义音频编码通道属性结构体。该结构体的定义在不同解决方案平台上略有不同。具体见下面的描述。

【定义】

typedef struct {
    ot_payload_type     type;
    td_u32              point_num_per_frame;
    td_u32              buf_size;   /* buf size[2~OT_MAX_AUDIO_FRAME_NUM] */
    td_void ATTRIBUTE   *value;
} ot_aenc_chn_attr;

【成员】

成员名称

描述

type

音频编码协议类型。

静态属性。

point_num_per_frame

音频编码协议对应的帧长(编码时收到的音频帧长小于等于该帧长都可以进行编码)。

buf_size

音频编码缓存大小。

取值范围:[2, OT_MAX_AUDIO_FRAME_NUM],以帧为单位。

静态属性。

value

具体协议属性指针。

静态属性。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_aenc_encoder

【说明】

定义编码器属性结构体。

【定义】

typedef struct {
    ot_payload_type type;
    td_u32          max_frame_len;
    td_char         name[OT_MAX_ENCODER_NAME_LEN];
    td_s32          (*func_open_encoder)(td_void *encoder_attr,
    td_void **encoder);
    td_s32          (*func_enc_frame)(td_void *encoder,
    const ot_audio_frame *data,
    td_u8 *outbuf, td_u32 *out_len);
    td_s32          (*func_close_encoder)(td_void *encoder);
} ot_aenc_encoder;

【成员】

成员名称

描述

type

编码协议类型。

max_frame_len

最大码流长度。

name

编码器名称。

func_open_encoder

打开编码器的函数指针。

func_enc_frame

进行编码的函数指针。

func_close_encoder

关闭编码器的函数指针。

【注意事项】

请参见《音频组件API参考》。

【相关数据类型及接口】

ss_mpi_aenc_register_encoder

音频解码

音频解码相关数据类型、数据结构定义如下:

  • OT_MAX_AUDIO_FRAME_NUM:定义最大音频解码缓存帧数。

  • OT_ADEC_MAX_CHN_NUM:定义音频解码通道的最大个数。

  • OT_MAX_DECODER_NAME_LEN:定义音频解码器名称最大长度。

  • ot_adec_attr_g711:定义G.711解码协议属性结构体。

  • ot_adec_attr_g726:定义G.726解码协议属性结构体。

  • ot_adec_attr_adpcm:定义ADPCM解码协议属性结构体。

  • ot_adec_attr_lpcm:定义LPCM解码协议属性结构体。

  • ot_adec_mode:定义解码方式。

  • ot_adec_chn_attr:定义解码通道属性结构体。

  • ot_adec_decoder:定义解码器属性结构体。

  • ot_audio_frame_info:定义解码后的音频帧信息结构体。

  • ot_adec_chn_state:定义音频解码通道的数据缓存状态结构体。

  • ot_adec_chn_param:定义音频解码通道状态结构体。

OT_MAX_AUDIO_FRAME_NUM

【说明】

定义最大音频解码缓存帧数。

【定义】

#define OT_MAX_AUDIO_FRAME_NUM        300

【注意事项】

无。

【相关数据类型及接口】

无。

OT_ADEC_MAX_CHN_NUM

【说明】

定义音频解码通道的最大个数。

【定义】

SS528V100/SS524V100/SS928V100/SS626V100:

#define OT_ADEC_MAX_CHN_NUM         32

【注意事项】

无。

【相关数据类型及接口】

OT_MAX_DECODER_NAME_LEN

【说明】

定义音频解码器名称最大长度。

【定义】

#define OT_MAX_DECODER_NAME_LEN   17

【注意事项】

无。

【相关数据类型及接口】

ot_adec_decoder

ot_adec_attr_g711

【说明】

定义G.711解码协议属性结构体。

【定义】

typedef struct {
td_u32 reserved;
} ot_adec_attr_g711;

【成员】

成员名称

描述

reserved

待扩展用(目前暂未使用)。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_adec_attr_g726

【说明】

定义G.726解码协议属性结构体。

【定义】

typedef struct {
    ot_g726_bps g726bps;
} ot_adec_attr_g726;

【成员】

成员名称

描述

g726bps

G.726协议码率。

【注意事项】

无。

【相关数据类型及接口】

ot_g726_bps

ot_adec_attr_adpcm

【说明】

定义ADPCM解码协议属性结构体。

【定义】

typedef struct {
    ot_adpcm_type adpcm_type;
} ot_adec_attr_adpcm;

【成员】

成员名称

描述

adpcm_type

ADPCM类型。

【注意事项】

无。

【相关数据类型及接口】

ot_adpcm_type

ot_adec_attr_lpcm

【说明】

定义LPCM解码协议属性结构体。

【定义】

typedef struct {
    td_u32 reserved;
} ot_adec_attr_lpcm;

【成员】

成员名称

描述

reserved

待扩展用(目前暂未使用)。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_adec_mode

【说明】

定义解码方式。

【定义】

typedef enum {
    OT_ADEC_MODE_PACK = 0, /* require input is valid dec pack(a
                                   complete frame encode result),
                                   e.g.the stream get from AENC is a
                                   valid dec pack, the stream know actually
                                   pack len from file is also a dec pack.
                                   this mode is high-performative */
    OT_ADEC_MODE_STREAM,  /* input is stream, low-performative,
                                 if you couldn't find out whether a stream is
                                 vaild dec pack,you could use
                                 this mode */
    OT_ADEC_MODE_BUTT
} ot_adec_mode;

【成员】

成员名称

描述

OT_ADEC_MODE_PACK

Pack方式解码。

OT_ADEC_MODE_STREAM

stream方式解码。

【注意事项】

  • pack方式用于用户确认当前码流包为一帧数据编码结果的情况下,解码器会直接进行对其解码,如果不是一帧,解码器会出错。这种模式的效率比较高,在使用AENC模块编码的码流包如果没有破坏,均可以使用此方式解码。

  • stream方式用于用户不能确认当前码流包是不是一帧数据的情况下,解码器需要对码流进行判断并缓存,此工作方式的效率低下,一般用于读文件码流送解码或者不确定码流包边界的情况。当然由于语音编码码流长度固定,很容易确定在码流中的帧边界,推荐使用pack方式解码。

【相关数据类型及接口】

无。

ot_adec_chn_attr

【说明】

定义解码通道属性结构体。该结构体的定义在不同解决方案平台上略有不同。具体见下面的描述。

【定义】

typedef struct {
    ot_payload_type type;
    td_u32          buf_size;   /* buf size[2~OT_MAX_AUDIO_FRAME_NUM] */
    ot_adec_mode       mode;    /* decode mode */
    td_void ATTRIBUTE *value;
} ot_adec_chn_attr;

【成员】

成员名称

描述

type

音频解码协议类型。

静态属性。

buf_size

音频解码缓存大小。

取值范围:[2, OT_MAX_AUDIO_FRAME_NUM],以帧为单位。

静态属性。

mode

解码方式。

静态属性。

value

具体协议属性指针。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_adec_decoder

【说明】

定义解码器属性结构体。

【定义】

typedef struct {
    ot_payload_type type;
    td_char         name[OT_MAX_DECODER_NAME_LEN];
    td_s32          (*func_open_decoder)(td_void *decoder_attr, td_void **decoder);
    td_s32          (*func_dec_frame)(td_void *decoder, td_u8 **inbuf, td_s32 *left_byte, td_u16 *outbuf, td_u32 *out_len, td_u32 *chns);
    td_s32          (*func_get_frame_info)(td_void *decoder, td_void *info);
    td_s32          (*func_close_decoder)(td_void *decoder);
    td_s32          (*func_reset_decoder)(td_void *decoder);
} ot_adec_decoder;

【成员】

成员名称

描述

type

解码协议类型。

name

解码器名称。

func_open_decoder

打开解码器的函数指针。

func_dec_frame

进行解码的函数指针。

func_get_frame_info

获取音频帧信息的函数指针。

func_close_decoder

关闭解码器的函数指针。

func_reset_decoder

清空缓存buffer,复位解码器。

【注意事项】

请参见《音频组件API参考》。

【相关数据类型及接口】

ss_mpi_adec_register_decoder

ot_audio_frame_info

【说明】

定义解码后的音频帧信息结构体。

【定义】

typedef struct {
    ot_audio_frame *frame;
    td_u32         id;
} ot_audio_frame_info;

【成员】

成员名称

描述

frame

音频帧指针。

id

音频帧的索引,范围:[0, 49]

【注意事项】

请参见《音频组件API参考》。

【相关数据类型及接口】

  • ss_mpi_adec_get_frame

  • ss_mpi_adec_release_frame

ot_adec_chn_state

【说明】

定义音频解码通道的数据缓存状态结构体。

【定义】

typedef struct {
    td_bool end_of_stream;
    td_u32  buf_total_num;
    td_u32  buf_free_num;
    td_u32  buf_busy_num;
} ot_adec_chn_state;

【成员】

成员名称

描述

end_of_stream

解码码流结束状态。

buf_total_num

解码通道总的缓存块数。

buf_free_num

可用的空闲缓存块数。

buf_busy_num

被占用缓存块数。

ot_adec_chn_param

【说明】

定义音频解码通道状态结构体。

【定义】

typedef struct {
    td_bool sys_bind_support;
} ot_adec_chn_param;

【成员】

成员名称

描述

sys_bind_support

是否开启adec数据送ao线程

TD_TRUE:开启线程。

TD_FALSE:关闭线程。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_adec_query_chn_status

内置Audio Codec

内置Audio Codec相关数据类型、数据结构定义如下:

  • ot_acodec_fs:定义I2S接口的采样率选择。

  • ot_acodec_mixer:定义内置Audio Codec 输入选择。

  • ot_acodec_volume_ctrl:定义内置Audio Codec音量控制结构体。

ot_acodec_fs

【说明】

定义I2S接口的采样率选择。

【定义】

typedef enum {
    OT_ACODEC_FS_8000  =   0x1,
    OT_ACODEC_FS_11025 =   0x2,
    OT_ACODEC_FS_12000 =   0x3,
    OT_ACODEC_FS_16000 =   0x4,
    OT_ACODEC_FS_22050 =   0x5,
    OT_ACODEC_FS_24000 =   0x6,
    OT_ACODEC_FS_32000 =   0x7,
    OT_ACODEC_FS_44100 =   0x8,
    OT_ACODEC_FS_48000 =   0x9,
    OT_ACODEC_FS_64000 =   0xa,
    OT_ACODEC_FS_96000 =   0xb,
    OT_ACODEC_FS_BUTT = 0xc,
} ot_acodec_fs;

【成员】

成员名称

描述

OT_ACODEC_FS_48000

48kHz采样率。

OT_ACODEC_FS_24000

24kHz采样率。

OT_ACODEC_FS_12000

12kHz采样率。

OT_ACODEC_FS_44100

44.1kHz采样率。

OT_ACODEC_FS_22050

22.05kHz采样率。

OT_ACODEC_FS_11025

11.025kHz采样率。

OT_ACODEC_FS_32000

32kHz采样率。

OT_ACODEC_FS_16000

16kHz采样率。

OT_ACODEC_FS_8000

8kHz采样率。

OT_ACODEC_FS_64000

64kHz采样率。

OT_ACODEC_FS_96000

96kHz采样率。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_acodec_mixer

【说明】

定义内置Audio Codec 输入选择。

【定义】

typedef enum {
    OT_ACODEC_MIXER_IN0   = 0x0,
    OT_ACODEC_MIXER_IN1   = 0x1,
    OT_ACODEC_MIXER_IN_D = 0x2,
    OT_ACODEC_MIXER_BUTT,
} ot_acodec_mixer

【成员】

成员名称

描述

OT_ACODEC_MIXER_IN0

MICPGA选择IN0单端输入

OT_ACODEC_MIXER_IN1

MICPGA选择IN1单端输入

OT_ACODEC_MIXER_IN_D

MPCPGA选择IN_D差分输入

【注意事项】

SS625V100/SS928V100/SS626V100的音频内置codec输入接口只有1组,编号为1(每组包含一对左右声道),使用单端输入时,需要选择IN1,使用差分输入时,从IN1的左右声道输入一路差分信号(最终输出单声道)。

【相关数据类型及接口】

无。

ot_acodec_volume_ctrl

【说明】

定义内置Audio Codec音量控制结构体。

【定义】

typedef struct {
     /* volume control, 0x00~0x7e, 0x7F:mute */
     unsigned int volume_ctrl;
    /* adc/dac mute control, 1:mute, 0:unmute */
    unsigned int volume_ctrl_mute;
} ot_acodec_volume_ctrl;

【成员】

成员名称

描述

volume_ctrl

音量大小。

volume_ctrl_mute

静音控制。

【注意事项】

无。

【相关数据类型及接口】

无。

错误码

音频基础属性错误码

表 1 音频基础属性API错误码

错误代码

宏定义

描述

0xa0148007

OT_ERR_AIO_ILLEGAL_PARAM

音频基础属性参数设置无效

0xa014800a

OT_ERR_AIO_NULL_PTR

输入参数空指针错误

0xa014800d

OT_ERR_AIO_NOT_PERM

操作不允许

0xa0148018

OT_ERR_AIO_NOT_READY

音频基础系统未初始化

0xa0148022

OT_ERR_AIO_BUSY

音频基础系统忙

0xa0148041

OT_ERR_AIO_REGISTER_ERR

注册失败

音频输入错误码

表 1 音频输入API错误码

错误代码

宏定义

描述

0xa0158001

OT_ERR_AI_INVALID_DEV_ID

音频输入设备号无效

0xa0158003

OT_ERR_AI_INVALID_CHN_ID

音频输入通道号无效

0xa0158007

OT_ERR_AI_ILLEGAL_PARAM

音频输入参数设置无效

0xa0158010

OT_ERR_AI_NOT_ENABLED

音频输入设备或通道没有使能

0xa015800a

OT_ERR_AI_NULL_PTR

输入参数空指针错误

0xa015800b

OT_ERR_AI_NOT_CFG

音频输入设备属性未设置

0xa015800c

OT_ERR_AI_NOT_SUPPORT

操作不支持

0xa015800d

OT_ERR_AI_NOT_PERM

操作不允许

0xa0158014

OT_ERR_AI_NO_MEM

分配内存失败

0xa0158015

OT_ERR_AI_NO_BUF

音频输入缓存不足

0xa0158016

OT_ERR_AI_BUF_EMPTY

音频输入缓存为空

0xa0158017

OT_ERR_AI_BUF_FULL

音频输入缓存为满

0xa0158018

OT_ERR_AI_NOT_READY

音频输入系统未初始化

0xa0158022

OT_ERR_AI_BUSY

音频输入系统忙

0xa0158041

OT_ERR_AI_VQE_ERR

AI VQE处理错误

音频输出错误码

表 1 音频输出API错误码

错误代码

宏定义

描述

0xa0168001

OT_ERR_AO_INVALID_DEV_ID

音频输出设备号无效

0xa0168003

OT_ERR_AO_INVALID_CHN_ID

音频输出通道号无效

0xa0168007

OT_ERR_AO_ILLEGAL_PARAM

音频输出参数设置无效

0xa0168010

OT_ERR_AO_NOT_ENABLED

音频输出设备或通道没使能

0xa016800a

OT_ERR_AO_NULL_PTR

输出空指针错误

0xa016800b

OT_ERR_AO_NOT_CFG

音频输出设备属性未设置

0xa016800c

OT_ERR_AO_NOT_SUPPORT

操作不被支持

0xa016800d

OT_ERR_AO_NOT_PERM

操作不允许

0xa0168014

OT_ERR_AO_NO_MEM

系统内存不足

0xa0168015

OT_ERR_AO_NO_BUF

音频输出缓存不足

0xa0168016

OT_ERR_AO_BUF_EMPTY

音频输出缓存为空

0xa0168017

OT_ERR_AO_BUF_FULL

音频输出缓存为满

0xa0168018

OT_ERR_AO_NOT_READY

音频输出系统未初始化

0xa0168022

OT_ERR_AO_BUSY

音频输出系统忙

0xa0168041

OT_ERR_AO_VQE_ERR

AO VQE处理错误

音频编码错误码

表 1 音频编码API错误码

错误代码

宏定义

描述

0xa0178001

OT_ERR_AENC_INVALID_DEV_ID

音频设备号无效

0xa0178003

OT_ERR_AENC_INVALID_CHN_ID

音频编码通道号无效

0xa0178007

OT_ERR_AENC_ILLEGAL_PARAM

音频编码参数设置无效

0xa0178008

OT_ERR_AENC_EXIST

音频编码通道已经创建

0xa0178009

OT_ERR_AENC_UNEXIST

音频编码通道未创建

0xa017800a

OT_ERR_AENC_NULL_PTR

输入参数空指针错误

0xa017800b

OT_ERR_AENC_NOT_CFG

编码通道未配置

0xa017800c

OT_ERR_AENC_NOT_SUPPORT

操作不被支持

0xa017800d

OT_ERR_AENC_NOT_PERM

操作不允许

0xa0178014

OT_ERR_AENC_NO_MEM

系统内存不足

0xa0178015

OT_ERR_AENC_NO_BUF

编码通道缓存分配失败

0xa0178016

OT_ERR_AENC_BUF_EMPTY

编码通道缓存空

0xa0178017

OT_ERR_AENC_BUF_FULL

编码通道缓存满

0xa0178018

OT_ERR_AENC_NOT_READY

系统没有初始化

0xa0178040

OT_ERR_AENC_ENCODER_ERR

音频编码数据错误

0xa0178041

OT_ERR_AENC_VQE_ERR

AENC VQE处理错误

音频解码错误码

表 1 音频解码API错误码

错误代码

宏定义

描述

0xa0188001

OT_ERR_ADEC_INVALID_DEV_ID

音频解码设备号无效

0xa0188002

OT_ERR_ADEC_INVALID_CHN_ID

音频解码通道号无效

0xa0188007

OT_ERR_ADEC_ILLEGAL_PARAM

音频解码参数设置无效

0xa0188008

OT_ERR_ADEC_EXIST

音频解码通道已经创建

0xa0188009

OT_ERR_ADEC_UNEXIST

音频解码通道未创建

0xa018800a

OT_ERR_ADEC_NULL_PTR

输入参数空指针错误

0xa018800b

OT_ERR_ADEC_NOT_CFG

解码通道属性未配置

0xa018800c

OT_ERR_ADEC_NOT_SUPPORT

操作不被支持

0xa018800d

OT_ERR_ADEC_NOT_PERM

操作不允许

0xa0188014

OT_ERR_ADEC_NO_MEM

系统内存不足

0xa0188015

OT_ERR_ADEC_NO_BUF

解码通道缓存分配失败

0xa0188016

OT_ERR_ADEC_BUF_EMPTY

解码通道缓存空

0xa0188017

OT_ERR_ADEC_BUF_FULL

解码通道缓存满

0xa0188018

OT_ERR_ADEC_NOT_READY

系统没有初始化

0xa0188040

OT_ERR_ADEC_DECODER_ERR

音频解码数据错误

0xa0188041

OT_ERR_ADEC_BUF_LACK

解码输入缓存空间不够

Resampler错误码

表 1 Resampler API错误码

错误代码

宏定义

描述

0x80000001

OT_ERR_RESAMPLE_HANDLE

重采样模块句柄无效

0x80000002

OT_ERR_RESAMPLE_PCMBUF

重采样输入输出缓存无效

0x80000003

OT_ERR_RESAMPLE_SAMPLE_NUMBER

输入采样点数错误

0x80000004

OT_ERR_RESAMPLE_OUTPCM_SPACE

输出缓存空间不够

0x80000005

OT_ERR_PCM_CHANNEL

输入通道数错误

0x80000006

OT_ERR_PCM_FORMAT

输入位宽错误

0x80000007

OT_ERR_INVALID_BYPASSFLAG

无效的透传标志

0x80000009

OT_ERR_INPUT_EMPTY_POINTER

输入参数空指针错误