由1078引申出的音视频开发(一)之我们如何看到声音

201 阅读6分钟
    *站在巨人的肩膀人-感谢雷霄骅(已故)博主的无私奉献,开源精神,本系列文章大幅度参考了雷神的博 
客,在他博客的基础上完成了此系列博文。了解到雷神的学习奉献事记后,我们更应该像雷神学习。*

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

我们如何看见声音

  • 1 声音是什么 声音是一个波,一个连续的波,由波的特性,我们知道连续的波可以通过图形化的方式进行表达 这样我们就可以“看见”声音了。
    在这里插入图片描述

  • 2 声音的采集 1.模拟信号:音频信号是典型的连续信号,在时间和幅度上都是连续的。在任何一个特定的时间点都有一个对应是幅值。我们把时间和幅度上都是连续的信号称为模拟信号。

    波形是连续的 2.数字信号:在某些特定的时刻对这种模拟信号进行测量叫做采样。在有限个特点时间的采样得到的信号叫做离散时间信号。采到的幅值是一个实数,因此幅度还是一个连续的值,当我们将幅值限定为有限个数值,就称为离散数值信号。我们把时间和幅值都用离散的值表示的时候,此时表示的信号就是数字信号。可以看出数字信号是离散的。
    波形是非连续的

  • 采样频率: 单位时间内对模拟信号的采样次数。采样频率越高,声音的还原就越真实越自然,当然数据量就越大(在不考虑存储和传输的情况下)。8KHz - 电话所用采样率, 对于人的说话已经足够(部标1078设备),11,025 Hz-AM调幅广播所用采样率,22.05KHz能达到FM广播的声音品质,44.1KHz是CD音质 (个人理解 就是在1秒内我们要获取到图3中点的个数 44.1KHz就是44100,就是图上横坐标) ps:常用采样评率如下: 5kHz的采样率仅能达到人们讲话的声音质量。 11kHz的采样率是播放小段声音的最低标准,是CD音质的四分之一。 22kHz采样率的声音可以达到CD音质的一半,目前大多数网站都选用这样的采样率。 44kHz的采样率是标准的CD音质,可以达到很好的听觉效果

  • 采样位数 声卡的位是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。8位代表2的8次方——256,16位则代表2的16次方——64K。比较一下,一段相同的音乐信息,16位声卡能把它分为65536个精度单位进行处理,而8位声卡只能处理256个精度单位,由于精度的大幅度降低,那么声音的效果(音色)显然也会有很大的折扣(就是波峰最高点到波谷最低点的差值,这个过程也可以叫量化,就是图上纵坐标)。
    这样我们就可以计算一波音频的存储空间了,立体声双声道采样频率为44.1kHz,量化位数为8位,一分钟这样的音乐所需要的存储空间如何计算呢? 每秒钟 44.1k 次采样,即产生 44.1 x 1000 个数据 量化位数 8 位,即每个采样数据需要占用 8 位 = 1 个字节 立体声双声道,所以等于是储存两份声音,储存空间翻倍 一分钟,即 60 秒. 所以: 44.1 (khz) x 1000 x 8 (bits) x 2 (立体声) x 60 (s) / 8 (一字节是8位) 即:44.1 x 1000 x 8 x 2 x 60 / 8 字节

  • 3 音频的编码格式

    • PCM编码 PCM(Pulse Code Modulation),即脉冲编码调制,指模拟音频信号只经过采样、模数转换直接形成的二进制序列,未经过任何编码和压缩处理。PCM编码的最大的优点就是音质好,最大的缺点就是体积大。码率指的是比特率:声音中的比特率是指将模拟声音信号转换成数字声音信号后,单位时间内的二进制数据量,是间接衡量音频质量的一个指标(声道、采样位数和采样频率就决定了码率)
    • G711A g711a输入的是13位(S16的高13位),这种格式是经过特别设计的,便于数字设备进行快速运算。 1.取符号位并取反得到s 2.获取强度位eee,获取方法如下图所示 3.获取高位样本位wxyz 4.组合为seeewxyz,将seeewxyz逢偶数位取补数,编码就完成了 A-law如下表计算,第一列是采样点,共13bit,最高位为符号位。对于前两行,折线斜率均为1/2,跟负半段的相应区域位于同一段折线上,对于3到8行,斜率分别是1/4到1/128,共6段折线,加上负半段对应的6段折线,总共13段折线,这就是所谓的A-law十三段折线法。,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2wxMTU4NTEzNTcz,size_16,color_FFFFFF,t_70) 接下来做个简单的算法步骤演示:获取到数值为1234的pcm数据 二进制表示为:0000 0100 1101 0010 二进制变换下排列组合方式:0 00001 0011 010010 1.取符号位取反得到 s=1 2.获取强度位00001 查上表得到eee=011 3.获取高位样本位wxyz:0011 4.组合为seeewxyz就是10110011,逢偶取反为:11100110。编码完成
  • AAC Advanced Audio Coding 是一个有损压缩的音频编码集(其实新的编码工具也支持无损)。压缩率高,视频直播的时候常用这种音频编码。光规格就有9种,是为了干掉mp3而出来的一个编码。 AACLC编码是低配版AAC (低复杂度)

  • MP4 MP4最初是一种音频格式,和MPE-4没有太大的关系,就像MIP3和MPE-3没有关系样。M3是MIE-1 Audio Layer3的缩写;而M4是MPEC-2AC,完完全全是一种音频压缩格式,增加了诸如对立体声的完美再现、多媒体控制、降噪等新特性