当前位置: 首页 > news >正文

RV1126 音频AI模块的详解

一.什么是音频AI模块

RV1126的AI模块指的是音频输入模块,它的作用是通过内置芯片读取麦克风等音频的模拟信号,然后把音频模拟信号转换成数字信号。在RV1126里面,音频AI模块是所有音频输入的入口。下面是AI模块和麦克风等音频输入模块的关系

  • AI模块结构体的重要参数

下面是AI_CHN_ATTR_S结构体的成员变量

pcAudioNodeAUDIO音频节点,默认是default

enSampleFormat采样格式,下面是RV1126的提供的采样格式,下面好多种采样格式,我们来分别讲解一下:

RK_SAMPLE_FMT_U8:无符号整型8位采样格式,它是8BIT采样格式的一种,这里的Uunsigned的缩写

RK_SAMPLE_FMT_S16:整型16位采样格式,它是16IT采样格式,Ssigned的缩写

RK_SAMPLE_FMT_S32:整型32位采样格式,它是32IT采样格式,Ssigned的缩写

RK_SAMPLE_FMT_FLT:利用float格式去采样,它是用浮点型格式进行采样。取值范围是[-1.0, 1.0]

RK_SAMPLE_FMT_U8P:无符号整型8位采样平面格式,这里的P表示的是平面格式,平面格式指的是非交错模式,如:LLLLLLRRRRRRLLLLLLRRRRRRLLLLLLRRRRRRL

RK_SAMPLE_FMT_S16P:整型16位采样平面格式,这里的P表示的是平面格式,平面格式指的是非交错模式,如:LLLLLLRRRRRRLLLLLLRRRRRRLLLLLLRRRRRRL

RK_SAMPLE_FMT_S32P:整型32位采样平面格式,这里的P表示的是平面格式,平面格式指的是非交错模式,如:LLLLLLRRRRRRLLLLLLRRRRRRLLLLLLRRRRRRLR

RK_SAMPLE_FMT_FLTP:浮点型采样平面格式,这里的P表示的是平面格式,平面格式指的是非交错模式,如:LLLLLLRRRRRRLLLLLLRRRRRRLLLLLLRRRRRRL

RK_SAMPLE_FMT_G711A:G711A是标准的ITU-T推荐的标准之一采用8位精度进行采样,它主要运用在电话领域。A表示的是将一个13bitPCM样本压缩成8bit样本

RK_SAMPLE_FMT_G711U:G711U是标准的ITU-T推荐的标准之一采用8位精度进行采样,它主要运用在电话领域。U表示的是将一个14bitPCM样本压缩成8bit样本。

2.3. u32Channels音频通道数,音频默认通道数是2

2.4. u32SampleRate音频采样率,在RV1126里面常用的采样率是160004410048000三种。目前在这个开发中,我们用的是48000,因为48000采样率的音频效果最好

2.5. u32NbSample每一帧的采样个数,这个参数要和对应的音频编码格式来设置。AAC音频编码格式对应的采样个数是1024MP3音频编码格式对应的采样个数是1152,其实还有很多。

2.6. enAiLayout音频输入布局类型,它提供了三个成员变量选择:AI_LAYOUT_NORMALAI_LAYOUT_MIC_REF、AI_LAYOUT_REF_MIC。它默认是用的是AI_LAYOUT_NORMAL类型,默认是AI_LAYOUT_NORMAL。

二.设置AI模块的API

3.1. RK_MPI_AI_SetChnAttr的功能:

RK_MPI_AI_SetChnAttr功能主要是设置AI通道属性

第一个参数:AI模块的通道号ID,取值范围是[0, AI_MAX_CHN_NUM]

第二个参数:AI_CHN_ATTR_S结构体指针

3.2. RK_MPI_AI_EnableChn的功能:

RK_MPI_AI_EnableChn功能主要是打开AI通道

第一个参数:AI模块的通道号ID,这里填的值和设置的通道号一致

3.3. RK_MPI_AI_StartStream的功能:

RK_MPI_AI_StartStream功能主要是启动AI音频流

第一个参数:AI模块的通道号ID,这里填的值和设置的通道号一致

http://www.xdnf.cn/news/614107.html

相关文章:

  • 树莓派4B搭建Hector SLAM算法, ROS1 ROS2?
  • 淘宝卖家评价等级如何区分?如何提升信誉等级?
  • 数据结构 -- 插入排序(直接插入排序和希尔排序)
  • 告别手抖困扰:全方位健康护理指南
  • React从基础入门到高级实战:React 基础入门 - 状态与事件处理
  • 量化交易新时代:Tick数据与股票API的完美融合
  • Python set集合方法详解
  • 无法选择最佳操作符(APP) 目录
  • 8级-数组
  • Axure元件动作五:设置列表选中项
  • Java SpringBoot 扣子CozeAI SseEmitter流式对话完整实战 打字机效果
  • 211. 添加与搜索单词 - 数据结构设计
  • 【Qt开发】按钮类控件
  • 5.24 note
  • FFmpeg 安装包全攻略:gpl、lgpl、shared、master 区别详解
  • spring注解旁路问题讨论
  • 使用Python在PowerPoint中插入形状(Shape)
  • 技术文档的进阶之旅
  • 文章记单词 | 第107篇(六级)
  • 3par persona设置错误,linux I/O持续报错
  • mPLUG-Owl3图片描述
  • SQL实战之索引优化(单表、双表、三表、索引失效)
  • FFplay 播放原始数据
  • C++性能测试工具——sysprof的使用
  • 【AUTOSAR网络管理】T_NM_Timeout参数测试指南
  • 【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(4)
  • 强化学习鱼书(8)——DQN
  • Qt window frame + windowTitle + windowIcon属性(3)
  • Android11以上通过adb复制文件到内置存储让文件管理器可见
  • 实验13 数据库权限管理