【玩转数据系列十六】机器学习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算法训练生成模型
  • 预测组件:通过模型对预测集预测
  • 混淆矩阵:用来评估

这是一个比较简单的二分类场景,具体也可以参看之前的一些文章:

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
与作者讨论可以关注我的微信公众号“凡人机器学习”:

时间: 2024-11-02 03:10:33

【玩转数据系列十六】机器学习PAI通过声音分辨男女(含语音特征提取相关数据和代码)的相关文章

【玩转数据系列十二】PAI平台深度学习Caffe框架实现图像分类的模型训练

PAI平台深度学习Caffe框架实现图像分类的模型训练 背景 我们在之前的文章中介绍过如何通过PAI内置的TensorFlow框架实验基于Cifar10的图像分类,文章链接:https://yq.aliyun.com/articles/72841.使用Tensorflow做深度学习做深度学习的网络搭建和训练需要通过PYTHON代码才能使用,对于不太会写代码的同学还是有一定的使用门槛的.本文将介绍另一个深度学习框架Caffe,通过Caffe只需要填写一些配置文件就可以实现图像分类的模型训练.关于P

【玩转数据系列十一】机器学习PAI眼中的《人民的名义》

一.背景 最近热播的反腐神剧"人民的名义"掀起来一波社会舆论的高潮,这部电视剧之所能得到广泛的关注,除了老戏骨们精湛的演技,整部剧出色的剧本也起到了关键的作用.笔者在平日追剧之余,也尝试通过机器学习算法对人民的名义的部分剧集文本内容进行了文本分析,希望从数据的角度得到一些输入. 本文使用阿里云机器学习PAI,主要针对以下几个方面进行了实验: 分词以及词频统计 每一章的关键词提取 每一章的文本摘要 每一章文本之间的相似度分析 实验流程以及数据可以在阿里云机器学习PAI的社区直接使用,只要

【玩转数据系列十四】如何通过PAI实现云端实时心脏状况监测

背景 我们通过之前的案例已经为大家介绍了如何通过常规的体检数据预测心脏病的发生,请见https://yq.aliyun.com/articles/54260.通过前文的案例我们可以生成一个算法模型,通过向这个模型输入用户实时的体检数据就会返回用户患有心胀病的概率.那么我们该如何搭建这套实时监测用户健康情况的服务呢?PAI最新推出的在线预测服务帮您实现.目前,机器学习PAI已经支持实验模型一键部署到云端生成API,通过向这个API推送用户的实时体检数据,就可以实时拿到反馈结果,做到心脏状况的云端的

【玩转数据系列十三】机器学习算法基于信用卡消费记录做信用评分

机器学习算法基于信用卡消费记录做信用评分 背景 如果你是做互联网金融的,那么一定听说过评分卡.评分卡是信用风险评估领域常用的建模方法,评分卡并不简单对应于某一种机器学习算法,而是一种通用的建模框架,将原始数据通过分箱后进行特征工程变换,继而应用于线性模型进行建模的一种方法. 评分卡建模理论常被用于各种信用评估领域,比如信用卡风险评估.贷款发放等业务.另外,在其它领域评分卡常被用来作为分数评估,比如常见的客服质量打分.芝麻信用分打分等等.在本文中,我们将通过一个案例为大家讲解如何通过PAI平台的金

【玩转数据系列十】利用阿里云机器学习在深度学习框架下实现智能图片分类

伴随着今日阿里云机器学习PAI在云栖大会的重磅发布,快来感受下人工智能的魅力. 一.背景 随着互联网的发展,产生了大量的图片以及语音数据,如何对这部分非结构化数据行之有效的利用起来,一直是困扰数据挖掘工程师的一到难题.首先,解决非结构化数据常常要使用深度学习算法,上手门槛高.其次,对于这部分数据的处理,往往需要依赖GPU计算引擎,计算资源代价大.本文将介绍一种利用深度学习实现的图片识别案例,这种功能可以服用到图片的检黄.人脸识别.物体检测等各个领域. 下面尝试通过阿里云机器学习平台产品,利用深度

【玩转数据系列八】机器学习算法的离线调度实现-广告CTR预测

机器学习实验部署和调度 产品地址:https://data.aliyun.com/product/learn?spm=a21gt.99266.416540.102.OwEfx2 (因为模板功能限制,本实验需要用户自行上传分区表数据.) (本文数据为虚构,仅供实验.本实验拟在介绍阿里云机器学习与大数据开发调度的配合.) 一.背景 本文实现的场景是广告的CTR预测.广告CTR预测是广告行业的典型应用,通过历史数据训练预测模型,对于每天的增量数据进行预测,找出广告的CTR符合标准的样本进行投放.整套实

【玩转数据系列二】机器学习应用没那么难,这次教你玩心脏病预测

产品地址:https://data.aliyun.com/product/learn?spm=a21gt.99266.416540.102.OwEfx2 一.背景 心脏病是人类健康的头号杀手.全世界1/3的人口死亡是因心脏病引起的,而我国,每年有几十万人死于心脏病. 所以,如果可以通过提取人体相关的体侧指标,通过数据挖掘的方式来分析不同特征对于心脏病的影响,对于预测和预防心脏病将起到至关重要的作用.本文将会通过真实的数据,通过阿里云机器学习平台搭建心脏病预测案例. 二.数据集介绍 数据源: UC

【机器学习PAI实践十二】机器学习实现男女声音识别分类(含语音特征提取数据和代码)

背景 随着人工智能的算法发展,对于非结构化数据的处理能力越来越受到重视,这里面的关键一环就是语音数据的处理.目前,许多关于语音识别的应用案例已经影响着我们的生活,例如一些智能音箱中利用语音发送指令,一些搜索工具利用语音输出文本代替键盘录入. 本文我们将针对语音识别中最简单的案例"男女声音"识别,结合本地的R工具以及机器学习PAI,为大家进行介绍.通过本案例,可以将任何用户的语音数据标记出性别,并且保持高准确率.我们把整个实验流程切分为两部分,第一部分是声音信号的特征提取,通过R的信号处

MySQL---数据库从入门走向大神系列(十六)-JavaWeb分页技术实例演示1

分页,是一种将所有数据分段展示给用户的技术.用户每次看到的不 是全部数据,而是其中的一部分,如果在其中没有找到自己想要的内容,用户可以通过指定页码或是点上/下一页的方式进行翻页. 本例演示静态分页,也就是先设置好每页显示10行,再根据总行数,来算出总页数,将所有页数的页号都显示出来. 相关算法(技术): 总行数(num): select count(1) from stud; 每页显示的行数(n): 固定值---已知的一个常量 页数: pageSize= num/n +( (num%n==0)?