当前位置: 首页 > news >正文

Python-librosa库提取音频数据的MFCC特征

文章目录

    • MFCC特征
    • 代码分享

MFCC特征

MFCC(Mel-Frequency Cepstral Coefficients)是通过人耳对声音频率的感知方式对音频信号进行处理得到的特征,广泛用于语音识别和音频处理。

代码分享

import os
import librosa
import pywt
import matplotlib.pyplot as plt
import numpy as np
import cv2
from pathlib import Path
from tqdm import tqdm  # 需要安装 tqdm 库
from skimage.transform import resize#数据处理 绘制图形
def process_audio_files(main_folder):main_path = Path(main_folder)output_base = main_path / "MFCC"output_base.mkdir(parents=True, exist_ok=True)# 收集所有音频文件(递归遍历所有子目录)all_audio_files = list(main_path.rglob("*.wav"))total_files = len(all_audio_files)if total_files == 0:print("未找到任何音频文件!")return# 显示总进度条with tqdm(total=total_files, desc="处理进度") as pbar:for file_path in all_audio_files:try:# 获取文件的相对路径relative_path = file_path.relative_to(main_path)# 创建对应的输出目录结构output_subfolder = output_base / relative_path.parentoutput_subfolder.mkdir(parents=True, exist_ok=True)# 读取音频文件audio_files, sr = librosa.load(file_path, sr=None)# 处理音频文件,确保每个音频文件的长度都是固定的target_duration = 20  # 每个音频文件被设置为20秒长y = librosa.util.fix_length(audio_files,size=target_duration * sr)# 计算MFCC# mfcc = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=24)spectrograms_base = librosa.feature.melspectrogram(y=y,sr=sr, n_mels=24)spectrograms_dB= librosa.power_to_db(spectrograms_base, ref=np.max)spectrograms_dB_base = librosa.feature.mfcc(S=spectrograms_dB, n_mfcc=24)# print(spectrograms_dB_base.shape)librosa.display.specshow(spectrograms_dB_base)plt.axis('off')  # Turn off axesplt.xticks([])  # Remove x-axis ticksplt.yticks([])  # Remove y-axis ticks# 保存图像并关闭绘图output_path = output_subfolder / f"{file_path.stem}.png"plt.savefig(output_path, dpi=100, pad_inches=0, bbox_inches='tight')plt.close()pbar.update(1)  # 更新进度条# print(f"已处理: {file_path} → {output_path}")except Exception as e:pbar.update(1)  # 即使出错也更新进度条print(f"错误处理 {file_path}: {str(e)}")if __name__ == "__main__":# 安装依赖库(如果未安装)# pip install librosa matplotlib numpy tqdmmain_folder = "你的文件路径"process_audio_files(main_folder)

http://www.xdnf.cn/news/187381.html

相关文章:

  • 线下CPG零售的核心:POG与销量的循环优化
  • 浅谈PCB传输线(一)
  • docker安装Canal1.1.5,MySQL5.7踩坑
  • Ubuntu中C++项目安装二次规划库——qpOASES 库
  • 论文阅读_Search-R1_大模型+搜索引擎
  • 怎么样才能在idea中写入spark程序
  • 无人船 | 图解基于LQR控制的路径跟踪算法(以全驱动无人艇WAMV为例)
  • 仙宫云ComfyUI —【Wan2.1】AI视频生成部署
  • 【计算机视觉】TorchVision 深度解析:从核心功能到实战应用 ——PyTorch 官方计算机视觉库的全面指南
  • VINS-FUSION:跑通手机录制数据
  • EasyRTC嵌入式音视频通信SDK智能安防与监控系统的全方位升级解决方案
  • 杰理-安卓通过map获取时间的时候,部分手机切换sbc和aac时候单耳无声音
  • 超级好用的​​参数化3D CAD 建模​​图形库 (CadQuery库介绍)
  • 【亚马逊云】AWS Wavelength 从理论讲解到实验演练
  • Android Compose vs 传统View系统:全面对比与选型指南
  • C++ 之 【list的简介、list 的构造函数、iterator、容量操作、元素访问、增删查改与迭代器失效】
  • Flask + ajax上传文件(四)--数据入库教程
  • 深度解析算法之分治(归并)
  • 【Docker】使用 jq 管理镜像源
  • Linux权限概念讲解
  • 喷泉码解码成功率
  • 如何使用 Redis 缓存验证码
  • Flow原理
  • Unity3D引擎框架及用户接口调用方式相关分析及汇总
  • 关系数据的可视化
  • 【数据结构】排序
  • 一、JVM基础概念
  • 全开源、私有化部署!轻量级用户行为分析系统-ClkLog
  • MAC如何安装多版本jdk(以8,11,17为例)
  • 定时器的源码介绍与简单实现——多线程编程简单案例[多线程编程篇(5)]