【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第1张图片

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第2张图片

1.项目背景

      语音识别发展到现在作为人机交互的重要接口已经在很多方面改变了我们的生活,从智能家居的语音控制系统到车载语音识别系统,语音识别给我们带来了很多方便。在大数据、云计算等概念被提出并商用后,语音识别领域经过数十年的研究,尽管有过很多非常成功的商用产品,但是语音识别系统在实际应用中的性能和人类听觉能力相比还有着很大的差距。正是这些差距和市场对高效语音识别系统的需求,吸引了很多研宄者在这一领域的研究深耕细作,其中有很多取得了可喜的成果。

      语音识别是理想的人机交互的中介工具,是推动机器向更智能化发展的重要技术。但由于传统语音识别存在一定的理论假设,语音识别的应用场景逐渐趋于复杂化,导致好多语音识别系统的性能的提高都遇到一定的瓶颈,针对语音识别的技术障碍需要引入一些新的理论新的方法去解决;深度学习是当前对大数据做特征提取、分类识别的重要理论,对语音识别系统性能的提升有重要意义。

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第3张图片

数据详情如下(部分展示):

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第4张图片 【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第5张图片 

3.数据预处理

3.1 用Pandas工具查看数据

使用Pandas工具的shape属性、head()方法查看前五行数据:

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第6张图片

从上图可以看到,总共有8个数据项,8732个音频文件。

关键代码:

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第7张图片

3.2查看音频类型

使用Pandas工具的groupby()方法查看音频的类型:

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第8张图片

 从上图可以看到,总共有10种类型。

关键代码:

4.探索性数据分析

4.1波形可视化

用librosa工具的load()方法加载音频文件,通过waveplot()方法进行绘制波形图:以1.wav音频为例。

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第9张图片

4.2 图谱可视化

用librosa工具的load()方法加载音频文件,通过specshow()和colorbar()方法进行绘制图谱:以1.wav音频为例。

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第10张图片

5.特征工程

5.1 提取音频特征,并准备建模数据

X(提取的音频信号值)为特征数据,y(音频类型)为标签数据。关键代码如下:

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第11张图片

5.2数据集拆分

数据集拆分,分为训练集、验证集和测试集。首先把所有数据集拆分为90%训练集和10%测试集;然后接着把90%的训练集再拆分为80%训练集和20%验证集。关键代码如下:

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第12张图片

 可以看到,训练集样本数为6286条数据、验证集为1572条数据、测试集有874条数据。

6.构建神经网络分类模型

主要使用ANN算法,用于目标分类。

6.1模型参数

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第13张图片

关键代码如下:

 6.2模型结果输出

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第14张图片

从上图可以看到,此模型共有1411160个参数。

7.模型评估

7.1评估指标及结果

评估指标主要包括准确率、F1分值等等。

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第15张图片

从上表可以看出,准确率为89%  F1分值为88%,ANN分类模型良好,效果不错。

7.2 损失曲线图

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第16张图片

 通过结果可以看到,训练集和验证集损失基本逐步下降,大概在16次之后 验证集损失开始上升,所以本次拟合16次基本就达到验证集的最低损失。

关键代码:

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第17张图片

7.3 准确率曲线图 

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第18张图片

 从上图可以看到训练集和验证集准确率逐步上升,验证集准确率达到89%。

7.4 混淆矩阵

ANN分类模型混淆矩阵:

 【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第19张图片

从上图可以看到,第一种音频类型预测准确的个数为97个,第二种音频类型预测准确的个数为37个,第三种音频类型预测准确的个数为66个等等。

7.5 分类报告

ANN分类模型分类报告:

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第20张图片

从上图可以看到,分类类型为0的F1分值为0.95;分类类型为1的F1分值为0.89;分类类型为2的F1分值为0.78;整个模型的准确率为89%.

7.6 模型预测 

预测104327-2-0-26.wav这个音频的类型,关键代码如下:

【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战_第21张图片

预测结果如下:

 

真实值为:

 通过对比可以发现,此次预测正确。

8.结论与展望

       深度学习作为人工智能最热的研究,正被广泛用于语音、图像、文本的识别并取得了惊人的效果;语音识别作为未来人机接口的主要接口,直接影响着智能系统的用户体验。将两种技术有机结合,一方面语音识别系统收集的大量训练数据有助于训练鲁棒性更强、泛化能力更强的深度网络,另一方面更好更强的深度网络更能有效语音识别系统的识别精度,降低语音识别系统受噪音的影响。

      综上所述,本文采用了ANN人工神经网络分类模型,最终证明了我们提出的模型效果良好。准确率达到了89%,可用于日常生活中进行建模预测,以提高价值。

本次机器学习项目实战所需的资料,项目资源如下:

项目说明:
链接:https://pan.baidu.com/s/1dW3S1a6KGdUHK90W-lmA4w 
提取码:bcbp

网盘如果失效,可以添加博主微信:zy10178083

你可能感兴趣的:(机器学习,语音识别,python,人工神经网络,librosa,load)