音频基础知识

音视频开发进阶

共 2215字,需浏览 5分钟

 ·

2021-04-16 21:06

PS:由浅入深,慢就是快。

本篇总结下音频基础知识,音视频相关文章如下:

下面将从以下几个方面进行介绍:

  1. 声音的产生

  2. 声音的三要素

  3. 模数转换

  4. 原始音频数据

  5. PCM与Wav

  6. 音频处理流程

声音的产生

声音是由物体振动产生的,通过空气、固体、液体等介质进行传输的一种声波,可以被人耳识别的声波的范围是 20Hz~20000Hz 之间,也叫做可听声波,这种声波称之为声音,根据声波频率的不同可以主要分为:

  • 可听声波:20Hz~20kHz

  • 超声波:> 20kHz

  • 次声波:< 20Hz

此外,人的发声范围一般是 85Hz~1100Hz。

声音的三要素

声音的三要素分别是音调、音量、音色,具体如下:

  • 音调:指的是声音频率的高低,表示人的听觉分辨一个声音的调子高低的程度,物体振动的快,发出的声音的音调就高,振动的慢,发出的音调就低。

  • 音量:又称音强、响度,指声音的振幅大小,表示人耳对所听到的声音大小强弱的主观感受。

  • 音色:又称音品,指不同声音表现在波形方面总是有与众不同的特性,不同的物体振动都有不同的特点,反映每个物体发出的声音的特有的品质,音色具体由谐波决定,好听的声音绝不仅仅是一个正弦波,而是谐波。

模数转换

声音是一个模拟音频信号,如果要将声音数字化,则需要将模拟音频信号转换为数字信号,这就是模数转换,主要流程包括采样、量化、编码,如下图所示:
  • 采样:连续信号转换为离散信号的过程,每个一定时间的信号值来

    替代原来时间段连续的信号值,这个 1s 内的采样次数就是采样率

    ,如 8KHz 是电话信号的采样率,可以满足通话需要,音频 CD

    般是 44.1kHz,数字电视一般是是 48kHz,采样率越高声音的还

    原程度越高。

  • 量化:将采样后 的模拟信号转换为数字信号的过程,量化分为均

    匀量化和非均匀量化,上图中显然使用了均匀量化,量化级数是 8。

  • 编码:将量化后的信号转换为对应的二进制代码,最简单就是自然

    二进制码,其他编码方式感兴趣自行去了解,上图中编码指的是信

    源编码,除此之外还有信道编码。

原始音频数据

PCM((Pulse Code Modulation)是脉冲编码调制,实际上就是将模拟音频信号转换为数字音频信号,音视频中的 PCM 指的是未经压缩的音频采样数据,是音频信号经采样、量化、编码生成的原始音频数据,PCM 数据关键量化指标如下:
  • Sample Size:采样大小,也是量化级数,表示一个采样用多少位 bit 存放,常用的是 16 位。

  • Sample Rate:采样率,表示每次采样的次数,单位 Hz,常见的采样率有 8k、16k、32k、44.1k、48k 等。

  • Number of Channels:声道数,表示当前 PCM 数据中包含的声道数,如单声道、双声道、多声道等。

  • Byte Ordering:字节序,表示 PCM 数据存储的字节序是大端存储(big-endian)还是小端存储(little-endian),为了数据处理效率的高效,通常为小端存储。

  • Sign:表示当前 PCM 数据是否有符号位

  • Integer Or Floating Point:表示当前 PCM 数据使用整型还是浮点型来表示。

了解了表示 PCM 数据的量化指标之后,那么码率如何计算呢,码率就是一秒钟采样数据的多少,计算方式如下:
1采样率 * 采样大小 * 声道数
举个例子:
采样率 44.1KHz,采样大小为 16bit,双声道的 PCM 编码的 WAV 文件,其码率为 44.1K *_16 *_2 = 1411.2Kb/s,假设传输上述音频,每秒将超过 1M 的数据量,再加上在数据传输过程中,上行速率往往远小于下行速率,这就需要压缩音频数据了。

PCM与WAV

PCM 可以查看前面小结,WAV 是一种无损的音频文件格式,其对音频的编码没有硬性规定,可以是 PCM 也可以是其他编码方式,比如 MP3编码等,简单总结一下:
  • PCM:一种编码方式,在音视频领域则理解为原始音频数据裸流;

  • WAV:一种音频文件格式,可存储 PCM 数据,相当于在 PCM 基础上添加了 WAV 头部。

最后附上一张 WAV 的 Header 示意图:
更多细节后续研究后补充。

音频处理流程

简单讲一下音频的处理流程,一是音频文件的生成,如在 Android 中使用 AudioRecordMediaRecord 等采集到的音频数据就是 PCM 数据,这种数据属于数字音频信号,是原始的 PCM 裸流,PCM 数据经过编码也就是将 PCM 数据压缩,在通过复用生成对应的音频文件,二是音频文件的播放,经解复用、解码转换成 PCM 进行播放。


技术交流,欢迎加我微信:ezglumes ,拉你入技术交流群。

推荐阅读:

音视频面试基础题

OpenGL ES 学习资源分享

开通专辑 | 细数那些年写过的技术文章专辑

NDK 学习进阶免费视频来了

推荐几个堪称教科书级别的 Android 音视频入门项目

觉得不错,点个在看呗~


浏览 114
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报