用一维conv神经网络解决keras中的音频信号问题

2024-06-26 10:32:17 发布

您现在位置:Python中文网/ 问答频道 /正文

PS,我已经改变了我的模式,但效果不好(64%)

我有一个数据集(它是给定的,不是问题)。你知道吗

all_speakers = np.unique([os.path.basename(i).split('_')[1] for i in fsdd])
np.random.shuffle(all_speakers)
train_speakers = all_speakers[:2]
test_speakers = all_speakers[2:]
print("All   speakers:", all_speakers)
print("Train speakers:", train_speakers)
print("Test  speakers:", test_speakers)

train_files = [
    i for i in fsdd if os.path.basename(i).split('_')[1] in train_speakers
]
test_files = [i for i in fsdd if i not in train_files]

train = create_audio_dataset(train_files, training=True)
test = create_audio_dataset(test_files, training=False)

结果是:

All speakers: ['nicolas' 'theo' 'jackson']

Train speakers: ['nicolas' 'theo']

Test speakers: ['jackson']

其目的是建立一个卷积神经网络,并获得90%以上的精度。
我的模型不够好,我不认为这是一个过度拟合的问题。你知道吗

model = keras.Sequential()
 model.add(keras.layers.Conv1D(64,kernel_size=3,activation='relu',input_shape=(300,40)))
model.add(keras.layers.Conv1D(32,kernel_size=3,activation='relu'))
model.add(keras.layers.Dropout(0.5))
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(100,activation='relu'))
model.add(keras.layers.Dense(10,activation='softmax'))  
model.compile(
    optimizer='adam',
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy'],
)

n_epoch = 12
model.fit(x=train.repeat(n_epoch))
model.evaluate(test)

Tags: intestaddformodellayerstrainfiles
1条回答
网友
1楼 · 发布于 2024-06-26 10:32:17

在每个Conv1D层之后,应该避免最大池。最后,maxpooling破坏了关键的信息(它下采样),特别是在分析主要依赖于时间相关性的音频信号中。使用maxpooling的原因在https://stats.stackexchange.com/questions/288261/why-is-max-pooling-necessary-in-convolutional-neural-networks中。此外,您还将最大池跨步相结合,这是另一种下采样。过多的下采样会破坏信息,应该避免。这同样适用于平坦化(在图像处理中,它会破坏2D相关性),但有时是必要的。你知道吗

如果在https://medium.com/x8-the-ai-community/audio-classification-using-cnn-coding-example-f9cbd272269e中没有固定到1D,则是一种精度为97%的2D方法。你知道吗

https://missinglink.ai/guides/keras/keras-conv1d-working-1d-convolutional-neural-networks-keras/中,是用于音频分析的1D CNN的keras模型,它只使用1个maxpooling,没有跨步。你知道吗

相关问题 更多 >