我正在使用频谱图在 IEMOCAP 中运行情绪分类模型。
我有 4 个情感类和大约 8900 个样本。
我的模型如下:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(100,150,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(4))
model.add(Activation('softmax'))
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
图像加载器如下:
for i in tqdm(range(train.shape[0])):
try:
img = image.load_img(train['wav_file'][i],target_size=(100,150,3))
img = image.img_to_array(img)
img = img/255
train_image.append(img)
except:
print(train['id'][i])
X = np.array(train_image)
y = np.array(train.drop(['id', 'emotion'],axis=1))
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42, test_size=0.2)
我得到了 25% 的准确率,因为我所有的结果都被归类为 1 类,即无法学习任何东西。如果有人可以指导如何改进结果。
使用 librosa 以 16k Hz 的采样率提取频谱图。