0 音频编解码基础

  • 采样率:声音信号在“模数转换”过程中单位时间内采样的次数。
  • 采样值:每一次采样周期内声音模拟信号的积分值。
  • 单声道:11.025 KHz 采样值,8 Bits 采样值(0x00 - 0xFF)。
  • 双声道:44.1 KHz 采样值,16 Bits 采样值。高八位表示左声道,低八位表示右声道。

1 WAV音频文件格式

见下图:


AudioRecord设置双通道 音频格式双声道_pcm

  • RIFF/WAV 文件标识段
  • 声音数据格式说明段
  • 数据体:由 PCM(脉冲编码调制)格式表示的样本组成。

单声道 WAV 文件中,声道0代表左声道,声道1代表右声道;多声道 WAV 文件中,左右声道的样本是交替出现的。

1.1 文件头格式:

偏移地址

字节数

数据类型

内容

0x00

4

char

“RIFF”标志

0x04

4

long int

文件长度

0x08

4

char

“WAVE”标志

0x0C

4

char

“fmt ”标志

0x10

4

 

过度字节(不定)

0x14

2

int

格式类别(0x10是PCM形式的声音格式)

0x16

2

int

通道数(1为单声道,2为双声道)

0x18

2

int

采样率(每秒的样本数,表示每个通道的播放速度)

0x1C

4

long int

波形音频数据传输速率,为(通道数x每秒数据位数x样本的数据位数/8,播放器根据此值估算缓冲区大小)

0x20

2

int

数据块的调整数,为(通道数x没样本的数据位值/8),播放软件一次需要处理多个该值大小的字节数据,以便就爱将其值用于缓冲区的调整

0x22

2

 

每样本的数据位数,表示每个声道中各样本的数据位数,如果有多个声道,对每个声道而言,样本大小都一样

1.2 数据体格式:

偏移地址

字节数

数据类型

内容

0x24

4

char

数据标记符“data”

0x28

4

long int

语音数据的长度

然后就是语音数据帧了。下表中的0声道代表左声道,1声道代表右声道:

偏移地址

sample1

sample2

8位单声道

0声道

0声道

8位双声道

0声道,1声道

0声道,1声道

16位单声道

0声道低字节,0声道高字节

0声道低字节,0声道高字节

16位双声道

0声道低字节,0声道搞字节

1声道低字节,1声道高字节

1.3 WAV文件格式实例分析(转载)

地址段

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0x00000000

52

49

46

46

0A

06

01

00

57

41

56

45

66

6D

74

20

0x00000010

12

00

00

00

01

00

02

00

44

AC

00

00

10

B1

02

00

0x00000020

04

00

10

00

00

00

66

61

63

74

04

00

00

00

76

41

0x00000030

00

00

64

61

74

61

D8

05

01

00

00

00

00

00

FF

FF

0x00000040

00

00

FE

FF

FE

FF

00

00

00

00

FE

FF

FE

FF

00

00


















0x00000050

64

61

6B

61

D8

05

01

00

 

 

 

 

 

 

 

 

地址段

字节数

数据类型

内容

0x00 - 0x03

4

4个char

标志位,"RIFF"

0x04 - 0x07

4

1个int

文件长度,小尾端,实际是0x0001060A

0x08 - 0x0B

4

4个char

标志位,“WAVE”

0x0C - 0x0F

4

4个char

标志位,“fmt ”,fmt表示为,最后一个是空格

0x10 - 0x13

4

1个int

0x00000012,sizeof(PCMWAVEFORMAT)

0x14 - 0x15

2

1个short

格式类别,1(WAVE_FORMAT_PCM)表示PCM形式的声音数据

0x16 - 0x17

2

1个short

通道数,1为单声道,2为双声道

0x18 - 0x1B

4

1个int

采样率

0x1C - 0x1F

4

1个int

0x10B10000,每秒数据量

0x20 - 0x21

2

1个short

数据块的调整值(按字节算)

0x22 - 0x4F

 

 

 

0x50 - 0x53

4

4个char

标志位,“data”

0x54 - 0x57

4

1个int

语音数据大小,0x000105D8

Reference

  1. WAV(PCM)文件格式分析