基于平均不同分辨率的共振峰跟踪算法matlab仿真

简介: 基于平均不同分辨率的共振峰跟踪算法matlab仿真

1.算法描述

   共振峰轨迹的自动跟踪算法,其特点是不借助于其它的信息来源,仅仅是基于语谱图信息,来确定语谱图上前四个共振峰频率的位置和它们关于时间轴的轨迹.算法由三个层面构成;第一层面是进行频率分布的分析,以决定一个最佳的共振峰搜索起始位置;第二层面是采用双搜索算法,来跟踪随时间变化的共振峰轨迹;第三层面是解决某些冲突现象.

   在语音声学中,人声也同样受自身生理如鼻孔、咽腔、口腔大小的影响有自身的共振峰区。通过利用这些共鸣空间的形状和大小不同的变化(例如改变咽喉、嘴形),我们就能改变声音的共振峰。我们之所以能够区分不同的人声、元音,主要也是依靠它们的共振峰分布的位置。

   共振峰反映了声道谐振特性的重要特点,它代表了发音信息的最直接的来源。改变共振峰可以产生所有的原音和某些辅音,在共振峰中也包含辅音的重要信息。人在语音感知中也利用了共振峰信息,所以共振峰已经广泛应用于语音识别的主要特征和语音编码传输的基本信息。

   一个语音的共振峰模型,只用前三个时变共振峰频率就可以得到可懂度很好的合成浊音。共振峰信息包含在语音信号的频谱包络中,谱包络的峰值基本对应于共振峰频率,因此一切共振峰估计都是直接或间接地从频谱包络进行考察,关键是估计语音频谱包络。语音信号共振峰的估计,在语音信号合成、语音信号自动识别和低比特率语音信号传输等方面都起着重要作用。
   语音信号从整体来看其特征及表征其本质特征的参数均是随时间而变化的,所以它是个非平稳态过程,不能用处理平稳信号的数字信号处理技术进行分析处理。但是在一个短的时间范围内(一般认为在10~30ms的短时间内),语音信号的特性基本保持相对稳定,因而可以将其看作一个准稳态过程,即语音信号具有短时平稳性。

2.仿真效果预览
matlab2022a仿真结果如下:

1.png
2.png
3.png

3.MATLAB核心程序

 
bDisplay = 1;
 
Fsamps = 256; % sampling resolution in frequency dimension
Tsamps = round(length(y)/18000*256); % sampling resolution in time dimension
 
 
tmp_img1 = zeros(Fsamps,Tsamps);
ct = 0;
 
numiter = 8; % number of iterations to run. seemed like a good number
 
 
for i=2.^(8-8*exp(-linspace(1.5,10,numiter)/1.4)), 
    % Determine the time-frequency distribution at the current 
    
    fix(length(y)/round(i))
    round(i)
    [tmp_img1,ft1,pt1] = lpcsgram(y,fix(length(y)/round(i)),round(i),fs);
    
    % Get the dimensions of the output time-frequency image
    [M,N] = size(tmp_img1);
    
    % Create a grid of the final resolution
    [xi,yi] = meshgrid(linspace(1,N,Tsamps),linspace(1,M,Fsamps));
    
    % Interpolate returned TF image to final resolution
    tmp_img2 = interp2(tmp_img1,xi,yi);
    
    ct = ct+1;
    
    % Interpolate formant tracks and pitch tracks
    pt2(:,ct) = interp1([1:length(pt1)]',pt1(:),linspace(1,length(pt1),Tsamps)');
    ft2(:,:,ct) = interp1(linspace(1,length(y),fix(length(y)/round(i)))',Fsamps*ft1',linspace(1,length(y),Tsamps)')';
    
    % Normalize
    tmp_img3(:,:,ct) = tmp_img2/max(tmp_img2(:));
 
    if bDisplay,
        subplot(221);imagesc(tmp_img1);axis xy;
        subplot(222);imagesc(tmp_img2);axis xy;
        subplot(223);imagesc(squeeze(mean(tmp_img3,3)));axis xy;
        drawnow;
    end;
end
 
% Determine mean tfr image and formant track
tmp_img4 = squeeze(mean(tmp_img3,3));    % tfr   
ft3 = squeeze(nanmean(permute(ft2,[3 2 1]))); % 
 
if bDisplay,
    subplot(224);imagesc(tmp_img4);axis xy;
    hold on;
    plot(ft3,'y');
end;
相关文章
|
6天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于yolov4深度学习网络的公共场所人流密度检测系统matlab仿真,带GUI界面
本项目使用 MATLAB 2022a 进行 YOLOv4 算法仿真,实现公共场所人流密度检测。通过卷积神经网络提取图像特征,将图像划分为多个网格进行目标检测和识别,最终计算人流密度。核心程序包括图像和视频读取、处理和显示功能。仿真结果展示了算法的有效性和准确性。
53 31
|
15小时前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
|
6天前
|
算法
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
|
5天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
13天前
|
算法
基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真
本项目基于MATLAB2022a,采用模糊PI控制算法结合龙格-库塔方法,对CSTR模型进行Simulink建模与仿真。通过模糊控制处理误差及变化率,实现精确控制。核心在于将模糊逻辑与经典数值方法融合,提升系统性能。
|
13天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
225 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
141 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
111 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度

热门文章

最新文章