1 .语音信号的三个参数
语音信号有三个重要的参数:声道数、取样频率和量化位数。
-
声道数:单声道或者双声道
-
采样频率:一秒钟对声音采样的次数,例如10000HZ代表一秒钟将信号分解为10000份,当采样数量非常高的时候,我们人眼看起来就是连续的。(实际是离散的)。采样频率越高声音的还原就越真实越自然。在当今的主流采集卡上,采样频率一般共分为22.05KHz、44.1KHz、48KHz三个等级,22.05KHz只能达到FM广播的声音品质,44.1KHz则是理论上的CD音质界限,48KHz则更加精确一些。
-
量化位数:用多少bit表达一次采样所采集的数据,通常有8bit、16bit、24bit和32bit等几种。
例如CD中所储存的声音信号是双声道、44.1kHz、16bit。 -
过零率(Zero Crossing Rate)
概念:过零率(Zero Crossing Rate,ZCR)是指在每帧中,语音信号通过零点(从正变为负或从负变为正)的次数。 这个特征已在语音识别和音乐信息检索领域得到广泛使用,是对敲击的声音的分类的关键特征。
ZCR的数学形式化定义为:
其中 是采样点的值, 为帧长,函数 在A为真是值为1,否则为0.
特性:
(1).一般而言,清音(unvoiced sound)和环境噪音的ZCR都大于浊音(voiced sound);
(2).由于清音和环境噪音的ZCR大小相近,因而不能够通过ZCR来区分它们;
(3).在实际当中,过零率经常与短时能量特性相结合来进行端点检测,尤其是ZCR用来检测清音的起止点;
(4).有时也可以用ZCR来进行粗略的基频估算,但这是非常不可靠的,除非有后续的修正(refine)处理过程。
2. 信号的分帧
给定一个音频文件, 通过 Load 加载进来得打signal, shape 为(M ), 比如 sr = 22050, t = 10.62s;
通过分帧后, 将一维的 M 转化为 二维的分帧矩阵:
矩阵的行数 = 单帧的 帧长度
矩阵的列数 = 分帧的帧数
n
f
nf
nf:
2.1 样本总点数;
M = s r ∗ t i m e = 采 样 率 × 时 间 M = sr * time = 采样率 × 时间 M=sr∗time=采样率×时间
2.2 单帧内的重叠点数;
重叠个数 = 帧长 - 帧移动长度:
o v e r l a p = w l e n − i n c overlap = wlen - inc overlap=wlen−inc
2.3 分帧后的 帧数;
n
f
=
(
信
号
点
数
−
重
叠
个
数
)
/
帧
移
长
度
nf= (信号点数 - 重叠个数) / 帧移长度
nf=(信号点数−重叠个数)/帧移长度:
n
f
=
M
−
o
v
e
r
l
a
p
i
n
c
nf = \frac{M - overlap}{ inc}
nf=incM−overlap
比如 帧长=2048; 帧移 = 512;
overlap = 2048 -512 = 1536;
举个例子,假设一个音频向量为:
[
0
,
1
,
2
,
3
,
4
,
5
]
[0, 1, 2, 3, 4, 5]
[0,1,2,3,4,5],
点数 m = 6
若帧长为4,帧移为2,overlap = 4 -2 = 2;
则分帧后得到的帧数为:
nf = ( 6 - 2) /2 = 2 , 得到 2 帧;
[
0
2
1
3
2
4
3
5
]
\begin{bmatrix} 0& 2 \\ 1&3 \\ 2 &4 \\ 3 &5 \\ \end{bmatrix}
⎣⎢⎢⎡01232345⎦⎥⎥⎤
每一帧都有4个基本元素。
3. 信号的加窗
3.1 FFT 变换的条件
FFT变换时,总是从离散数据中选取一部分处理,将其称为一帧数据。
并且FFT是在一定假设下完成的,即认为被处理的信号是周期信号。
因此,FFT之前会对这一帧数据进行周期扩展(加窗, 使得这帧数据 近似 周期信号)。
如果选取的这一帧数据不是信号周期的整数倍,则在周期扩展时会存在样点的不连续性,这将导致FFT之后得到的频谱失真,主要体现在频率成分上。理论上,频谱中只包含待测信号的频率,但实际上此时的频谱包含众多的频率分量。通常将这种现象称为频谱泄露效应。
3.2 加窗的原因
为了解决上述频谱泄露现象, 故对帧信号进行 加窗, 使得加窗后的信号, 左右两端 连起来时, 更具有周期性;
3.3 加窗的效果
而通常一小段音频数据没有明显的周期性,加上汉明窗后,数据形状就有点周期的感觉了。(也就是说窗的左端和右端应该大致能连在一起);
对汉明窗中的数据进行FFT 时,它假设一个窗内的信号是代表一个周期的信号。
因为加上汉明窗,只有中间的数据体现出来了,两边的数据信息丢失了,所以等会移窗的时候,只会移1/3或1/2窗,这样被前一帧或二帧丢失的数据又重新得到了体现。
4.STFT:
4.2 平稳信号的 FFT
即傅里叶变换适用于分析频率特征 稳定的平稳信号。
对于非平稳信号, 傅里叶变换只能表示出 信号中有哪些频率成分,而各个频率成分出现的时间却无法体现;
短时傅里叶变换, 是为了克服傅里叶变换针对 非平稳信号的不足之处;
当想知道信号频率随时间变化的情况,以及各个时刻的瞬时频率及其幅值,
这便是时频分析, 即考虑频率特征,也考虑时间序列变化, 以及他们对应的幅度值;
常用方法:STFT, wavelet;
4.2 帧信号的 FFT
对加窗后的信号,会逐帧进行快速傅里叶变换(fast Fourier transform,FFT)。
逐帧进行快速傅里叶变换的过程被称为短时傅里叶变换(short-time Fourier transform 或 short-term Fourier transform,STFT)