音视频学习从零到整–(2)
音视频学习从零到整–(3)
音视频学习从零到整–(4)
音视频学习从零到整–(5)
音视频学习从零到整–(6)
音视频学习从零到整–(7)

一.音频基础复习

1.1 声音的产生

相对于视频,可观察这个现象.音频在学习过程,就缺乏了想象的空间.但是如果从原理出发,就不会那么难了.

声音是什么?
声音是波,靠物体的振动产生

1.2 声波的3要素

声波的三要素,是频率,振幅,波形.频率代表音阶的高低,振幅代表响度,波形则代表音色.

  • 频率越高,波长就会越短.而低频声响的波长则较长.所以这样的声音更容易绕过障碍物,能量衰减就越小.声音就会传播的越远.
  • 响度,就是能量大小的反馈.用不同的力度敲打桌面,声音的大小势必发生变换.在生活中,我们用分贝描述声音的响度.

小贴士

  • 分贝(decibel),是度量声音的强度单位,常用dB表示.是由美国发明家亚历山大.格雷厄姆.贝尔 名字命名的.
    长期在夜晚接受50 分贝的噪音, 容易导致心血管疾病; 55 分贝, 会对儿童学习产生负面影响; 60分贝, 让人从睡梦中惊醒; 70 分贝,心肌梗死的发病率增加30%左右; 超过110 分贝, 可能导致永久性听力损伤.
  • 音色,在同样的频率和响度下,不同的物体发出的声音不一样.比如钢琴和古筝声音就完全不同.波形的形状决定了声音的音色.因为不同的介质所产生的波形不同.就会产生不一样的音色.

1.3 声音传播

声音的发生,来源于振动.人类说话,从声带振动发生声音之后,经过口腔,颅腔等局部区域的反射,在经过空气传播到别人耳朵中.这是我们说话到听到的过程.
声音的传播,可以通过空气,液体,固定传播.介质不同,会影响声音的传播速度.

  • 吸音棉:通过声音反射而产生的嘈杂感,吸音材料选择使用可以衰减入射音源的反射能量,从而对原有声音的保真效果.比如录音棚墙壁上就会使用吸音材质
  • 隔音:主要解决声音穿透而降低主体空间的吵闹感,隔音棉材质可以衰减入射声音的透射能量.从而达到主体空间安静状态,比如KTV墙壁上就会安装隔音棉材料.

二.数字音频

2.1 模拟信号数字化过程

将模拟信号转换为数字信号的过程,分别是采样,量化和编码.

音频采样

对模型信号进行采样,采样可以理解为在时间轴上对信号进行数字化.
而,根据奈斯特定理(采样定理),按比声音最高频率高2倍以上的频率对声音进行采样.这个过程称为AD转换.

比如,前面提到高质量音频信号,其频率范围是20Hz-20KHz.所以采样频率一般是44.1KHz.这样可以保证采样声音达到20KHz也能被数字化.而且经过数字化处理后的声音,音质也不会降低.44.1KHZ,指的是1秒会采样44100次

奈斯特定理(采样定理) 资料

量化

量化,指的是在幅度轴上对信号进行数字化.简单的说,就是声音波形的数据是多少位的二进制数据,通常用bit做单位.比如16比特的二进制信号来表示声音的一个采样.它的取值范围[-32768,32767].一共有65536个值.如16bit、24bit。16bit量化级记录声音的数据是用16位的二进制数,因此,量化级也是数字声音质量的重要指标。我们形容数字声音的质量,通常就描述为24bit(量化级)、48KHz采样,比如标准CD音乐的质量就是16bit、44.1KHz采样.

既然每个量化都是一个采样,那么声音这么多采样,该如何将这些数据存储起来?

编码

什么叫编码?
按照一定格式记录采样和量化后的数据.

音频编码的格式有很多种,而通常所说的音频裸数据指的是脉冲编码调制(PCM)数据.
如果想要描述一份PCM数据,需要从如下几个方向出发:

  • 量化格式(sampleFormat)
  • 采样率(sampleRate)
  • 声道数(channel)

举例:
以CD音质为例,量化格式为16bite,采样率为44100,声道数为2.这些信息描述CD音质.那么可以CD音质数据,比特率是多少?
44100 * 16 * 2 = 1378.125kbps

那么一分钟的,这类CD音质数据需要占用多少存储空间?
1378.125 * 60 /8/1024 = 10.09MB

如果sampleFormat更加精确或者sampleRate更加密集,那么所占的存储空间就会越大,同时能够描述的声音细节就会更加精确.

存储在这些二进制数据即可理解为将模型信号转化为数字信号.那么转为数字信号之后,就可以对这些数据进行存储\播放\复制获取其他任何操作.


推荐文集

* 抖音效果实现

* BAT—最新iOS面试题总结

* iOS面试题大全(附答案)

原文作者:集才华美貌于一身的—C姐

iOS开发—音视频入门学习必看相关推荐

  1. iOS开发60分钟入门学习精华

    有过脚本开发经验的人(如Javascript,PHP,Shell)在刚开始学习iOS开发的时候,会觉得iOS开发的学习曲线比脚本语言要高,是的,这种感觉是对的.因为学iOS开发,不仅是学习一门新语言, ...

  2. python映射类型-Python 的映射数据类型有哪些?零基础小白入门学习必看

    1 映射类关系 Python 的 collections.abc 模块内拥有 Mapping 和 MutableMapping 这两个抽象基类,它们为 dict 和其他类似的类型提供了接口定义. mu ...

  3. 安卓音视频入门难,老司机分享音视频开发学习技巧与痛点

    最近在写文章的时候,发现很多读者给我私信提问,想了解安卓音视频这块, 很多同学也对音视频开发有点浓厚的兴趣,但奈何没有系统的学习知识,仅靠自己苦苦钻研确实力不从心,今天就借这个机会分享一下我学习音视频 ...

  4. 音视频入门之如何绘制一张图片

    Android 的音视频入门学习,首先了解一下绘制图片.在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View作绘制图片.下 ...

  5. 吹爆系列:教科书级别的Android音视频入门进阶学习手册,学完我成功“挤进”了抖音音视频开发岗

    Android开发工作两年,真的是感觉Android应用层开发没什么前景了,于是打算在网络安全,智能硬件,音视频这几个方向发展,考虑了一段时间,最终决定选择音视频.理由就不说了,既然选择了就要好好深耕 ...

  6. 转:Android IOS WebRTC 音视频开发总结 (系列文章集合)

    随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译者: ...

  7. 堪称教科书级别的Android音视频入门进阶学习手册,开源分享

    概述 随着整个互联网的崛起,数据传递的形式也在不断升级变化,总的流行趋势如下: 纯文本的短信,QQ -> 空间,微博,朋友圈的图片文字结合 -> 微信语音 -> 各大直播软件 -&g ...

  8. 音视频开发——音视频学习资料

    目录 1.为什么要学习音视频? 2.如何学习系统性音视频? 3.音视频相关的资料 最近有朋友问想学习音视频,应该怎么学,有什么资料吗? 这个问题也困扰我很久,几年前就想开始音视频相关的学习,但是一直找 ...

  9. Android IOS WebRTC 音视频开发总结

    Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下) RTC.Blacker 2016-09-13 11:18 阅读:132 评论:0   An ...

最新文章

  1. ​比9种SOTA GNN更强!谷歌大脑提出全新图神经网络GKATs
  2. C语言经典例8-输出乘法口诀表
  3. 浅入“Block Formatting Context”
  4. 荒岛余生最后一个包裹_荒岛余生——每个人都是一座“孤岛”
  5. 10张Gif动图让你弄懂递归等概念
  6. tomcat变量环境脚本setclasspath.sh分析
  7. 删除文件夹下所有的文件_VB删除文件和文件夹的方法
  8. 蒋步星:轻量级大数据计算引擎
  9. C#与vb6 com组件的互相调用方法
  10. PreferenceActivity详解
  11. Echarts 柱状图使用
  12. 基于Python+ResNet实现的不良图片识别模型
  13. licecap图片区域问题
  14. HTML内镶svg编辑器!后续改进,记录过程!
  15. 願いをドラッグの若返り薬)作者紫猫刘程
  16. 2048android源代码,VasSonic Android源码解析
  17. RAR Extractor - The Unarchiver Pro for mac(解压缩软件)
  18. css 文字颜色渐变 animation,css3文字渐变动画
  19. 全球与中国医疗高温灭菌设备市场深度研究分析报告
  20. element-ui中导航菜单默认激活子菜单的第一项

热门文章

  1. 光伏并网发电系统MATLAB Simulink仿真设计 该仿真包括电池,BOOST升压电路,单相全桥逆变电路
  2. 文献简读——大肠中胰蛋白酶降解共生菌的鉴定【Identification of trypsin-degrading commensals in the large intestine】
  3. 液晶如何显示变量的内容
  4. 83.【JQuery.Ajax】
  5. 数据集:Udacity Self-Driving 目标检测数据集
  6. c语言tft屏浮点数显示,LCD屏显示小数的程序与心得
  7. Android删除系统的WIFI功能
  8. php微信支付返回值,php微信支付全记录
  9. 2018拼多多校招笔试贪心编程题小熊吃糖详解
  10. javascript_day03------js学习第三天,关于简易计算器的加减乘除,对于年份判断和日期天数计算,以及if和switch的区分用法,最后是循环。