[Reconocimiento de emociones] Reconocimiento de emociones por voz basado en una red neuronal [Con código fuente 544 de Matlab]

1. Introducción

La red BP (Back Propagation), propuesta por un equipo de científicos liderados por Rumelhart y McCelland en 1986, es una red de retroalimentación multicapa entrenada por un algoritmo de retropropagación de error, y actualmente es uno de los modelos de redes neuronales más utilizados. La red BP puede aprender y almacenar una gran cantidad de relaciones de mapeo de patrones de entrada-salida sin revelar las ecuaciones matemáticas que describen esta relación de mapeo por adelantado.
En la historia del desarrollo de redes neuronales artificiales, hace mucho tiempo que no se ha encontrado un algoritmo eficaz para ajustar el peso de la conexión de la capa oculta. Hasta que se propuso el algoritmo de retropropagación de errores (algoritmo BP), se resolvió con éxito el problema del ajuste de peso de las redes neuronales de alimentación directa multicapa para resolver funciones continuas no lineales.

La red neuronal BP (Back Propagation), el proceso de aprendizaje del algoritmo de retropropagación de error, consta de dos procesos: propagación hacia adelante de información y propagación hacia atrás del error. Cada neurona en la capa de entrada es responsable de recibir información de entrada desde el exterior y transmitirla a cada neurona en la capa intermedia; la capa intermedia es la capa interna de procesamiento de información y es responsable de la transformación de la información. Según la demanda de capacidad de cambio de información , la capa intermedia se puede diseñar como una sola capa oculta o una estructura de capa múltiple oculta; la última capa oculta transmite la información de cada neurona en la capa de salida, después de un procesamiento adicional, completa un proceso de propagación hacia adelante de aprendizaje y la capa de salida envía el resultado del procesamiento de la información al mundo exterior. Cuando la salida real no coincide con la salida esperada, se ingresa a la fase de retropropagación del error. El error pasa a través de la capa de salida, corrige los pesos de cada capa en el camino del descenso del gradiente de error y lo transmite de vuelta a la capa oculta y a la capa de entrada capa por capa. El proceso repetido de propagación hacia adelante de información y propagación hacia atrás de errores es un proceso de ajuste constante de los pesos de cada capa, así como un proceso de aprendizaje y entrenamiento de redes neuronales. Este proceso continúa hasta que se reduce el error de salida de la red. a un nivel aceptable, o preestablecido hasta el número establecido de estudios.

Modelo de red neuronal de BP El modelo de red de BP incluye su modelo de entrada y salida, modelo de función de acción, modelo de cálculo de errores y modelo de autoaprendizaje.
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
2 Modelo de red neuronal de BP y sus principios básicos
Inserte la descripción de la imagen aquí
3 Flujo del algoritmo BP_PID
Inserte la descripción de la imagen aquí

En segundo lugar, el código fuente

lc 
close all
clear all
load A_fear fearVec;
load F_happiness hapVec;
load N_neutral neutralVec;
load T_sadness sadnessVec;
load W_anger angerVec;
 trainsample(1:30,1:140)=angerVec(:,1:30)';
 trainsample(31:60,1:140)=hapVec(:,1:30)';
 trainsample(61:90,1:140)=neutralVec(:,1:30)';
 trainsample(91:120,1:140)=sadnessVec(:,1:30)';
 trainsample(121:150,1:140)=fearVec(:,1:30)';
  trainsample(1:30,141)=1;
   trainsample(31:60,141)=2;
   trainsample(61:90,141)=3;
   trainsample(91:120,141)=4; 
   trainsample(121:150,141)=5;
   testsample(1:20,1:140)=angerVec(:,31:50)';
  testsample(21:40,1:140)=hapVec(:,31:50)';
 testsample(41:60,1:140)=neutralVec(:,31:50)';
  testsample(61:80,1:140)=sadnessVec(:,31:50)';
  testsample(81:100,1:140)=fearVec(:,31:50)';
  testsample(1:20,141)=1;
   testsample(21:40,141)=2;
    testsample(41:60,141)=3;
    testsample(61:80,141)=4; 
    testsample(81:100,141)=5;
  class=trainsample(:,141);
sum=bpnn(trainsample,testsample,class);
figure(1)
bar(sum,0.5);
set(gca,'XTickLabel',{
    
    '生气','高兴','中性','悲伤','害怕'});
ylabel('识别率');
xlabel('五种基本情感');

p_train=trainsample(:,1:140)';
t_train=trainsample(:,141)';
p_test=testsample(:,1:140)';
t_test=testsample(:,141)';
sumpnn=pnn(p_train,t_train,p_test,t_test);
figure(2)
bar(sumpnn,0.5);
set(gca,'XTickLabel',{
    
    '生气','高兴','中性','悲伤','害怕'});
ylabel('识别率');
xlabel('五种基本情感');
sumlvq=lvq(trainsample,testsample,class);
function sum=bpnn(trainsample,testsample,class)
%输入参数:trainsample是训练样本,testsample是测试样本,class表示训练样本的类别,与trainsample中数据对应
%sum:五种基本情感的识别率
for i=1:140
    feature(:,i)= trainsample(:,i);
end
%特征值归一化
[input,minI,maxI] = premnmx( feature')  ;

%构造输出矩阵
s = length( class ) ;
output = zeros( s , 5  ) ;
for i = 1 : s 
   output( i , class( i )  ) = 1 ;
end

%创建神经网络
net = newff( minmax(input) , [10 5] , {
    
     'logsig' 'purelin' } , 'traingdx' ) ;   %创建前馈神经网络

%设置训练参数
net.trainparam.show = 50 ;
net.trainparam.epochs = 150 ;
net.trainparam.goal = 0.1 ;
net.trainParam.lr = 0.05 ;

%开始训练
net = train( net, input , output' ) ;

%读取测试数据
for i=1:140
    featuretest(:,i)= testsample(:,i);
end
 c=testsample(:,141);
%测试数据归一化
testInput = tramnmx(featuretest' , minI, maxI ) ;

%仿真
Y = sim( net , testInput ) 
sum=[0 0 0 0 0]; %每类情感正确识别个数
%统计识别正确样本数 
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(:,1:140)';
C=class';
T=ind2vec(C);
net=newlvq(minmax(P),20,[0.2 0.2 0.2 0.2 0.2],0.1); %创建lvq网络
w1=net.IW{
    
    1};
net.trainParam.epochs=100;
net=train(net,P,T);
y=sim(net,testsample(:,1:140)');
y3c=vec2ind(y);
sumlvq=[0 0 0 0 0]; %每类情感正确识别个数
%统计识别正确样本数 
for i=1:20
    if y3c(i)==1
        sumlvq(1)=sumlvq(1)+1;
    end
end
for i=21:40
    if y3c(i)==2
        sumlvq(2)=sumlvq(2)+1;
    end
end
for i=41:60
    if y3c(i)==3
        sumlvq(3)=sumlvq(3)+1;
    end
end
for i=61:80
    if y3c(i)==4
        sumlvq(4)=sumlvq(4)+1;
    end
end
for i=81:100
end

Tres, resultados en ejecución

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Cuatro, comentarios

Código completo o escritura agregue QQ 1564658423 revisión anterior
>>>>>>
[Extracción de características] Incrustación y extracción de marcas de agua de audio basadas en la transformación de ondas de matlab [Incluir código fuente 053 de Matlab]
[Procesamiento de voz] Procesamiento de señales de voz basado en GUI de matlab [Incluir Matlab Problema de código fuente 290]
[Adquisición de voz] basada en la colección de señales de voz de la GUI de matlab [incluido el código fuente 291 de Matlab]
[Modulación de voz] basada en la modulación de amplitud de voz de la GUI de matlab [incluido el código fuente 292 de Matlab]
[Síntesis de voz] basada en la voz de la GUI de matlab síntesis [incluido el problema 293 del código fuente de Matlab]
[Cifrado de voz] basado en el cifrado y descifrado de la señal de voz de la GUI de Matlab [incluido el código fuente 295 de Matlab]
[Mejora de la voz] Mejora de la voz basada en la transformación de ondas de Matlab [Código fuente 296 de Matlab]
[Reconocimiento de voz] basado en el reconocimiento de la frecuencia base de voz de la GUI de Matlab [Incluye el código fuente 294 de Matlab]
[Mejora del habla] Mejora de la voz basada en el filtrado Wiener de la GUI de Matlab [Incluye el código fuente 298 de Matlab]
[Procesamiento de voz] Basado en el procesamiento de la señal de voz de la GUI de Matlab [Incluye el código fuente 299 de Matlab ]
[Procesamiento de señales] Basado en el analizador de espectro de señales de voz Matlab [incluido el código fuente 325 de Matlab]
[Señal de modulación] Simulación de señal de modulación digital basada en la GUI de matlab [incluido el código fuente 336 de Matlab]
[Reconocimiento de emociones] Reconocimiento de emociones de voz basado en matlab BP neural red [incluido el código fuente 349 de Matlab]
[Esteganografía de voz] Marca de agua digital de audio cuantificado basada en la transformación Wavelet de Matlab [Incluir el código fuente de Matlab, problema 351]
[Extracción de características] basado en la incrustación y extracción de marcas de agua de audio de Matlab [incluido el código fuente de Matlab 350 período]
[eliminación de ruido de voz] basado en matlab paso bajo y eliminación de ruido de filtro adaptativo [incluido el código fuente de Matlab 352 período]
[reconocimiento de emociones] basado en la voz de la GUI de matlab clasificación de emociones Reconocimiento [Incluyendo el código fuente de Matlab 354 período]
[Procesamiento básico] Preprocesamiento de señales de voz basado en Matlab [Incluyendo el código fuente de Matlab período 364]
[Reconocimiento de voz] Matlab Fourier transformada 0-9 reconocimiento de voz digital [Incluyendo el código fuente de Matlab período 384]
[Reconocimiento de voz] 0-9 reconocimiento de voz digital basado en matlab GUI DTW [incluido el código fuente de Matlab 385]
[Reproducción de voz] Diseño de Matlab GUI MP3 [incluido el código fuente de Matlab 425]
[Procesamiento de voz] Algoritmo de mejora del habla basado en el efecto de enmascaramiento del oído humano Cálculo de la relación de ruido [Incluido el código fuente 428 de Matlab]
[Eliminación de ruido de voz] Basado en eliminación de ruido por sustracción espectral de matlab [Incluido el código fuente 429 de Matlab]
[Reconocimiento de voz] Reconocimiento de voz de red neuronal de BP basado en el ítem momentum de matlab [Incluido el código fuente de Matlab 430]
[Esteganografía de voz] basado en la ocultación de voz matlab LSB [incluido el código fuente 431 de Matlab]
[Reconocimiento de voz] basado en el reconocimiento de voz masculina y femenina de matlab [incluido el código fuente 452 de Matlab]
[Procesamiento de voz] basado en el procesamiento de reducción y adición de ruido de voz matlab [incluido el código fuente de Matlab, problema 473]
[Eliminación de ruido del habla] basado en el filtro adaptativo de mínimos cuadrados (LMS) de Matlab [incluido el código fuente 481 de Matlab]
[Mejora del habla] basado en la resta espectral de Matlab, el mínimo medio cuadrado y la mejora del habla del filtro Wiener [incluido Matlab código fuente 482 período】
[Comunicación] basada en la simulación de modulación de banda de frecuencia digital GUI de matlab (ASK, PSK, QAM) [incluido el código fuente 483 de Matlab]
[Procesamiento de señales] basado en el procesamiento de señales ECG de Matlab [incluido el código fuente 484 de Matlab]
[Transmisión de voz] basada en matlab Transmisión de voz [Incluido el código fuente 507 de Matlab]
[Procesamiento de señal] Transformada de ondas de Matlab basada en la extracción de características de la señal EEG [Incluido el código fuente 511 de Matlab]
[Procesamiento de voz] Basado en la detección de señales de multifrecuencia de tono dual (DTMF) GUI de matlab [Incluido Matlab código fuente 512】
【Esteganografía de voz】 basado en matlab LSB para realizar la marca de agua digital de la señal de voz 【Incluir el código fuente de Matlab 513】
【Mejora de la voz】 Reconocimiento de voz basado en el filtro adaptado de Matlab 【Incluir el código fuente de Matlab 514
processing processing Procesamiento de voz】 Basado en matlab GUI análisis de espectrograma de dominio de frecuencia de voz [incluido el código fuente de Matlab 527]
[eliminación de ruido de voz] basado en matlab LMS, eliminación de ruido de voz del algoritmo RLS [incluido el código fuente de Matlab 528]
[eliminación de ruido de voz] basado en matlab LMS eliminación de ruido de voz de sustracción espectral [incluido Matlab
Problema de código fuente 529] [Eliminación de ruido de voz] basado en umbral suave de matlab, umbral duro, umbral de compromiso eliminación de ruido de voz [incluido el código fuente 530 de Matlab]
[Reconocimiento de voz] basado en la discriminación de reconocimiento de voz de una persona específica de matlab [incluido el código fuente 534 de Matlab]
[Discurso reducción de ruido] basado en la reducción de ruido de voz de umbral suave de wavelet de matlab [incluido el código fuente 531 de Matlab]
[eliminación de ruido de voz] basado en la reducción de ruido de voz de umbral duro de wavelet de matlab [incluido el código fuente de Matlab 532]
[reconocimiento de voz] basado en MFCC de matlab y SVM específico para humanos reconocimiento de género [incluido el código fuente 533 de Matlab]
[Reconocimiento de voz] Reconocimiento de voz de GMM basado en MFCC [incluido el código fuente 535 de Matlab]
[Reconocimiento de voz] basado en el reconocimiento de voz de palabras aisladas de personas específicas de matlab VQ [incluido el código fuente 536 de Matlab]
[Reconocimiento de voz] basado en el reconocimiento de huella de voz de la GUI de matlab [incluido Matlab] Problema de código fuente 537]
[Adquisición y lectura] basado en la recopilación y lectura de voz de Matlab [incluido el código fuente 538 de Matlab]
[Edición de voz] basado en la edición de voz de Matlab [incluido el código fuente 539 de Matlab]
[Modelo de voz] basado en voz de Matlab modelo matemático de señales [incluido el código fuente 540 de Matlab]
[Solidez del habla] basado en la intensidad y el volumen de la voz de Matlab [incluido el código fuente 541 de Matlab]
[Reconocimiento de emociones] basado en el algoritmo de clasificación del vecino más cercano de Matlab K reconocimiento de emociones de voz [incluido el código fuente 542 de Matlab]
[Reconocimiento de emociones] basado en el reconocimiento de emociones de voz de la máquina de vectores de soporte (SVM) de matlab [incluido el código fuente 543 de Matlab]

Supongo que te gusta

Origin blog.csdn.net/TIQCmatlab/article/details/114954783
Recomendado
Clasificación