webrtc 音频一点相关知识
采样频率: 44.1kHz ,它的意思是每秒取样44100次 。8kHz 8000次, 16kHz 160000次
比特率: 比特率是大家常听说的一个名词,数码录音一般使用16比特、20比特或24比特制作音乐。什么是“比特”?我们知道声音有轻有响,影响声音响度的物理要素是振幅,作为数码录音,必须也要能精确表示乐曲的轻响,所以一定要对波形的振幅有一个精确的描述。“比特(bit)”就是这样一个单位,16比特就是指把波形的振幅划为2^16即65536个等级,根据模拟信号的轻响把它划分到某个等级中去,就可以用数字来表示了。和采样频率一样,比特率越高,越能细致地反映乐曲的轻响变化。20比特就可以产生1048576个等级,表现交响乐这类动态十分大的音乐已经没有什么问题了。刚才提到了一个名词“动态”,它其实指的是一首乐曲最响和最轻的对比能达到多少,我们也常说“动态范围”,单位是dB,而动态范围和我们录音时采用的比特率是紧密结合在一起的,如果我们使用了一个很低的比特率,那么就只有很少的等级可以用来描述音响的强弱,当然就不能听到大幅度的强弱对比了。动态范围和比特率的关系是;比特率每增加1比特,动态范围就增加6dB。所以假如我们使用1比特录音,那么我们的动态范围就只有6dB,这样的音乐是不可能听的。16比特时,动态范围是96dB。这可以满足一般的需求了。20比特时,动态范围是120dB,对比再强烈的交响乐都可以应付自如了,表现音乐的强弱是绰绰有余了。发烧级的录音师还使用24比特,但是和采样精度一样,它不会比20比特有很明显的变化,理论上24比特可以做到144 dB的动态范围,但实际上是很难达到的,因为任何设备都不可避免会产生噪音,至少在现阶段24比特很难达到其预期效果。
假设音频采样率 = 8000,采样声道 = 2,位深度 = 16,采样间隔(毫秒) = 20ms或30ms或... 数据量是1000ms(1秒)/20ms = 50 (20ms)
size = 8000 x 2 x 16bit x 0.02s = 5120bit / 8bit = 640 byte
(1byte == 8bit ,1字节==8位)bit就是位,也叫比特位,是计算机表示数据最小的单位
byte就是字节
1byte=8bit
1byte就是1B
一个字符=2字节
1KB=1024B
首先我们计算一秒钟总的数据量,采样间隔采用20ms的话,说明每秒钟需采集50次,这个计算大家应该都懂,那么总的数据量计算为
一秒钟总的数据量 =8000 * 2*16/8 = 32000
所以每帧音频数据大小 = 32000/50 = 640
每个声道采样样本数 = 640/2 = 320
https://blog.csdn.net/KevinDGK/article/details/52934221 speex和Opus 压缩库介绍
http://blog.csdn.net/wzy198852/article/details/48178703 AudioProcessing降噪处理过程
http://blog.csdn.net/chinabinlang/article/details/41867189 NS(Noise Suppression 噪声抑制)、VAD(Voice Activity Detection 静音检测)、AECM(Acoustic Echo Canceller for Mobile 声学回声消除)以及 AGC(Auto Gain Control 自动增益控制)
http://www.cnblogs.com/mod109/p/5469799.html
http://www.jianshu.com/p/77a363960711
http://blog.csdn.net/qazwsxwtc?viewmode=contents
https://chromium.googlesource.com/external/webrtc/+/master/webrtc/modules/ webrtc源码
http://blog.csdn.net/KevinDGK/article/details/52934221#二局域网语音配置 一些参考
webrtc 音频一点相关知识的更多相关文章
- 移动WEB像素相关知识
了解移动web像素的知识,主要是为了切图时心中有数.本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关 ...
- 【转】java NIO 相关知识
原文地址:http://www.iteye.com/magazines/132-Java-NIO Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的 ...
- AJAX跨域调用相关知识-CORS和JSONP(引)
AJAX跨域调用相关知识-CORS和JSONP 1.什么是跨域 跨域问题产生的原因,是由于浏览器的安全机制,JS只能访问与所在页面同一个域(相同协议.域名.端口)的内容. 但是我们项目开发过程中,经常 ...
- HTML入门基础教程相关知识
HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...
- OSPF相关知识与实例配置【第一部分】
OSPF相关知识与实例配置[基本知识及多区域配置] OSPF(开放式最短路径优先协议)是一个基于链路状态的IGP,相比于RIP有无环路:收敛快:扩展性好等优点,也是现在用的最多的:所以这次实验就针对于 ...
- JS作用域相关知识(#精)
在学习<你不知道的JS>一书中,特将作用域相关知识在此分享一下: #说到作用域,就不得不提到LHS查询和RHS查询: 1)如果查询目的是对变量进行赋值,则使用LHS查询 2)如果查询目的是 ...
- 《Python网络编程》学习笔记--从例子中收获的计算机网络相关知识
从之前笔记的四个程序中(http://www.cnblogs.com/take-fetter/p/8278864.html),我们可以看出分别使用了谷歌地理编码API(对URL表示地理信息查询和如何获 ...
- WebRTC 音频采样算法 附完整C++示例代码
之前有大概介绍了音频采样相关的思路,详情见<简洁明了的插值音频重采样算法例子 (附完整C代码)>. 音频方面的开源项目很多很多. 最知名的莫过于谷歌开源的WebRTC, 其中的音频模块就包 ...
- python实现单例模式的三种方式及相关知识解释
python实现单例模式的三种方式及相关知识解释 模块模式 装饰器模式 父类重写new继承 单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singlet ...
随机推荐
- 小程序点击跳转外部链接 微信小程序提示:不支持打开非业务域名怎么办 使用web-view 配置业务域名
小程序点击跳转外部页面 1.index.wxml 添加点击事件 标签可以是小程序支持的 <!-- 邀请好友 --> <cover-image src='/img/invitat ...
- 『TensorFlow』分布式训练_其三_多机分布式
本节中的代码大量使用『TensorFlow』分布式训练_其一_逻辑梳理中介绍的概念,是成熟的多机分布式训练样例 一.基本概念 Cluster.Job.task概念:三者可以简单的看成是层次关系,tas ...
- Http简单解析过程
1.域名解析:浏览器先搜索自身的DNS缓存->搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效)->读取本地host文件(操作系统DNS也没找到)->浏览器发起DNS的 ...
- MongoDB 第一篇
概述 MongoDB是一个高性能,开源,无模式的文档型数据库,使用C++开发.是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是 ...
- flask-前台布局页面搭建3
4.前台布局的搭建 由于前端知识有限,我在网上下载的人家的前台源码,附上链接 https://link.jianshu.com/?t=https://github.com/mtianyan/movie ...
- C# 3.0 / C# 3.5 隐式(推断)类型 var
概述 你可能对隐式类型(或隐式推断类型)这个名称比较陌生,但是 var 这个关键字应该很熟悉. 在 C# 中使用 var 声明一个对象时编译器会自动根据赋值语句推断这个局部变量的类型. 赋值以后,这个 ...
- 在Eclipse中无法链接到svn,出现Previous operation has not finished; run 'cleanup' if it was interrupted异常
由于使用了clean或是clean up导致和svn断开链接 1.下载一个sqlite3.exe 2.将sqlite3.exe放到本项目的.svn同级目录下(.svn默认是隐藏,让.svn文件夹显示查 ...
- java 大数处理
头文件:import java.util.*; import java.math.*; Scanner cin = Scanner (System.in);//读入 while(cin.hasNext ...
- C++简单输入输出-计算火车运行时间
//写的很差,无力tc 7-4 计算火车运行时间 (17 分) 本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间. 输入格式: 输入在一行中给出2个4位正整数,其间以空格分隔,分别 ...
- C++ 保留有效小数 保留有效数字
1.需要头文件 #include <iomanip> 2. 要保留两位有效小数 cout<<setiosflags(ios::fixed)<<setprecisio ...