【深度学习-语音分类】婴儿啼哭声识别挑战赛Baseline

比赛简介:

比赛地址:http://challenge.xfyun.cn/topic/info?type=baby-crying

在这里插入图片描述

Baseline:

1. 加载并保存数据:

import os
import wave
import numpy as np
from tqdm import tqdm
import pickle as pkl


LABELS = ['awake', 'diaper', 'hug', 'hungry', 'sleepy', 'uncomfortable']
N_CLASS = len(LABELS)
DATA_DIR = './train'

file_glob = []


def get_wave_norm(file):
    with wave.open(file, 'rb') as f:
        params = f.getparams()
        nchannels, sampwidth, framerate, nframes = params[:4]
        data = f.readframes(nframes)
    data = np.fromstring(data, dtype=np.int16)
    return data, framerate


count = 0

for i, cls_fold in tqdm(enumerate(LABELS)):

    cls_base = os.path.join(DATA_DIR, cls_fold)
    files = os.listdir(cls_base)
    print('{} train num:'.format(cls_fold), len(files))
    for pt in files:
        file_pt = os.path.join(cls_base, pt)
        count += 1
        file_glob.append((file_pt, LABELS.index(cls_fold)))

print('done.')

seg = 32000
count = 0

data = []

for file, lbl in tqdm(file_glob):
    raw, sr = get_wave_norm(file)
    length = raw.shape[0]
    for i in range(length+1):
        start = i * seg
        end = start + seg
        if end - start == seg:
            x = raw[start:end]
            l = x.shape[0]
        else:
            break
        l = np.zeros(N_CLASS)
        l[lbl] = 1
        data.append((x, l))
        count += 1

with open('./data.pkl', 'wb') as f:
    pkl.dump(data, f)

2. 设置训练数据:

from keras.models import Model
from keras.layers import Input, Dense, Dropout, BatchNormalization, Conv2D, MaxPooling2D, AveragePooling2D, concatenate, \
    Activation, ZeroPadding2D, LSTM
from keras.layers import add, Flatten, Reshape
from keras.utils import plot_model
from keras.metrics import top_k_categorical_accuracy
from keras.preprocessing.image import ImageDataGenerator
from keras.models import load_model
import os
import wave
import numpy as np
import pickle as pkl

train_x = []
train_y = []

LABELS = ['awake', 'diaper', 'hug', 'hungry', 'sleepy', 'uncomfortable']
N_CLASS = len(LABELS)

with open('./data.pkl', 'rb') as f:
    raw_data = pkl.load(f)

for x, y in raw_data:
  train_x.append(x)
  train_y.append(y)

np.random.seed(5)
np.random.shuffle(train_x)

np.random.seed(5)
np.random.shuffle(train_y)

train_x = np.array(train_x)
train_y = np.array(train_y)

3. 搭建LSTM模型:

import keras.backend as K
from keras import regularizers
from keras import layers
from keras.models import Sequential
import keras
import os
import wave
import numpy as np
import pickle as pkl

LABELS = ['awake', 'diaper', 'hug', 'hungry', 'sleepy', 'uncomfortable']
N_CLASS = len(LABELS)

with open('./data.pkl', 'rb') as f:
    raw_data = pkl.load(f)

train_x = np.expand_dims(np.array(raw_data['x']), axis=-1)
train_y = np.array(raw_data['y'])

np.random.seed(5)
np.random.shuffle(train_x)
np.random.seed(5)
np.random.shuffle(train_y)

model = Sequential()
model.add(layers.LSTM(128, input_shape=(seg, 1), dropout=0.5, return_sequences=True))
model.add(layers.LSTM(128, dropout=0.5, return_sequences=True))
model.add(layers.LSTM(64))
model.add(layers.Dense(N_CLASS, activation="softmax"))
model.summary()

adam = keras.optimizers.adam(2e-4)

model.compile(loss='categorical_crossentropy',
              optimizer=adam, metrics=['accuracy'])

# Train model on dataset
batch_size = 64

model.fit(x=train_x, y=train_y, batch_size=batch_size,
          epochs=200, validation_split=0.1, shuffle=True)

model.save('my_model.h5')

最终结果:

在这里插入图片描述

有需求的大佬欢迎加入我的接单群,需求详情请群里戳群主

在这里插入图片描述

获取数据集:

关注我的公众号——可达鸭的深度学习教程,公众号内回复:“婴儿啼哭” 获取数据集:
在这里插入图片描述

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。 kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。kaggle实战案例,赛事课题内容,解决方案汇总,机器学习、人工智能案例参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BIT可达鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值