使用python绘制音频的时频图、频谱图和MFCC特征图

这篇具有很好参考价值的文章主要介绍了使用python绘制音频的时频图、频谱图和MFCC特征图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用specgram绘制时频图

import matplotlib.pyplot as plt
import numpy as np
import scipy.io.wavfile as wav
import matplotlib
from scipy.fft import fft
import librosa
import librosa.display

matplotlib.rc("font",family='SimHei') # 显示中文
matplotlib.rcParams['axes.unicode_minus']=False # 显示符号
filename = 'D:\\code\\code\\audio process\\test.wav'
fs,signal = wav.read(filename)

plt.figure()
plt.subplot(2,1,1)#第一个子图
plt.specgram(signal[:,0],Fs=fs,scale_by_freq=True,sides='default')
plt.colorbar()#format='%+2.0f dB'

plt.subplot(2,1,2)#第二个子图
plt.specgram(signal[:,1],Fs=fs,scale_by_freq=True,sides='default')#绘制语谱图
plt.colorbar(format='%+2.0f dB')

plt.savefig('D:\\code\\code\\audio process\\test2.jpg')

#绘制频谱图
plt.figure()
ft=fft(signal[:,0])#需要注意 只能对一个通道的数据进行操作
magnitude=np.absolute(ft)#取相似度
magnitude=magnitude[0:int(len(magnitude)/2)+1]
f=np.linspace(0,fs,len(magnitude))
plt.plot(f,magnitude)

plt.figure()
#绘制MFCC scipy与librosa的读取数据机制不一样
signal,fs=librosa.load(filename,sr=44100)#sr为采样率,mono
print(signal.shape,type(signal),len(signal))
#(2, 10411757) <class 'numpy.ndarray'> 2
mfccs=librosa.feature.mfcc(y=signal,n_mfcc=13,sr=fs)
print(type(mfccs))
librosa.display.specshow(mfccs,sr=fs)
#绘制一阶mfcc
plt.figure()
delta_mfccs=librosa.feature.delta(mfccs)
print(type(delta_mfccs))
librosa.display.specshow(delta_mfccs,sr=fs)
#绘制二阶mfcc
plt.figure()
delta2_mfccs=librosa.feature.delta(mfccs,order=2)
librosa.display.specshow(delta2_mfccs,sr=fs)
print(type(delta2_mfccs))
#绘制39个维度的mfcc
plt.figure()
mfcc=np.concatenate((mfccs,delta_mfccs,delta2_mfccs))#里面有括号
librosa.display.specshow(mfcc,sr=fs)
plt.show() 作者:躺躺更健康耶 https://www.bilibili.com/read/cv17517045 出处:bilibili

python时频图,深度学习,python,音视频,开发语言
时频图如上

python时频图,深度学习,python,音视频,开发语言
频图图

python时频图,深度学习,python,音视频,开发语言
完整的mfcc文章来源地址https://www.toymoban.com/news/detail-649491.html

将时频图直接获取,不保存


fig = plt.figure()                                                  # 创建所需对象fig
plt.specgram(rri,Fs=fs,scale_by_freq=True,sides='default')          # 直接绘制时频图,无需傅里叶变化
plt.colorbar()
canvas = FigureCanvasAgg(fig)                                       # 将图像从内存中提取出来。
canvas.draw()
buf = canvas.buffer_rgba()
X = np.array(buf)
X = X[:, :, :3]                                                      # 提取前三通道的图片, 第四个通道是全白的,所以不需要进行提取了
print(X.shape)

到了这里,关于使用python绘制音频的时频图、频谱图和MFCC特征图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 脑电信号处理与特征提取——5.频谱分析和时频分析(张治国)

    脑电信号处理与特征提取——5.频谱分析和时频分析(张治国)

    目录 五、频谱分析和时频分析 5.1 频谱估计 5.1.1 基本概念 5.1.2 频谱估计方法:周期图 5.1.3 频谱估计方法:Welch法 5.1.4 频谱估计方法的比较 5.1.5 频谱特征提取  5.2 时频分析 5.2.1 短时傅里叶变换 5.2.2 连续小波变换 5.3 事件相关同步化/去同步化 静息态脑电: 没有刺激的情况下

    2024年02月15日
    浏览(8)
  • Python绘制卫星星下点轨迹图和卫星星座图

    Python绘制卫星星下点轨迹图和卫星星座图

    Ephem可用于执行高精度天文计算,包括计算行星、彗星、小行星和地球卫星的位置等。Folium是python上著名的地理信息可视化库,使用folium我们可以在Python端编写代码操纵数据和制作优美的可交互地图。使用ephem解算卫星的位置,然后使用folium就能绘制卫星星下点轨迹图了。 人

    2023年04月10日
    浏览(7)
  • Python获取excel的数据并绘制箱型图和直方图

    Python获取excel的数据并绘制箱型图和直方图

    根据箱型图、直方图的代码和数据的条件查询方法,画出航空公司男性和女性用户的年龄分布 箱型图 和 直方图 。 目录  图形简介 1. 箱线图 2.直方图 引入模块 获取数据 处理数据 根据性别来分开查询数据 画图 箱型图  直方图 男性直方图 1. 箱线图 箱线图(Box-plot)又称为

    2024年02月05日
    浏览(8)
  • Python绘制X-bar图和R图 | 统计过程控制SPC

    Python绘制X-bar图和R图 | 统计过程控制SPC

    X-bar图和R图是用于统计过程控制(SPC)的两种常用工具,用于监测过程的平均值和范围(变异性)。这些图有助于识别过程中的变化和异常,以便及时采取纠正措施。 **X-bar图(平均值控制图)**显示了一系列样本的平均值,用于监测过程的平均值是否保持在可接受的范围内。

    2024年02月07日
    浏览(10)
  • 【使用深度学习的城市声音分类】使用从提取音频特征(频谱图)中提取的深度学习进行声音分类研究(Matlab代码实现)

    【使用深度学习的城市声音分类】使用从提取音频特征(频谱图)中提取的深度学习进行声音分类研究(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 使用深

    2024年02月16日
    浏览(7)
  • python读取excel数据并用双y轴绘制柱状图和折线图,柱子用渐变颜色填充

    python读取excel数据并用双y轴绘制柱状图和折线图,柱子用渐变颜色填充

    往期python绘图合集: python绘制简单的折线图 python读取excel中数据并绘制多子图多组图在一张画布上 python绘制带误差棒的柱状图 python绘制多子图并单独显示 python读取excel数据并绘制多y轴图像 python绘制柱状图并美化|不同颜色填充柱子 python随机生成数据并用双y轴绘制两条带误差

    2024年02月10日
    浏览(14)
  • 解决使用傅里叶变换开源库fftw分析音频频谱结果与matlab或audacity不一致的问题

    解决使用傅里叶变换开源库fftw分析音频频谱结果与matlab或audacity不一致的问题

    找的一些demo输出结果与实际结果相差巨大,修复后效果如下: 采用一个采样率48000,精度16bit,单通道的46Hz,振幅为32767的正弦波测试(理论上应该得输出一个一模一样的正弦波)。输出如下图,可以看到和matlab或audacity差不多。 fftw测试结果, audacity输出结果: 源码如下:

    2024年02月03日
    浏览(11)
  • 【Python数据可视化】matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图

    【Python数据可视化】matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图

    文章传送门 Python 数据可视化 matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图 matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值 matplotlib之增加图形内容:设置图例、设置中文标题、设置网格效果 matplo

    2024年01月16日
    浏览(14)
  • 窗函数的介绍以及画出常见窗函数(汉宁窗,矩形窗,汉明窗,布莱克曼窗)的时域图和频谱图

    窗函数的介绍以及画出常见窗函数(汉宁窗,矩形窗,汉明窗,布莱克曼窗)的时域图和频谱图

    常见的四种窗函数的表达式为: 四种常见窗函数的参数表 对于实际信号序列,该如何选取窗函数呢?一般来说,选择第一旁瓣衰减大,旁瓣峰值衰减快的窗函数有利于缓解截断过程中产生的频谱泄漏问题。但具有这两个特性的窗函数,其主瓣宽度较大,相应会带来一些副作用

    2024年02月02日
    浏览(29)
  • 音频信号的频谱分析实例

    音频信号的频谱分析实例

    在前面的文章 信号频谱分析与功率谱密度 中,我们初步探讨了信号频谱分析的概念,并介绍了其数学工具。本篇文章将结合实例,进一步探讨频谱分析在音频信号处理中的应用。 音频信号的频谱分析是一种将时域中的音频信号转换为频域表示的过程,从而可以观察信号在不

    2024年04月16日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包