【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库还是有点好玩的东西。

相关推荐
npk1919541 分钟前
celery 结合 rabbitmq 使用时,celery 消费者执行时间太久发送 ack 消息失败
分布式·python·celery
优联前端4 分钟前
uni-app-通过vue-cli命令行快速上手
开发语言·前端·vue.js·uni-app·优联前端
老半撅儿21 分钟前
Python基础 | 在虚拟环境中安装并在指定文件夹中打开Jupyter notebook
开发语言·python·jupyter
pumpkin8451422 分钟前
SIP Servlets学习
开发语言·学习
zhangfeng113328 分钟前
python 深度神经网络训练,pytorch ,tensorflow paddle大模型训练中损失突然增大的原因与对策
pytorch·python·dnn
wastec28 分钟前
Python计算机视觉第十章-OpenCV
python·opencv·计算机视觉
x.100000100041 分钟前
下载分享抖音视频并转成文本
音视频
huanxiangcoco44 分钟前
207. 课程表
python·leetcode·广度优先
matrixlzp1 小时前
Python Selenium 自动化爬虫 + Charles Proxy 抓包
爬虫·python·selenium·自动化
子午1 小时前
水果识别系统Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
人工智能·python·深度学习