Skip to main content

hi_mpi_ao_enable_resample

hi_mpi_ao_enable_resample

函数功能

启用AO重采样。

约束说明

  • 调用hi_mpi_ao_enable_chn接口启用AO通道之后,调用hi_mpi_sys_bind接口绑定ADEC与AO之前,调用本接口启用重采样功能。
  • 调用hi_mpi_ao_disable_chn接口禁用AO通道后,如果重新启用AO通道,并使用重采样功能,需调用本接口再次启用重采样。
  • AO重采样的输入采样率必须与AO设备属性配置的采样率不相同。
  • 由于奈奎斯特采样定理的限制,在音频采样率为8kHz时,则所支持的音频频率小于4kHz。
  • 由于AO的采样率固定为48kHz,G.711a、G.711u协议的采样率仅支持8kHz,因此需启用重采样功能;而48kHz在AAC协议采样率支持的范围内,因此使用AAC协议时,在AO时无需重采样。

函数原型

hi_s32 hi_mpi_ao_enable_resample(hi_audio_dev ao_dev, hi_ao_chn ao_chn, hi_audio_sample_rate in_sample_rate);

参数说明

参数名输入/输出说明。
ao_dev输入音频设备号,取值范围:[0, 4]。 NVR(Network Video Recorder)场景中仅涉及dev2、dev3。
ao_chn输入音频输出通道号。目前只支持单声道(左声道),所以ao_chn取值固定为0。
hi_audio_sample_rate输入音频重采样的输入采样率,目前只支持8k。

返回值说明

参考资源

接口调用流程,参见语音对讲功能(NVR场景)

父主题: AI音频输入/AO音频输出

hi_mpi_ao_disable_resample

函数功能

禁用 AO 重采样。

函数原型

hi_s32 hi_mpi_ao_disable_resample(hi_audio_dev ao_dev, hi_ao_chn ao_chn);

参数说明

参数名输入/输出说明。
ao_dev输入音频设备号,取值范围:[0, 4]。 NVR(Network Video Recorder)场景中仅涉及dev2、dev3。
ao_chn输入音频输出通道号。 目前只支持单声道(左声道),所以ao_chn取值固定为0。

返回值说明

参考资源

接口调用流程,参见语音对讲功能(NVR场景)

父主题: AI音频输入/AO音频输出

功能及约束说明

当前仅支持G.711a、G.711u、AAC(Advanced Audio Coding)协议、单声道数据进行编码、解码,且为软件编码、解码。本章中的接口均不支持多进程**,**且同一个设备ID不支持在多线程中使用

音频编码时,G.711a、G.711u码流遵循以下表格中描述的帧结构,即在每帧码流数据的净荷数据之前填充有4个字节的帧头;音频解码时,需要读取相应的帧头信息。在G.711a、G.711u码流中,目前帧头中的数据净荷长度需为40,80,120,160,240(单位:hi_s16),所以对应的每帧采样点数即为80,160,240,320,480。但在VQE(Voice Quality Enhancement)框架中,编解码操作是与AI、AO绑定在一起,所以支持的每帧采样点数范围缩小。

参数位置(单位:hi_s16)

参数比特位说明

参数含义

0

[15:8]

数据帧类型标志位。

01:语音帧;

其他:保留。

[7:0]

保留。

1

[15:8]

帧循环计数器:0~255。

[7:0]

数据净荷长度(单位:hi_s16)。

2

[15:0]

净荷数据。

3

[15:0]

净荷数据。

......

[15:0]

净荷数据。

n+1

[15:0]

净荷数据。

n+2

[15:0]

净荷数据。

G.711a、G.711u、AAC协议的相关规格及优缺点如下:

协议采样率每帧采样点数码率(kbps)压缩率CPU消耗描述
G.711a、G.711u8kHz80/160/240/320/4806421 MHz- 优点:语音质量最好;CPU消耗小;支持广泛,协议免费。
- 缺点:压缩效率低。
AAC 仅支持MPEG-4版本、无CRC(Cyclic Redundancy Check)校验的音频码流48kHz1024[48, 256]与码率相关,码率越小,压缩率越大-- 优点:持更高采样率的编解码,能够保留原始音频的更多高频信息,同时拥有更多的码率范围选择,压缩率更高。
- 缺点:算法复杂度高。

父主题: AENC音频编码/ADEC音频解码

hi_mpi_aenc_create_chn

函数功能

创建音频编码通道。

约束说明

通道如果已经被创建,则会返回通道已创建的错误。

函数原型

hi_s32 hi_mpi_aenc_create_chn(hi_aenc_chn aenc_chn, const hi_aenc_chn_attr *****attr);

参数说明

参数名输入/输出说明。
aenc_chn输入通道号,取值范围[0,6)
attr输入音频编码通道属性指针。

返回值说明

父主题: AENC音频编码/ADEC音频解码

hi_mpi_aenc_destroy_chn

函数功能

销毁音频编码通道。

函数原型

hi_s32 hi_mpi_aenc_destroy_chn(hi_aenc_chn aenc_chn**);**

参数说明

参数名输入/输出说明。
aenc_chn输入通道号,取值范围[0,6)

返回值说明

父主题: AENC音频编码/ADEC音频解码

在线提单