[0027] 下面结合附图和实施例对本发明作进一步说明。
[0028] 如图2‑图4所示,本发明是通过对声信号语谱图的差异,采用三种在大型图像库ImageNet上训练好的深度神经网络对声信号语谱图进行特征提取,提出了一种基于混合深度神经网络的城市噪声识别方法。
[0029] 本发明首先对11类声音信号进行预判,然后将这11类声音信号转换成如图2(a)‑图2(e)所显示的声信号语谱图图像。然后将语谱图分别输入到如图3(a)‑图3(c)所示的深度神经网络中进行特征提取。然后如图4所示进行特征融合和分类识别。
[0030] 本发明具体实现包括如下步骤:
[0031] 训练阶段:
[0032] 步骤1.采集城市噪声,建立声音样本库;
[0033] 步骤2.将声音样本库中的声音信号转换成语谱图;
[0034] 步骤3.将转换完成的语谱图分别使用inception_v3,resnet152,inception_resnet_v2这三种预训练好的深度神经网络模型进行特征提取;
[0035] 步骤4.将经过步骤3中3种深度神经网络模型提取的特征进行拼接;
[0036] 步骤5.将拼接后的特征,作为分类器的输入,进行预测模型训练;
[0037] 测试阶段:对于一个未知的声音信号
[0038] 步骤1.将声音信号转换成语谱图;
[0039] 步骤2.如上述训练阶段步骤3、4进行特征提取与拼接;
[0040] 步骤3.使用预测模型进行分类预测。
[0041] 所述训练阶段步骤2的具体实现包括以下:
[0042] 设声音信号为x(n),采样频率为fs。首先对声音信号进行分帧加窗,其帧长为wlen,帧移为inc,窗函数为汉明窗。将各帧信号进行傅里叶变换。我们将变换后的连续n帧信号进行拼接,得到语谱图。
[0043] 所述训练阶段步骤3的具体实现包括以下:
[0044] 读取语谱图,由于这三种深度神经网络对语谱图的尺寸有各自的要求,因此首先对语谱图进行裁剪,把裁剪后的图片分别输入到三种预处理模型中,得到各个模型下的特征向量。这里采用三种深度神经网络来对声信号语谱图进行特征提取。
[0045] 在inception_v3模型中,需要将图片调整为299×299×3,然后使用该模型进行特征提取得到2048维特征向量;
[0046] 在resnet152模型中,需要将图片调整为224×224×3,然后使用该模型进行特征提取得到2048维特征向量;
[0047] 在inception_resnet_v2模型中,需要将图片调整为299×299×3,然后使用该模型进行特征提取得到1536维特征向量;
[0048] 所述训练阶段步骤5的具体实现包括以下:
[0049] 5.1我们在得到融合特征之后,把特征值输入全连接层,然后采用softmax函数进行分类。softmax的函数为:
[0050]
[0051] 其中, 表示第L层(通常是最后一层)第j个神经元的输入, 表示第L层第j个神经元的输出,e表示自然常数。任意的输入值经过softmax函数后都会变成和为1的概率预测值。
[0052] 5.2在神经网络反向传播中,要求一个损失函数,损失函数表示的是真实值与网络估计值的误差,然后去修改网络中的权重。损失函数可以有很多形式,这里用的是交叉熵函数,交叉熵能解决某些损失函数学习缓慢的问题。交叉熵函数是这样的:
[0053]
[0054] 这里,yi表示期望输出,ai表示神经元实际输出
[0055] 对于训练集 有y(i)∈{1,2,3,...,k}总共有k个分类。对于每个输入x都会有对应每个类的概率,即p(y=j|x),从向量角度来看,有,[0056]
[0057] 其中 是模型的参数。
[0058] 我们将训练模型参数θ,使其能够最小化代价函数:
[0059]
[0060] 5.3由于每类的样本个数较少,我们采用4折交叉验证,把输入模型的数据随机的分成5组,其中一组做为测试集,其他四组依次取其中单独的一组样本留做验证集,剩余3组样本留做训练集,来进行模型的训练和验证。交叉验证重复4次,每组样本验证一次,以此来得到一个可靠稳定的模型。
[0061] 5.4得到训练数据集之后,我们设置训练步数step以及每组训练个数batch。在训练数据集中随机抽取batch个样本的特征值进行分类训练。循环step得到最终训练模型,在训练的过程中,我们每100次用验证集对已训练的模型进行验证。
[0062] 5.5为了平衡模型的训练速度和模型震荡,我们采用学习率指数衰减的方式来调整学习率。在模型训练开始时设置较大一点的学习率,随着训练的进行,不断的调小学习率。防止震荡的发生。学习率的更新方式如下:
[0063] adaptive_learining_rate=learning_rate×decay_ratestep/decay_step。