精华内容
下载资源
问答
  • 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 1 数学部分 1.1 二维空间...

    一、SVM语音情感识别简介

    0 引 言
    语音情感识别是当前研究热点,在人机交互(Human-Computer Interaction,HCI)领域的应用价值日益突显。在今天的HCI系统中,机器可以通过扬声器和语音识别系统知道谁在说话以及他或她在说什么。当机器配备语音情感识别技术时,他们可以知道他或她的说话方式。为了实现这一目标,计算机必须能够感知其现状并根据这种感知作出不同的反应。此过程的一部分涉及了解用户的情绪状态。为了使人机交互更自然,让计算机能够以与人类相同的方式识别情绪情况是有益的。

    在人机交互领域,言语是情绪识别系统目标的主要内容,面部表情和手势也是如此。语音被认为是一种与意图和情感交流的强有力模式。近年来,许多研究人员对使用语音信息识别人类情感做了大量研究,并探索了几种分类方法,包括神经网络、高斯混合模型(Gaussian Mixture Model,GMM)、隐马尔可夫模型(Hidden Markov Model,HMM)、最大似然贝叶斯分类器(Maximum Likelihood Classification,MLC)、核回归和K近邻(k-Nearest Neighbor,KNN)、支持向量机(SVM)。文献提出一种基于多分类器集成的语音情感识别新算法。首先提取情感语音的韵律特征、音质特征和MFCC特征参数,然后将径向基神经网络、K近邻法和贝叶斯网络三种分类器构成集成分类器,实现对柏林情感语言数据库中7种主要情感类型的识别。文献采用二叉树结构设计多分类器,使用半定规划法求解并构造多核SVM分类模型,并采用均方根误差与最大误差对分类器性能进行衡量。对特征选择之后的参数集合进行了测试,其有效减少误差积累和降低情感状态之间混淆程度。文献在传统SVM方法的基础上,提出了一种基于主成分分析法的多级SVM情感分类算法。首先将容易区分的情感分开,针对混淆度大且不能再利用多级分类策略直接进行区分的情感,采用PCA进行特征降维,逐级判断出输入语音所属的情感类型。

    为了进一步提高语音情感识别精度,本文设计了一种基于MFCC特征提取和SVM的语音情感数据挖掘分类识别方法。SVM是过去十年由Vapnik在1995年开发的监督学习算法。该算法解决了学习区分给定类n维向量的正负成员的一般问题。SVM用作情感识别的分类器,通过构建N维超平面来执行分类,该超平面最佳地将数据分成类别。通过数据集输入特征空间中的线性或非线性分离表面来实现分类。实验结果证明了本文提出的基于MFCC特征提取和SVM的语音情感数据挖掘分类识别方法的有效性。

    1 语音情感
    1.1 语 音
    语音感知指的是人类能够解释和理解语言中使用的声音的过程。言语感知的研究与语言学和认知心理学中的语音学、音韵学以及心理学中的感知密切相关。语音感知研究旨在了解人类听众如何识别语音并使用这些信息来理解口语。语音研究可用于构建能够识别语音的计算机系统,以及改善听力和语言障碍听众的语音识别。

    语音信号通常被视为有声或无声,浊音包括基频(F0)及其由声带产生的谐波分量。声道修改了这个激励信号,导致共振峰(极点),有时还有反共振荡(零)频率。每个共振峰频率具有幅度和带宽,并且有时可能难以正确地定义这些参数中的一些。基频和共振峰频率可能是语音合成和语音处理中最重要的概念。在清音中,激励信号没有基频,因此也没有谐波结构,激励可以被认为是白噪声。气流被迫通过声道收缩,这可能发生在声门和嘴之间的几个地方。一些声音是在完全停止气流然后突然释放的情况下产生的。清音也通常比浊音更安静,更不稳定。悄悄话是言语的特例。当低声说出浊音时,在激发中没有基本频率,并且感知由声道产生的第一共振峰频率。

    音节是一系列语音的组织单位。例如,水一词由两个音节组成,音节通常被认为是单词的语音“构建块”。韵律是言语的节奏、压力和语调。韵律反映了说话者的情绪状态;一个话语是一个陈述、一个问题还是一个命令;说话者是讽刺还是强调,对比还是专注;可能无法用语法编码的其他语言元素。韵律包括音高、强度和持续时间,以及语音质量和关键特征。以下功能可以处理语音质量:共振峰均值和带宽,谐波噪声比,MFCC系数。响度是声音的质量,是物理力量(振幅)的主要心理关联。响度感与声压级和声音持续时间有关。音高表示声音的感知基频,它是声音和响度的三个主要听觉属性之一。周期信号的基频(也称为固有频率)是基音周期长度的倒数。音调周期是术语,是信号的最小重复单位。因此,一个音调周期完全描述了周期信号。

    1.2 情 感
    情绪是一个与各种各样的情感、思想和行为相关的心理和生理状态的术语。情绪是主观体验或个人角度的体验。一种特殊的情绪可持续数天,甚至持续数月或数年。人类的情感可以是不同的类型,如愤怒、快乐、悲伤、中立、恐惧、厌恶、惊讶、害羞、无聊等。情绪的研究是在很长一段时间内进行的。这项研究有助于心理学、社会学、犯罪学、生理学等领域。研究人员经常使用自主反应来衡量情绪。一种常用的自主反应为皮肤电反应。皮肤电反应是皮肤导电率的增加,当受试者在情绪状态下出汗时会发生这种情况。研究人员还使用血压、肌肉紧张度、心率和呼吸率等指标来衡量情绪。

    2 系统实施
    情感在人与人之间互动中的重要性为工程和计算机科学界的研究人员提供了开发计算机识别情感的自动方法的基础。系统的输入是来自柏林情感数据库的.wav文件,其包含来自不同情绪类别的情绪语音话语。在特征提取过程中,MFCC和MEDC两个特征被提取。将提取的特征及其对应的类标签作为LIBSVM分类器的输入。分类器的输出是特定情绪类的标签。总共有五个标签分别为生气、悲伤、快乐、中立和恐惧。每个标签代表相应的情绪类别。

    2.1 特征提取
    在先前的工作中,提取了若干特征用于对诸如能量、音调、共振峰频率等的语音影响进行分类。第一步要采集语音信号,并进行预处理。所有这些都是韵律特征。一般而言,韵律特征是说话者情绪状态的主要指标。这里在特征提取过程中提取了两个特征:MFCC和MEDC。

    MFCC由Stevens、Volkman和Newman在1937年提出。它是由听众判断的彼此距离相等的感知音阶。Mel是感知音调或音调频率的度量单位。此刻度和正常频率测量之间的参考点通过将1 000 Hz音调等于听众阈值40 dB,音高为1 000 mels来定义。在大约500 Hz以上,听众判断越来越大的间隔以产生相等的音高增量。最终,在500 Hz以上的赫兹音阶上的四个八度音阶被判断为在音阶上包括大约两个八度音阶。梅尔尺度在1 kHz以下近似线性并且在上面对数。以下公式用于计算给定频率f的赫兹(以Hz为单位)。MFCC抗噪能力强,其频率与声音的实际频率f的关系为:
    Mel(f)=2 595lg(1+f/700) (1)
    语音情感识别的MFCC特征提取过程为:
    (1) 以采样频率对连续时间信号(语音)进行采样。在MFCC的第一阶段,特征提取是为了增加高频中的能量。这个预加重是通过使用滤波器完成的。预加重数字滤波器为:
    H(Z)=1-αZ-1 (2)
    式中:α表示预加重系数。
    (2) 对语音信号进行分帧,并提取语音信号的短时特性。它是将从模数转换(ADC)获得的语音样本分割成时间长度在2 040 ms范围内的小帧的过程。成帧使得非静止语音信号能够被分段为准静态帧,并且能够对语音信号进行傅里叶变换。这是因为,已知语音信号在20~40 ms的短时间内表现出准静态行为。采用加汉明窗平滑语音信号:
    在这里插入图片描述
    (3) 加窗。加窗步骤用于窗口化每个单独的帧,以便最小化每帧开始和结束时的信号不连续性。

    (4) 将快速傅里叶变换(FFT)算法理想地用于评估语音的频谱。FFT将N个样本的每个帧从时域转换到频域。用离散傅里叶变换得到语音信号的线性频谱:
    在这里插入图片描述
    (5) 通过Mel频率滤波器提取频谱、Mel滤波器组和频率包络。Mel滤波器组由重叠的三角滤波器组成,截止频率由两个相邻滤波器的中心频率确定。滤波器具有线性间隔的中心频率和梅尔标度上的固定带宽。Mel频率滤波器设计如下:
    在这里插入图片描述
    式中:p为滤波器的个数。

    (6) 对Mel频谱取对数,对数具有将乘法变为加法的效果。因此,该步骤简单地将傅里叶变换中的幅度的乘法转换为加法,得到对数频谱S§,其传递函数为:
    在这里插入图片描述
    (7) 采用离散余弦变换:它用于使滤波器能量矢量正交化。由于该正交化步骤,滤波器能量矢量的信息被压缩成第一数量的分量并且将矢量缩短为分量数量。对S§进行离散余弦变换得到MFCC参数c(n)为:
    在这里插入图片描述
    (8) 计算MFCC的最大值、最小值、标准差。

    图1显示了MFCC特征提取过程。MFCC技术使用两种类型的滤波器,即线性间隔滤波器和对数间隔滤波器。
    在这里插入图片描述
    图1 MFCC特征提取过程
    Mel能量谱动态系数(MEDC)的特征提取过程如图2所示。使用FFT估计每个语音话语的幅度谱,然后输入到12个滤波器组,计算滤波器输出的对数平均能量En(i),i=1,2,…,n。然后,计算En(i)的第一和第二差值。
    在这里插入图片描述
    图2 MEDC特征提取过程
    (1) MEDC特征提取的预处理、成帧、窗口化、FFT和Mel滤波器组和频率包装过程与MFCC特征提取相同。
    (2) 取能量的对数平均值,在此过程中计算每个滤波器能量的平均对数。该平均值表示滤波器组中的各个滤波器的能量。
    (3) 计算第一和第二差异,然后通过组合滤波器能量的第一和第二差异来获得最终的Mel能谱动力学系数。

    2.2 数据挖掘功能标签与SVM训练分类
    在功能标签中,每个提取的功能与其类标签一起存储在数据库中。虽然SVM是二元分类器,但它也可以用于分类多个类。每个功能都与其类标签相关联,例如:生气、快乐、悲伤、中立、恐惧。
    SVM根据标记的特征进行训练。SVM内核函数用于SVM的训练过程。二进制分类可以视为在特征空间中分离类的任务。SVM是二进制分类器,但它也可以用作多类分类器。LIBSVM是由C.J.Lin开发的用于SVM分类和回归的最广泛使用的工具。径向基函数(Radical Basis Function,RBF)内核用于训练阶段。使用RBF内核的优点是它将训练数据限制在指定的边界内。RBF内核将样本非线性地映射到更高维空间,因此,与线性内核不同,它可以处理类标签和属性之间的关系是非线性的情况。RBF内核比多项式内核具有更少的数值困难。SVM分类的结果以混淆矩阵表的形式给出。混淆矩阵表示给定类的准确分类和错误分类的百分比。
    二分类原理如图3所示。
    在这里插入图片描述
    图3 支持向量机的二分类原理
    设语音情感识别的训练样本数据为:{xi,yi},xi∈Rn,i=1,2,…,n,xi为情感识别的特征向量,yi为情感的类别,SVM利用非线性映射Φ(x)将训练集映射到高维空间,使非线性问题线性的最优分类面描述为:
    y=ωTΦ(x)+b (8)
    式中:ω和b表示SVM的权值和偏向量。
    必须找到最优的ω和b,对式(8)无法直接求解,因此要找到最优分类面,于是引入松弛因子ξi对式(8)进行变换,得到其二次优化问题,即:
    在这里插入图片描述
    式中:C表示惩罚参数。通过引入拉格朗日乘子对式(9)进行变换,则有:
    在这里插入图片描述
    权向量ω的计算公式为:
    ω=∑αiyiΦ(xi)·Φ(x) (11)
    支持向量机的分类决策函数可以描述为:
    f(x)=sgn(αiyiΦ(xi)·Φ(xj)+b) (12)
    为了降低计算复杂度,简化运算,引入核函数k(x,xi),以k(x,xi)代替点积椎Φ(xi)·Φ(xj),式(12)变为:
    f(x)=sgn(αiyik(x,xi)+b) (13)
    在众多核函数中,采用RBF作为支持向量机核函数,这是因为RBF的通用性好,参数少,式(12)变为:
    在这里插入图片描述
    式中:σ表示RBF的宽度参数。

    二、部分源代码

    function varargout = main(varargin)
    % MAIN MATLAB code for main.fig
    %      MAIN, by itself, creates a new MAIN or raises the existing
    %      singleton*.
    %
    %      H = MAIN returns the handle to a new MAIN or the handle to
    %      the existing singleton*.
    %
    %      MAIN('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in MAIN.M with the given input arguments.
    %
    %      MAIN('Property','Value',...) creates a new MAIN or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before main_OpeningFcn gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to main_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
     
    % Edit the above text to modify the response to help main
     
    % Last Modified by GUIDE v2.5 12-Apr-2020 14:35:36
     
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @main_OpeningFcn, ...
                       'gui_OutputFcn',  @main_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
     
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    % End initialization code - DO NOT EDIT
     
     
    % --- Executes just before main is made visible.
    function main_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to main (see VARARGIN)
     
    % Choose default command line output for main
    handles.output = hObject;
     
    % Update handles structure
    guidata(hObject, handles);
     
    % UIWAIT makes main wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    ha=axes('units','normalized','pos',[0 0 1 1]);
    uistack(ha,'down');
    ii=imread('背景.jpg');
    image(ii);
    colormap gray
    set(ha,'handlevisibility','off','visible','on');
     
    % --- Outputs from this function are returned to the command line.
    function varargout = main_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Get default command line output from handles structure
    varargout{1} = handles.output;
     
     
    % --- Executes on button press in pushbutton1.
    function pushbutton1_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    close
    gui
     
    % --- Executes on button press in pushbutton2.
    function pushbutton2_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    close
    

    三、运行结果

    在这里插入图片描述
    在这里插入图片描述

    四、matlab版本及参考文献

    1 matlab版本
    2019

    2 参考文献
    [1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
    [2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.
    [3]张钰莎,蒋盛益.基于MFCC特征提取和改进SVM的语音情感数据挖掘分类识别方法研究.[J]计算机应用与软件. 2020,37(08)

    展开全文
  • 一、简介支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。1 数学部分1.1 二...

    一、简介

    支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。

    1 数学部分

    1.1 二维空间

    ce6a068def042fa3bf938c17c0e98f42.png

    4e2bb2f3fdc5ba94071076f3e0cf2d74.png

    00e41f3aa8b9d9cd2a82dd6bc6d3aef7.png

    8b423b3662b950439132e61d8ac36711.png

    ad8eaabf79925bbe5e713d45ca163b26.png

    06c8342bc742644ac723f9b1168736b3.png

    4d7176e0a890f4bd47d21bf7d27eeb72.png

    e8f21caac546fc13245684205a2eb873.png

    b4def7396996bfa6fab0cba7e9df81ba.png

    2 算法部分

    aa7e9ee93527973d725a24a48c76f88b.png

    e78aa72e4cf769659224c91af968fd49.png

    7473d61161b1550cf01c2df8917ca1b1.png

    5e5222294047ce6e481028f7f7229046.png

    二、源代码

    clc;

    clear;

    load A_fear fearVec;

    load F_happiness hapVec;

    load N_neutral neutralVec;

    load T_sadness sadnessVec;

    load W_anger angerVec;

    sampleang=angerVec';

    samplehap=hapVec';

    sampleneu=neutralVec';

    samplesad=sadnessVec';

    samplefear=fearVec';

    train(1:30,:)=sampleang(1:30,:); %每类三十个样本作为训练样本

    test(1:20,:)=sampleang(31:50,:);%每类二十个样本作为测试样本

    train(31:60,:)=samplehap(1:30,:);

    test(21:40,:)=samplehap(31:50,:);%

    train(61:90,:)=sampleneu(1:30,:);

    test(41:60,:)=sampleneu(31:50,:);%

    train(91:120,:)=samplesad(1:30,:);

    test(61:80,:)=samplesad(31:50,:);%

    train(121:150,:)=samplefear(1:30,:);

    function rate=svmclassfiction(samples,test) %构造五种情感分类器

    train1=samples(1:60,:);%用来构造生气-高兴分类模型训练样本

    train2=[samples(1:30,:);samples(61:90,:)];%用来构造生气-中性分类模型训练样本

    train3=[samples(1:30,:);samples(91:120,:)];%用来构造生气-悲伤分类模型训练样本

    train4=[samples(1:30,:);samples(121:150,:)];%用来构造生气-害怕分类模型训练样本

    train5=[samples(31:60,:);samples(61:90,:)];%用来构造高兴-中性分类模型训练样本

    train6=[samples(31:60,:);samples(91:120,:)];%用来构造高兴-悲伤分类模型训练样本

    train7=[samples(31:60,:);samples(121:150,:)];%用来构造高兴-害怕分类模型训练样本

    train8=[samples(61:90,:);samples(91:120,:)];%用来构造中性-悲伤分类模型训练样本

    train9=[samples(61:90,:);samples(121:150,:)];%用来构造中性-害怕分类模型训练样本

    train10=[samples(91:120,:);samples(121:150,:)];%用来构造悲伤-害怕分类模型训练样本

    for i=1:30 %正类样本标记

    trainlabel(i)=1;

    end

    for i=30:60 %负类样本标记

    trainlabel(i)=-1;

    end

    trainlabel=trainlabel';

    svmStruct(1)= svmtrain(train1,trainlabel); %构造两类SVM分类模型

    svmStruct(2)= svmtrain(train2,trainlabel);

    svmStruct(3)= svmtrain(train3,trainlabel);

    svmStruct(4)= svmtrain(train4,trainlabel);

    svmStruct(5)= svmtrain(train5,trainlabel);

    svmStruct(6)= svmtrain(train6,trainlabel);

    svmStruct(7)= svmtrain(train7,trainlabel);

    svmStruct(8)= svmtrain(train8,trainlabel);

    svmStruct(9)= svmtrain(train9,trainlabel);

    svmStruct(10)= svmtrain(train10,trainlabel);

    sumang=0; %生气情感正确识别个数

    sumhap=0; %高兴情感正确识别个数

    sumneu=0; %中性情感正确识别个数

    sumsad=0; %悲伤情感正确识别个数

    sumfea=0; %害怕情感正确识别个数

    for i=1:100

    for k=1:5

    votes(k)=0; %多个SVM分类器将待测样本规定为某一类别个数

    end

    for j=1:10

    C(j) = svmclassify(svmStruct(j),test(i,:));

    end

    if(C(1)==1) %第一个判决器结果

    votes(1)=votes(1)+1; %生气情感获得票数

    elseif(C(1)==-1)

    votes(2)=votes(2)+1; %高兴情感获得票数

    end

    if(C(2)==1) %第二个判决器结果

    votes(1)=votes(1)+1; %生气情感获得票数

    elseif(C(2)==-1)

    votes(3)=votes(3)+1; %中性情感获得票数

    end

    if(C(3)==1) %第三个判决器结果

    votes(1)=votes(1)+1; %生气情感获得票数

    elseif(C(3)==-1)

    votes(4)=votes(4)+1; %悲伤情感获得票数

    end

    if(C(4)==1) %第四个判决器结果

    votes(1)=votes(1)+1; %生气情感获得票数

    elseif(C(4)==-1)

    votes(5)=votes(5)+1; %害怕情感获得票数

    end

    三、运行结果

    5d631247627345f740c78114332da790.png

    四、备注

    完整代码或者代写添加QQ 1564658423

    往期回顾>>>>>>

    【特征提取】基于matlab小波变换的音频水印嵌入提取【含Matlab源码 053期】

    【语音处理】基于matlab GUI语音信号处理【含Matlab源码 290期】

    【语音采集】基于matlab GUI语音信号采集【含Matlab源码 291期】

    【语音调制】基于matlab GUI语音幅度调制【含Matlab源码 292期】

    【语音合成】基于matlab GUI语音合成【含Matlab源码 293期】

    【语音加密】基于matlab GUI语音信号加密解密【含Matlab源码 295期】

    【语音增强】基于matlab小波变换的语音增强【含Matlab源码 296期】

    【语音识别】基于matlab GUI语音基频识别【含Matlab源码 294期】

    【语音增强】基于matlab GUI维纳滤波之语音增强【含Matlab源码 298期】

    【语音处理】基于matlab GUI语音信号处理【含Matlab源码 299期】

    【信号处理】基于matlab的语音信号频谱分析仪【含Matlab源码 325期】

    【调制信号】基于matlab GUI数字调制信号仿真【含Matlab源码 336期】

    【情感识别】基于matlab BP神经网络的语音情感识别【含Matlab源码 349期】

    【语音隐写】基于matlab小波变换的量化音频数字水印【含Matlab源码 351期】

    【特征提取】基于matlab音频水印嵌入与提取【含Matlab源码 350期】

    【语音去噪】基于matlab低通和自适应滤波去噪【含Matlab源码 352期】

    【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】

    【基础处理】基于matlab语音信号的预处理【含Matlab源码 364期】

    【语音识别】基于matlab 傅立叶变换0-9的数字语音识别【含Matlab源码 384期】

    【语音识别】基于matlab GUI DTW的0-9数字语音识别【含Matlab源码 385期】

    【语音播放】基于matlab GUI MP3设计【含Matlab源码 425期】

    【语音处理】基于人耳掩蔽效应的语音增强算法信噪比计算【含Matlab源码 428期】

    【语音去噪】基于matlab谱减法去噪【含Matlab源码 429期】

    【语音识别】基于matlab带动量项的BP神经网络语音识别【含Matlab源码 430期】

    【语音隐写】基于matlab LSB语音隐藏【含Matlab源码 431期】

    【语音识别】基于matlab男女声识别【含Matlab源码 452期】

    【语音处理】基于matlab语音加噪和降噪处理【含Matlab源码 473期】

    【语音去噪】基于matlab最小二乘法(LMS)自适应滤波器【含Matlab源码 481期】

    【语音增强】基于matlab谱减法、最小均方和维纳滤波语音增强【含Matlab源码 482期】

    【通信】基于matlab GUI数字频带(ASK、PSK、QAM)调制仿真 【含Matlab源码 483期】

    【信号处理】基于matlab心电信号ECG滤波处理【含Matlab源码 484期】

    【语音播报】基于matlab语音播报【含Matlab源码 507期】

    【信号处理】基于matlab小波变换脑电信号特征提取【含Matlab源码 511期】

    【语音处理】基于matlab GUI双音多频(DTMF)信号检测【含Matlab源码 512期】

    【语音隐写】基于matlab LSB实现语音信号的数字水印【含Matlab源码 513期】

    【语音增强】基于matlab匹配滤波器的语音识别【含Matlab源码 514期】

    【语音处理】基于matlab GUI语音时域频域频谱图分析【含Matlab源码 527期】

    【语音去噪】基于matlab LMS、RLS算法语音去噪【含Matlab源码 528期】

    【语音去噪】基于matlab LMS谱减法语音去噪【含Matlab源码 529期】

    【语音去噪】基于matlab 软阈值、硬阈值、折中阈值语音去噪【含Matlab源码 530期】

    【语音识别】基于matlab特定人的语音识别分辨【含Matlab源码 534期】

    【语音去噪】基于matlab小波软阈值语音降噪【含Matlab源码 531期】

    【语音去噪】基于matlab小波硬阈值语音降噪【含Matlab源码 532期】

    【语音识别】基于matlab MFCC和SVM的特定人性别识别【含Matlab源码 533期】

    【语音识别】基于MFCC的GMM语音识别【含Matlab源码 535期】

    【语音识别】基于matlab VQ特定人孤立词语音识别【含Matlab源码 536期】

    【语音识别】基于matlab GUI声纹识别【含Matlab源码 537期】

    【采集读写】基于matlab语音采集与读写【含Matlab源码 538期】

    【语音编辑】基于matlab语音编辑【含Matlab源码 539期】

    【语音模型】基于matlab语音信号数学模型【含Matlab源码 540期】

    【语音响度】基于matlab语音声强与响度【含Matlab源码 541期】

    【情感识别】基于matlab K近邻分类算法的语音情感识别【含Matlab源码 542期】

    展开全文
  • 语音情感识别

    千次阅读 2021-03-11 12:33:16
    NLP和图像比较普遍,语音识别文字做的很多,今天尝试下做语音情感识别。 语音情感识别系统图 wav格式的语音包 做特征提取的语音包(包含中文和英文) https://download.csdn.net/download/bug4pie/15725652 特征...

    背景

    NLP和图像比较普遍,语音识别文字做的很多,今天尝试下做语音情感识别。

    语音情感识别系统图

    框图

    wav格式的语音包

    做特征提取的语音包(包含中文和英文)

    特征提取方法-mfcc

    在这里我选用了mfcc算法来提取语音基于谱的特征
    算法如下
    mfcc算法

    主函数调用

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    '''
    @File  : main.py
    @Author: Piepis
    @Date  : 2021/3/11 12:53
    @Desc  : 
    '''
    from calcmfcc import *
    import scipy.io.wavfile as wav
    import numpy
    import os
    import scipy.io as io
    
    file_path = '../标准语音测试包/中文/'
    mat_path="mfcc_mat_save_path.mat"
    pathnames = []
    for (dirpath, dirnames, filenames) in os.walk(file_path):
        for filename in filenames:
            if os.path.splitext(filename)[-1] ==".wav":
                pathnames += [os.path.join(dirpath, filename)]
    
    mat= numpy.zeros((len(pathnames),39*5))  #生成一个3行4列全部元素为0的矩阵
    N = 0
    for file in pathnames:
        (rate,sig) = wav.read(file)
        mfcc_feat = calcMFCC_delta_delta(sig,rate)
        # axis=0,计算每一列的均值
        c1=numpy.mean(mfcc_feat,axis=0) #平均值
        c2=numpy.min(mfcc_feat,axis=0)  # 最小值
        c3=numpy.max(mfcc_feat,axis=0)  # 最大值
        c4=numpy.median(mfcc_feat,axis=0)  # 中值
        c5=numpy.std(mfcc_feat,axis=0)    # 标准偏差
        tt=numpy.concatenate((c1,c2 ,c3,c4,c5),axis=0)
        mat[N,:]=tt
        N+=1
    io.savemat(mat_path, {'mfcc_name': mat})
    print(mfcc_feat.shape)
    print(mat.shape)
    
    

    分类算法 svm

    因为用来train的语音样本数据比较少,大概有一千条左右(数据来自CCPR),选用了常用于小样本的SVM算法来做情感分类。
    情感
    核心代码

    def svm_cross_validation(train_x, train_y):
        from sklearn.model_selection import GridSearchCV
        from sklearn.svm import SVC
        model = SVC(kernel='rbf', probability=True,random_state=seed)
        param_grid = {'C': [1e-3, 1e-2, 1e-1,2,0.4, 1, 10, 100, 1000], 'gamma': [0.001, 0.0001]}
        grid_search = GridSearchCV(model, param_grid, n_jobs = 8, verbose=1)
        grid_search.fit(train_x, train_y)
        best_parameters = grid_search.best_estimator_.get_params()
        for para, val in list(best_parameters.items()):
            print(para, val)
        model = SVC(kernel='rbf', C=best_parameters['C'], gamma=best_parameters['gamma'], probability=True)
        model.fit(train_x, train_y)
        return model
    

    预测结果 与实际结果对比

    没有咋找最参数,只是简单的找了下。效果不太好,40%的识别率。(也有可能是语音是从电视剧里截出来的,有很多背景杂音。我用德国语音库测了下,能达到65%以上)
    在这里插入图片描述
    在这里插入图片描述

    混淆矩阵(Confusion Matrix)

    在这里插入图片描述

    参考文献

    基于听觉特性的Mel频率倒谱分析
    MFCC算法的实现过程(原理篇)
    语音识别的第一步MFCC特征提取代码(Python)

    展开全文
  • 情感识别

    2021-07-27 09:18:40
    计算机对从传感器采集来的信号进行分析和处理,从而得出对方(人)正处在的情感状态,这种行为叫做情感识别。从生理心理学的观点来看,情绪是有机体的一种复合状态,既涉及体验又涉及生理反应,还包含行为,其组成分...

    计算机对从传感器采集来的信号进行分析和处理,从而得出对方(人)正处在的情感状态,这种行为叫做情感识别。从生理心理学的观点来看,情绪是有机体的一种复合状态,既涉及体验又涉及生理反应,还包含行为,其组成分至少包括情绪体验、情绪表现和情绪生理三种因素。目前对于情感识别有两种方式,一种是检测生理信号如呼吸、心律和体温等,另一种是检测情感行为如面部特征表情识别、语音情感识别和姿态识别。

    中文名

    情感识别

    外文名

    emotion recognition

    方    式

    检测生理信号和情感行为分    类

    人脸、语音、生理模式情感识别等

    应    用

    多媒体人机交互等

    应用学科

    通信科学等

    情感识别情感识别综述

    编辑

    语音

    情感识别定义

    计算机对从传感器采集来的信号进行分析和处理,从而得出对方(人)正处在的情感状态,这种行为叫做情感识别。从生理心理学的观点来看,情绪是有机体的一种复合状态,既涉及体验又涉及生理反应,还包含行为,其组成分至少包括情绪体验、情绪表现和情绪生理三种因素。目前对于情感识别有两种方式,一种是检测生理信号如呼吸、心律和体温等,另一种是检测情感行为如面部特征表情识别、语音情感识别和姿态识别。

    “情感识别”,并不是说计算机能直接识别或测量情感状态,应该解释为“通过观察表情、行为和情感产生的前提环境来推断情感状态”。因为情感状态是内在的并包含生理和心理的变化,这样只能获得情感状态的一些可观测的东西,如表情、行为等等。假设这些东西的观测可靠的话,那么潜在的情感状态就可以推断出来。只有将情感识别看作一种模式识别问题、情感表达看作模式合成问题,计算机进行情感交流才具有可行性。[1]

    情感识别目的

    事实上,人与人之间进行情感识别与情感交流存在着一定的客观动机。分工与合作是人类提高社会生产力最有效的方式,人们为了更好地进行分工合作,一方面必须及时地、准确地通过一定的“情感表达”方式向他人展现自己的价值关系,另一方面必须及时地、准确地通过一定的“情感识别”方式了解和掌握对方的价值关系,才能够在此基础上,分析和判断彼此之间的价值关系,才能做出正确的行为决策。

    总之,情感识别的客观本质或客观动机就是人为了了解和掌握对方的价值关系。

    由于人与人之间存在不同类型的利益相关性,对方所展现的情感有时是完全准确的方式,有时是夸张掩饰的方式,有时却是完全相反的方式,这时,人就需要不断地调整和修正对方的情感表达的客观价值内容,使自己的情感识别具有更高的及时性、准确性和完整性。

    情感识别内容

    人类可以通过视觉、味觉、听觉、嗅觉和触觉五个器官来认识世界,而对于他人情感的识别主要是通过视觉和听觉来完成的,即主要是通过人脸的情感识别、语言声调的情感识别语言文字的情感识别来完成的。

    情感识别人脸情感识别

    编辑

    语音

    情感识别识别方式

    把用眼睛观察到的视觉信息叫做图象信息,如人脸的表情信息。一般的表情识别可以用单个感官完成,也可以用多个感官相配合来完成,它是一个整体识别和特征识别共同作用的结果。具体说来,远处辨认人,主要是依靠人脸的整体识别,而在近距离辨认人,主要是依靠人脸的特征识别。人脸的整体识别和特征识别虽然存在联系,但总体说是分开的、并行的处理过程。

    随着人脸的计算机处理技术(包括人脸检测和人脸识别)不断完善,利用计算机进行面部表情分析也就成为

    fa569993f3572b44f4f8315fc641c8c1.png

    面部表情识别和动作能量图可能。由于各种面部表情本身体现在各个特征点运动上的差别并不是很大,而表情分析对于人脸的表情特征提取的准确性和有效性要求比较高,因而难以顺利地实现。例如:嘴巴张开并不代表就是笑,也有可能是哭和惊讶等。所用到的识别特征主要有:灰度特征、运动特征和频率特征三种。灰度特征是从表情图像的灰度值上来处理,利用不同表情有不同灰度值来得到识别的依据;运动特征利用了不同表情情况下人脸的主要表情点的运动信息来进行识别;频域特征主要是利用了表情图像在不同的频率分解下的差别,速度快是其显著特点。

    具体的表情识别方法主要有三个:一是整体识别法和局部识别法,二是形变提取法和运动提取法,三是几何特征法和容貌特征法。当然,这三个发展方向不是严格独立的,恰恰相反,是相互联系,相互影响的,它们只是从不同侧面来提取所需要的表情特征,都只是提供了一种分析表情的思路。

    通常面部表情识别模型都基于数字化的面部图像或者一小段面部表情序列(例如先中性的,然后微笑,最后中性)的视频。通常根据视频识别要比根据静态图像识别更准确。视频能捕捉某种表情形成过程的面部动作。[1]

    情感识别逻辑程序

    当人通过视觉器官把他人面部的刺激信号接收并传递到人的大脑之中,大脑就会进行人脸检测、人脸图像预处理、人脸特征提取等程序,然后,把以前存储在大脑中的若干基本表情的人脸特征(即脸谱)提取出来,进行对比分析和模糊判断,找出两者的人脸特征最接近的某种基本表情。这时,大脑皮层就会接通该基本表情所对应的兴奋区与边缘系统的神经联系,从而产生愉快或痛苦的情感体验。同时,大脑皮层还会接通该基本表情所对应的兴奋区与网状结构的神经联系,从而确定愉快或痛苦的强度。

    情感识别语音情感识别

    编辑

    语音

    语音情感识别是指由计算机自动识别输入语音的情感状态。一般来说,不同语言声调表情的语言信号在其时间构造、振幅构造、基频构造和共振峰构造等特征方面也有着不同的构造特点和分布规律。由此,只要把各种具体模式的语言声调表情在时间构造、振幅构造、基频构造和共振峰构造等特征方面的构造特点和分布规律进行测算和分析,并以此为基础或模板,就可以识别出所有语言声调中所隐含的情感内容。[2]

    f3bec50f260048cbdd34be885b8a3665.png

    人类语音效果和情感之间的最一般的对应关系

    将语音中的情感特征化比面部表情的特征化要难。面部表情信号传达了个人特征和表情,一般不传达语言信息。另一方面,语音信号包含的是混合信息,包括说话者特征、情感和说话内容中强调的词汇和语法。计算机在语音情感的识别和合成方面的进展很慢。[1]

    随着计算机多媒体技术的不断发展,能处理包含在媒体中的情感信息的柔软的拟人化的多媒体计算机系统的研究越来越引起人们的兴趣。因为语音信号既是多媒体人机交互的主要利用方式,又是传载情感信息的重要媒体,所以包含在语音信号中的情感信息的计算机处理研究就显得尤为重要。[3]

    人脑逻辑程序

    当人通过听觉器官把他人的语言声调信号接收并传递到人的大脑之中,大脑就会对其时间构造、振幅构造、基频构造和共振峰构造等方面的特点和分布规律进行检测、预处理和特征提取,然后,把以前存储在大脑中的若干基本表情的语言声调信号的时间构造、振幅构造、基频构造和共振峰构造等特征方面的构造特点和分布规律提取出来,进行对比分析和模糊判断,找出两者的声音特征最接近的某种基本表情。[2]

    情感识别语言文字识别

    编辑

    语音

    语言和文字属于第二信号系统,由于它们脱离了现实事物对于人的条件反射活动的直接参与,从而可以更为广泛地、普遍地、直接地、快速地、灵活地、多样地、深入地对各种事物进行认识,从而可以使人类能够对更为抽象、更为本质、更为遥远、更为间接、更为广泛、更为模糊、更为变化莫测的事物的价值关系进行认识和反应。

    逻辑程序

    当人通过听觉器官把他人的语言信号接收并传递到人脑中,或者通过视觉器官把文字信号接收并传递到人脑中,大脑就会对其进行语义分析,对它们所描述事物的价值关系的目标指向、变化方式、变化时态、对方的利益相关性等进行判断,从而确定和选择情感表达的某种基本模式。

    情感识别生理模式识别

    编辑

    语音

    从生理信号中抽取出来的特征模式可以用来识别情感。计算机在人做出表情(如悲痛或愤怒)的时候,观察多种收集到的信号,然后分析哪种生理信号模式和特定情感状态关系最密切。然后计算机系统应用先前分析的结果,根据收集到的原始数据来识别出包含在信号中最有可能的情感。这方面的研究还刚刚开始。

    通常通过观察所有数据的子集能判断出哪种特征值的辨别能力最强。试过所有可能的三种情感、两种特征值的组合,发现愤怒、悲痛和尊敬的组合或愤怒、高兴和尊敬的组合中,情感是最容易识别出的。这两种情况中,都有一个最佳的识别特征值是 EMG信号的的平均值,但是另一个最佳特征值却是不同的。愤怒、悲痛和尊敬的组合中,标准化信号的第一次差分绝对值的平均值就是最佳的。而对愤怒、高兴和尊敬的组合中,最佳选择还是第一次差分绝对值的平均值,但这次是从EMG信号中得到的。[1]

    参考资料

    1.

    张颖, 罗森林. 情感建模与情感识别[J]. 计算机工程与应用, 2003, 39(33):98-102.

    2.

    赵腊生, 张强, 魏小鹏. 语音情感识别研究进展[J]. 计算机应用研究, 2009, 26(2):34-38.

    3.

    赵力, 钱向民, 邹采荣,等. 语音信号中的情感识别研究[J]. 软件学报, 2001, 12(7):1050-1055.

    展开全文
  • 语音情感识别,最好的例子可以在呼叫中心看到。如果您注意到了,呼叫中心的员工永远不会以相同的方式交谈,他们与客户的推销/交谈方式会随客户而改变。现在,普通民众也确实会发生这种情况,但这与呼叫中心有何关系...
  • 本文涉及一种语音情感识别系统及方法.采取特征提取分析模块,SVM训练模块和SVM识别模块;训练过程包括特征提取分析,SVM训练;识别过程包括特征提取分析,SVM识别.特征提取分析有全局结构特征参数选择及性别规整,时序结构...
  • 语音情感识别是从语音信号中提取一些有效的声学特征,然后利用智能计算或者识别的方法对话者的情感状态进行识别。介绍了国内外在该领域中关于语音情感数据库、特征提取、识别方法的研究现状。基于对该领域现状的了解,...
  • 因此,随着人机交互技术的快速发展,语音信号中的情感信息正越来越受到研究人员的重视,特别是在语音合成和语音识别等领域。长期以来情感智能研究只存在于心理学和认知科学等领域,但是近年来随着信息技术的高速发展...
  • 一、 KNN算法简介 K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。...基于HMM和PNN的语音情感识别研究.[J]青岛大学学报(工程技术版). 2011,26(04)
  • 人脸表情识别和人脸情感识别数据集汇总

    多人点赞 热门讨论 2021-09-18 11:55:56
    本文主要汇总与人脸情感识别(Expression、AU、VA)相关的各种数据集。 包含:AFEW-VA数据集下载;AFEW数据集下载,AffectNet数据集下载;AffWild数据集下载;AffWild2数据集下载;RAF-DB数据集下载;RAF-ML数据集...
  • 引用论文:Zhao, Sicheng, et al. “Emotion Recognition from Multiple Modalities: Fundamentals and Methodologies.” arXiv preprint arXiv:2108.10152 ...新鲜出炉的赵思成和杨巨峰大佬的论文哦(情感识别领域
  • 多模态融合的情感识别研究

    千次阅读 2021-02-05 10:00:08
    情感识别是模式识别的重要研究领域,它将情感维度引入人机交互。情感表达的模态包括面部表情、语音、姿势、生理信号、文字等,情感识别本质上是一个多模态融合的问题。 提出一种多模态融合的情感识别算法,从面部图像...
  • %每类情感正确识别个数 %统计识别正确样本数 for i=1:20 if Y(1,i)>Y(2,i)&&Y(1,i)>Y(3,i)&&Y(1,i)>Y(4,i)&&Y(1,i)>Y(5,i) sum(1)=sum(1)+1; end function sumlvq=lvq(trainsample,testsample,class) P=trainsample...
  • %% 载入各情感的特征向量矩阵 load A_fear.mat; load F_happiness.mat; load N_neutral.mat; load T_sadness.mat; load W_anger.mat; NumberOfTrain=size(fearVec,2)/2; %一半测试用,一半训练用 trainVector=...
  • 情感识别研究主要的方法有基于语音的情感识别研究、基于图像的情感识别研究和基于多模态融合的情感识别研究。由于单一的语音或图像模态信息所表达的情感信息是不完整的,不能完全满足人们的期望。而多模态融合的情感...
  • 目录0. 题目1. 研究问题2. 采用方法3. 优缺点4....0. 题目 《Multi-modal Conditional Attention Fusion for Dimensional Emotion Prediction》 《基于多模态条件注意融合机制的多...​ 情感分析在组成形式上可以分为:单
  • 1963年,Vapnik在解决模式识别问题时提出了支持向量方法。起决定性作用的样本为支持向量 1971年,Kimeldorf构造基于支持向量构建核空间的方法 1995年,Vapnik等人正式提出统计学习理论。 通俗来讲,SVM是一种二...
  • 关键词:语音情感识别、深度双向LSTM、关键片段、序列选择、CNN特征归一化、RBFN 摘要 传统SER主要注重手工特征和使用传统CNN模型来提取高阶特征,增加识别准确率和整个模型的复杂度。本文提出了新的框架: 采用...
  • 一、简介 基于matlab GUI语音情感...set(h_fig,'Menubar','name','语音情感识别系统 v1.0',... 'Numbertitle','off',... 'color',[0.9023 0.9074 0.8055]); h_text=uicontrol(h_fig,'style','text','unit','normalize
  • 近日,小米推出了全面支持情感化语音交互的小米小爱音箱Art,小米也成为业内首家情感化TTS大规模...例如在智能客服领域,当用户的问题无法解决或者问题表述不清时,智能客服很有可能无法识别用户的情绪、进行进一步操
  • 标题:生物启发的语音情感识别 时间:2021.11.15 作者:Reza Lotfidereshgi, Philippe Gournay 机构:Université de Sherbrooke 链接:https://arxiv.org/pdf/2111.08112.pdf 简介: 传统的基于特征的分类方法不...
  • 本文使用pytorch,利用两种神经网络(lstm,cnn)实现中文的文本情感识别。代码都有详细的注释说明。使用的是谭松波酒店评价语料库,其中包含3000条负面评价,7000条正面评价。 一、数据处理与Word2vec词向量训练 ...
  • 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 1 数学部分 1.1 二维空间...
  • 基于交互注意力机制的多模态情感识别算法 研究问题 多模态机制下的情感识别,在多模态下,需要提取大量的特征。但特征数量多,造成一是训练参数增大。二是产生噪声,关键信息被遗漏。在模型融合时,要关注主要特征,...
  • 剧本对影视行业的重要性不言而喻。一部好的剧本,不光是好口碑和大流量的基础,也能带来更高的商业回报。作为影视内容生产链条的第一环,剧本分析对于好剧本的选择至关重要,在这其中,角色的情感识别又...
  • 从5个角度逐步展开进行归纳总结,即情感描述模型、具有代表性的情感语音库、语音情感特征提取、语音情感识 别算法研究和语音情感识别技术应用,旨在尽可能全面地对语音情感识别技术进行细致的介绍与分析,为相关研究 ...
  • 基于注意力机制的全卷积网络的语音情感识别 作者解决了两个问题,一个是传统的方法需要对语音补0对齐之后才能处理,作者提出了一个全卷积网络。此外情感信息大部分只存在于特定的频率和时刻内, 通过注意力机制去...
  • 文献阅读(十六):多模态连续维度情感识别研究_张戈(硕士论文) 本文针对于连续维度情感空间提出了一种多模态情感识别方法,该方法主要分为四个步骤: 1.音/视频情感预测,通过对音视频信号的处理,情感特征的...
  • 基于CNN和LSTM的seed数据集情感识别

    千次阅读 2021-04-20 16:44:16
    论文提出了一种基于分段级脑电信号的情感分类方法,该方法能够综合脑电信号的频率、空间和时间信息。 该方法在SEED和DEAP数据集上均取得了最先进的性能。 首先,将脑电信号构建为四维特征结构,对脑电信号的频率、...
  • 引言:目前大体学习多模态语音情感识别,对语音数据的训练过程有个初步的了解,但对于原始语音音频生成具体的数据特征、以及如何获取有些疑惑,因此通过这篇文章来总结语音情感识别中的音频特征检测算法。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,972
精华内容 13,188
关键字:

情感识别