语音信号的线性预测编码技术
线性预测编码技术(维纳滤波)。可以参考隔壁统计信号处理的笔记hh。
维纳滤波的正交原理:
正交原理可以用来估计任何时候的任何值,不管是现在(滤波),过去(平滑)还是未来(预测),也不管估计的对象是 $x,y$,上述公式的含义是:估计误差始终与已知信号垂直,与估计的是哪个时间的信号无关。
利用前面的 $P$ 个信号预测下一个信号:
误差定义为
从 z 域看,这是一个全极点模型产生了目标信号:
接下来的所有步骤,目的都是推导 $\alpha$ 的取值。
自相关法
本文中假设信号具有遍历性,即时间平均等于统计平均,时间上的自相关等于统计意义上的自相关。
利用 LMMSE 准则可以推出
一个例子:Durbin 递推算法
协方差法
不能保证声码器稳定
Durbin 递推算法
滤波器的内积
定义$s_w(n)$关于$F(z)$和$G(z)$的内积如下:
特别地若这里的$F(z),\quad G(z)$都用我们的逆滤波器$A(z)=\sum_{i=0}^P\alpha_iZ^{-i}$替换,那么语音信号$s_w(n)$经过$A(z)$后的输出$e(n)$就是预测误差。
$\alpha_i\cdot s_W(n-i)$ 因此$A(z)$范数$|A(z)|$的平方就是预测误差。即
内积有正定性,线性,三角不等式
特殊性质:
逆滤波器
定义FIR滤波器$\hat{A}(z)$:
若$\hat{\alpha}_{i}$是满足LPC正则方程的解,则称$\hat{A}(z)$称为逆滤波器。$\hat{E}(z)=\hat{A}(z)\cdot S(z)$是预测误差$\varepsilon(n)$的z 变换。显然有:
(1) 若s(n)是由全极点模型$1/A(z)$产生的,这时$A(z)=\sum_{i=0}^P\alpha_iz^{-i}$, 即:
$s(n)=-\sum_{i=1}^P\alpha_is(n-i)+Ge(n)$
前向和后向预测
前向线性预测器(P阶)
前向预测误差(P阶)
前向逆滤波器(P阶)
显然有
后向线性预测器(P阶)
n时刻对$s(n-P-1)$的后向预测误差(P阶)
后向逆滤波器 (P阶)
显然有
正交性原理
判定最佳预测器的充要条件是
一个不严谨的理解:
由于时间平均等于统计平均,
根据开头提到的维纳滤波正交原理可知上式等于0。
递推公式
根据定义,当$m=0$时,显然有
$m>0$时有如下递推公式(施密特正交化)
根据正交性原理,需要证明由递推公式得到的$A^{(m)}(z)$和$B^{(m)}(z)$满足正交性条件公式。
在公式(76) 中,根据多项式对应项系数相等的原则,可以得到
由公式(73)可知
从这里可以推出
$$ B^{(m)}(z) = z^{-(m+1)}A^{(m)}(1/z) $$
因此可以得到预测器系数的递推公式
这是线性预测系数的Durbin递推算法公式。$m$阶部分相关系数$K^{(m)}$可以用以下方法计算:
$||B^{(m)}(z)||^2$ 可以用这个递推式计算:
初值
Durbin 算法系统的稳定性
充分性:
必要性:
Highlight:
Durbin 逆序递推公式
证明过程中引入的一个辅助函数
满足 $F^{(m)}(z) < 1 \lrArr |z| < 1$
稳定性的应用
充分性:说明使用 Durbin 算法可以保证 $1/A(z)$ 稳定
必要性:
判定高阶多项式 $A(z)$ 构成的系统 $1/A(z)$ 是否稳定。
只要计算出 $k_m$,判断 $|k_m|$ 是否小于1即可。
LPC 模型参数讨论
阶数
误差能量是单调减的,一般 $P = 8 \sim 14$
激励增益 G
采用缓变窗(哈明窗),$N >> P$
短时分析对于LPC参数估计的影响
- 𝑒(𝑛)为白噪声时,$E[\hat \alpha_i] = \alpha_i$,无偏估计
- 𝑒(𝑛)为浊音时,采用基音同步算法可以达到无偏估计。否则如果是任意截取一段语音作分析估计是有偏的。
LPC分析的频域解释
用LPC分析可以用来跟踪声道模型谱(或称语音的平滑谱)。若用LPC算法解出的全极点模型来逼近实际声道,则它的单位冲激响应ℎ(𝑛)为:
若 $R_h(l) = R_h(-l) = \sum\limits_{n=0}^{\infty}h(n - l)h(n), l \ge 0$
当激励为均方值为1,均值为0的白噪声序列时,输出的自关函数𝑅𝑤(𝑙)也有此关系。
P阶LPC预测模型也称为P阶自关匹配模型。
各种LPC参数计算其它们之间的关系
- $R(l) \Rightarrow \alpha$
- $K \Rightarrow \alpha$
- LPC 系数 => 倒谱(因为是最小相位序列)
- PARCOR 系数($K^{(m)}$)
- 由 Durbin 解得
- 由格形算法解得
- 由 Schur 算法解得
- 由 $A(z)$ 根确定振峰
- 每一对根与一个共振峰对应
- 声道面积比系数和对数面积比系数
- 线谱对(LSP)或者线谱频率参数(LSF)
性质:
- $P(z)$ 和 $Q(z)$ 的根均在单位圆上
- $P(z)$ 和 $Q(z)$ 的根在单位元上交错
- $\alpha$ 参数和 $LSP$ 参数互推
某个特定的𝐿𝑆𝑃 [𝑓1, 𝑓2, ⋯ 𝑓𝑝]中只移动其中任意一个频率𝑓𝑖的位置,那么对应的平滑谱只
有𝑓𝑖附近与原平滑谱有异,而在其它频域则变化很小
语音信号编码
语音信号的标量量化
标量量化器
均匀量化器
非均匀量化器
非线性压扩量化器
自适应量化(Adaptive Delta Modulation,ADM)
前向自适应量化(AQF)
后向自适应量化(AQB)
差分编码 DPCM
DPCM是指采用固定预测器与固定量化器的差值脉冲调制。
CVSD 编码器
Delta-Sigma 量化器
考虑 $D/A$ 变换器的增益为 1 的情况,此时 $V_a(z)\approx V(z)$,
定义信号传输函数
定义超取样量化噪声传输函数
让 $H(z)$ 为低通,则 $STF(z)$ 是低通,$NTF(z)$ 是高通
噪声整形(Noise-Shaping)技术:$NTF(z)$ 去掉了噪声能量的低频部分。接下来,只要经过低通滤波器 $H_d(z)$,就可以滤除高频部分的噪声能量,剩下的只有所需要的信号 $U(z)$,$H_d(z)$ 的输出 $V_d(z)$ 的量化噪声可以小于直接用 A/D 量化器量化的噪声。
采用速度(超采样)换精度(高量化比特数),量化器的精度可以非常低,甚至可以用 1 bit 量化器。1 bit 量化器,就不存在 A/D 非线性问题。
超采样的好处:扩展了频带宽度,我们认为噪声的功率一定,当频带变宽,噪声功率谱的高度就降低了。
子带编码
含有多个频点信号分量的复合宽带信号
首先用一组滤波器将信号分解成若干子带信号
若 $\langle F_1(\omega),F_2(\omega)\rangle\approx0$,则采用子带滤波后,两个信号的相关性 $\langle f_1(t),f_2(t)\rangle$ 降低,对于这些不相关的子带信号独立编码可能提高编码效率。
比特数分配
\min_{R_k} \sigma_{r,SBC}^2=\sum_{k=1}^M\varepsilon_{*k}^2\cdot2^{-2R_k}\cdot\sigma_{xk}^2\
$$
解得
每个子带的采样率变为总带宽的 1/M,总的信息比特速率为 $R \cdot f/M$,为了与 PCM 进行比较,假设 SBC 和 PCM 的编码速率相等:
此时可推出 SBC 较于 PCM 的信噪比增益为
因此 SBC 的信噪比增益等于子带信号的算术平均和几何平均之比。
- 子带信号能量越大,则分配比特数越多;
- 最佳分配条件下,各个子带的量化噪声相同;
- 若各个子带能量相同,则子带编码的增益为1
多相正交滤波器组
用一组不同频率的余弦信号对低通滤波器进行调制,变成了带通滤波器组:
分析滤波器:子带滤波,降采样;
降采样率过程等价于:采样(b, 将非M倍数的采样点置为0) + 分频(c,抽取 M 倍数上的采样点形成新的信号)
每个子带的输出会产生四种混叠干扰:
为了解决升采样后的频谱混叠,在综合滤波器部分精确对消混叠信号:
变换域编码
正交变换后编码:
正交变换满足能量守恒
重建信号的误差等于变换域上量化器的误差
比特分配
假设 N 个输入样本组成一个矢量 X,变换域 Y 的每个分量用 $R_k$ 个比特量化
相比 PCM 的增益为
最佳正交变换 - KL 变换
语音信号的参数编码
感觉加权滤波器
误差函数加权:
其中,加权滤波器满足
当误差函数最小的时候,应当保证
可以选择如下的滤波器:
$\gamma$ 为加权因子,在 0-1 之间。
$\gamma=0$ 时变成逆滤波器,其频谱包络的峰值点就是语音谱的谷值点。
分析:语音信号是全极点模型产生的,即 $S(z) = GE(z)/A(z)$,与逆滤波器点频谱成反比。
多脉冲激励线性预测声码器
语音综合器的激励源有若干个不同位置和幅度的脉冲信号组成。
其中 $\hat s_0(n)$ 是 LPC 综合器的零输入响应。
用 $\bar{e}(n)=s(n)-\hat{s}_0(n)$ 表示输入语音减去零输入响应(受历史激励影响的部分)。
输入感觉加权滤波器,得到输出
从而,得到感觉加权滤波器的误差函数
选择合适的 $n_k$, $g_k$ 使得上面的误差函数最小
上面那个方程很复杂,会导出非线性的方程;
从下面的那个方程可以推出
其中
此时可改写最小均方误差
最优解的计算涉及到非线性方程的求解,不太现实。考虑采用次优搜索,一个一个求解。
当只有一个脉冲时
消元得到
接下来搜索 $n_1$ 使得上式最优化。解出 $n_1$ 后即可解出 $g_1$。
接下来一个个求解,每次都要把前面求解过的脉冲折算到零输入响应中,然后求解当前的结果:
语音信号修整与综合技术
短时谱分析
利用修正短时谱进行最小方差信号估计
首先计算短时谱
对短时谱进行修正
需要得到一个“有效”的短时谱,满足:
- 时域短时段有限长,非零段不超过窗函数 $w(p-n)$的范围
- 一致性约束,即不同的𝑝时刻 𝑌(𝑝,𝜔)所对应的时域短时段,若有部分重叠,那么在去除分析窗的加权影响后,在重叠的部分,它们应该是相等的。
实际上很难得到上述信号,可以通过最小方差准则逼近
其中
利用 Parseval 定理
变分法求得最小值
其中
应用中,以周期 $T$ 分析
如果 $w(n)$ 取三角窗的平方根
若 n 此时为奇数,$T = (N-1)/2$,这时$\sum_{m=-\infty}^{\infty}w^{2}(mT-n)=1$,可简化计算,如果频谱无修正,最优解为
若改变语音的速度,$p=k\cdot p^{\prime}$,满足$|Y(p,\omega)|=|X(p^{\prime},\omega)|$ 。
让 $\tau_p=p-p^{\prime}=(1-1/k)\cdot p$,
$$
代入重建公式
让$\sum_{m=-\infty}^{\infty}W(mT-n)= \sum_{m=-\infty}^{\infty}w^2(mT-n) =1$,
- Post link: https://blitherboom812.github.io/2024/02/28/Speech-SP/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.