代码拉取完成,页面将自动刷新
同步操作将从 qtguide/oscodec 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>ch01-01</title>
<link href="css/style.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="thumbnailviewer.css" type="text/css">
<script src="thumbnailviewer.js" type="text/javascript">
/***********************************************
* Image Thumbnail Viewer Script- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
</script> </head>
<body>
<div class="os1">1.1 音频常识 </div>
<p> 本节介绍音频和采样原理,先介绍声音的常识,然后简要描述声音转为电信号的原理(麦克风功能),
电信号再进行数字采样就得到声音数据(声卡采集功能)。声音转为电信号之后,称之为音频(Audio)信号,电脑存储的声音数据文件,就是音频文件。声卡采集的原始数据即
脉冲编码调制 (Pulse Code Modulation,PCM)数据, 这是所有音频编码器的源头。 </p>
<div class="os2">1.1.1 声音是什么</div>
<p> 这是初中物理的内容,声音由物体振动产生的声波,通过介质(气体、液体、固体)传播,并能通过人或动物听觉感知到的现象。最初发出振动的物体就叫声源。
</p>
<center><img src="images/ch01/ch01-01-01.jpg"></center>
<br>
这是初中物理示范常用的音叉和锤子,其实同学们拍拍巴掌比这个响亮多了。无论是物体碰撞还是靠嗓子喊、乐器演奏等等,声音在生活中无处不在。注意声音不能在真空传
播,因为声音的振动依赖实体介质(固体、液体、气体)。<br>
<br>
声音与水面波、电磁波等其他波形类似,有两种基本特性:频率、振幅。频率就是每秒钟波形振动次数,比如蜜蜂翅膀每秒振动翅膀约为200-240次,
其频率就是200-240Hz,蜜蜂振动翅膀的频率正好能被人耳听到,所以蜜蜂靠近时能听到“嗡嗡”声。<b>人耳可以听到的频率范围是 20-20000
Hz,而正常说话的语音频率范围一般在 300-3400 Hz。</b><br>
<br>
声音的振幅就是常说的声音响不响,物理上用分贝 dB 来描述声音响度,分贝是一种相对的描述,1 dB
大约是人刚刚能感觉到的声音,分贝数越大就越吵闹,常见响度分类:<br>
0 - 20 分贝:很静、几乎感觉不到。<br>
20 - 40 分贝:安静、犹如轻声语。<br>
40 - 60 分贝:一般普通室内谈话。<br>
60 - 70 分贝:吵闹、有损神经。<br>
70 - 90 分贝:很吵、神经细胞受到破坏。<br>
90 - 100 分贝:吵闹加剧、听力受损。<br>
100 - 120 分贝:难以忍受、呆一分钟即暂时致聋。<br>
<br>
声音还有第三种特性叫音色,比如正弦波、锯齿波、矩形波等,波形形状差异,就是音色的体现。不同乐器的音色明显不一样,比如钢琴和小提琴演奏同一首曲子,声音听起
来明显不同,不同的人唱同一首歌区别很大,里面就有音色的差异。音乐人最讲究音色,当然我们搞电脑的就不讲究这些了。<br>
<br>
<div class="os2">1.1.2 声音如何变为电信号</div>
<p>人的声音在空气中传播几百米就已经算很远的了,但是我们打电话可以跨越国家甚至星球,这肯定不是靠空气传播所能到达的。
我们要感谢下面这个老头——亚历山大·格拉汉姆·贝尔:<br>
</p>
<center><img src="images/ch01/ch01-01-02.jpg"></center>
<p>贝尔的故事非常多,大家可以自行百度,这里就不背书了。</p>
<p>将声音信号转换为电信号的能量转换器件就是麦克风(学名传声器),麦克风最初是通过电阻转换声音为电信号,后来发展为通过电感、电容等等器件进行声电转换。
目前广泛使用的是电容麦克风和驻极体麦克风,我们以电容麦克风举例:</p>
<center><img src="images/ch01/ch01-01-03.jpg"></center>
图中标出了电容麦克风的三个基本器件:电容(由振膜和基板组成)、电池和电阻,三者连接形成一个回路,在电阻两端采集电信号变化。<br>
上图中间蓝色的两个竖条就是电容,电容有两个部分组成:对外的薄片是振膜,对内连电池的部分是基板。当外面有声音振动时,振膜随着声音振动而振动,电容会发生变
形,即对声音敏感。电容的变形导致电容存储的电荷数发生变化,使得整个电路中的电流都跟着变化,采集这种电流的变化就反映了声音的振动,也就将声音振动转化为了电
信号。<br>
电容式麦克风原理参考: <a href="http://zixun.jia.com/article/393153.html" target="new">
http://zixun.jia.com/article/393153.html </a><br>
<br>
反过来,如何将电信号转为声音振动呢?这就是扬声器的功能。扬声器就是将电信号转变为声音信号的能量转换器件,俗称喇叭。喇叭的种类很多,比如动圈式(电动式)、
电容式(静电式)、压电式(晶体或陶瓷)、电磁式(压簧式)、电离子式和气动式扬声器等。以动圈式扬声器为例:<br>
<br>
<center><img src="images/ch01/ch01-01-04.jpg"></center>
动圈式扬声器里比较关键的三个组成部分是磁体(永久磁铁)、音圈、纸盆。永久磁铁的磁场是固定的。音圈就是铜丝绕成的线圈,线圈通电时形成一个电磁场,电磁场的极
性和强度随着流经的电流变化而变化。我们学过两块磁铁的同性相斥、异性相吸,永久磁铁的磁场固定,而线圈电磁场随着电流变化而变化,两个磁场之间的斥力或吸力会促
使线圈位置来回移动,而纸盆是与线圈固定在一起的,纸盆随着线圈位置移动而移动,纸盆振动发出声波,就是我们听到的声音。其能量转换流程为:电能->磁能
-> 动能->声音能量。<br>
动圈式扬声器原理参考: <a href="http://www.eritten.com/Article/article-26811624031_1.html"
target="new"> http://www.eritten.com/Article/article-26811624031_1.html </a>
<br>
<br>
<div class="os2">1.1.3 电信号如何变为PCM</div>
<p>
声音信号转化为电信号之后,是以时域上的连续波形式存在(模拟信号),而计算机处理的数据都是离散数值(数字信号)。将连续波转换成时域上离散数值的过程就是数字采样。
1928年美国电信工程师 Harry Nyquist 推出采样定理:为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍。即
SampleRate ≥ 2*Fmax。奈奎斯特采样定理是所有模/数转换和数/模转换的基础。</p>
<p>脉冲编码调制(Pulse Code
Modulation,PCM)就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。脉冲编码调制就是对模拟信号先抽样,再对样值
幅度量化,编码的过程。将声音的电信号转换成为离散数值的过程就是声卡的信号采集功能,声卡采集信号的核心器件就是模/数转换器。如果通过声卡播放数字音频,
那么就是数/模转换器的功能。声卡工作原理图如下所示:<br>
</p>
<center><img src="images/ch01/ch01-01-05.jpg"></center>
<br>
声卡工作原理参考:<a href="http://www.elecfans.com/baike/zhujipeijian/shengka/20091226147279.html"
target="new">
http://www.elecfans.com/baike/zhujipeijian/shengka/20091226147279.html </a>
<br>
<br>
声音信号采集和播放经常使用的三个参数为采样频率(SampleRate)、采样位数(SampleSize)、声道数(ChannelCount)。声道数好理
解,一个音箱是单声道,两个音箱是双声道,立体声耳机也是双声道。单声道采集播放时使用一路数据,双声道采集播放时使用两路数据,如果有更多声道,就会用到更
多路的数据。我们下面来看采样频率。<br>
声音信号的采样频率有两类常用的倍率,第一类以人说话的语音频率为基础,一般语音频率是 300-3400Hz,向上取整约为 4kHz ,
根据奈奎斯特采样定理,采样频率至少 8kHz。通常打电话的语音采样都是 8kHz 采样, 第一类采样信号的倍率就是以 8kHz 为基础: <br>
<br>
<table class="tabel">
<tbody>
<tr class="d1">
<td style="width: 200px;"><b>采样频率</b></td>
<td style="width: 200px;"><b>名称</b><br>
</td>
<td><b>描述</b></td>
</tr>
<tr>
<td style="width: 200px;"><b>8,000 Hz</b></td>
<td style="width: 200px;"> Narrowband,窄带 </td>
<td> 电话语音中常用。 </td>
</tr>
<tr class="d1">
<td style="width: 200px;">12,000 Hz</td>
<td style="width: 200px;"> Medium-band,中带 </td>
<td> 很少用,音频库Opus定义的中带语音信号采样频率。<br>
</td>
</tr>
<tr>
<td style="width: 200px;">16,000 Hz</td>
<td style="width: 200px;"> Wideband,宽带 </td>
<td> 多数现代的 VoIP 和 VVoIP通信产品中常用。</td>
</tr>
<tr class="d1">
<td style="width: 200px;">24,000 Hz</td>
<td style="width: 200px;"> Super-wideband,超宽带<br>
</td>
<td> 很少用,音频库Opus定义的超宽带,而其他编码通常用32kHz作为超宽带。<br>
</td>
</tr>
<tr>
<td style="width: 200px;">32,000 Hz</td>
<td style="width: 200px;"> Ultra-wideband 或 Super-wideband,超宽带<br>
</td>
<td> miniDV 数字录像机、录像带中的录音常用该采样频率,FM 广播和高品质无线麦克风也用到。音频库Speex处理的采样频率上限。
</td>
</tr>
<tr class="d1">
<td style="width: 200px;"><b>48,000 Hz</b></td>
<td style="width: 200px;"> Fullband,全带 </td>
<td> 专业视频录像采用的标准采样频率,DV、数字电视、DVD、电影等常用。音频库Opus处理的采样频率上限。<br>
</td>
</tr>
<tr>
<td style="width: 200px;">96,000 Hz</td>
<td style="width: 200px;"> --<br>
</td>
<td> DVD-Audio,BD-ROM, HD DVD 音轨常用的采样频率,专业音频设备通常采用。<br>
</td>
</tr>
<tr class="d1">
<td style="width: 200px;">192,000 Hz</td>
<td style="width: 200px;"> --<br>
</td>
<td> DVD-Audio,BD-ROM, HD DVD 音轨常用的采样频率,专业音频设备通常采用。 </td>
</tr>
<tr>
<td style="width: 200px;">384,000 Hz</td>
<td style="width: 200px;"> --<br>
</td>
<td> 高端声卡设备、高端手机设备支持的采样频率。</td>
</tr>
</tbody>
</table>
<br>
在 8k 倍率系列里面,电脑声卡一般支持 8kHz 和 48kHz,较好的声卡最高也有支持到 192kHz 的,在进行语音相关的软件开发时建议用
8kHz 或 48kHz。<br>
<br>
第二类倍率是以人耳听到的声音频率为基础,人耳听到的上限是 20 kHz,理论上说超过 40kHz 采样都可以,但是 CD 唱片的标准采样率是一个坑爹的
44.1 kHz,其由来参考下文:<br>
<a href="https://blog.csdn.net/Openking/article/details/42501287" target="new">https://blog.csdn.net/Openking/article/details/42501287</a>
<br>
CD 倍率系列如下表所示:<br>
<br>
<table class="tabel">
<tbody>
<tr class="d1">
<td style="width: 200px;"><b>采样频率</b></td>
<td style="width: 200px;"><b>名称</b><br>
</td>
<td><b>描述</b></td>
</tr>
<tr>
<td style="width: 200px;">11,025 Hz</td>
<td style="width: 200px;"> 1/4 CD采样率 </td>
<td> 低质量的 PCM、MPEG audio、低音炮音频分析时使用。<br>
</td>
</tr>
<tr class="d1">
<td style="width: 200px;">22,050 Hz</td>
<td style="width: 200px;"> 1/2 CD采样率 </td>
<td> 低质量的 PCM、MPEG audio、低频的音频能量分析时使用。<br>
</td>
</tr>
<tr>
<td style="width: 200px;"><b>44,100 Hz</b></td>
<td style="width: 200px;"> CD采样率 </td>
<td> CD 唱片、MPEG-1 audio 编码(VCD、SVCD、MP3),PAL制式视频录像机使用。<br>
</td>
</tr>
<tr class="d1">
<td style="width: 200px;">88,200 Hz</td>
<td style="width: 200px;"> 2 倍CD采样率<br>
</td>
<td> 专业录音设备、高端音乐场景等使用。<br>
</td>
</tr>
<tr>
<td style="width: 200px;">176,400 Hz</td>
<td style="width: 200px;"> 4 倍CD采样率<br>
</td>
<td> HDCD 录音机、专业 CD 产品应用场景使用。 </td>
</tr>
<tr class="d1">
<td style="width: 200px;">352,800 Hz</td>
<td style="width: 200px;"> 8 倍CD采样率<br>
</td>
<td> Digital eXtreme Definition (DXD) 音频格式使用,制作Super Audio CD。<br>
</td>
</tr>
</tbody>
</table>
<br>
在 CD 倍率系列里面,电脑声卡都支持标准CD采样率 44100 Hz,也可能支持 1/4 和 1/2 CD采样率。如果程序开发时需要用到 CD
倍率系列,建议直接用 44100 Hz。<br>
<br>
这里顺便提一下重采样(Resampling)的概念,比如 44100 Hz 和 48000
Hz的信号明显不兼容,倍率不同,无法对齐,如果希望两种信号互相转换,那么就需要进行重采样。重采样一般采用插值的方法实现,音频库 Speex
自带重采样函数,后面教程再介绍。<br>
<br>
声音信号采集第二个常用参数是采样位数,以 8kHz 单声道采样为例,每秒采集 8000 个数值,每个采样数值占用多少比特位就是采样位数,最常用的是 8
bit、16 bit,高端声卡也支持 24 bit、32 bit采样位数。采样位数越多,声音量级就越精细。与采样位数密切相关的是数值点的数据格式,一般
8 bit 采用无符号整数表示,16bit、24 bit、32bit采用有符号整数表示;另外,32 bit也可以用浮点数表示,当使用浮点数采样时,取值为
-1.0 到 +1.0 之间的浮点数。<b>采样位数和数据格式中,最常用的是 8 bit无符号整数和 16 bit有符号整数。 </b><br>
<br>
采样的数据速率就是指每秒所有声道采样数据的总量,计算公式为:<br>
<br>
<div style="color: red"> <b>采样频率 * 采样位数 * 声道数 = 采样数据速率</b> </div>
<br>
对于采样频率 8kHz、采样位数 8bit、单声道(以后简略记为 8kHz 8bit 1ch )的音频信号,其数据速率为 64 kbps。64
kbps数据速率对于目前常见的20Mbps甚至100Mbps的家庭宽带来说是微乎其微的, 8kHz 8bit 1ch 的音频信号数据可以直接在 UDP
套接字里面发送,都不需要压缩。<br>
对于高精度的音频采样,比如 192kHz 16bit 2ch 的音频信号,数据速率为 6144 kps,就是比较大的数值了,比如十多年前 ADSL
上网时只有 2Mbps
的带宽,没法传输未压缩的高精度音频采样,这只是音频,还没算视频数据速率。所以有限的带宽促进了音频、视频编码和解码技术的进步,这也是编写本教程的主旨——推广开源的
音频、视频编解码技术。<br>
<br>
<div class="os2">1.1.4 音频编码和解码</div>
<p>
不论是音频还是视频的压缩编码,其算法的核心内容都是一堆计算公式,进行时域和频域的变换,分析并去除冗余信息。公式和理论不是本教程关注的东西,这些公式都有专门的信号
处理和多媒体技术方面教材,本教程关注的是开源的音视频编码库如何使用,只讲代码层面的知识。 </p>
音频编码的目标就是尽可能压缩原始采样数据,节省带宽,方便文件存储和网络传输。音频编码大致可以分为两类:无损编码和有损编码。第一类是无损编码,比如本教程后
面介绍的 FLAC 是一种对原始 PCM
进行无损压缩的编码库。无损编码的特点是信息解码后不会有任何的丢失,解码后每一比特都和原始采样数据一致。无损编码最大的特点是大,占用空间或带宽很多。<br>
<br>
实际中使用最多的都是有损编码,一般是使用离散余弦变换等数学方法将信号从时域转换到频域,将人耳不敏感的频域部分信息过滤掉,然后进行编码。有损音频编码常见的
有:MP3、WMA、AAC、Vorbis、Speex、Opus等等。有损编码也都有相应的解码器,解码器就是将压缩后的数据在一定程度上还原为 PCM
数据,解码得到的 PCM 数据与原始采样数据是有差异的,这也是称之为有损编码的原因。<br>
<br>
本文主要关注开源的音频编解码库,如 FLAC、Vorbis、Speex、Opus 等,而 AAC、MP3 和 WMA
都是专利授权编码,本教程不涉及。需要特别注意的是 AAC 编码,虽然有 FAAC/FAAD、FDK-AAC 等开源实现代码,但是 AAC
这项技术本身有专利保护,杜比实验室旗下的 Via Licensing 公司专门负责 AAC 专利授权收费,虽然代码不要钱,但是只要使用了 AAC
技术,Via Licensing 公司就能收专利费。在没有购买授权的情况下,商业产品不能使用任何 AAC 技术。<br>
<br>
<div style="color: red"> <b>真正开源免费的只有 Xiph.Org 基金会研发管理的音频编解码库,所以本教程专注
Xiph.Org 基金会的编解码技术。</b><br>
</div>
<br>
<br>
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 40%;">
<div style="text-align: center;"><a href="ch01-00.htm"><img class="pic"
style="width: 32px; height: 32px;" alt="prev" src="images/pics/prev.png"></a></div>
</td>
<td style="width: 20%;">
<div style="text-align: center;"><a href="contents.htm"><img class="pic"
style="width: 32px; height: 32px;" alt="contents" src="images/pics/contents.png"></a></div>
</td>
<td style="width: 40%;">
<div style="text-align: center;"><a href="ch01-02.htm"><img class="pic"
style="width: 32px; height: 32px;" alt="next" src="images/pics/next.png"></a></div>
</td>
</tr>
</tbody>
</table>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。