【python】基于librosa库提取音频特征

一、源码

python 复制代码
import librosa
audio_path = './audio.mp3'
audio, sr = librosa.load(audio_path)
# 提取音频信号的时域特征
amplitude = librosa.amplitude_to_db(librosa.stft(audio), ref=np.max)
# 提取音频信号的频域特征
mfccs = librosa.feature.mfcc(audio, sr=sr)
# 提取音频信号的节奏特征
tempo, beat_frames = librosa.beat.beat_track(audio, sr=sr)

二、介绍

1、librosa.amplitude_to_db

librosa.amplitude_to_db是一个音频处理库librosa中的一个函数,用于将音频信号的幅度转换为分贝(dB)单位的值。在音频处理中,分贝是一种常用的单位,用于表示信号的相对强度。

该函数的输入参数是音频信号的幅度值,可以是单个值或者一个数组。它会将输入的幅度值转换为分贝单位,并返回相应的结果。

该函数的转换公式如下:

dB = 20 * log10(amplitude / ref)

其中,amplitude是输入的幅度值,ref是参考值,默认为1。通过这个公式,函数将输入的幅度值转换为相对于参考值的分贝值。

使用librosa.amplitude_to_db函数可以帮助我们在音频处理中更好地理解和分析音频信号的强度。例如,可以将音频信号转换为分贝单位后,可以更直观地比较不同音频片段的相对强度,或者进行音频特征提取等操作。

2、librosa.feature.mfcc

librosa.feature.mfcc是一个音频特征提取函数,用于计算音频信号的梅尔频率倒谱系数(MFCC)。MFCC是一种常用的音频特征表示方法,广泛应用于语音识别、音乐信息检索等领域。

MFCC的计算过程主要包括以下几个步骤:

  1. 预加重 :对音频信号进行预处理,通过高通滤波器强调高频部分,减小低频部分的能量损失。

  2. 分帧 :将音频信号分成短时帧,通常每帧持续时间为20-40毫秒。

  3. 加窗 :对每一帧的信号应用窗函数,常用的窗函数有汉明窗、哈宁窗等。

  4. 傅里叶变换 :对每一帧的信号进行快速傅里叶变换(FFT),将时域信号转换为频域信号。

  5. 梅尔滤波器组 :将频域信号通过一组梅尔滤波器进行滤波,得到每个滤波器通道的能量。

  6. 对数压缩 :对每个滤波器通道的能量取对数,得到对数能量谱。

  7. 离散余弦变换:对对数能量谱进行离散余弦变换(DCT),得到MFCC系数。

librosa.feature.mfcc函数的输入参数包括音频信号和采样率,可以选择是否进行对数压缩、是否加入能量项等。输出结果是一个矩阵,每一行表示一帧音频的MFCC系数。

3、librosa.beat.beat_track

librosa.beat.beat_track是一个音频处理库librosa中的函数,用于从音频信号中提取节奏信息。它可以自动检测音频中的节拍,并返回每个节拍的时间位置。

三、总结

librosa库还是有点好玩的东西。

相关推荐
SmartRadio4 小时前
CH585M+MK8000、DW1000 (UWB)+W25Q16的低功耗室内定位设计
c语言·开发语言·uwb
rfidunion4 小时前
QT5.7.0编译移植
开发语言·qt
少林码僧4 小时前
2.31 机器学习神器项目实战:如何在真实项目中应用XGBoost等算法
人工智能·python·算法·机器学习·ai·数据挖掘
rit84324994 小时前
MATLAB对组合巴克码抗干扰仿真的实现方案
开发语言·matlab
智航GIS5 小时前
10.4 Selenium:Web 自动化测试框架
前端·python·selenium·测试工具
jarreyer5 小时前
摄像头相关记录
python
宝贝儿好5 小时前
【强化学习】第六章:无模型控制:在轨MC控制、在轨时序差分学习(Sarsa)、离轨学习(Q-learning)
人工智能·python·深度学习·学习·机器学习·机器人
大、男人5 小时前
python之asynccontextmanager学习
开发语言·python·学习
hqwest5 小时前
码上通QT实战08--导航按钮切换界面
开发语言·qt·slot·信号与槽·connect·signals·emit
AC赳赳老秦6 小时前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek