原始音频信号数字化后,我们不能直接将整个数据流输入机器学习模型。语音是一种复杂的信号,其特性持续变化。为了进行分析,我们必须首先应用两个重要的预处理步骤:预加重和分帧。这些技术有助于平衡信号属性,并将其分解为易于处理和分析的片段。预加重:提升高频内容典型的语音信号的频率成分,大部分能量集中在低频。高频分量在区分音素(如“s”与“f”)方面也有作用,但其能量通常低很多。这种不平衡对特征提取中使用的算法可能会造成影响。预加重是一种滤波技术,旨在通过提升高频分量的能量来解决此问题。它主要有两个目的:平衡频谱,使信号在所有频率上更均匀。帮助降低噪声影响,并提高信噪比(SNR)。这个过程简单明了。我们应用一个简单的高通滤波器,基于原始信号$x(t)$计算出一个新的信号$y(t)$。预加重公式为:$$ y(t) = x(t) - \alpha \cdot x(t-1) $$在此等式中,$x(t)$是当前样本的值,$x(t-1)$是前一个样本的值。系数$\alpha$(阿尔法)是预加重因子,其值通常在0.95到0.97之间。通过从当前样本中减去前一个样本的一部分,我们有效地放大了样本之间的差异,这些差异在高频处更为明显。分帧:将信号分割成可分析的片段语音信号并非平稳;当我们说出不同的词和声音时,其属性会随时间变化。例如,“she”中的“sh”音与随后的“e”音具有非常不同的频率特性。一次性分析整个句子,会平均掉所有这些重要的细节。然而,在很短的间隔内,通常在20到30毫秒左右,语音信号可以被认为是“准平稳的”,这意味着其属性相对稳定。这一观察是分帧的根据。分帧是将预加重信号切分成小的、重叠的片段的过程,这些片段被称为帧。每一帧都足够短,可以被视为一个稳定的声学单元。两个参数定义此过程:帧大小(或帧长):每帧的持续时间。标准值为25毫秒(ms)。这足够长以包含足够的声学信息,但又足够短以保持平稳假设。帧步长(或帧移):开始新帧的间隔。常用值为10毫秒。请注意,帧步长(10毫秒)短于帧大小(25毫秒)。这意味着帧会重叠。在此示例中,每帧与前一帧重叠15毫秒(25毫秒 - 10毫秒)。这种重叠很重要,因为它确保了帧之间的平滑过渡,并防止我们丢失可能发生在帧边缘的信息。没有重叠,我们可能会意外地将音素切成两半,从而使其难以识别。digraph G { rankdir=TB; splines=false; nodesep=0.05; ranksep=0.2; graph [fontname="sans-serif"]; node [shape=box, style=filled, fontname="sans-serif", penwidth=1.5]; edge [arrowhead=none, style=dashed, color="#495057"]; // 输入 a [label="预加重信号", style=solid, fillcolor="#e9ecef", width=7, height=0.4]; // 帧 b [label="帧 1 (25毫秒)\n重叠: 15毫秒", fillcolor="#a5d8ff", color="#1c7ed6"]; c [label="帧 2 (25毫秒)\n重叠: 15毫秒", fillcolor="#96f2d7", color="#0ca678"]; d [label="帧 3 (25毫秒)\n...", fillcolor="#ffc9c9", color="#f03e3e"]; { rank=same; b; c; d; } // 帧之间的边(实线) b -> c [style=solid, penwidth=2, color="#495057"]; c -> d [style=solid, penwidth=2, color="#495057"]; // 帧步长线 p1 [shape=point, width=0]; p2 [shape=point, width=0]; { rank=same; p1; p2; } b -> p1 [style=solid, arrowhead=none, color="#f76707"]; c -> p2 [style=solid, arrowhead=none, color="#f76707"]; p1 -> p2 [ label="帧步长 (10毫秒)", style=solid, dir=both, arrowhead=normal, arrowtail=normal, color="#f76707", fontcolor="#495057" ]; } 音频信号被分割成重叠的帧。每帧有固定大小(例如25毫秒),新的帧以固定的间隔开始,这个间隔称为帧步长(例如10毫秒)。经过预加重和分帧后,我们不再处理单个、长时间的音频信号。取而代之的是一系列短的、重叠的帧。这些帧现在已准备好进行处理流程的下一步:应用窗函数,为频率分析做准备。