欲知更多,请关注公众号:音频探险记
LPC
线性预测系数的基本思想:由于语音样点之间存在着相关性,那么当前点/未来点可以用过去的p个样本点进行预测,即
其中就是要求的LPC,P表示预测阶数。
好处:可以得到声道模型及其模型参数的方法,广泛用于语音识别以及语音合成中。
import librosa
import python_speech_features
import soundfile as sf
import numpy as np
def lpc(y, order):
dtype = y.dtype.type
ar_coeffs = np.zeros(order + 1, dtype=dtype)
ar_coeffs[0] = dtype(1) # 1.0
ar_coeffs_prev = np.zeros(order + 1, dtype=dtype)
ar_coeffs_prev[0] = dtype(1)
# 前向和后向的预测误差
fwd_pred_error = y[1:]
bwd_pred_error = y[:-1]
den = np.dot(fwd_pred_error, fwd_pred_error) + np.dot(bwd_pred_error, bwd_pred_error)
for i in range(order):
if den <= 0:
raise FloatingPoint