语音识别-食物声音识别
声音识别和自然语言处理类似,声音和文本都是一种序列化的数据。自然语言处理要处理文本,首先要将文本表示成为计算机能够识别的数据,比如one-hot编码,词袋模型,或者训练成词向量嵌入到空间内。在声音利与内,声音可以通过librosa库进行特征处理,例如提取melspectrogram,mfcc特征。进而可以成为计算机可以识别,处理的数据。本次做食物声音识别,共有20种咀嚼食物的声音,如咀嚼肉饼,卷心
声音识别和自然语言处理类似,声音和文本都是一种序列化的数据。自然语言处理要处理文本,首先要将文本表示成为计算机能够识别的数据,比如one-hot编码,词袋模型,或者训练成词向量嵌入到空间内。在声音领域内,声音可以通过librosa库进行特征处理,例如提取melspectrogram,mfcc特征。进而可以成为计算机可以识别,处理的数据。
本次做食物声音识别,共有20种咀嚼食物的声音,如咀嚼肉饼,卷心菜等。baseline采用的是CNN,最后一层接全连接层,激活函数采用softmax,做多种声音识别
提取特征后的数据要经过处理输入到Conv2D函数中,Conv2D处理的数据是四维数据,且Conv2D处理的数据格式为conv2d(in_channels,out_channels,kernel_size, stride=(1,1),padding=0,dilation=(1,1),groups=1)。
经过处理之后X-train格式为(750,16,8,1),X-test格式为(250,16,8,1),四维数据的物理意义为(batch_size, channel, height, width)
经过CNN网络,卷积,池化,flatten,最后经过softmax分类经过的网络结构如下图所示,总共的参数为1144596个
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 16, 8, 64) 640
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 8, 4, 64) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 8, 4, 128) 73856
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 4, 2, 128) 0
_________________________________________________________________
dropout (Dropout) (None, 4, 2, 128) 0
_________________________________________________________________
flatten (Flatten) (None, 1024) 0
_________________________________________________________________
dense (Dense) (None, 1024) 1049600
_________________________________________________________________
dense_1 (Dense) (None, 20) 20500
=================================================================
Total params: 1,144,596
Trainable params: 1,144,596
Non-trainable params: 0
框架选用的是基于tensorflow的kears框架,最后将训练后的model应用到测试数据,即可预测测试声音的标签,结果并保存到submit.csv
更多推荐
所有评论(0)