---
title: NVR场景语音对讲
description: "本节介绍NVR音频业务处理的典型流程、关键接口及注意事项。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/acldevg/aclcppdevg_000068.html
sourcePath: /source/zh/canncommercial/900/programug/acldevg/aclcppdevg_000068.html
indexId: a76214b19ee3fb142bc32c4be92d30bc702b5a389e838066a4db107a685136ef70
---
# NVR场景语音对讲

本节介绍NVR音频业务处理的典型流程、关键接口及注意事项。

NVR，全称Network Video Recorder，即网络视频录像机，是网络视频系统的存储转发部分，NVR与网络摄像机协同工作，完成音频&视频的录像、存储及转发功能，同时，NVR具备本地人机交互界面、视频解码、视频显示及语音对讲功能。

#### NVR音频场景说明

本章节描述NVR音频业务（语音对讲功能）的接口调用流程。在语音对讲功能中，包括媒体数据处理系统初始化&去初始化、接收IP Camera发送的语音并播放声音、录制声音并向IP Camera发送语音，涉及的模块包括公共模块、音频输入模块（AI）,音频编码模块（AENC）、音频输出模块（AO）、音频解码模块（ADEC）。


#### 接收IP Camera发送的语音并播放声音

图1 接收IP Camera发送的语音并播放声音

接口调用流程说明如下：

1. 调用hi_mpi_adec_create_chn接口创建音频解码通道。
2. 启用AO音频输出设备和通道：

  a. 调用hi_mpi_ao_set_pub_attr接口设置AO设备属性。
  b. 调用hi_mpi_ao_enable接口启动AO设备。
  c. 调用hi_mpi_ao_enable_chn接口启动AO通道
  d. 调用hi_mpi_ao_enable_resample接口启用AO重采样功能。
    由于AO的采样率固定为48kHz，G.711a、G.711u协议的采样率仅支持8kHz，因此需启用重采样功能；而48kHz在AAC协议采样率支持的范围内，因此使用AAC协议时，在AO时无需重采样。

3. 调用hi_mpi_sys_bind接口绑定ADEC与AO。| ADEC设备ID | ADEC通道号 | AO设备ID | AO通道号 |
| --- | --- | --- | --- |
| 0 | 0 | 2 | 0 |
| 0 | 1 | 3 | 0 |


4. 循环调用hi_mpi_adec_send_stream接口将每一帧待解码音频数据发送给解码器进行解码。
  解码后的音频数据，根据3中的绑定关系，被自动发送到对应的AO设备，用于音频播放。

5. 音频播放完成后，在退出流程中，先调用hi_mpi_sys_unbind接口解绑ADEC与AO，再依次调用hi_mpi_ao_disable_resample接口禁用AO重采样功能、调用hi_mpi_ao_disable_chn接口禁用AO通道、调用hi_mpi_ao_disable接口禁用AO设备，最后调用hi_mpi_adec_destroy_chn接口进行销毁ADEC通道。


#### 录制声音并向IP Camera发送语音

图2 录制声音并向IP Camera发送语音

接口调用流程说明如下：

1. 启用AI音频输入设备和通道：

  a. 调用hi_mpi_ai_set_pub_attr接口设置AI设备属性。
  b. 调用hi_mpi_ai_enable接口启动AI设备。
  c. 调用hi_mpi_ai_set_chn_attr接口设置AI通道属性。
  d. 调用hi_mpi_ai_enable_chn接口启动AI通道。
  e. 调用hi_mpi_ai_enable_resample接口启用AI重采样功能。
    由于AI的采样率固定为48kHz，G.711a、G.711u协议的采样率仅支持8kHz，因此需启用重采样功能；而48kHz在AAC协议采样率支持的范围内，因此使用AAC协议时，在AI时无需重采样。

2. 调用hi_mpi_aenc_create_chn接口创建音频编码通道。
3. 调用hi_mpi_sys_bind接口绑定AI与AENC。| AI设备ID | AI通道号 | AENC设备ID | AENC通道号 |
| --- | --- | --- | --- |
| 2 | 0 | 0 | 0 |


4. 循环调用hi_mpi_aenc_get_stream获取编码数据，编码数据使用完成后，及时调用hi_mpi_aenc_release_stream接口释放编码数据。
  经过AI设备获取到的音频数据，根据3中的绑定关系，被自动发送到对应的AENC通道进行编码，用于向IP Camera发送语音。

5. 发送语音完成后，在退出流程中，先调用hi_mpi_sys_unbind接口解绑AI与AENC，再调用hi_mpi_aenc_destroy_chn接口进行销毁AENC通道，最后依次调用hi_mpi_ai_disable_resample接口禁用AI重采样功能、调用hi_mpi_ai_disable_chn接口禁用AI通道、调用hi_mpi_ai_disable接口禁用AI设备。
