收稿日期:
!
"
"
#
$
"
%
$
"
&
作者简介:
何月顺
(
’
(
&
’
—)
,
男,
湖南道州人,
博士研究生,
主要研究
方向为数据挖掘、
系统集成等。
基于
!
"
#
$
%
&
的音频数据处理研究与应用
何月顺
’
,
!
,
周
良
’
,
丁秋林
’
(
’
)
南京航空航天大学,
江苏
南京
!
’
"
"
’
*
;
!
)
东华理工学院,
江西
抚州
#
+
+
"
"
"
)
摘
要:
介绍了基于
,
-
.
/
0
1
的音频数据处理函数;
实现了自动测试声音文件的格式、
声音文件的播放及声音文件在不同的
存储格式之间的转换;
对声音进行分离与合成;
提取声音的特征值以便进行分析与鉴别;
改变原始声音的采样速率、
采样编
码、
采样宽度等;
在实践中取得了良好的应用效果。
关键词:
音频文件;
存储格式;
测试;
转换
中图分类号:
2
,
!
&
+
文献标识码:
3
文章编号:
’
"
"
%
$
#
&
%
’
(
!
"
"
#
)
’
’
$
"
"
%
’
$
"
#
!
"
#
"
$
%
&
’
$
(
)*
+
+
,
-
&
$
.
-
/
(
/
(*
0
)
-
/1
$
.
$2
$
(
$
3
-
(
3
4
$
#
"
)
/
(5
6
.
’
/
(
4
56
7
8
9
:
/
7
1
’
,
!
,
;
4
<
=>
?
@
1
A
’
,
B
C
D
EF
?
7
9
G
?
1
’
(
’
)
D
@
1
H
?
1
A
=
1
?
I
8
J
:
?
.
-
0
K
3
8
J
0
1
@
7
.
?
L
:
@
1
M3
:
.
J
0
1
@
7
.
?
L
:
,
D
@
1
H
?
1
A
!
’
"
"
’
*
,
N
/
?
1
@
;
!
)
B
0
1
A
/
7
@
C
1
:
.
?
.
7
.
8
0
K
2
8
L
/
1
0
G
0
A
-
,
O
7
P
/
0
7
#
+
+
"
"
"
,
N
/
?
1
@
)
*
7
#
.
%
$
&
.
:
O
7
1
L
.
?
0
1
:Q
8
J
8
?
1
.
J
0
M
7
L
8
M
@
R
0
7
.
@
7
M
?
0
M
@
.
@S
@
1
@
A
?
1
A
0
K
,
-
.
/
0
1
)
C
S
T
G
8
S
8
1
.
8
M
.
0
.
8
:
.
.
-
T
8
0
K
@
7
M
?
0
K
?
G
8
:
@
1
M
T
G
@
-
@
7
M
?
0
K
?
G
8
:
@
7
9
.
0
S
@
.
?
L
)
3
7
M
?
0
K
?
G
8
:Q
8
J
8
L
0
1
I
8
J
.
8
M
R
8
.
Q
8
8
1
.
/
8
M
?
K
K
8
J
8
1
.
.
-
T
8
:
)
U
0
7
1
MQ
8
J
8
:
8
T
@
J
@
.
8
M
@
1
M
L
0
S
T
0
7
1
M
8
M
)
2
/
8
L
/
@
J
@
L
.
8
J
?
:
.
?
L
:
0
K
:
0
7
1
MQ
8
J
8
T
?
L
V
8
M
$
7
T
:
0
.
/
@
.
L
0
7
G
M
@
1
@
G
-
P
8
@
1
M
M
?
:
.
?
1
A
7
?
:
/
.
/
8
S
)
2
/
8
:
@
S
T
G
?
1
A
:
T
8
8
M
@
1
M
:
@
S
T
G
?
1
A
L
0
M
8
@
1
M
:
@
S
T
G
?
1
A
Q
?
M
.
/Q
8
J
8
@
G
.
8
J
8
M
)
5
K
K
8
L
.
:
Q
8
J
8
@
L
/
?
8
I
8
M
?
1
T
J
@
L
.
?
L
8
)
8
"
6
9
/
%
)
#
:
@
7
M
?
0
K
?
G
8
;
:
.
0
J
@
A
8
.
-
T
8
;
.
8
:
.
;
L
0
1
I
8
J
.
:
引
言
为了存储数字化的声音,
麦克风或者其它记录器每秒
多次采样模拟声音波形,
每个样本都采用数字形式,
而这
个数字测量了声音的幅度。扬声器可以将数字化声音转
换为声波。
用来数字化和存储声音的方法多种多样,
它们在以下
几个方面存在差异:
(
’
)
采样速率:
每秒测量声波振幅的次数。常见的采
样速率是
+
+
’
"
"
4
P
(每秒的样本数)
,
也是在音频压缩盘
上使用的速率。
(
!
)
采样编码:
最简单、
常见的就是线性编码,
每个样
本是振幅的线性测量。其他的编码类型包括
7
$
>
3
W
。
(
#
)
采样宽度:
样本可以是
X
位、
’
*
位或者
#
!
位整
数。
(
+
)
通道:
声音可以用一个、
二个或更多的通道来记
录。把一个或多个音频流存储在一个文件中,
来自每个通
道的相应样本通常存储在一帧中。
所有声音格式都是声音质量和文件大小的折衷,
例
如,
一秒钟的声音如果以采样速率为
!
!"
%
"
4
P
和
X
位单
声道来存储,
所使用的全部空间是
!
!
"
%
"
字节,
如果以采
样速率
+
+
’
"
"
4
P
和
’
*
位立体声存储相同的声音则需要
+
+
’
"
"
帧,
每帧需要
+
个字节,
总计需要
’
&
*+
"
"
字节,
空
间增加了
X
倍。因此对音频数据进行适当的处理,
可以获
得特定的需要。
;
在
<
-
(
)
/
9
#
上播放声音
在
,
-
.
/
0
1
中模块
Q
?
1
:
0
7
1
M
在
W
?
1
M
0
Q
:
系统上播放
声音。函数
Y
8
8
T
(
K
J
8
Z
7
8
1
L
-
,
M
7
J
@
.
?
0
1
)
使用计算机内部的
扬声器以音调
K
J
8
Z
7
8
1
L
-
在
M
7
J
@
.
?
0
1
毫秒内播放声音
[
’
]
。
频率范围是
#
&
4
P
到
#
!
&
*
&
4
P
。如果
Y
8
8
T
不能播放声音,
则它将引发
[
7
1
.
?
S
8
5
J
J
0
J
。例如,
下面的代码播放类似金
属撞击的声音,
从中间开始,
每个音符持续半秒钟。
U
L
@
G
8
,
?
.
L
/
8
:
\
[
!
*
!
,
!
(
+
,
#
#
"
,
#
+
(
,
#
(
!
,
+
+
"
,
+
(
+
,
%
!
#
]
K
0
J
T
?
.
L
/
?
1
U
L
@
G
8
,
?
.
L
/
8
:
:
Q
?
1
:
0
7
1
M
)
Y
8
8
T
(
,
?
.
L
/
,
%
"
"
)
函数
,
G
@
-
U
0
7
1
M
(
:
0
7
1
M
,
K
G
@
A
:
)
通过使用可以使用的任
何声卡来播放
W
3
]
文件。参数
:
0
7
1
M
可以是文件名、
别
名、
音频文件或者
D
0
1
8
,
参数
K
G
@
A
:
等于一个或多个常量,
使用位
<
[
来组合并通过指定一个标记指明声音来自什
么地方。
第
’
#
卷
第
’
’
期
!
"
"
#
年
’
’
月
微
机
发
展
^
?
L
J
0
L
0
S
T
7
.
8
J
B
8
I
8
G
0
T
S
8
1
.
]
0
G
)
’
#
D
0
)
’