基于人工神经网络的类噪声环境声音声学识别(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

伪造语音识别是当前智能语音技术研究的一个重要研究领域,是集信息安全、语音学、人工智能等跨学科交叉的应用性研究方向。当前社会新型犯罪中电信诈骗案件频发,急需一种能够自动有效区分语音真伪的方法。本文结合提出的最大稠密卷积神经网络(Max Dense Convolution Neural Network,MDCN)和频谱注意力模块(Spec-Attention Block),实现了噪声环境的准确识别。通过比对分析噪声环境基频、音强、频谱图等声学特性上的表现,分析差异,得出规律性结论,解释了伪噪声环境声音声学可以被识别的原理,为进一步的自动识别提供了理论依据。研究设计了一种表征音强离散程度的声学特征RMSA。该特征量化和表征了噪声环境声音和真实声音在音强变化率上的差异,并和FFV特征及SNS特征融合后作为输入识别模型的高维特征;研究设计了一种最大稠密卷积神经网络模型MDCN。在构造稠密卷积神经网络的稠密块时,使用了最大特征映射函数,在保留模型稠密式连接、减少信息遗忘的同时,也强化了卷积神经元所学内容中的有效信息,为提高分类识别能力提供了良好的模型。也研究设计了一种名为Spec-Attention Block的注意力模块。依据语音谐波形态和单个音素频谱的分布切分窄带频谱图,对精细化分割后的结果从空间及通道两个维度进行选择性关注,使模型更加聚焦于可区分伪造和真实语音上的谐波位置和频谱宽泛程度,增强了模型对语音声学特性的感知,进一步提高了识别能力。 现代传感应用需要简单性、通用性和出色的性能。显然,昆虫使用最少的资源与环境实现有限但令人满意的相互作用。该实验的动机是假设类似的控制原理可以应用于人工控制系统。以这种方式,根据先前的经验,进行了理论和实践研究,以确定在真实条件下识别短而朴实无华的类似噪音的声音的最佳程序。其结果是完全由启发式算法构建的识别类似噪声的环境声音的最佳混合程序。本文使用频谱作为特征向量识别不利声音的成功。

📚2 运行结果

运行时间较长,需要耐心等待哦!

部分代码:

% Plot Hidden layers

clear;
Range = [8:29];
FitType1 = 'poly2';

load('./ResultPoints');
Scale = 1;
 
Points = TrainingNumArray(Range);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Confusion matrix transformation
%
%Predicted
    %Cricket:
        %it is turned out to be a cricket
        CvrcakCvrcak = ConfuctionMatrixSum(Range*3-2,1);
        %it is turned out to be a fly
        CvrcakMuva = ConfuctionMatrixSum(Range*3-1,1);
        %it is turned out to be a confusion sound
        CvrcakZbunj = ConfuctionMatrixSum(Range*3,1);

    %Fly:
        %it is turned out to be a cricket
        MuvaCvrcak = ConfuctionMatrixSum(Range*3-2,2);
        %it is turned out to be a fly
        MuvaMuva = ConfuctionMatrixSum(Range*3-1,2);
        %it is turned out to be a confusion sound
        MuvaZbunj = ConfuctionMatrixSum(Range*3,2);

    %Other:
        %it is turned out to be a cricket
        ZbunjCvrcak = ConfuctionMatrixSum(Range*3-2,3);
        %it is turned out to be a fly
        ZbunjMuva = ConfuctionMatrixSum(Range*3-1,3);
        %it is turned out to be a confusion sound
        ZbunjZbunj = ConfuctionMatrixSum(Range*3,3);
        
        %Predicted in Total
        CvrcakUkupno = CvrcakCvrcak + CvrcakMuva+CvrcakZbunj;
        MuvaUkupno = MuvaCvrcak + MuvaMuva+MuvaZbunj;
        ZbunjUkupno = ZbunjCvrcak + ZbunjMuva + ZbunjZbunj;
        
        CvrcakPredvidjeno = CvrcakCvrcak./CvrcakUkupno/Scale*100;
        MuvaPredvidjeno = MuvaMuva./MuvaUkupno/Scale*100;
        ZbunjPredvidjeno = ZbunjZbunj./ZbunjUkupno/Scale*100;
        
        
        %Realized in Total
        UkupnoCvrcak = CvrcakCvrcak + MuvaCvrcak + ZbunjCvrcak;
        UkupnoMuva = CvrcakMuva + MuvaMuva + ZbunjMuva;
        UkupnoZbunj = CvrcakZbunj + MuvaZbunj + ZbunjZbunj;
        
        CvrcakOstvareno = CvrcakCvrcak./UkupnoCvrcak/Scale*100;
        MuvaOstvareno = MuvaMuva./UkupnoMuva/Scale*100;
        ZbunjOstvareno = ZbunjZbunj./UkupnoZbunj/Scale*100;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   EtrainingFit = fit(Range',EtrainingSum(Range),FitType1);
   EtestingFit = fit(Range',EtestingSum(Range),FitType1); 
  
   figure(1)
    hold on
    set(gca,'FontSize',14)
    %xlim([-1 Length-StartPoint+1])
    h1 = plot(EtrainingFit,'b',Range,EtrainingSum(Range),'b.');
    h2 = plot(EtestingFit,'r',Range,EtestingSum(Range),'r.'); 
    set(h1,'linewidth',2);
    set(h2,'linewidth',2);
    grid on
    set(gcf,'PaperUnits','inches','PaperPosition',[0 0 9.4 6.6])
    set(gcf,'Color',[1 1 1]);
    set(gca, 'XTick',[14 29]);
    set(gca, 'XTickLabel',{'100','1000'});
    leg = legend('Training Recorded','Training Approximation','Testing Recorded','Testing Approximation');
    legend('Location','northeast');
    
    xlim ([Range(1)-1 Range(end)+1])
   ylim ([0.0 0.3])
    xlabel('Number of Training Ponts');
    ylabel('Mean Squared Error');
    print(gcf,'-dtiff','-r1000','./Fig_8')
    
    figure(2)
    hold on
     set(gca,'FontSize',14)
    
    h3 = plot(Range,CvrcakPredvidjeno,'ro');
    h4 = plot(Range,CvrcakOstvareno,'rx');
    h5 = plot(Range,MuvaPredvidjeno,'bo');
    h6 = plot(Range,MuvaOstvareno,'bx');
    h7 = plot(Range,ZbunjPredvidjeno,'go');
    h8 = plot(Range,ZbunjOstvareno,'gx');
   
    set(gca,'FontSize',14)
    set(h3,'linewidth',2);
    set(h4,'linewidth',2);
    set(h5,'linewidth',2);
    set(h6,'linewidth',2);
    set(h7,'linewidth',2);
    set(h8,'linewidth',2);
    set(h3,'markers',8);
    set(h4,'markers',10);
    set(h5,'markers',8);
    set(h6,'markers',10);
    set(h7,'markers',8);
    set(h8,'markers',10);
    grid on
    set(gcf,'Color',[1 1 1]);
    set(gca, 'XTick',[14 29]);
    set(gca, 'XTickLabel',{'100','1000'});
    leg = legend('Cricket Recognized','Cricket Target','Fly Recognized','Fly Target','Confusing Recognized','Confusing Target');
    set(leg, 'Location', 'southeast')
    set(gcf,'PaperUnits','inches','PaperPosition',[0 0 9.4 6.6])
    xlim ([Range(1)-1 Range(end)+1])
    ylim ([40 110])
    xlabel('Number of Training Ponts');
    ylabel('Succes(%)');
   print(gcf,'-dtiff','-r1000','./Fig_9')

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Miloš Simonović, Marko Kovandžić, Ivan Ćirić, Vlastimir Nikolić (2021) Acoustic Recognition of Noise-like Environmental Sounds by Using Artificial Neural Network . 

[2]张明新,张东滨,倪宏.用于噪声鲁棒语音识别的声学模型及解码策略[J].电声技术,2006(06):40-43.DOI:10.16311/j.audioe.2006.06.011.

🌈4 Matlab代码实现

第一章 人工神经网络………………………………………………… 3 §1.1人工神经网络简介………………………………………………………… 3 1.1 人工神经网络的起源 …………………………………………………… 3 1.2 人工神经网络的特点及应用 …………………………………………… 3 §1.2人工神经网络的结构………………………………………………… 4 2.1 神经元及其特性………………………………………………………… 5 2.2 神经网络的基本型 ……………………………………………… 6 2.2.1 人工神经网络的基本特性…………………………………… 6 2.2.2 人工神经网络的基本结构…………………………………… 6 2.2.3 人工神经网络的主要学习算法……………………………… 7 §1.3人工神经网络的典型模型 ………………………………………………7 3.1 Hopfield网络………………………………………………………… 7 3.2 反向传播(BP)网络…………………………………………………… 8 3.3 Kohonen网络………………………………………………………… 8 3.4 自适应共振理论(ART)…………………………………………………… 9 3.5 学习矢量量化(LVQ)网络………………………………………… 11 §1.4多层前馈神经网络(BP)模型………………………………………… 12 4.1 BP网络模型特点 …………………………………………………… 12 4.2 BP网络学习算法……………………………………………………… 13 4.2.1信息的正向传递……………………………………………… 13 4.2.2利用梯度下降法求权值变化及误差的反向传播……………… 14 4.3 网络的训练过程……………………………………………………… 15 4.4 BP算法的改进……………………………………………………… 15 4.4.1附加动量法……………………………………………………… 15 4.4.2自适应学习速率………………………………………………… 16 4.4.3动量-自适应学习速率调整算法……………………………… 17 4.5 网络的设计……………………………………………………………… 17 4.5.1网络的层数………………………………………………… 17 4.5.2隐含层的神经元数…………………………………………… 17 4.5.3初始权值的选取……………………………………………… 17 4.5.4学习速率………………………………………………………… 17 §1.5软件的实现……………………………………………………………… 18 第二章 遗传算法………………………………………………………19 §2.1遗传算法简介………………………………………………………………19 §2.2遗传算法的特点………………………………………………………… 19 §2.3遗传算法的操作程序………………………………………………………20 §2.4遗传算法的设计……………………………………………………………20 第三章 基于神经网络的水布垭面板堆石坝变形控制与预测 §3.1概述…………………………………………………………………………23 §3.2样本的选取……………………………………………………………… 24 §3.3神经网络结构的确定………………………………………………………25 §3.4样本的预处理与网络的训练…………………………………………… 25 4.1 样本的预处理……………………………………………………… 25 4.2 网络的训练 …………………………………………………… 26 §3.5水布垭面板堆石坝垂直压缩模量的控制与变形的预测…………………30 5.1 面板堆石坝堆石体垂直压缩模量的控制……………………………30 5.2 水布垭面板堆石坝变形的预测…………………………………… 35 5.3 BP网络与COPEL公司及国内的经验公式的预测结果比较… 35 §3.6结论与建议……………………………………………………………… 38 第四章 BP网络与遗传算法在面板堆石坝设计参数控制中的应用 §4.1 概述………………………………………………………………………39 §4.2遗传算法的程序设计与计算………………………………………………39 §4.3结论与建议…………………………………………………………………40 参考文献…………………………………………………………………………41
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值