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

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战

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

image.png

image.png

1.项目背景

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

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

2.数据获取

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

编号 

变量名称

描述

0

slice_file_name

 

1

fsID

 

2

start

 

3

end

 

4

salience

 

5

fold

 

6

classID

 

7

class

 

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

image.png

image.png

3.数据预处理

3.1 用Pandas工具查看数据

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

image.png

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

关键代码:

image.png

3.2查看音频类型

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

image.png

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

关键代码:

image.png

4.探索性数据分析

4.1波形可视化

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

image.png

4.2 图谱可视化

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

image.png

5.特征工程

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

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

image.png

5.2数据集拆分

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

image.png

image.png

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

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

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

6.1模型参数

编号

模型名称

参数

1

ANN分类模型

activation='relu'

2

activation='softmax'

3

loss='categorical_crossentropy'

4

optimizer='adam'

5

metrics=['accuracy']

关键代码如下:

image.png

6.2模型结果输出

image.png

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

7.模型评估

7.1评估指标及结果 

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

模型名称

指标名称

指标值

测试集

ANN分类模型

准确率

89%

F1分值

88%

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

7.2 损失曲线图

image.png

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

关键代码:

image.png

7.3 准确率曲线图

image.png

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

7.4 混淆矩阵

ANN分类模型混淆矩阵:

image.png

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

7.5 分类报告

ANN分类模型分类报告:

image.png

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

7.6 模型预测

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

image.png

预测结果如下:

image.png

真实值为:

image.png

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

8.结论与展望

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

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

# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 获取方式一:
 
# 项目实战合集导航:
 
https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2
 
# 获取方式二:
 
链接:https://pan.baidu.com/s/1Mc2zdbZKjVX2O5YkowWnwQ 
提取码:rabj
相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
6天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
115 55
|
22天前
|
存储 搜索推荐 Python
用 Python 实现快速排序算法。
快速排序的平均时间复杂度为$O(nlogn)$,空间复杂度为$O(logn)$。它在大多数情况下表现良好,但在某些特殊情况下可能会退化为最坏情况,时间复杂度为$O(n^2)$。你可以根据实际需求对代码进行调整和修改,或者尝试使用其他优化策略来提高快速排序的性能
115 61
|
16天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
97 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
15天前
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
103 30
|
17天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
42 3
|
21天前
|
网络安全 Python
Python网络编程小示例:生成CIDR表示的IP地址范围
本文介绍了如何使用Python生成CIDR表示的IP地址范围,通过解析CIDR字符串,将其转换为二进制形式,应用子网掩码,最终生成该CIDR块内所有可用的IP地址列表。示例代码利用了Python的`ipaddress`模块,展示了从指定CIDR表达式中提取所有IP地址的过程。
36 6
|
5天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
42 17
|
16天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
17天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
39 10
|
18天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
45 10
下一篇
DataWorks