VQE音频处理流程

VQE

上行VQE,主要针对MIC采集部分的音频增强

在这里插入图片描述

下行VQE,主要针对SPK播放部分的音频增强

在这里插入图片描述

附关键词解释

  1. RES
    RES 模块为重采样(Resampler)模块。当AI上行或AO下行通路中开启VQE 各功能
    模块时,在处理前后各存在一次重采样,第一次的作用是将输入采样率下的音频数据转换成功能模块所支持的工作采样率(8kHz/16kHz/48kHz),第二次则将工作采样率下的数据转换成输出采样率。

  2. HPF
    HPF为高通滤波(high-pass filte)模块,主要负责去除低频噪声。
    低频噪声来源经常为硬件噪声或工频噪声,表现为轰轰轰类不舒适的声音。我们可以
    通过使用频谱分析单板在安静环境下录制的码流,来确定是否需要加入该模块。如果
    低频噪声不是非常明显,并且客户需要保留低频部分的音源,则不建议加入该模块。

  3. HDR
    HDR为高动态范围(High Dynamic Range)模块,主要用于Codec输入音量控制,通
    过动态调节Codec增益控制Codec音量在合理范围内,保证声音不至于过大或过小。

  4. EQ
    EQ模块为均衡处理器(Equalizer)模块,主要对音频数据进行均衡处理,以调节音频
    数据中各频段声音的增益。

  5. DRC
    DRC为动态压缩控制(Dynamic Range Control)模块,负责控制输出电平,将输出增
    益控制在一个范围,主要工作在需要保证声音不至于过大或过小的场景下。
    DRC与AGC作用相似,但算法实现及调节力度不同。其配合RNR 使用在运动DV场
    景,与AEC/ANR 互斥。

  6. RNR
    RNR为录音噪声消除(Record Noise Reduction)模块,主要工作在需要去除环境噪
    声,但保留小信号输入的场景下。
    与 ANR 算法比起来,RNR 更讲究细节输入(小信号)的保留度,RNR 会在降噪的同
    时保留小信号的输入,所以降噪力度会低一点,但能更多的保留现场声音,真实还原
    场景,适用于运动DV 场景。

  7. AGC
    AGC为自动增益控制(Auto Gain Control)模块,主要负责增益控制输出电平,在声
    音输入音量有大小变化时,能将输出音量控制在比较一致的范围内,主要工作在需要
    保证声音不至于过大或过小的场景下。
    AGC更多起到的作用是放大输入源的声音,以保证音源过小时,经过算法处理后的声
    音依然很大。AI通路如果使能了AGC 功能,那么将不再能够通过调节AI增益来控制
    输出声音大小,需要通过接口来控制声音输出大小。

  8. PEQ
    PEQ 为参量均衡器(Parameter Equalizer)模块,主要对音频数据进行均衡处理,以调
    节音频数据中各频段声音的增益。
    PEQ 与EQ 均为均衡处理器,但是PEQ 调节方式更灵活,适用于运动DV 场景。

  9. AEC
    回声抵消(Acoustic Echo Cancellation)模块,主要工作在需要进行去除回声的
    场景下:如IPC 对讲,远端语音数据在AO 设备上播放,此时在本地通过MIC 采集语
    音数据,它支持消除录制的语音数据中的AO设备播放的声音(回声)。

  10. ANR
    ANR为语音降噪(Audio Noise Reduction)模块,主要工作在需要去除外界噪声,保
    留语音输入的场景下。
    与 RNR 算法比起来,ANR 更讲究噪声处理的干净程度。ANR 会滤除一些环境声音,
    主要保留语音数据,并会带来一定的细节丢失。所以ANR 算法更适用于NVR 和IPC
    场景。在这两个场景下,我们更希望能够着重保留人声,滤除其他噪声。

  11. GAIN
    GAIN 模块是音量调节模块,主要用于调节AGC开启后的音量大小。
    AGC负责对语音的音量进行动态增益控制,算法能够处理的Sin语音电平范围为0dB
    至-40dB,处理完毕后的语音电平最大值为-2dB,并且在语音最大增益方面做到了
    30dB的增益,这使得sout的语音电平能够做到-2dB至-10dB,同时也使得通过调整AI
    增益来调整sout的音量成了一个很困难的事情,因此GAIN模块在VQE 处理流程中位
    于AGC 模块后端,以实现AI上行通路的音量调节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言实现b树

概述:B 树(B-tree)是一种自平衡的搜索树数据结构,广泛应用于数据库和文件系统等领域。它的设计旨在提供一种高效的插入、删除和查找操作,同时保持树的平衡,确保各个节点的深度相差不大。 B 树的特点包括&a…

怎么使用好爬虫IP代理?爬虫代理IP有哪些使用技巧?

在互联网时代,爬虫技术被广泛应用于数据采集和处理。然而,在使用爬虫技术的过程中,经常会遇到IP被封禁的问题,这给数据采集工作带来了很大的困扰。因此,使用爬虫IP代理成为了解决这个问题的有效方法。本文将介绍如何使…

Java中泛型和Object类型 初级进阶教程(一)

在学习的过程中&#xff0c;常常看到某个类或者接口等中使用 List<T>, Test<T>&#xff0c;其中<T>的作用是什么呢&#xff1f; 1 在类中使用泛型 public class Box<T> {private T content;public void setContent(T content) {this.content conten…

深度学习与药物发现在健康衰老中的应用

深度学习是一种模拟人脑神经网络处理信息的方法&#xff0c;其已在语音、图像、自然语言等处理中发挥了巨大作用。但在健康衰老这一领域的应用中&#xff0c;它面临着很多挑战。 首先&#xff0c;健康衰老是一个复杂的生物学过程&#xff0c;涉及众多因素&#xff0c;如基因、…

Linux———top命令详解(狠狠爱住)

top 命令 是一个常用的系统性能监测工具&#xff0c;它可以实时显示系统中各个进程的状态和资源占用情况。 启动 top 命令&#xff1a; 直接在终端输入 top 命令即可启动。默认情况下&#xff0c;top 显示的是按照 CPU 使用率排序的进程列表。 功能键说明&#xff1a; h&…

【redis基础1】基础数据类型详解和应用案例

博客计划 &#xff0c;我们从redis开始&#xff0c;主要是因为这一块内容的重要性不亚于数据库&#xff0c;但是很多人往往对redis的问题感到陌生&#xff0c;所以我们先来研究一下。 本篇&#xff0c;我们先看一下redis的基础数据类型详解和应用案例。 1.redis概述 以mysql为…

文章测试测试

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目…

xtu oj 1340 wave

题目描述 一个n列的网格&#xff0c;从(0,0)网格点出发&#xff0c;波形存在平波(从(x,y)到(x1,y))&#xff0c;上升波(从(x,y)到(x1,y1))&#xff0c;下降波(从(x,y)到(x1,y−1))三种波形&#xff0c;请问从(0,0)出发&#xff0c;最终到达(n,0)的不同波形有多少种&#xff1f…

C++PythonC# 三语言OpenCV从零开发(1):环境配置

文章目录 前言课程选择环境配置PythonC#COpenCV官网下载新建C项目测试运行Csharp版Python版 gitee仓库总结 前言 由于老王我想转机器视觉方向的上位机行业&#xff0c;我就打算开始从零学OpenCV。但是目前OpenCV有两个官方语言&#xff0c;C和Pyhont。C# 有大佬做了对应的Open…

快速幂板子

快速幂是快速算 a 的 c 次幂 原理&#xff1a; 我们用分治思想是比一个一个乘快的 即比如我们求a的8次方 &#xff1a;a1*a1 a2 ,那么我们直接a2*a2 a4&#xff0c;a4*a4 a8 参数就是几次幂。返回值是对应参数的幂 &#xff08;这里对p取余了&#xff09;(一般也把a当参数…

vue 自定义网页图标 favicon.ico 和 网页标题

效果预览 1. 添加配置 vue.config.js 在 module.exports { 内添加 // 自定义网页图标pwa: {iconPaths: {favicon32: "./favicon.ico",favicon16: "./favicon.ico",appleTouchIcon: "./favicon.ico",maskIcon: "./favicon.ico",msTil…

Java进阶第一天

Java进阶第一天 文章目录 Java进阶第一天双列集合特点Map的常见APIMap集合的遍历方式 双列集合 特点 双列集合一次需要存一对数据,分别是键和值(键值对)键不能重复,值可以重复键和值一一对应 Map的常见API Map是双列集合的顶层接口,它的功能是全部双列集合都可以继承使用的…

memory泄露分析方法(java篇)

#memory泄露主要分为java和native 2种&#xff0c;本文主要介绍java# 测试每天从monkey中筛选出内存超标的app&#xff0c;提单流转到我 首先&#xff0c;辨别内存泄露类型&#xff08;java&#xff0c;还是native&#xff09; 从采到的dumpsys_meminfo_pid看java heap&…

【ROS2】使用C++实现简单的发布订阅方

1 构建自定义数据类型 1、自定义消息类型Student 1.1 创建base_interfaces_demo包 1.2 创建Student.msg文件 string name int32 age float64 height 1.2 在cmakeLists.txt中增加如下语句 #增加自定义消息类型的依赖 find_package(rosidl_default_generators REQUIRED) # 为…

C++ namespace高级用法

高级用法 C++中的命名空间(namespace)是一种用于组织代码的机制,它可以帮助避免命名冲突,并使代码更加清晰和易于维护。以下是C++命名空间的一些高级用法: 嵌套命名空间:命名空间可以嵌套在其他命名空间中,形成一个层次结构。嵌套命名空间可以进一步细化命名空间,使其更…

k8s operator从0到1实践

文章目录 环境准备一个k8s集群开发工具包mac安装 实践初始化operator项目核心逻辑编写测试验证验证 部署 参考 环境准备 一个k8s集群 推荐使用docker-desktop&#xff0c;本地单机集群 开发工具包 这里推荐使用脚手架工具kubebuilder 使用脚手架工具&#xff0c;能生成项目…

Java基础-常量,变量,数据类型-笔记

1.关键字分类 用于定义数据类型的关键字&#xff1a;class&#xff0c;interface&#xff0c;enum&#xff0c;byte&#xff0c;short&#xff0c;int&#xff0c;long&#xff0c;float&#xff0c;double&#xff0c;char&#xff0c;boolean,void。 用于定义流程控制的关键字…

「微服务」企业微服务架构

首先&#xff0c;来自Darren的消息是&#xff0c;微服务架构并不是构建大规模企业应用程序的新方式。Netflix和亚马逊等公司已经实施了微服务架构&#xff0c;在过去几年中提供了成功的产品。 但是微服务架构适合您的组织吗&#xff1f;答案不是简单的是或否&#xff0c;但我会…

【Vue样式绑定详细介绍】

Vue样式绑定详细介绍 1. 样式绑定2. 字符串语法3. 对象语法4. 数组语法4. 自动添加前缀5. 多重值 (2.x的.9版本或3.x) 1. 样式绑定 在Vue中&#xff0c;样式绑定是通过 v-bind:style 或简写 :style 来实现的&#xff0c;它允许你将多种样式动态地绑定到元素上&#xff0c;样式…

Atcoder beginner contest 336 -- D -- Pyramid

目录 D -- Pyramid: 题目大意&#xff1a; 思路解析&#xff1a; 代码实现&#xff1a; D -- Pyramid: 题目大意&#xff1a; 给你一个长度为n的数组&#xff0c;你可以对这个数组进行以下操作。 操作1&#xff1a;选择任意一个元素&#xff0c;使其值大小减一。 操作2&…