【特征提取】基于一帧数据倒谱法、LPC内插法、LPC求根法实现语音共振峰提取含Matlab源码

本文探讨了语音识别中LPC倒谱系数的提取方法,该方法能够有效地去除语音信号的激励信息,保留声道模型特征。通过预加重、分帧等步骤,最终提取出能够描述语音共振峰特性的LPC倒谱系数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 简介

语音识别指利用计算机识别语音信号所表达的内容,其目的是要准确地理解语音所蕴含的含义.本文着重研究了语音识别实现过程的特征提取,针对特征提取的多种方法,选用LPC倒谱系数作为特征参数提取,较彻底地去除了语音信号产生过程的激励信息,主要反映了声道模型,而且只需十几个倒谱系数就较好地描述了语音的共振峰特性.通过对语音信号进行预加重,分帧,加窗,自相关分析,而后提取出LPC倒谱系数.

2 部分代码

%一帧数据LPC求根法估算共振峰频率和3dB带宽% pr9_3_2  clear all; clc; close all;fle='snn27.wav';                            % 指定文件名[xx,fs]=wavread(fle);                       % 读入一帧语音信号u=filter([1 -.99],1,xx);                    % 预加重wlen=length(u);                             % 帧长p=12;                                       % LPC阶数a=lpc(u,p);                                 % 求出LPC系数U=lpcar2pf(a,255);                          % 由LPC系数求出功率谱曲线freq=(0:256)*fs/512;                        % 频率刻度df=fs/512;                                  % 频率分辨率U_log=10*log10(U);                          % 功率谱分贝值subplot 211; plot(u,'k');                   % 作图axis([0 wlen -0.5 0.5]);title('预加重波形');xlabel('样点数'); ylabel('幅值')subplot 212; plot(freq,U_log,'k');title('声道传递函数功率谱曲线');xlabel('频率/Hz'); ylabel('幅值/dB');n_frmnt=4;                                  % 取四个共振峰const=fs/(2*pi);                            % 常数  rts=roots(a);                               % 求根k=1;                                        % 初始化yf = [];bandw=[];for i=1:length(a)-1                         re=real(rts(i));                        % 取根之实部    im=imag(rts(i));                        % 取根之虚部    formn=const*atan2(im,re);               % 按(9-3-17)计算共振峰频率    bw=-2*const*log(abs(rts(i)));           % 按(9-3-18)计算带宽        if formn>150 & bw <700 & formn<fs/2     % 满足条件方能成共振峰和带宽        yf(k)=formn;        bandw(k)=bw;        k=k+1;    endend[y, ind]=sort(yf);                          % 排序bw=bandw(ind);F = [NaN NaN NaN NaN];                      % 初始化Bw = [NaN NaN NaN NaN];F(1:min(n_frmnt,length(y))) = y(1:min(n_frmnt,length(y)));   % 输出最多四个Bw(1:min(n_frmnt,length(y))) = bw(1:min(n_frmnt,length(y))); % 输出最多四个F0 = F(:);                                  % 按列输出Bw = Bw(:);p1=length(F0);                              % 在共振峰处画线for k=1 : p1    m=floor(F0(k)/df);    P(k)=U_log(m+1);    line([F0(k) F0(k)],[-10 P(k)],'color','k','linestyle','-.');endfprintf('F0=%5.2f   %5.2f   %5.2f   %5.2f\n',F0);fprintf('Bw=%5.2f   %5.2f   %5.2f   %5.2f\n',Bw);

3 仿真结果

4 参考文献

[1]唐晓进. 基于LPC倒谱的语音特征参数提取[J]. 山西电子技术, 2012(6):3.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值