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

本文主要是介绍【机器学习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实践十二】机器学习实现男女声音识别分类(含语音特征提取数据和代码)...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/226931

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06