微信:HuangL1121
QQ号:1224848052
团队:MATLAB/FPGA项目合作——无线基带,人工智能,图像处理以及智能控制等
地址:北京市-朝阳区
当前位置:首页 > 通信信号 > MATLAB代做|FPGA代做|基于MATLAB语音信号LPC分析
项目案例
MATLAB代做|FPGA代做|基于MATLAB语音信号LPC分析
MATLAB代做|FPGA代做|基于MATLAB语音信号LPC分析
产品说明:

性预测分析是最有效的语音分析技术之一,在语音编码、语音合成、语音识别和说话人识别等语音处理领域中得到了广泛的应用。语音线性预测的基本思想是:一个语音信号的抽样值可以用过去若干个取样值的线性组合来逼近。通过使实际语音抽样值与线性预测抽样值的均方误差达到最小,可以确定唯一的一组线性预测系数。

采用线性预测分析不仅能够得到语音信号的预测波形,而且能够提供一个非常好的声道模型。如果将语音模型看作激励源通过一个线性时不变系统产生的输出,那么可以利用LP分析对声道参数进行估值,以少量低信息率的时变参数精确地描述语音波形及其频谱的性质。此外,LP分析还能够对共振峰、功率谱等语音参数进行精确估计,LP分析得到的参数可以作为语音识别的重要参数之一。

由于语音是一种短时平稳信号,因此只能利用一段语音来估计模型参数。此时有两种方案:一种是将长的语音序列加窗,然后对加窗语音进行LP分析,只要限定窗的长度就可以保证分析的短时性,这种方案称为自相关法;另一种方案不对语音加窗,而是在计算均方预测误差时限制其取和区间,这样可以导出LP分析的自协方差法。

I = wavread('北风');%读入原始语音

subplot(3,1,1),plot(I);

title('原始语音波形')

%对指定帧位置进行加窗处理

Q = I';

N = 256; % 窗长

Hamm = hamming(N); % 加窗

frame = 30;%需要处理的帧位置

M = Q(((frame - 1) * (N / 2) + 1):((frame - 1) * (N / 2) + N));

Frame = M .*Hamm';%加窗后的语音帧

 

[B,F,T] = specgram(I,N,N/2,N);

[m,n] = size(B);

for i = 1:m

    FTframe1(i) = B(i,frame);

end

 

P =input('请输入预测器阶数 = ');

ai = lpc(Frame,P); % 计算lpc系数

LP = filter([0 -ai(2:end)],1,Frame); % 建立语音帧的正则方程

FFTlp = fft(LP);

E = Frame - LP; % 预测误差

subplot(3,1,2),plot(1:N,Frame,1:N,LP,'-r');grid;

title('原始语音和预测语音波形')

subplot(3,1,3),plot(E);grid;

title('预测误差');

pause

 

fLength(1 : 2 * N) = [M,zeros(1,N)];

Xm = fft(fLength,2 * N);

X = Xm .* conj(Xm);

Y = fft(X , 2 * N);

Rk = Y(1 : N);

PART = sum(ai(2 : P + 1) .* Rk(1 : P));

G = sqrt(sum(Frame.^2) - PART);

 

A = (FTframe1 - FFTlp(1 : length(F'))) ./ FTframe1 ;

subplot(2,1,1),plot(F',20*log(abs(FTframe1)),F',(20*log(abs(1 ./ A))),'-r');grid;

xlabel('频率/dB');ylabel('幅度');

title('短时谱');

subplot(2,1,2),plot(F',(20*log(abs(G ./ A))));grid;

xlabel('频率/dB');ylabel('幅度');

title('LPC谱');

pause

 

%求出预测误差的倒谱

pitch = fftshift(rceps(E));

M_pitch = fftshift(rceps(Frame));

subplot(2,1,1),plot(M_pitch);grid;

xlabel('语音帧');ylabel('/dB');

title('原始语音帧倒谱');

subplot(2,1,2),plot(pitch);grid;

xlabel('语音帧');ylabel('/dB');

title('预测误差倒谱');

pause

 

%画出语谱图

ai1 = lpc(I,P); % 计算原始语音lpc系数

LP1 = filter([0 -ai(2:end)],1,I); % 建立原始语音的正则方程

subplot(2,1,1);

specgram(I,N,N/2,N);

title('原始语音语谱图');

subplot(2,1,2);

specgram(LP1,N,N/2,N);

title('预测语音语谱图');

联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

微信扫一扫:


--------------------------------------------------------------------------------------

人工智能代做,深度学习代做,深度强化学习代做,zynq智能系统FPGA开发,

AI代做,卷积神经网络,Alexnet,GoogleNet,CNN,TensorFlow,

caffepointnet,PPO,Qlearning,FasterRCNN,MTCNN,

SPPNet,word2vec,SARASA算法,梯度策略等等 


上一篇:MATLAB代做|FPGA代做|基于神经网络优化的MPC控制器

版权所有: MATLAB/FPGA项目合作——无线基带,人工智能,图像处理以及智能控制等 Copyright © 2023 All rights reserved.
微信:HuangL1121 QQ:1224848052
地址:北京市-朝阳区

扫一扫,关注我们