【机器学习PAI实践十二】机器学习实现男女声音识别分类(含语音特征提取数据和代码)
背景
随着人工智能的算法发展,对于非结构化数据的处理能力越来越受到重视,这里面的关键一环就是语音数据的处理。目前,许多关于语音识别的应用案例已经影响着我们的生活,例如一些智能音箱中利用语音发送指令,一些搜索工具利用语音输出文本代替键盘录入。
本文我们将针对语音识别中最简单的案例“男女声音”识别,结合本地的R工具以及机器学习PAI,为大家进行介绍。通过本案例,可以将任何用户的语音数据标记出性别,并且保持高准确率。我们把整个实验流程切分为两部分,第一部分是声音信号的特征提取,通过R的信号处理工具实现;第二部分通过机器学习PAI实现男女声音分类模型的训练,本实验需要事先积累男女声音的录音数据,本文已经提供处理好的3000条语音数据,文章末尾提供下载。
声音信号特征提取
语音数据与图像数据以及文本数据不同,如果经常使用K歌软件或者是语音合成软件,不难理解语音数据通常成信号状分布。
为了有效的通过算法处理这种波形数据,需要首先通过信号处理工具对语音信号进行处理。本文我们选用的是R语言的warbleR包,warbleR包含大量的频谱处理工具,可以通过其中的频谱处理函数提取出关于声音的以下特征信息,因为男生和女生在声音频率、振幅的方面一定有很大区别,所以要通过提取以下特征帮助我们进行分类:
接下来会讲解如何提取这些声音信号的特征:
1.安装R
首先安装R语言包,warbleR需要R的版本是3.2以上,这里强烈建议大家使用3.3.3版本(博主在使用3.4的时候遇到错误)。具体R的安装方式网上有很多介绍,这里就不详细介绍了。
2.安装warbleR
安装完R之后,进入R命令行,需要通过以下命令安装warbleR:
install.packages("warbleR") library(warbleR)
这里需要注意的是镜像最好使用美国的默认镜像服务,需要翻*,不然很有可能会安装不成功,因为国内的镜像会缺少某些依赖包。
3.特征提取
首先把需要处理的录音数据(必须是wav格式)按照男声、女声分装在male和female两个文件夹中,然后执行笔者提供的R脚本代码(文末提供了下载链接)。需要将代码中以下两个文件路径改为自己建立的male以及female文件路径即可:
执行这个R脚本,就会将wav格式的声音文件转化为结构化数据,数据会存储为一个CSV文件。文件部分截图:
PAI训练男女声音分类模型
1.导入数据
将通过R处理后的数据导入PAI平台,也可以直接将文末提供的处理好的数据导入。具体方法可以看:https://help.aliyun.com/video_detail/54945.html
数据导入后,可以看到有20个特征以及1列label列,
2.建立分类模型
通过拖拉PAI平台的组件搭建实验,实验流程图:
- voice_classify:为数据读入源
- 拆分:将数据集拆分为训练集以及预测集
- 线性支持向量机:通过SVM算法训练生成模型
- 预测组件:通过模型对预测集预测
- 混淆矩阵:用来评估
这是一个比较简单的二分类场景,具体也可以参看之前的一些文章:https://yq.aliyun.com/articles/54260
3.评估
最终“混淆矩阵”组件会显示如下图的分类评估:
通过混淆矩阵,可以看到男女声音的分类还是非常精准的。
总结
本文通过使用R脚本以及机器学习PAI实现了男女声音分类的案例,最终的准确率达到百分之九十八左右。在实际使用过程中,用户需要执行以下几步:
(1)首先积累需要分类的声音文件,数据越多越好,存储为wav格式。
(2)然后通过R脚本对打标好的声音文件进行特征提取。
(3)将处理后的数据上传PAI,建立分类模型即可。
PAI地址:https://data.aliyun.com/product/learn
企业服务咨询:https://survey.aliyun.com/survey/AMgL8_Pm5
数据下载(代码及数据来自warbleR社区开源提供):https://github.com/jimenbian/PAI_voice_classify
与作者讨论可以关注我的微信公众号“凡人机器学习”:
【机器学习PAI实践十二】机器学习实现男女声音识别分类(含语音特征提取数据和代码)相关推荐
- 【机器学习PAI实践十二】机器学习算法基于信用卡消费记录做信用评分
背景 如果你是做互联网金融的,那么一定听说过评分卡.评分卡是信用风险评估领域常用的建模方法,评分卡并不简单对应于某一种机器学习算法,而是一种通用的建模框架,将原始数据通过分箱后进行特征工程变换,继而应 ...
- 【机器学习PAI实践五】机器学习眼中的《人民的名义》
一.背景 最近热播的反腐神剧"人民的名义"掀起来一波社会舆论的高潮,这部电视剧之所能得到广泛的关注,除了老戏骨们精湛的演技,整部剧出色的剧本也起到了关键的作用.笔者在平日追剧之余, ...
- 【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练
背景 我们在之前的文章中介绍过如何通过PAI内置的TensorFlow框架实验基于Cifar10的图像分类,文章链接:https://yq.aliyun.com/articles/72841.使用Te ...
- 吴恩达《机器学习》学习笔记十二——机器学习系统
吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...
- [Python从零到壹] 十二.机器学习之回归分析万字总结全网首发(线性回归、多项式回归、逻辑回归)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- 机器学习实战(十)——利用K-均值聚类算法对未标注数据分组
机器学习实战(十)--利用K-均值聚类算法对未标注数据分组 聚类是一种无监督的学习,即对于训练数据来说并没有已知标签,我们是根据样本之间的相似程度将其划分为多个类. 一.K-均值聚类算法 K-均值算法 ...
- 机器学习实战(十二)降维(PCA、SVD)
目录 0. 前言 1. 主成分分析PCA(Principal Component Analysis) 2. 奇异值分解SVD(Singular Value Decomposition) 3. 低维空间 ...
- 【机器学习PAI实践九】如何通过机器学习实现云端实时心脏状况监测
背景 我们通过之前的案例已经为大家介绍了如何通过常规的体检数据预测心脏病的发生,请见http://blog.csdn.net/buptgshengod/article/details/53609878 ...
- 吴恩达《机器学习》第十二章:支持向量机SVM
文章目录 十二.支持向量机 12.1 优化目标 12.2 大边界的直观理解 12.3 数学背后的大边界分类 12.4 (高斯)核函数1 12.5 (高斯)核函数2 12.6 使用支持向量机 十二.支持 ...
最新文章
- 服务器技术综述(三)
- 百步斋诗钞【绝句四首】
- POJ 1523 SPF 割点与桥的推断算法-Tarjan
- 算法竞赛入门经典_6数据结构基础
- 【三次握手、四次挥手流程】及【长短链接区别】
- python能爬取什么_5行代码就能写个爬虫,python真是太方便了!
- 训练赛20160403
- 详解SpringBoot整合ace-cache缓存
- 让自己的网站可以被搜索
- 3D开源游戏引擎(遵循BSD和MIT)
- matlab如何仿真递推型dft算法,并联型有源滤波器的设计与仿真
- 关于swf转fla 软件的间题
- 数字电路基础知识——时序逻辑电路之时序逻辑分析方法
- iPhone 总是提示 无法验证服务器身份 a.wunderlist.com 解决办法
- 计算机仿真实验之一 霍尔效应测磁场,2004_01大学物理实验教程_11539522.pdf
- IDEA import飘红,清除缓存重启也不行
- 华为刀片服务器系统安装,FusionServer Pro E9000融合架构刀片服务器
- 腾讯测试儿童锁模式:13周岁以下玩游戏须家长开锁
- CarSim2020 安装和操作001
- 国税发票查验API接口说明
热门文章
- oracle如何启动和停止服务,CentOS启动和停止服务详解
- php 继承内核中的基类,php – 从基类调用继承类的父方法
- linux snmp设置报警次数,CentOS/RHEL 6下禁止重复的SNMP连接日志
- 用信号量实现任务间单向同步
- 计数信号量的删除与状态查询
- selenium速度_RPA UiPath和Selenium,谁是测试套件?
- java安全管理器视频_java安全-安全管理器
- 在linux中运行多文件,在Linux中打开了太多文件(Too many open files)的三种解决方法...
- 2018-11-18年工作感想
- 100. Leetcode 377. 组合总和 Ⅳ (动态规划-完全背包)