我是靠谱客的博主 苗条蓝天,最近开发中收集的这篇文章主要介绍音频基础知识,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、概念

从信息论的观点来看,描述信源的数据是信息和数据冗余之和,即:数据=信息+数据冗余。音频信号在时域和频域上具有相关性,也即存在数据冗余。将音频作为一个信源,音频编码的实质是减少音频中的冗余。

根据编码方式的不同,音频编码技术分为三种:波形编码、参数编码和混合编码。一般来说,波形编码的话音质量高,但编码速率也很高;参数编码的编码速率很低,产生的合成语音的音质不高;混合编码使用参数编码技术和波形编码技术,编码速率和音质介于它们之间。

通常我们采用的是脉冲代码调制编码,即PCM编码。PCM通过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字编码。

简单讲,其实就是将采集到的音频模拟信号,经过一定的转换,变成方便在信道中传输的数字信号。在不同的使用场景,也许会使用不同的编码方式,那么音频质量、码率、安全系数等都不一样。

 

二、PCM - 脉冲编码调制

模拟信号经过->抽样->量化->编码->数字信号

采样(sample
数码音频系统是通过将声波波形转换成一连串的二进制数据来再现原始声音的(原始声音是模拟信号),实现这个步骤使用的设备是模/数转换器(A/D转换器,或者ADC,或者analog to digital convert)。它以每秒上万次的速率对声波进行采样,每一次采样都记录下了原始模拟声波在某一时刻的状态,称之为样本。将一串的样本连接起来,就可以描述一段声波了,把每一秒钟所采样的数目称为采样频率或采率,单位为HZ(赫兹)。采样频率越高所能描述的声波频率就越高。采样率决定声音频率的范围(相当于音调),可以用数字波形表示。以波形表示的频率范围通常被称为带宽。要正确理解音频采样可以分为采样的位数和采样的频率。
采样位数(采样精度)
 电脑中的声音文件是用数字01来表示的。所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声音信号输出。采样位数可以理解为采集卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。采集卡的位是指采集卡在采集和播放声音文件时所使用数字声音信号的二进制位数。采集卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。8位代表28次方0~25616 位则代表216次方-32768~32767

PCM中的声音数据没有被压缩,如果是单声道的文件,采样数据按时间的先后顺序依次存入。如果是双声道的文件,采样数据按时间先后顺序交叉的存入,比如:左声道数据、右声道数据、左声道数据、右声道数据

PCM的每个样本值范围:

样本大小

 数据格式     

    最小值

  最大值

8PCM 

Unsigned char

0

255

16PCM

short

-32768

32767

32PCM

Int

-2147483648

2147483647


采样率(sample rate
 单位时间内对媒体对象的采样次数,单位Hz。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。在当今的主流采集卡上,采样频率一般共分为 22.05KHz44.1KHz44100Hz)、48KHz三个等级,22.05 KHz只能达到FM广播的声音品质,44.1KHz则是理论上的CD音质界限,48KHz则更加精确一些。对于高于48KHz的采样频率人耳已无法辨别出来了,所以在电脑上没有多少使用价值。
  5kHz的采样率仅能达到人们讲话的声音质量。
  11kHz的采样率是播放小段声音的最低标准,是CD音质的四分之一。
  22kHz采样率的声音可以达到CD音质的一半,目前大多数网站都选用这样的采样率。
  44kHz的采样率是标准的CD音质,可以达到很好的听觉效果。
 通道数(channel
 分为单声道mono;立体声stereo。当然还存在更多的通道数。举个列子,声道多,效果好,两个声道,说明只有左右两边有声音传过来,四声道,说明前后左右都有声音传过来
比特率(bitrate
 也叫码率。针对编码格式,表示压缩编码后每秒的音频数据量大小。计算公式:比特率 = 采样率 x 采样精度 x 声道数。单位kbps,这里的k1000
VBRABRCBR
 VBRVariableBitrate)动态比特率。也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率。这是新发展的算法,他们将一首歌的复杂部分用高Bitrate编码,简单部分用低Bitrate编码。主意虽然不错,可惜新编码器的VBR算法很差,音质与CBR相去甚远。幸运的是, Lame完美地优化了VBR算法,使之成为MP3的最佳编码模式。这是以质量为前提兼顾文件大小的方式时推荐的编码模式。
  ABRAverage Bitrate)平均比特率,是VBR的一种插值参数。Lame针对CBR不佳的文件体积比和VBR生成文件大小不定的特点独创了这种编码模式。ABR也被称为“Safe VBR”,它是在指定的平均Bitrate内,以每50帧(30帧约1秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量。举例来说,当指定用192kbps ABR对一段wav文件进行编码时,Lame会将该文件的85%192kbps固定编码,然后对剩余15%进行动态优化:复杂部分用高于192kbps 来编码、简单部分用低于192kbps来编码。与192kbps CBR相比,192kbps ABR在文件大小上相差不多,音质却提高不少。ABR编码在速度上是VBR编码的23倍,在128-256kbps范围内质量要好于CBR。可以做为 VBRCBR的一种折衷选择。
 CBRConstantBitrate),常数比特率,指文件从头到尾都是一种位速率。相对于VBRABR来讲,它压缩出来的文件体积很大,但音质却不会有明显的提高。
有损和无损
根据采样和量化的过程可知,音频编码最多只能做到无限接近自然界的信号,至少目前的技术还不可能将其完全一样。这是因为自然界的信号是连续的,而音频编码后的值是离散的。因此,任何数字音频编码方案都是有损的,这也就意味着任何的音频都不可能完全还原出自然界的声音。
  在计算机应用中, PCM编码能够达到最高保真水平。它已经被广泛地应用于素材保存及音乐欣赏,包括CDDVD以及 WAV文件等等。因此,PCM约定俗成了无损编码,但是这并不意味着PCM就能够确保信号绝对保真,PCM也只能做到最大程度的无限接近。

 

三、音频的编解码
通常也把音频采样过程叫脉冲编码调制编码,即PCMPulse Code Modulation)编码,采样值也叫PCM值。为了节省保存空间或者发送流量,会对PCM值压缩。目前
主要有三大技术标准组织制定压缩标准:
aITU,主要制定有线语音的压缩标准(g系列),有g711/g722/g726/g729等。
b3GPP,主要制定无线语音的压缩标准(amr系列等), amr-nb/amr-wb。后来ITU吸纳了amr-wb,形成了g722.2
cMPEG,主要制定音乐的压缩标准,有11172-313818-3/714496-3等。
一些大公司或者组织也制定压缩标准,比如iLBCOPUS

 

四、音频前后处理
音频处理是指对PCM数据(也叫线性数据)进行处理,从而达到想要的效果,如回声消除。
对音频编码前的PCM数据进行处理叫音频前处理,主要用于语音中,来去除各种干扰,使声音更清晰,主要有回声消除、噪声抑制、增益控制等。
对音频解码后的PCM数据进行处理叫音频后处理,主要用于音乐中,来产生各种音效,使音乐更动听,主要有均衡器、混响等。

改进型归一化混音算法

https://blog.csdn.net/jeffasd/article/details/77335874

speex库音频降噪

https://www.cnblogs.com/riddick/p/6959390.html

五、音频传输
这里主要是指网络传输,通过网络把音频数据传给对方。语音和音乐两种场景下有明显的区别。对于语音来说,实时性要求很高,主要用RTP/UDP做承载,由于UDP是不可靠传输,会丢包乱序等,影响语音质量,所以要采取相应的措施,主要有PLC(丢包补偿)FEC(前向纠错)、重传、jitterbuffer等。
对于音乐来说,以前是播放本地音乐文件,近些年随着网络带宽的加大,可以播放云端的音乐文件了。播放时要把音乐文件传给播放器,一般是边播放边下载,播放音乐对实时性要求不高,一般用HTTP/TCP做承载,也就不存在丢包乱序等问题了。

 

六、常见音频文件格式 

1. WAV格式,是微软公司开发的一种声音文件格式,也叫波形声音文件,是最早的数字音频格式,被Windows平台及其应用程序广泛支持,压缩率低。

2. MIDIMusical InstrumentDigital Interface的缩写,又称作乐器数字接口,是数字音乐/电子合成乐器的统一国际标准。它定义了计算机音乐程序、数字合成器及其它电子设备交换音乐信号的方式,规定了不同厂家的电子乐器与计算机连接的电缆和硬件及设备间数据传输的协议,可以模拟多种乐器的声音。MIDI文件就是MIDI格式的文件,在MIDI文件中存储的是一些指令。把这些指令发送给声卡,由声卡按照指令将声音合成出来。

3. MP3全称是MPEG-1 Audio Layer3,它在1992年合并至MPEG规范中。MP3能够以高音质、低采样率对数字音频文件进行压缩。应用最普遍。

4. MP3Pro是由瑞典Coding科技公司开发的,其中包含了两大技术:一是来自于Coding科技公司所特有的解码技术,二是由MP3的专利持有者法国汤姆森多媒体公司和德国Fraunhofer集成电路协会共同研究的一项译码技术。MP3Pro可以在基本不改变文件大小的情况下改善原先的MP3音乐音质。它能够在用较低的比特率压缩音频文件的情况下,最大程度地保持压缩前的音质。

5. MP3Pro是由瑞典Coding科技公司开发的,其中包含了两大技术:一是来自于Coding科技公司所特有的解码技术,二是由MP3的专利持有者法国汤姆森多媒体公司和德国Fraunhofer集成电路协会共同研究的一项译码技术。MP3Pro可以在基本不改变文件大小的情况下改善原先的MP3音乐音质。它能够在用较低的比特率压缩音频文件的情况下,最大程度地保持压缩前的音质。

6. WMA (Windows Media Audio)是微软在互联网音频、视频领域的力作。WMA格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18。此外,WMA还可以通过DRMDigital Rights Management)保护版权。

7. RealAudio是由Real Networks公司推出的一种文件格式,最大的特点就是可以实时传输音频信息,尤其是在网速较慢的情况下,仍然可以较为流畅地传送数据,因此RealAudio主要适用于网络上的在线播放。现在的RealAudio文件格式主要有RA(RealAudio)RMRealMediaRealAudio G2)、RMX(RealAudio Secured)等三种,这些文件的共同性在于随着网络带宽的不同而改变声音的质量,在保证大多数人听到流畅声音的前提下,令带宽较宽敞的听众获得较好的音质。

8. Audible拥有四种不同的格式:Audible1234Audible.com网站主要是在互联网上贩卖有声书籍,并对它们所销售商品、文件通过四种Audible.com 专用音频格式中的一种提供保护。每一种格式主要考虑音频源以及所使用的收听的设备。格式12 3采用不同级别的语音压缩,而格式4采用更低的采样率和MP3相同的解码方式,所得到语音吐辞更清楚,而且可以更有效地从网上进行下载。Audible 所采用的是他们自己的桌面播放工具,这就是Audible Manager,使用这种播放器就可以播放存放在PC或者是传输到便携式播放器上的Audible格式文件

9AAC实际上是高级音频编码的缩写。AAC是由Fraunhofer IIS-A、杜比和AT&T共同开发的一种音频格式,它是MPEG-2规范的一部分。AAC所采用的运算法则与MP3的运算法则有所不同,AAC通过结合其他的功能来提高编码效率。AAC的音频算法在压缩能力上远远超过了以前的一些压缩算法(比如MP3等)。它还同时支持多达48个音轨、15个低频音轨、更多种采样率和比特率、多种语言的兼容能力、更高的解码效率。总之,AAC可以在比MP3文件缩小30%的前提下提供更好的音质。

10. Ogg Vorbis 是一种新的音频压缩格式,类似于MP3等现有的音乐格式。但有一点不同的是,它是完全免费、开放和没有专利限制的。Vorbis 是这种音频压缩机制的名字,而Ogg则是一个计划的名字,该计划意图设计一个完全开放性的多媒体系统。VORBIS也是有损压缩,但通过使用更加先进的声学模型去减少损失,因此,同样位速率(Bit Rate)编码的OGGMP3相比听起来更好一些。

11. APE是一种无损压缩音频格式,在音质不降低的前提下,大小压缩到传统无损格式 WAV 文件的一半.

12 .FLAC即是Free Lossless AudioCodec的缩写,是一套著名的自由音频无损压缩编码,其特点是无损压缩。

 

七、音频处理的开源库

在windows上,处理waveout,wavein这种较简单的编程方式,目前最常用的就是directsound。

一些开源库推荐:

OpenAL:是自由软件界的跨平台音效APIOpenAL]最初是由LokiSoftware所开发,是为了将Windows商业游戏移植到Linux上,Loki倒闭以后,这个项目由自由软件/开放源始码社群继续维护。

http://www.openal.org/

PortAudio:一个免费的、跨平台的、开放源码的音频I/O库。它可以让你用CC++来编译并在多种平台能够运行的简单音频程序,包括WindowsMacintosh OS XUNIXOSS / ALSA)。http://www.portaudio.com/

Speex:提供一个可以替代高性能语音编解码来降低语音应用输入门槛。另外,相对于其它编解码器,Speex也很适合网络应用,在网络应用上有着自己独特的优势。https://www.speex.org/

WebRTC

Opus

SDL

 

各种音频数据(G.711A/PCMAG.711U/PCMUG726PCM)转码成AAC(with adts)格式

https://github.com/EasyDarwin/EasyAACEncoder

 

八、音频分析软件

Cool edit pro

免费的音频处理软件Audacity:https://www.audacityteam.org/

Wavesufer


最后

以上就是苗条蓝天为你收集整理的音频基础知识的全部内容,希望文章能够帮你解决音频基础知识所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部