语音压缩 - 在 LPC 中,线性预测滤波器如何在一般水平上工作?

信息处理 声音的 演讲 语音 压缩 线性预测
2022-01-08 18:53:24

嗨,我正在学习多媒体系统课程,我正在准备星期二的考试。我试图在一般层面上了解 LPC 压缩,但我对线性预测滤波器部分的情况有疑问。这是我目前的理解:

LPC 通过将模拟信号数字化并将其分割成段来工作。对于每个片段,我们确定信号的关键特征,并尝试尽可能准确地对这些特征进行编码。关键特征是信号的音高(即基本共振峰频率)、信号的响度以及声音是浊音还是清音。还确定了在声道模型中使用的称为声道激励参数的参数,以更好地模拟产生声音的声道的状态。该数据通过网络传递并在接收器处解码。信号的音高被用作有声或无声合成器的输入,而响度数据被用来提高这个结果信号的幅度。

在我的笔记中,它说声道模型使用线性预测滤波器,并且第 n 个样本是前 p 个样本加上来自合成器的误差项的线性组合。

  • 这是否意味着我们在编码器和解码器上都保留了最后 p 个样本的运行平均值?所以在编码器上我们只传输与这个平均信号和实际信号之间的差异相对应的数据?

  • 为什么它是这些先前样本的线性组合?我的理解是,我们提取声音的响度、频率和浊音/清音特性,然后通过选择它们来生成这些声道激励参数,使实际信号和预测信号之间的差异尽可能小。这些先前样本的平均值肯定会更好地指示下一个样本吗?

如果我的理解有任何漏洞,如果您能指出它们,那就太好了!提前致谢!

1个回答

LPC 语音编码器(从旧的 LPC10 标准开始,这似乎是您在此处所指的那个)基于语音生成的源过滤器模型。语音可以通过以下属性来表征:

  • 喉部发出的原始声音(通过声带的振动,或者只是空气流过它,声带被打开)。
  • 由发音系统实现的滤波器的传递函数,进一步过滤这种原始声音。

早期的 LPC 编码器 (LPC10) 采用这两个步骤的以下模型:

  • 喉部发出两种白噪声,其特征为幅度或周期性的脉冲序列,其特征是振幅和频率σσf0
  • 发音系统的传递函数形式为,因此完全由系数11kakzkak

因此,早期 LPC 编码器(例如 LPC10)的原理是从输入音频信号的块中估计这些参数;通过网络传输这些;并让声音发生器根据接收器上的这些参数再现声音。请注意,在这个过程中,实际上没有传输任何原始音频样本。打个音乐类比,就好像听钢琴演奏,抄录,发过来,在另一端找人弹……那一端的结果会接近原来的演奏,但是只发送了一份陈述。

这是否意味着我们在编码器和解码器上都保留了最后 p 个样本的运行平均值?

不,这不是它的工作原理。在编码器方面,我们运行称为 AR(自回归)估计的过程,以估计与输入信号的频谱包络最佳匹配的 AR 滤波器的系数集。这是恢复由发音系统执行的过滤系数的尝试。

这些系数通过网络发送(连同音高、语音/清音标志和响度)。解码器使用这些系数来过滤合成激励信号,该信号可以是白噪声(清音帧)或周期性脉冲的梳(浊音帧)。这些系数在解码器上以下列方式用于恢复输出信号y(n)

y(n)=excitation(n)kaky(nk)

请注意,由于这是一个全极点 IIR 滤波器,线性组合的样本是滤波器产生的先前样本。

所以在编码器上我们只传输与这个平均信号和实际信号之间的差异相对应的数据?

没有“平均”,也没有差值信号的传输。解码器是一个带有一些参数的声音合成器;编码器为这个合成器搜索与输入信号最匹配的参数集。

为什么它是这些先前样本的线性组合?

其他选项在这里确实是可能的,但使用自回归模型的优势如下:

  • 在这个模型中,我们使用全极点 IIR 滤波器来模拟关节系统。这是一个很好的模型,因为它可以用少量系数捕获强烈的光谱下降和峰值;并且发音系统确实能够强调/衰减窄频带(参见共振峰)。如果我们使用全零 FIR 滤波器,我们将需要更多的系数来准确捕捉发音系统可以实现的滤波器响应类型。
  • 在编码器端,估计滤波器系数的问题在计算上是有效的——它可以通过对自相关的前几个样本使用 Levinson-Durbin 递归来完成。更复杂的线性模型 (ARMA) 或非线性模型的计算成本更高或更难处理。
  • 在解码器端,合成确实非常简单——我们只需要足够的内存来跟踪解码器发出的 n 个先前样本。

这些先前样本的平均值肯定会更好地指示下一个样本吗?

这不是真的。例如,假设输入信号是正弦波。预测误差为零,而大多数时候是错误的(特别是,它没有捕捉到正弦波在一半时间严格增加,而在其余时间严格减少的事实时间,所以不应该“介于”之前的值之间)。参数(阶 p AR)的模型中挤出比零(平均)模型更多的建模能力。y^(n)=(2ω2)y(n1)y(n2)y^(n)=y(n1)+y(n2)2y(n)p

此外,值得记住的是,有一个“更好”的数学定义(最小化误差平方的期望值),它产生了一个寻找系数最佳值的过程。