语音信号线性预测(LPC)分析
一. 语音信号数字模型
条件:
1. 忽略鼻音/摩擦音/爆破音等
2. 语音信号短时不变,帧长10-30 ms(可近似为线性时不变系统)
声道的声管模型-一系列截面积不等的无损声管级联
那么语音信号的产生过程简化为:单位脉冲序列(肺部产生的气流)激励声道模型(声管)。线性预测lpc模型的本质即探究声管模型的性质(参数)。
二.线性预测模型(计算LPC系数)
1. 模型建立:
根据上面的条件,分帧后的语音信号产生可以等效为单位脉冲序列激励声道管,该过程为线性时不变系统:
写成差分方程形式:
x(n)为真实信号,加权项为预测信号,e(n)为预测误差。根据e(n)的最小均方误差(MSE)准则来计算滤波器系数ai。
MSE期望值:
求ai为多少的情况下,E可取极小值,对ai求偏导:
结果化简为:
写成自相关形式(Yule-Walker方程):
拆写加权式子,即为Toeplize矩阵:
使用Durbin算法来求解Toeplize矩阵,即可计算出滤波器系数ai。
二.MATLAB中的lpc函数
原理说这么多,MATLAB里面,一个lpc函数就能解决所有的问题,我们来看看这个函数。
[a, g] = lpc(x, p);
% [a,g] = lpc(x,p) finds the coefficients of a pth-order linear predictor (FIR filter) that predicts the current value of the real-valued time series x based on past samples.
帮助文档给出线性预测过程的差分方程为:
a = [1 a(2) … a(p+1)]
注意,这里的a(0)取值为 0,a(1)=1,使用lpc系数的时候一定要注意a(0)的取值。
三. MATLAB结果
1. 预测误差
[x,fs] = audioread('file.wav');
sound(x,fs);
n = 200; % n is the length of a frame.
p0 = 50; % p0 is the overlap length.
xx = buffer(x, n, p0);m = 8; % (m)th frame of data.
y = x((m-1)*n+1:m*n); % select a frame of data.
p = 12; % p is the order of the AR model.
ar = lpc(y,p); % calculate the coefficients of AR model.
est_x = filter([0 -ar(2:end )],1,y); % calculate the predicted signal.
err = y - est_x; % calculate the residual signal.
画出某一帧预测残差信号的波形:
2. 预测信号
先小结一下信号处理的过程
- 分帧(Framing)
- 计算线性预测系数LPC coefficients
- 计算预测信号
- 合成语音信号 (Overlap Add)
这里,设定每帧信号样点数 n = 200, 相邻帧重叠长度 p0 = 150, 滤波器阶数p = 12。
图中,蓝色波形为真实语音信号,黑色波形为线性预测的结果。为什么预测信号的幅值比真实信号大?因为合成过程用到了重叠相加(Overlap Add), 相邻帧信号之间有3/4重叠部分。
语音信号线性预测(LPC)分析相关推荐
- 语音信号线性预测分析(MATLAB实战篇)
文章目录 前言 基本概念 基本参数的求解及其用途 1.线性预测系数(LPC) 2.线性预测系数LPC的频谱 3.线性预测系数的倒谱LPCC 4.线性预测误差e(n)及其自相关 5.预测误差滤波器A(z ...
- 语音信号线性预测分析
语音信号线性预测分析 基本思想:一个语音取样的现在值可以用若干个语音取样过去值的加权线性组合来逼近(最小均方误差).线性预测最重要的优势在于它可以较为精确地估计语音的参数,而这些极少的参数可以正确地表 ...
- 【信号处理】语音信号线性预测(LPC)分析含Matlab源码
1 简介 线性预测技术作为一种基于全极点模型假定和均方预测误差最小准则下的波形逼近技术.本文简要介绍了LPC技术的基本原理,并利用MATLAB这一有力工具对语音信号进行了LPC分析,并对阶数的选取做了 ...
- python语音信号时频分析_librosa-madmom:音频和音乐分析
读取音频 提取特征Log-Mel Spectrogram MFCC 绘制波形图和梅尔频谱图 prerequisites install 起始点检测 onset detection tutorial l ...
- 《MATLAB语音信号分析与合成(第二版)》:第4章 语音信号的线性预测分析
<MATLAB语音信号分析与合成(第二版)>:第4章 语音信号的线性预测分析 前言 1. 数据与函数路径设置 2. MATLAB仿真一:LPC的频谱分析 3. MATLAB仿真二:普通预测 ...
- 连续语音信号的短时倒谱分析及其参数用途
文章目录 前言 基本概念 倒谱和倒谱参数 1.倒谱 2.复倒谱 3.倒谱计算 (1).由声门激励信号提取基音周期 (2).由声道冲激响应估算共振峰 4.倒谱的频谱 5.倒谱距离 6.Mel频率倒谱系数 ...
- 基于MATLAB的语音信号的时域特性分析(一)——分帧、窗函数
语音信号是一个非稳态的.时变的信号.但在"短时间"范围内可以认为语音信号是稳态的.时不变的.这个短时间一般值10~30ms.由于有这个特性,故常把语音信号称为"准稳态 ...
- 判断清浊音 matlab,基于MATLAB的语音信号的清浊音分析.doc
基于MATLAB的语音信号的清浊音分析 目录 1 语音信号概述1 1.1 语音信号的基本组成1 1.2 语音信号的"短时谱"1 1.3 基音周期2 1.4 短时分析技术2 2 语音 ...
- 频域参数 matlab,基于MATLAB的语音信号时频域参数分析
22 科技广场 2007.9 基于MATLAB的语音信号时频域参数分析 the Character Analysis of Speech Signal with Time and Frequency ...
最新文章
- Cnnot find System Java Compiler Ensure that you have installed a JDK
- 泛域名Wildcard Domain
- HTC开放Vive Tracker代码啦!
- 北京欢迎你 (歌词)
- excel导出_学习笔记—— 前端导出excel
- 从Model1,Medel2到显示层框架的出现
- linux内存管理实验,Linux内存管理机制研究
- 推荐几款好用的CRM
- 古代埃及希腊,数学用的什么进制
- java 生成pdf 下载_java生成PDF,并下载到本地
- 关于Java中double类型的变量保留指定位数的方法
- Android本地默认IP
- 计算机死机重装xp,XP系统电脑死机如何急救
- http://zjj2816.cnblogs.com/?Contact=1
- (ICLR 2020)COMPOSING TASK-AGNOSTIC POLICIES WITH DEEP REINFORCEMENT LEARNING
- 计算机无误的英语,“开电脑”的英语正确表示是哪个?说错了就尴尬
- Exchange Server 2013 DAG高可用部署(一)-前期准备
- tcp硬件校验和rxtx开启是啥意思_一文读懂 TCP/IP 网络模型
- 遇到线上问题该怎么办?
- 802.11n 5GHz信道划分图