基于卷积神经网络和频谱图的说话人识别方法与流程

文档序号:11730570阅读:1343来源:国知局
基于卷积神经网络和频谱图的说话人识别方法与流程

本发明属于语音识别技术领域,本发明涉及一种基于卷积神经网络的说话人识别方法。



背景技术:

随着信息技术的发展,高科技以数字化的形式融入了我们的生活,带来了很多的便利,同样又促进了数字化生活的发展。识别技术也发生了巨大的变化,由传统的密码验证方式,更多的转换为数字证书和生物认证识别等新兴技术。尤其是生物识别技术,由于它是利用人体自身所固有的生理或行为特征作为识别依据来进行个体验证的方法,克服了传统认证手段易于丢失、遗忘,易被仿造盗用等缺点,越来越受到国内外研究者的广泛关注。

目前说话人识别的研究面临着很多问题需要解决,在复杂的环境中检测效果较差,无法把我们想要的东西提取出来如何将有效的信息更加准确的提取出来是面临最主要的挑战。说话人识别分为说话人辨认和说话人确认两种。由于说话人识别技术受到环境和不同个体的说话方式等的影响较大,研究人员提出很多解决方法。典型的说话人识别系统包括预处理、特征提取、识别模型匹配三个过程。预处理包括端点检测、分帧、加窗等。特征提取是提取出符合当前说话人语音规律的特征,好的特征参数直接决定了系统的性能。常见的特征参数包括mfcc(melfrequencycepstrumcoefficient)、lpc(linearpredictioncoefficient)以及lpcc(linearpredictioncepstrumcoefficient)等。其中以mfcc最为经典,它充分考虑到人耳听觉特性。

在说话人识别方向,目前有很多方法被提出用于提高识别效率。目前的方法是将gmm模型聚成一类,再根据每类中说话人语音为每一类训练一个gmm模型,gmm的思想认为任何一个说话人的语音特征参数是由一个个高斯函数加权产生的,该模型简单有效且抗噪能力强,被广泛应用于文本无关说话人识别。考虑到实际训练语音较短,为每个说话人单独训练一个gmm模型较困难。在人工智能时代,能否将人工智能应用在说话人识别,因此,寻找一种高效的说话人识别算法,具有重要的新颖性、创造性和实用价值。



技术实现要素:

基于卷积神经网络实现说话人识别的思路是将说话人音频均匀划分为若干个大的频谱图,每个频谱图携带了自身说话人的频率信息,将这些频率信息转化为频谱图。

本发明是将这些音频文件转为频谱图通过卷积神经网络来提取特征以及分类识别。

本发明提出的方法,将时域信号转化为频域信号并灵活使用了卷积神经网络来处理频域信号。本发明也具有一定的实际应用价值:一是作为深度学习算法的实际应用平台辅助教学;二是在当前深度学习的领域,实现说话人的识别,从而使用卷积神经网络来处理语音信号;三是由于本发明使用硬件成本资源较少以及计算简单快捷,易于实现。

本发明主要由说话人语音信号和卷积神经组成。说话人语音是由说话人说的0-9数字构成,卷积神经网络是改进的alexnet网络实现。

基于卷积神经网络的说话人识别包括两个阶段:

语音信号转频域阶段:为了体现信号随时间的频谱情况,采用短时傅里叶变换处理。短时傅里叶变换又称为滑动窗傅里叶变换,就是用一个短的窗函数和信号滑动相乘,对每一个窗函数截取区间的数据进行傅里叶变换:其中w(k,τ)是一个长度为n的窗函数,x(w,τ)是一个二维函数,表示中心点位于τ的加窗声音的傅里叶变换,通过上述公式将声音信号转换为对应的某种灰度级的点来表征,这就是信号处理中的语谱图。

首先得到该语音信号的采样频率16khz以及傅立叶函数点数1024,再设计该语音信号的窗长1024,步长512加窗重叠点数512,通过matlab短时傅立叶变换,最后通过log取对数,绘制频谱图,详细流程图如图7所示。

深度学习识别阶段:得到绘制的频谱图以后,把频谱图按照4:1的比例分为训练数据集和测试数据集。分好数据集后,将数据集的图片生成caffe框架所需要的数据格式leveldb形式的数据,为提高模型的准确率,又生成了均值文件放入训练数据中,下一步设计网络结构,在原有alexnet的基础上增加dropout以及batchnormalization来提高识别正确率。根据设计好的网络模型,训练神经网络来识别说话人。

在卷积神经网络中,卷积层的每一个卷积核作用于整个图像中,对输入图像进行卷积操作。卷积结果构成了输入图像的特征图,提取出图像的局部特征。每一个卷积滤波器共享相同的参数,包括相同的权重矩阵和偏置项。

神经网络的结构中也有降采样层,降采样层是一种非线性降采样方法。考虑到卷积层输出的特征图仍然包含大量数据,若直接训练,则很难训练出一个有效的分类器。通过降采样操作,将特征数据大大减少,并且其对旋转、尺度和缩放具有不变性,同时还减少了计算的复杂度。降采样方法是一种高效的降低数据维度的采样方法。在图像识别中,降采样的操作分为两类:最大值和平均值。降采样模板取2×2,即取2x2大小图像块的四个像素值中的最大值或平均值为降采样后的像素值。经过降采样后,图像的大小变为原来的1/4,将其存于其他片块最大值的矩阵中,并放弃激活映射图中所在的其他信息。仅保留图像中与各特征相关性最大的位置,这些最大值一起构成了较低维度的空间,达到了降维的作用。减少模型参数,防止过拟合,提高模型的平移不变形。能够更好的训练这个模型。

与此同时,又增加了dropout层以及batchnormalization层。它们是减少过拟合,减少不同神经元之间的依赖。有些中间输出,在给定的训练集上,可能发生只依赖某些神经元的情况,这就会造成对训练集的过拟合。而随机关掉一些神经元,可以让更多神经元参与到最终的输出当中,去获取最终较好的预测。

附图说明

图1为基于卷积神经网络的说话人识别的过程。

图2为原始输入说话人a说的数字0的频谱图像1

图3为原始输入说话人b说的数字0的频谱图像2

图4为原始输入说话人c说的数字0的频谱图像3

图5为测试图像得到的结果

图6为原始网络测试得到的结果

图7为生成频谱图的流程图

具体实施方式

下面结合附图及具体实施例对本发明作进一步的描述。

说话人音频数据集是有24个说话人分别朗读了0-9数字,对说话人音频数据集进行以下操作。

s1生成频谱图操作:

步骤1:通过读取声音信号得到采样频率、左右声道。

步骤2:将这些数据存放在数组中并计算长度。

步骤3:对分频数据进行加窗处理,其中重叠比例为50%,保存数据

步骤4:对分频的数据进行傅里叶变换

步骤5:通过数组展示频谱图。

s2深度学习阶段操作:

步骤1:将音频文件的语音信号通过代码转化为频谱图;

步骤2:拿到这些频谱图后,运行generatetrainandtest.m将频谱图分为训练集和测试集,其中训练集占80%,测试集占20%;

步骤3:运行readimage.py将数据集生成列表文件也就是生成带有label的train.txt文件

步骤4:运行readimage.py将数据集生成列表文件也就是生成带有label的test.txt文件

步骤5:利用步骤3、4的txt文件将图片通过bat命令生成leveldb数据。

步骤6:alexnet网络需要计算图像的均值,通过mean.bat计算得到image_mean.binaryproto文件;

步骤7:利用alexnet网络,利用训练好的模型进行初始化,将output类别改为24类。进一步训练网络;

步骤8:通过train.bat训练网络;

步骤9:通过caffemodel来微调网络模型;

步骤10:通过test.bat来测试网络的分类效果,效果如图5所示。

步骤11:测试网络对单张图像进行分类测试,输出top-5,概率最大的前5类的类别标签及概率;

通过将语音信号转化为频域信号,然后让神经网络来识别频域信号,进而实现对说话人的识别,实验结果如图5所示。

由实验结果可知,说话人在基于修改的alexnet网络结构的时候,可以有非常好的结果。在毫无修改的alexnet网络结构的情况下,实验结果不是很好。

综上所述,基于深度学习的说话人识别,通过将语音信号转化为频谱图。进而通过神经网络得到分类结果,从而达到识别的效果。大大简化了传统方法的时间以及正确率,进而从神经网络的处理方法解决了说话人识别问题。因此可以认为本发明有非常高的应用价值。

最后应说明的是:以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1