2024年4月19日发(作者:)

音频文件格式

!"#$ 的转换

李 敏

东南大学无线电工程系

!

江苏 南京

$

"!JJ/K

摘要

)

本文详细介绍了

#$%

声音文件的格式

!

分析了两种文件头的条目安排及相应文件中的数据存放方式

!

简要例举了实际应用

"

关键词

!

#$%

格式

#

&’((

#

文件头

#

)*+,-

中图分类号

!

.,/!"01

文献标识码

!

$

*+,-./0+1,230- 0/ %4’ 45630 $378 $0+1,2

23435

6789:;475; <= &9>3< ?5@3577:35@ A B

49.2+,:2) .D3E 9:;3LM7 @3F7E 9 8:7E75;9;3<5 <= #$% $C>3< (3M7 (<:49; 35 >7;93MA 959MNO35@ ;D7 3;74 9::95@7475; 95>

P9NE <= >9;9 E;<:9@7 =<: ;P< ;N87E <= =3M7 D79>0 $; M9E;A 3; 9ME< 35;:<>CL7E E<47 988M3L9;3<5 Q:37=MN0

;8< =0+6) #$% E877LD =3M7 =<:49;R &’(( R (3M7 *79>R )*+,-

接 保 存

&’()

声音文件格式是目前

&*+,-./

最直

声音数据的文件格式

!

在涉及声音信号处理时

"

大多是

&’(

文件直接操作

"

有必要搞清楚所研究声音的文

件格式

!

针对这两种

472+?

"

05::

又从原先的

C

裸数据

C

中切出

所示

%

GAB61

作为

C

格式辨别码

C

"

如表

!

! "#$$

文件与

%&’

文件

&*+,-./

环境下

"

大部分多媒体文件都依循着

一 种 结 构 来 存 放 信 息 为 资 源 互 换 文 件 格 式

"

#

01!

"

05::

的树状结构有所了解之后

"

可以知道它相

/-2341/ 5+613478+91 :*;1 :-3<86

$

=

简称

05::

%

比如声音的

&’(

文件

&

视频的

’(5

文件

&

动画的

>>>

文件等均是

由此结构衍生出来的

!

所以

"

要掌握多媒体文件格式

"

首先得认识

05::

的结构

!

当于一个根目录

"

而格式辨识码则相当于具体的盘符

H

(

I

(

等等

%

视窗下的各种多媒体文件格式就如同

在磁盘机下规定只能存放怎样的目录

"

而在该目录下

仅能存放何种数据

%

05::

是一种树状结构

"

其基本组成单位是

472+?

块 个

472+?

由 辨 识 码 据 大 小 和 数 据 组 成

$"

&

"

如表

@

!

可以看出

"

一个

472+?

的长度

"

就是数据的大小

加上

%AB61

!

( %&’

文件头

顾名思义

"

&’(

就是波形音频文件

&8J1 ’2,*-

$"

&*+,-./

中用来表示数字化声音的一种标准格式

"

其文件扩展名为

$.8J

"

是一种非常简单的

05::

文件

"

式辨识码为

)

&’()

*%

整个

&’(

文件分成两部分

(

文件头和数据块

%

用计算机处理声音信号的过程中

"

常常遇到以下两种

!

一般而言

"

472+?

本身不允许内部再包含

472+?

"

情况

(

当没有现成

&’(

文件时

"

需要使用一些音频处

理软件如

H--;1,*6

"

E-2+,1,*6

"

将其它格式转化成

有两个例外

(

C05::C

和 以

CD5EFC

为 辨 识 码 的

472+?

%

!")

文件经过编解码以后

!

只产生了数据块

!

少了

!")

文件头

!

无法直接播放

#

于是

!

为了让程序自动

生成

!")

文件

!

必须在裸数据前添加正确的

!")

件头

#

研究中发现

!

!")

格式文件主要有两种文件头

#

UU

采样频率

&

每秒取样数

V!B*V 0;8[WP&9E=9RY9-T

UU

每秒数据量

!B*V 0W’H:1;’F[.T UU

记录区块的对齐单位

!"#

标准的

$$

字节文件头

这种

!")

是最简单的一种

*+,,

格式

!

包含两个

Z !;)@AB*?;DT

为了产生出能够正确读出的

!;)

文件

!

必须严格

-./01

$

234&5-16

%

27%895:%&%6

! 这两个子块都 是 一 个

!;)

文件必须包含的

#

注意以下几个分量间的特定关系

L

否则产生出的文件将

无法正常播放

$

0;8[WP&9E=9RY9- ‘ 0Y%4Q’9E=9RY9- a 0>.%009’E a

234&5-16

子块

!

描述了波形数据

27%895:%&%6

的格

!

对于

<<

字节文件头

!

它由结构

=>?!;)@ABC?;D

组成

!

其子块大小是

EFG9H3I=>?!;)@ABC?;JKL

数据是

=>?!;)@ABC?;D

的 数 据

!

如 表

M

所 示

#

其 中

=>?!;)@AB*?;D

=>?

波形音频数据的数据格式

结构

!

大小是

NO

字节

!

定义如下

$

! ""

字节文件头结构

&PQ9:93 E&R/-&

S

!;)@ABC?;D 73T

UU

先包含一个

!;)@AB*?;D

结构

!B*V 7WF&EX9RY%4Q’9T

UU

每个取样所须位元数

Z =>?!;)@AB*?;DT

&PQ9:93 E&R/-&

S

!B*V 7AHR4%&D%[T

UU

编码格式如

!;)@ABC?;D=>?

&

]^]]]N

!BCV 0>.%009’ET

UU

声道数

$

单声道

N

%

双声道

_

7WF&EX9RY%4Q’9Ub

0W’H-1;’F[0 ‘ 0>.%009’E a 7WF&EX9RY%4Q’9Ub

根据以上规则

!

<

给出一个

b1cG

采样

!

NO(F&

化的声音文件的

234&5-./016

$

" #$%&

!

’()*+

!

单声道

,-+

子块

!%! &’

字节文件头

. .#

字节的文件头

如果不是

!F0:H7E

的标准

!;)

文件

!

而是经过了

一些软件处理的

!

往往就是

db

字节的文件头

!

如表

d

所示

!

它比

&&

字节的多了一个

’()*

子块

!

+’()*,)-.

定 义 如

存了关于

/01

文件内容的重要信息

"

该子块

#

+’()*,)-. 2. ’()*3+456789:7;9< =/>?=.@

* +,-

文件中的位安排方式

AABCDE9F G

’ H(DI89H

其中

+’D*,)-.

见表

J

"

它由结构

/01K6>?L0MKN

所组成

O

"

大小为

P%

字节

"

定义如下

#

*QI949’ H*FC)* 5(R9’GFD(*S9T*9B494S*(U V

/>?= 56GFD(*M(UW

AA

编码格式

/>?= BXY(BB98HW

形式如表

^

所示

"

根据声道数不同及取样位数的不同

"

安排

&

位的位置

&

AA

声道数

#

单声道

P

"

双声道

!

=/>?= B:(DI89HZ9F:9)W

AA

采样频率

$

每秒取样数

%

=/>?= B0RU[Q*9HZ9F:9)W

AA

每秒数据量

/>?= B[8G)-087UBW AA

记录区块的对齐单位

/>?= 5[7*HZ9F:(DI89W

AA

每个取样所需位元数

/>?= )E:7;9W

AA

附加信息的字节数

/01K6>?L0MKNW

! "#$%

!

&!’()

!

单声道

!

!

"#$#

"

子块数据安排方式

]4(*(]

子块中装的是真正的声音数据

&

除非安装其

它特殊软件

"

否则

/7B4G5H

目前仅提供

/01KS6>?!

L0MSZXL

一种数据格式

"

脉冲编码调制

$

ZC8H9 XG49

LG4C8(*7GB

%&

针对此格式

"

/7B4G5H

]4(*(]

子块中数据存放的

注 意

#

/7B4G5H

中 将

PJ

位 值 的 范 围 定 为

,_!^J% "

_!^J^

&

另外

"

"

并不一定代表无声

"

而是由中间数值来

决定

"

%

位的时候为

P!%

"

PJ

位时

"

才是无声

&

所以

"

编程中需要放入无声的数据时

"

必须先认清声音格式

PJ

位还是

%

&

%

结束语

通常解压缩后得到的文件仅仅是裸数据

"

不能正

常播放声音

&

了解了

/01

文件格式后

"

就可以按照标

准 的

&&

字 节 格 式

"

在 解 码 数 据 前 编 写 一 个 正 确 的

/01

文件头

"

使其成为一个有效的

/01

文件

&

另一种情况下

"

如果缺少标准的

/01

文 件

"

我 们

可以用一些特殊的软件去将其它格式转化成

/01

"

时得到的通常就是

#%

字节格式

&

了解了该文件头所包

含的内容及各个条目所在位置

"

编程时就能方便地提

取所需要的音频信息

"

进行下一步的处理

&

因此

"

/01

格式的清楚 分 析

"

/7B4G5H

进行声音信号处理的第一步

&

参考文献

‘Pa

黄伟伦

"

$LH,/7B4G5H

多媒体程序设计实务与

范例

‘La$

武汉

#

华中理工大学出版社

"

PbbJ

‘!a

陈立伟

$

基于

1XJ$"

>I9Bc8

/7B4G5H

图 形

接口设置方法

$

西南科技大学学报

O!""!$P^d&e

‘_a

陈 昭 炎

$ /7B4G5H

环 境 下 的 声 音 信 号 处 理 方 法

‘La$

中国期刊全文数据库

‘&a

朱学芳

"

徐建平

$

计算机语音信号处理与语音识

别系统

$

南京邮电学院学报

$Pbb%$P%3#e

收稿日期

#

!""#

!