数据类型¶
音频输入输出¶
音频输入输出相关数据类型、数据结构定义如下:
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_MAX_AUDIO_FILE_NAME_LEN¶
【说明】
定义音频保存文件的名称的最大长度限制。
【定义】
#define OT_MAX_AUDIO_FILE_NAME_LEN 256
【注意事项】
无。
【相关数据类型及接口】
OT_AUDIO_FRAME_CHN_NUM¶
【说明】
定义存放音频数据的最大声道数。
【定义】
#define OT_AUDIO_FRAME_CHN_NUM 2
【注意事项】
无。
【相关数据类型及接口】
OT_VQE_EQ_BAND_NUM¶
【说明】
定义EQ功能可调节的频段数。
【定义】
#define OT_VQE_EQ_BAND_NUM 10
【注意事项】
无。
【相关数据类型及接口】
OT_VQE_DRC_SEC_NUM¶
【说明】
定义DRC动态曲线可配置级数。
【定义】
#define OT_VQE_DRC_SEC_NUM 5
【注意事项】
无。
【相关数据类型及接口】
OT_AEC_ERL_BAND_NUM¶
【说明】
定义AEC功能ERL保护频段的数目。
【定义】
#define OT_AEC_ERL_BAND_NUM 6
【注意事项】
无。
【相关数据类型及接口】
OT_AEC_ERL_BAND_VALUE_NUM¶
【说明】
定义AEC功能ERL保护频段值的数目。
【定义】
#define OT_AEC_ERL_BAND_VALUE_NUM 7
【注意事项】
无。
【相关数据类型及接口】
OT_TALKVQEV2_EQ_BAND_NUM¶
【说明】
定义TalkVqeV2 EQ功能可调节的频段数。
【定义】
#define OT_TALKVQEV2_EQ_BAND_NUM 30
【注意事项】
无。
【相关数据类型及接口】
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_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_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_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_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_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}。
静态属性,保留参数,一般设置成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_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_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_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_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_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_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_v2_wnr_cfg¶
【说明】
定义音频TalkVqeV2降风噪功能配置信息结构体。
【定义】
typedef struct {
td_s8 reserved[6]; /* 6: reserved */
} ot_ai_talk_v2_wnr_cfg;
【成员】
成员名称 |
描述 |
|---|---|
reserved[6] |
保留,未使用。 |
【注意事项】
无。
【相关数据类型及接口】
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_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_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 |
是否处于存文件状态。
|
【注意事项】
无。
【相关数据类型及接口】
无。
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¶
【说明】
定义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_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_aenc_attr_adpcm¶
【说明】
定义ADPCM编码协议属性结构体。
【定义】
typedef struct {
ot_adpcm_type adpcm_type;
} ot_aenc_attr_adpcm;
【成员】
成员名称 |
描述 |
|---|---|
adpcm_type |
ADPCM类型。 |
【注意事项】
无。
【相关数据类型及接口】
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_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_adec_attr_adpcm¶
【说明】
定义ADPCM解码协议属性结构体。
【定义】
typedef struct {
ot_adpcm_type adpcm_type;
} ot_adec_attr_adpcm;
【成员】
成员名称 |
描述 |
|---|---|
adpcm_type |
ADPCM类型。 |
【注意事项】
无。
【相关数据类型及接口】
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 |
输入参数空指针错误 |