python干货:如何使用Python对音频进行特征提取?

http转码 python_Python干货之12个音频处理库 音频处理主要适用于基于声音的处理、分析和建模,而Python作为当前最流行的编程语言之一,在音频处理方面也提供了大量的库和框架,本文整理了其中12个常用音频处理库,以供学习研究之用。1、eyeD3eyeD3是一个处理音频文件的Python工具库,特别是带ID3 metadata(如歌手、专辑)的MP3文件。eyeD3 提供了两种使用方法,一种是使用command line 直接在命令行中执行 ey... 阅读详情

写在前面

因为喜欢玩儿音乐游戏,所以打算研究一下如何用深度学习的模型生成音游的谱面。这篇文章主要目的是介绍或者总结一些音频的知识和代码。

恩。如果没玩儿过的话,音乐游戏大概是下面这个样子。

 

下面进入正题。

我Google了一下,找到了这篇文章:Music Feature Extraction in Python。然后这篇文章介绍完了还有一个歌曲分类的实践:Classification of Music into different Genres using Keras。

下面的内容会主要参考一下这两篇文章,并加入一些我的理解。内容如下:

  • 声音信号介绍
  • 使用Python对音频进行特征提取
  • 使用Keras对歌曲的题材进行分类

主要涉及的背景知识有:

  • 傅里叶变换
  • 采样定理
  • Python
  • 机器学习

声音基础知识

音频信号

首先先百度一下音频信号,

音频信号是(Audio)带有语音、音乐和音效的有规律的声波的频率、幅度变化信息载体。 根据声波的特征,可把音频信息分类为规则音频和不规则声音。其中规则音频又可以分为语音、音乐和音效。规则音频是一种连续变化的模拟信号,可用一条连续的曲线来表示,称为声波。声音的三个要素是音调、音强和音色。声波或正弦波有三个重要参数:频率 、幅度和相位 ,这也就决定了音频信号的特征。

 

如果大家在学习中遇到困难,想找一个python学习交流环境,可以加入我们的python圈,裙号930900780,可领取python学习资料,会节约很多时间,减少很多遇到的难题。

 

总体来说:音频信号就是不同频率和相位的正弦波的一个叠加。

一般的声音大概就是这个样子。

 

横轴是时间,纵轴是声音的幅度。因为本质上就是正弦波的一个叠加,所以看到其实是有正有负的。

 

人耳听力频率范围

生活中存在各种正弦波,但并不是所有的波都能被人耳听到。比如说我们手机通信的信号,wifi信号,以及阳光都是一种波,但并不能被人听见。

正常人耳听见声音的频率范围是 20Hz 到 2 万 Hz 。相同强度的声音如频率不同的话,听起来的响度是不一样的。至敏感的频率是 3000 和 4000Hz 。

所以声波的信号基本上只要关注2wHz以内就好了。

奈奎斯特采样定理

声音本质上是一种模拟信号,但在计算机或者在其他数字设备上传输时,我们要把模拟信号转换为数字信号,需要进行采样。

奈奎斯特采样定理如下:

在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>2fmax),采样之后的数字信号完整地保留了原始信号中的信息。

这个定理描述的很简单,证明其实也不难,对于声音信号,只要采样的频率大于2*2wHz=4WHz的话,我们就可以听到无损的音质了。

上面说人耳听力敏感的范围主要是在4000Hz,所以我们一般听到的音乐其实是使用8000Hz频率进行采样的。这里可以看下最近比较火的芒种这首歌。

 

这首歌的时间是3分36秒也就是216秒,

心音分类auc99.7算法和代码干货 人类可以识别较低频率下声音信号音高的微小变化,并且对于范围为 <1 kHz 的频率,MFCC 标度是线性的。离散小波变换(Discrete Wavelet Transform,简称DWT)是一种用于信号处理的时频分析方法,它能够提供信号在时域和频域上的局部化信息。MFCC的原理基于人耳的听觉特性,通过模拟人耳对声音的感知过程,提取出能够代表语音特征的关键参数。每一层的分解都产生新的近似系数和细节系数。为了捕捉语音的动态变化,还可以计算MFCC的一阶和二阶差分系数,即Delta和Delta-Delta系数。 阅读详情

相关推荐

IEMOCAP数据集实战:如何用Python快速提取语音情感特征(附代码示例)

本文提供了使用Python从IEMOCAP数据集中快速提取语音情感特征的实战指南。通过对比Librosa和OpenSMILE两种主流工具,详细解析了数据预处理、特征提取、模型训练及部署的完整流程,并附有可运行的代码示例,帮助开发者和研究者高效构建语音情感识别系统。

weixin_29189363的博客 167

基于MFCC对GTZAN音乐流派分类

流派原创-收集了10种流派,每一种有100个音频文件,所有的长度都是30秒(著名的GTZAN数据集,声音的MNIST)图像原始-每个音频文件的视觉表示。对数据进行分类的一种方法是通过神经网络。因为网络新闻(像CNN,我们今天将使用的)通常采用某种形式的图像表示,音频文件被转换为梅尔光谱图使这成为可能。2个CSV文件-包含音频文件的功能。一个文件对于每首歌(30秒长)都有一个平均值和方差,可以从音频文件中提取多个特征。

优快云 精品推荐 3590

音乐风格分类:使用卷积神经网络(CNN)或循环卷积神经网络(CRNN)对GTZAN数据集进行音乐风格分类任务

这些风格包括布鲁斯(blues)、古典(classical)、乡村(country)、迪斯科(disco)、嘻哈(hiphop)、爵士(jazz)、金属(metal)、流行(pop)、雷鬼(reggae)和摇滚(rock)。在本文中,我们将使用卷积神经网络(CNN)或循环卷积神经网络(CRNN)模型来实现音乐风格分类任务,并应用于著名的GTZAN数据集。CNN模型在图像处理中取得了很大的成功,而CRNN模型则结合了CNN和循环神经网络(RNN)的优点,适用于序列数据的处理。然后,我们可以使用模型的。

YovcGit的博客 2057

基于Spark的音乐风格分类系统:从音频特征提取到分布式模型训练

音乐风格分类是音乐信息检索(MIR)领域的核心问题,其本质是通过机器学习算法对音频信号进行模式识别。传统方法依赖人工标注或简单规则,难以应对海量、多样化的音乐数据。随着大数据技术的发展,分布式计算框架如Apache Spark为处理大规模音频数据提供了高效解决方案。Spark MLlib内置的机器学习算法(如随机森林)能够并行训练分类模型,显著提升处理效率。在工程实践中,特征工程是关键环节,常用梅尔频率倒谱系数(MFCC)和频谱质心等特征来表征音乐的音色与亮度。这些特征经过提取和标准化后,可用于构建端到端的

weixin_33795093的博客 334

Python语音处理利器:SpeechPy库实战应用

我知道你在想:“现在不是都用端到端模型了吗?还搞什么 MFCC?确实,像 Wav2Vec2、Whisper 这样的模型可以直接从 raw audio 学特征。但在以下场景,传统特征依然不可替代:✅资源受限设备:嵌入式芯片跑不动大模型,MFCC + GMM 足够用✅小样本学习:标注数据少时,手工特征提供强归纳偏置✅可解释性要求高:医生要看“哪里发音异常”,而不是黑箱输出✅推理速度敏感:关键词唤醒必须在毫秒级完成而且你知道吗?

weixin_36289742的博客 452

openSMILE-3.0-win-x64 安装与音频特征提取实战避坑指南

音频特征提取是语音情感识别与声纹预处理的基础环节,其核心在于将原始音频信号转化为结构化数值向量。openSMILE 作为经典工具,通过配置文件驱动特征计算,支持 eGeMAPS、ComParE 等标准特征集。在 Windows 环境下,正确配置运行库、规避路径空格问题、统一音频采样率是保证 SMILExtract 稳定运行的关键。该工具广泛应用于情感计算、副语言分析及大规模挑战赛基线,结合 Python 批处理与帧级聚合,可高效完成从音频到模型输入的特征工程。

weixin_33868027的博客 435

Music-Classification:Matlab工具使用MFCC和K最近邻居算法将音乐分为4种类型。 输入是具有.mp3 .wav扩展名的音频文件

音乐分类 Matlab工具使用MFCC和K最近邻居算法将音乐分为4种类型。 输入是带有.mp3 / .wav扩展名的音频文件。 ##问题陈述 通过使用监督学习的概念将音频信号分类为不同的预定义流派。 背景技术虽然音乐令人愉悦,但如今互联网上提供的大量内容使音乐的分类成为必然的任务。 音乐以无限的形式出现。 也称为流派。 尽管音乐涵盖了如此广泛的类别,但是某些特征是所有人共有的,而与节奏,艺术家,乐谱等无关。因此,基于特征提取技术,可以将使用的音乐缩减为一组数据点。 ## Dataset在我们之前的摘要中,我们详细介绍了三个不同的数据集,这些数据集都适合我们的机器学习问题。 在这些数据集中,考虑到数据集的大小以及数据集中可用的音频文件的类型后,我们使用GTZAN流派集合作为我们的训练数据集。 我们仅使用现有数据集是因为其具有标准化的性质。 由于问题的性质,创建我们自己的数据集是一项艰巨的

使用机器学习算法自动进行音乐流派分类,例如逻辑回归和 K-最近邻_python_代码_下载

音频流派分类 使用机器学习算法自动进行音乐流派分类,例如逻辑回归和 K-最近邻 使用语言: Python 2.7 此存储库包含根据以下流派对音乐进行分类的开发代码: 蓝调 古典(西方) 国家 迪斯科 金属 流行音乐 数据集 用于训练模型的数据集是 GTZAN 数据集。数据集简介: 该数据集用于 G. Tzanetakis 和 P. Cook 在 2002 年 IEEE Transactions on Audio and Speech Processing 中的流派分类“音频信号的音乐流派分类”中的著名论文。 该数据集由每 30 秒长的 1000 个音轨组成。它包含 10 个流派,每个流派由 100 首曲目表示。曲目均为 .wav 格式的 22050Hz 单声道 16 位音频文件。 官方网页:marsyas.info 下载大小:约1.2GB 下载链接:下载 GTZAN 流派合集

「Debug R」在从名字空间‘XVector’中出口方法时发现了不是S4通用的函数‘parallelSlotNames’...

每当R语言版本更新,Bioconductor的版本随之更替的时候,总会有一些神奇的报错会出现,比如说下面这种。 Error: package or namespace load failed for ‘GenomicRanges’: 在从名字空间‘XVector’中出口方法时发现了不是S4通用的函数‘parallelSlotNames’ 如果读中文读不懂,我们可以把它翻译成英文。 packa...

xuzhougeng blog 2000

全网最新首发纯干货:微信数据库表结构完整分析(一)

找不到微信DB表结构说明?找不到具体字段的解释?来这里,全网最完整版!!!

killghosts的博客 4927

【Android 11】使用Android Studio调试系统应用之Settings移植(三):构建Settings、SettingsLib项目文件

基于android 11,本系列文章力争实用,讲解使用AS调试系统app的方法,并提供了配套源下载,供学习调试。上一篇文章[Android 11]使用Android Studio调试系统应用(二):依赖分析、android.bp、静态和动态依赖,讲解了如何搭建编译服务器,如何下载AOSP源码,如何切换到AOSP的指定分支(android-11-r39),以及如何编译、解决编译错误、运行模拟器,本文将开始讲解如何构建Settings的AS工程文件! 走过、路过,有用过的同学,记得给个赞O(∩_∩)O哈!

上周的博客 2680

边缘设备部署全攻略——ARM架构设备的OpenClaw优化(2026实测)

本文详细介绍了ARM架构设备上OpenClaw的部署与优化方案。针对边缘计算场景,文章系统分析了三类ARM设备:嵌入式设备(如Raspberry Pi 4、Jetson Nano)、工业设备(如BeagleBone、i.MX8M Plus)和服务器设备(如Marvell Armada、AWS Graviton3),并提供了详细的性能与功耗对比数据。在系统配置方面,重点推荐了Ubuntu ARM、Debian ARM和OpenWRT三种操作系统,包括内核版本、必备软件包和针对边缘环境的优化策略(如CPU频率调

博客 410

【Java面试题汇总】Spring篇(2026版)

IoC、DI、aop、事务、为什么不建议@Transactional、事务传播级别、@Autowired和@Resource注解的区别、BeanFactory和FactoryBean的区别、Bean的作用域,以及默认的作用域、Bean的生命周期、循环依赖、三级缓存、

种一棵树最好的时间是十年前,其次是现在 7374

FAST-LIVO2 源码精读(十六):接入自定义传感器——多雷达适配与内外参标定

本文是「FAST-LIVO2 激光-惯性-视觉里程计源码精读」专栏第十六篇。上一篇拆解了中每个关键参数的物理含义与调参路径,并反复强调外参RclPcl与时间偏移配错即全局失效;本篇承接这一悬念,回答更前置的工程问题——如何把 FAST-LIVO2 接到一套全新硬件上:新雷达如何通过的类型分支适配、相机内参与畸变模型如何配置、两组外参与时间偏移如何标定出来并填入 YAML,最后给出一份落地检查清单。

PX4-SLAM-PNC 199

基于 Spring Cloud 环境污染物数据分析与预测平台

基于 Spring Cloud 环境污染物数据分析与预测平台

935

Ultralytics YOLOv8 英伟达™ Jetson®处理器部署

英伟达™(NVIDIA®)Jetson 是一系列嵌入式计算板卡,旨在为边缘设备带来加速的 AI(人工智能)计算。这些小巧而功能强大的设备围绕英伟达™(NVIDIA®)的GPU架构打造,能够直接在设备上运行复杂的人工智能算法和深度学习模型,而无需依赖云计算资源。Jetson 板卡通常用于机器人、自动驾驶汽车、工业自动化和其他需要在本地以低延迟和高效率执行人工智能推理的应用中。此外,这些板卡基于 ARM64 架构,与传统 GPU 计算设备相比运行功耗更低。英伟达™(NVIDIA®)JetPack SDK。

机器人控制与仿真应用 3876

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 如何用Python 自动化办公?Excel 模块 — openpyxl 的基本使用!
下一篇: 大牛教你:规避Python中lambda函数会犯四个常见错误
python小丸子
博客等级 码龄6年 30粉丝 24原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值