一、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 音频降噪学习笔记(持续更新)相关推荐

  1. 重拾CCNA,学习笔记持续更新ing......(4)

    重拾CCNA,学习笔记持续更新ing......(4) 路由器作用功能的经典解说(笑)(非原创) 假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大 ...

  2. Admin.NET管理系统(vue3等前后端分离)学习笔记--持续更新

    我的学习笔记 - 9iAdmin.NET 欢迎学习交流 (一)前端笔记 1.1 关于.env的设置 1.2 关于路由模式问题 1.3 关于 vue.config.ts 1.4 关于 打包(pnpm r ...

  3. JS逆向学习笔记 - 持续更新中

    JS逆向学习笔记 寻找深圳爬虫工作,微信:cjh-18888 文章目录 JS逆向学习笔记 一. JS Hook 1. JS HOOK 原理和作用 原理:替换原来的方法. (好像写了句废话) 作用: 可 ...

  4. 专升本 计算机 公共课学习笔记(持续更新中...)

    计算机公共课学习笔记 第一章 计算机基础知识(30分) 1.计算机概述 计算机(Computer)的起源与发展 计算机(Computer)也称"电脑",是一种具有计算功能.记忆功能 ...

  5. CSS(3)学习笔记——持续更新

    本篇皆是本人长期记录并整理出来的笔记,如有记录得不对的地方,欢迎探讨.记录的很少,将不断学习不断补充. 1 选择器 CSS(3)中提供的选择器手册(w3school):http://www.w3sch ...

  6. typescript-----javascript的超集,typescript学习笔记持续更新中......

    Typescript,冲! Typescript 不是一门全新的语言,Typescript是 JavaScript 的超集,它对 JavaScript进行了一些规范和补充.使代码更加严谨. 一个特别好 ...

  7. 计算机网络:学习笔记(持续更新)

    文章目录 前言 1.1 计算机网络基本概念 什么是计算机网络? 什么是网络协议? 1.2 计算机网络结构 计算机网络结构 网络边缘 接入网络(物理介质) 网络核心(核心网络) Internet结构 1 ...

  8. MySQL学习笔记(持续更新ING)

    SQL语法SQL 语法SQL语法 SQL对大小写不敏感:SELECT与select是相同的.SQL 对大小写不敏感:SELECT 与 select 是相同的.SQL对大小写不敏感:SELECT与sel ...

  9. Docker快速入门学习笔记-持续更新中

    Docker安装 #1.卸载旧的版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker ...

最新文章

  1. Apache Camel 2.15.0 发布,Java 规则引擎
  2. jQuery获取和设置元素
  3. 用python解算法谜题_编程的乐趣 用Python解算法谜题
  4. python操作RabbitMQ
  5. oracle如何清空用户信息,Oracle数据库如何创建和删除用户
  6. 给缺少Python项目实战经验的人
  7. 扩展欧几里得求逆元(模数可以不为质数)
  8. On the Difference Between Orthogonal Matching Pursuit and Orthogonal Least Squares
  9. c语言实现socket转json,C++解析JSON进行网络传输--一个通过JSON方式的socket传输
  10. 【LeetCode笔记】94 144 145. 二叉树的前序、中序、后序遍历的迭代与递归(Java、dfs、迭代)
  11. C#基础概念之延迟加载
  12. Volcano:在离线作业混部管理平台,实现智能资源管理和作业调度
  13. python模块调用的用法_python模块怎么使用
  14. zedgraph画图
  15. 如何编写投标项目实施方案
  16. Ubuntu18.04设置系统默认音频设备:使用pavucontrol命令
  17. html给页面整体添加左右边距_左右边距相对于页面宽度过大
  18. 记录各大牛个人主页,紧密跟踪其学术动态
  19. Ubuntu下安装gem包curses的步骤
  20. Pygame实战之外星人入侵NO.11——设置开始按钮

热门文章

  1. log4cplus库(一)(简单使用)
  2. 【GA三维路径规划】基于matlab遗传算法无人机三维路径规划【含Matlab源码 1526期】
  3. 网银支付回调 php,企业网银支付回调方法验签是怎么个逻辑?
  4. 大鱼号发布文章的方法
  5. git clone出现fatal: unable to access 'https://': SSL certificate problem: self signed certificate in c
  6. 网页制作表单代码java_JSP动态网页入门:表单输入例子
  7. 第4关:Random类
  8. 基于CRNN的中文车牌识别
  9. 基于STM32F103C8T6的超声波测距应用
  10. 网络分流器|10G网络分流器:传统产品与新的挑战