移动开发中关于音频的基本概念

在音频开发过程中,总会面对很多音频领域的一些专业名词,如果不能理解这些名词,可能会对开发领过程造成极大的困扰,在进入一些新领域时,熟悉这个领域常用的概念是很有必要的,可以极大减少了沟通和理解的成本。

模拟音频

声音是物体的震动产生的波,声波一般不是正弦波,比如这种

我们常说声音的三要素:音调,音色,响度。

音调:主要指的是声音的频率,频率越高,音调越高。 音色:主要指的是波形不同(谐波) 响度:主要指的是声音的音量,在声波中的体现就是振幅,振幅越大,响度越大

看到这里可能有疑惑,既然声音是不规则的波形,为什么声音三要素的定义似乎都参照正弦波这种规则波形定义呢?

因为傅里叶变换告诉我们,任何波形都可以转换为N个正弦波来表示,其中频率最小,振幅最大的正弦波为基波,其余的为谐波,音调和响度基本依照基波来定,而音色则是谐波来决定的。

音调和响度决定了发音方式,比如每个人都可以对某个字发音,但是不同的人音色不同,也就是其声音的谐波不同,所以听起来是不一样的。

数字音频

在现实世界中,声音是连续的,但是在网络世界,数据则是离散的,现实世界的声音录入计算机往往需要经历一次采样,就是在连续的声音波形中定期打点取样,只要每秒打点次数足够多,那么就可以近似认为这些点组成了连续的波形。

PCM

PCM 是指脉冲编码调制(Pulse Code Modulation)

把声音从模拟信号转化为数字信号的技术,即对声音进行采样、量化 的过程,经过PCM处理后的数据,是最原始的音频数据,即未对音频数据进行任何的编码和压缩处理。

而且在数字世界,声音不再用音调,响度,音色来定义,而是需要关注采样率,采样精度(位深度),声道数。

采样率(sample rate)

采样率就是我们说的一定周期内对现实声波采样的次数,比如我们常见的44100hz,就是每秒钟对声音采样44100次,相当于每秒钟记录了44100个声音的数据。

声音的采样频率一般共分为22.05KHz44.1KHz48KHz三个等级:

  • 22.05kHz 采样率的声音可以达到CD音质的一半
  • 44.1kHz采样率是标准的CD音质,可以达到很好的听觉效果(一般最常使用)
  • 48KHz:miniDV、数字电视、DVD、电影和专业音频

采样精度(位深度/bit depth)

每个采样点所能表示的数据范围,范围越大表明声音越丰富,越细腻。波形的纵轴就表示采样点的大小。

通常有8bit和16bit两种,也有更高的,比如20bit,24bit,32bit.

8bit为低品质

16bit为高品质(最为常见)

假如声音的采样精度为16bits,则每个采样点能表示得范围是2^16,如果是8bits,则每个采样点能表达的范围是2^8,显然,前者比后者更加精确,在数字音频领域,就表现为声音的还原度更高,声音更细腻。

声道数(channel/通道)

声道是存储音频的轨道,用来给发声设备发声,一般音频文件中可能不止一个声道,多个声道保存了多份音频数据,用来给不同的设备发声。

常见声道有单声道(mono)、双声道(stereo)、2.1声道、4声道、5.1声道、7.1声道。

其中单声道是一个声道,双声道是两个声道,后面数字表示的声道,声道数就是是小数点前后数字相加,比如2.1是三个声道,5.1是6个声道,7.1是8个声道。

  • 双声道: 左声道+右声道 也称作立体声
  • 多声道: 超过2个声道即可
  • 2.1声道: 两个中高音单元+1个低音单元
  • 4声道: 前左、前右,后左、后右四个发声单元
  • 5.1声道:两前置单元,两后置单元,一个中央单元,一个低音单元,最早应用于早期的电影院
  • 7.1声道:在5.1的基础上增加了左后和右后两个发声单元,主要应用于BD以及现代的电影院

比特率(码率/bit rate)

表示一秒钟音频的信息量。

因此它是一个可以计算的数据:

bit_rate = channel_count * sample_rate * bit_depth / 8

我们可以利用音频的比特率来计算当前音频帧的显示时间戳(PTS)

数字音频压缩

我们提到采样到数字领域的音频数据是无压缩的原始数据,因此后续会经过一些编码算法处理来进行压缩。

压缩算法主要可以分为无损压缩有损压缩

无损压缩

无损压缩指的是在无损格式之间的压缩,无论压缩成什么格式,音质都是不变的,并且都能被还原成最初同样的文件格式。

FLAC(Free Lossless Audio Codec)

压缩比高,编码算法也相当成熟,当flac文件受损时依然能正常播放。

参数

  • 采样率 1--655350 Hz (逐1hz微调)
  • 比特率 灵活
  • 位深度 8, 16, 20, 24, 32
  • 多通道 1-8

ALAC

无损压缩,采样率灵活,采样深度范围较大

参数

  • 压缩率
  • 采样率 1--384000 Hz
  • 比特率 灵活
  • 位深度 16, 20, 24, 32
  • 多通道 1-8

APE(Monkey's Audio)

无损压缩,采样率灵活。

不支持多通道,采样深度不够

参数

  • 采样率 1--655350 Hz
  • 比特率 灵活
  • 位深度 8, 16, 24
  • 多通道 否

有损压缩

MP3 (MPEG Audio Layer III)

比特率的限制320kbit/s

采样频率最高为48kHz,对于超过48kHz采样频率的音频无法编码在MP3内

参数

  • 采样率 32khz 44.1 khz 48 kHz (仅允许三种)
  • 比特率 6、12、24...96, 112, 128, 144, 160, 192, 224, 256, 288, 320 kbit/s等 (128以上音质不错,CD上未经压缩的音频比特率为1411.2 kbps)
  • 采样精度 8, 16,
  • 声道数

AAC (Advanced Audio Coding)

mp3的升级版,有更好的采样率,采样深度,更多声道数,更好的压缩算法。

参数

  • 采样率 8--192 kHz
  • 比特率 8--529 kbit/s
  • 采样精度 8, 16, 24, 32 bit
  • 多通道 1-48

资料

blog.csdn.net/hello_1995/...

zh.wikipedia.org/zh-cn/%E6%9...

zh.wikipedia.org/zh-cn/%E9%9...

相关推荐
咖啡の猫35 分钟前
Shell脚本-for循环应用案例
前端·chrome
百万蹄蹄向前冲3 小时前
Trae分析Phaser.js游戏《洋葱头捡星星》
前端·游戏开发·trae
朝阳5813 小时前
在浏览器端使用 xml2js 遇到的报错及解决方法
前端
GIS之路4 小时前
GeoTools 读取影像元数据
前端
ssshooter4 小时前
VSCode 自带的 TS 版本可能跟项目TS 版本不一样
前端·面试·typescript
Jerry5 小时前
Jetpack Compose 中的状态
前端
dae bal6 小时前
关于RSA和AES加密
前端·vue.js
柳杉6 小时前
使用three.js搭建3d隧道监测-2
前端·javascript·数据可视化
lynn8570_blog6 小时前
低端设备加载webp ANR
前端·算法
LKAI.6 小时前
传统方式部署(RuoYi-Cloud)微服务
java·linux·前端·后端·微服务·node.js·ruoyi