Webrtc NS 音频降噪学习笔记(持续更新)
一、webrtc降噪共分为四个模式,0,1,2,3,分别可抑制6,10,15,20dB左右;调用函数 WebRtcNs_set_policy→WebRtcNs_set_policy_core进行初始化与配置;
二、函数 WebRtcNs_Analyze→WebRtcNs_AnalyzeCore 用于实现以下功能:
1、更新处理的数据。将新的160一帧,与上一帧拼接成256一帧,并存储在buffer内(self->analyzeBuf),相关函数为UpdateBuffer;
2、为上述的self->analyzeBuf加窗。并存放于windata中。函数为Windowing。
3、统计加窗后该帧的能量。若能量=0,则退出,不接收噪声估计等处理。函数为Energy。
4、更新处理块blockInd。若上述能量不为0,则blockInd+1.(因为webrtc ns 用前50帧有效数据用于初始噪声估计)。
5、对windata进行傅里叶变换,返回实数谱129、虚数谱129和幅度谱129;函数为FFT256点。
6、计算平滑的对数谱能量,log[i] * log(mag[i]),与总的对数谱能量。注意其跳过前五个频点才开始进行计算,即16000/256*(5-1)=250,即噪声估计从250Hz才开始;
7、计算并存储平均幅度谱(sum(mag))/mag_len与总幅度谱sum(mag)。
8、将幅度谱作为输入,进行分位数噪声估计[1]。
[1] Stahl V , Fischer A , Bippus R . Quantile based noise estimation for spectral subtraction and Wiener filtering[C]// 2000 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings (Cat. No.00CH37100). IEEE, 2000.
Webrtc NS 音频降噪学习笔记(持续更新)相关推荐
- 重拾CCNA,学习笔记持续更新ing......(4)
重拾CCNA,学习笔记持续更新ing......(4) 路由器作用功能的经典解说(笑)(非原创) 假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大 ...
- Admin.NET管理系统(vue3等前后端分离)学习笔记--持续更新
我的学习笔记 - 9iAdmin.NET 欢迎学习交流 (一)前端笔记 1.1 关于.env的设置 1.2 关于路由模式问题 1.3 关于 vue.config.ts 1.4 关于 打包(pnpm r ...
- JS逆向学习笔记 - 持续更新中
JS逆向学习笔记 寻找深圳爬虫工作,微信:cjh-18888 文章目录 JS逆向学习笔记 一. JS Hook 1. JS HOOK 原理和作用 原理:替换原来的方法. (好像写了句废话) 作用: 可 ...
- 专升本 计算机 公共课学习笔记(持续更新中...)
计算机公共课学习笔记 第一章 计算机基础知识(30分) 1.计算机概述 计算机(Computer)的起源与发展 计算机(Computer)也称"电脑",是一种具有计算功能.记忆功能 ...
- CSS(3)学习笔记——持续更新
本篇皆是本人长期记录并整理出来的笔记,如有记录得不对的地方,欢迎探讨.记录的很少,将不断学习不断补充. 1 选择器 CSS(3)中提供的选择器手册(w3school):http://www.w3sch ...
- typescript-----javascript的超集,typescript学习笔记持续更新中......
Typescript,冲! Typescript 不是一门全新的语言,Typescript是 JavaScript 的超集,它对 JavaScript进行了一些规范和补充.使代码更加严谨. 一个特别好 ...
- 计算机网络:学习笔记(持续更新)
文章目录 前言 1.1 计算机网络基本概念 什么是计算机网络? 什么是网络协议? 1.2 计算机网络结构 计算机网络结构 网络边缘 接入网络(物理介质) 网络核心(核心网络) Internet结构 1 ...
- MySQL学习笔记(持续更新ING)
SQL语法SQL 语法SQL语法 SQL对大小写不敏感:SELECT与select是相同的.SQL 对大小写不敏感:SELECT 与 select 是相同的.SQL对大小写不敏感:SELECT与sel ...
- Docker快速入门学习笔记-持续更新中
Docker安装 #1.卸载旧的版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker ...
最新文章
- Apache Camel 2.15.0 发布,Java 规则引擎
- jQuery获取和设置元素
- 用python解算法谜题_编程的乐趣 用Python解算法谜题
- python操作RabbitMQ
- oracle如何清空用户信息,Oracle数据库如何创建和删除用户
- 给缺少Python项目实战经验的人
- 扩展欧几里得求逆元(模数可以不为质数)
- On the Difference Between Orthogonal Matching Pursuit and Orthogonal Least Squares
- c语言实现socket转json,C++解析JSON进行网络传输--一个通过JSON方式的socket传输
- 【LeetCode笔记】94 144 145. 二叉树的前序、中序、后序遍历的迭代与递归(Java、dfs、迭代)
- C#基础概念之延迟加载
- Volcano:在离线作业混部管理平台,实现智能资源管理和作业调度
- python模块调用的用法_python模块怎么使用
- zedgraph画图
- 如何编写投标项目实施方案
- Ubuntu18.04设置系统默认音频设备:使用pavucontrol命令
- html给页面整体添加左右边距_左右边距相对于页面宽度过大
- 记录各大牛个人主页,紧密跟踪其学术动态
- Ubuntu下安装gem包curses的步骤
- Pygame实战之外星人入侵NO.11——设置开始按钮
热门文章
- log4cplus库(一)(简单使用)
- 【GA三维路径规划】基于matlab遗传算法无人机三维路径规划【含Matlab源码 1526期】
- 网银支付回调 php,企业网银支付回调方法验签是怎么个逻辑?
- 大鱼号发布文章的方法
- git clone出现fatal: unable to access 'https://': SSL certificate problem: self signed certificate in c
- 网页制作表单代码java_JSP动态网页入门:表单输入例子
- 第4关:Random类
- 基于CRNN的中文车牌识别
- 基于STM32F103C8T6的超声波测距应用
- 网络分流器|10G网络分流器:传统产品与新的挑战