首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在单个图形上绘制声波、mfcc和mel频谱图?

要在单个图形上绘制声波、MFCC(Mel频率倒谱系数)和Mel频谱图,你可以使用Python中的matplotliblibrosa库。以下是一个示例代码,展示了如何实现这一点:

代码语言:txt
复制
import librosa
import librosa.display
import matplotlib.pyplot as plt
import numpy as np

# 加载音频文件
file_path = 'your_audio_file.wav'
y, sr = librosa.load(file_path, sr=None)

# 绘制声波图
plt.figure(figsize=(14, 8))

# 声波图
plt.subplot(3, 1, 1)
librosa.display.waveshow(y, sr=sr)
plt.title('Waveform')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')

# 计算Mel频谱图
D = librosa.stft(y)
S_db = librosa.amplitude_to_db(np.abs(D), ref=np.max)
plt.subplot(3, 1, 2)
librosa.display.specshow(S_db, sr=sr, x_axis='time', y_axis='mel')
plt.colorbar(format='%+2.0f dB')
plt.title('Mel Spectrogram')
plt.xlabel('Time (s)')
plt.ylabel('Mel Frequency')

# 计算MFCC
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=20)
plt.subplot(3, 1, 3)
librosa.display.specshow(mfccs, x_axis='time')
plt.colorbar()
plt.title('MFCC')
plt.xlabel('Time (s)')
plt.ylabel('MFCC Coefficients')

# 调整布局并显示图形
plt.tight_layout()
plt.show()

基础概念

  1. 声波图:显示音频信号随时间变化的波形。
  2. Mel频谱图:显示音频信号在Mel频率尺度上的能量分布。
  3. MFCC:Mel频率倒谱系数,是一种用于语音识别和音频处理的特征,提取了音频信号的频谱包络信息。

优势

  • 声波图:直观显示音频信号的波形,便于观察信号的时域特征。
  • Mel频谱图:显示音频信号在Mel频率尺度上的能量分布,有助于识别音频信号的频域特征。
  • MFCC:提取音频信号的频谱包络信息,常用于语音识别和音频分类。

应用场景

  • 语音识别:MFCC是语音识别中最常用的特征之一。
  • 音频分类:Mel频谱图和MFCC常用于音频分类任务,如音乐类型识别。
  • 音频处理:声波图、Mel频谱图和MFCC在音频信号处理和分析中广泛应用。

可能遇到的问题及解决方法

  1. 音频文件加载失败:确保音频文件路径正确,并且文件格式受支持。
  2. 内存不足:对于长音频文件,可以尝试分段处理或减少采样率。
  3. 绘图错误:确保安装了所有必要的库,并且版本兼容。

参考链接

通过上述代码和解释,你应该能够在单个图形上绘制声波、MFCC和Mel频谱图,并理解其基础概念和应用场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

librosa怎么安装_librosa保存音频

读取音频 提取特征 提取Log-Mel Spectrogram 特征 提取MFCC特征 绘图显示 绘制声音波形 绘制频谱 ---- 序言 Librosa是一个用于音频、音乐分析、处理的python工具包...,一些常见的时频处理、特征提取、绘制声音图形等功能应有尽有,功能十分强大。...,由于CNN在处理图像展现了强大的能力,使得音频信号的频谱特征的使用愈加广泛,甚至比MFCC使用的更多。...: 绘制频谱 Librosa有显示频谱波形函数specshow( ): >>> import librosa >>> import librosa.display >>> # Load a wav...') >>> plt.title('Beat wavform') >>> plt.show() 输出结果为: 将声音波形频谱绘制在一张图表中: >>> import librosa >>> import

1.7K40

人工智能下的音频还能这样玩!!!!

特征提取 绘图显示 三、常用功能代码实现 读取音频 提取特征 提取Log-Mel Spectrogram 特征 提取MFCC特征 绘图显示 绘制声音波形 绘制频谱 --- 序言 Librosa是一个用于音频...、音乐分析、处理的python工具包,一些常见的时频处理、特征提取、绘制声音图形等功能应有尽有,功能十分强大。...特征是目前在语音识别环境声音识别中很常用的一个特征,由于CNN在处理图像展现了强大的能力,使得音频信号的频谱特征的使用愈加广泛,甚至比MFCC使用的更多。...Librosa有显示频谱波形函数specshow( ): # # 绘制频谱 melspec = librosa.feature.melspectrogram(y, sr, n_fft=1024,...') plt.title('sample wavform') plt.show() [format,png] --- 将声音波形频谱绘制在一张图表中: # # 将声音波形频谱绘制在一张图表中:

1.4K30
  • 声音处理之-梅尔频率倒谱系数(MFCC)

    Mel-scaleFrequency Cepstral Coefficients,简称MFCC)。...倒谱分析 对于一个语音的频谱,峰值就表示语音的主要频率成分,我们把这些峰值称为共振峰(formants),而共振峰就是携带了声音的辨识属性(就是个人身份证一样)。所以它特别重要。...所以我们提取的是频谱的包络(Spectral Envelope)。这包络就是一条连接这些共振峰点的平滑曲线。我们可以这么理解,将原始的频谱由两部分组成:包络频谱的细节。...梅尔频率倒谱系数MFCC 通常,计算MFCC之前,还会通过预加重、分帧和加窗、短时FFT等手段将原始原始声音信号的spectrogram声谱MFCC对声谱信号进行分析。...提取MFCC特征的过程: 1)先对语音进行预加重、分帧和加窗; 2)对每一个短时分析窗,通过FFT得到对应的频谱; 3)将上面的频谱通过Mel滤波器组得到Mel频谱; 4)在Mel频谱上面进行倒谱分析(

    1.5K20

    音频数据建模全流程代码示例:通过讲话人的声音进行年龄预测

    大多数人都熟悉如何在图像、文本或表格数据运行数据科学项目。但处理音频数据的样例非常的少见。在本文中,将介绍如何在机器学习的帮助下准备、探索分析音频数据。...在水平 x 轴我们可以看到时间,而在垂直 y 轴我们可以看到不同的频率。 3b 梅尔谱 作为 STFT 的替代方案,还可以计算基于 mel 标度的梅尔频谱。...Hz 的频率在 y 轴占用的空间比在 mel 图中要大得多 . 3c 梅尔频率倒谱系数 (MFCC) 梅尔频率倒谱系数 (MFCC) 是上面梅尔频谱的替代表示。...但是对于某些问题,STFT、mel 或波形表示可能会更好。 让我们继续计算 MFCC绘制它们。...3、频谱特征 目前还没有查看实际录音。正如之前看到的,有很多选择(即波形或 STFT、mel 或 mfccs 频谱)。 音频样本的长度都不同,这意味着频谱也会有不同的长度。

    1.6K10

    音频数据建模全流程代码示例:通过讲话人的声音进行年龄预测

    大多数人都熟悉如何在图像、文本或表格数据运行数据科学项目。但处理音频数据的样例非常的少见。在本文中,将介绍如何在机器学习的帮助下准备、探索分析音频数据。...在水平 x 轴我们可以看到时间,而在垂直 y 轴我们可以看到不同的频率。 3b 梅尔谱 作为 STFT 的替代方案,还可以计算基于 mel 标度的梅尔频谱。...3c 梅尔频率倒谱系数 (MFCC) 梅尔频率倒谱系数 (MFCC) 是上面梅尔频谱的替代表示。MFCC 相对于 梅尔谱的优势在于特征数量相当少(即独特的水平线标度),通常约为 20。...但是对于某些问题,STFT、mel 或波形表示可能会更好。 让我们继续计算 MFCC绘制它们。...频谱特征 目前还没有查看实际录音。正如之前看到的,有很多选择(即波形或 STFT、mel 或 mfccs 频谱)。 音频样本的长度都不同,这意味着频谱也会有不同的长度。

    1.1K40

    语音识别中的声学特征提取:梅尔频率倒谱系数MFCC | 老炮儿改名PPLOVELL | 5th

    也就是,怎么在给定log X[k]的基础,求得log H[k] log E[k]以满足log X[k] = log H[k] + log E[k]呢? ? 这就用到了倒谱分析。...梅尔频率倒谱系数MFCC 梅尔频率倒谱系数MFCC考虑到了人类的听觉特征,先将线性频谱映射到基于听觉感知的Mel非线性频谱中,然后转换到倒谱上。...即将频谱通过一组Mel滤波器就得到Mel频谱,公式表述就是log X[k] = log (Mel-Spectrum),这时候我们再在log X[k]上进行倒谱分析,在Mel频谱上面获得的倒谱系数h[k]...通常,计算MFCC之前,还会通过预加重、分帧和加窗、短时FFT等手段将原始原始声音信号的spectrogram声谱MFCC对声谱信号进行分析。...这里总结一下提取MFCC特征的过程: 1)先对语音进行预加重、分帧和加窗; 2)对每一个短时分析窗,通过FFT得到对应的频谱; 3)将上面的频谱通过Mel滤波器组得到Mel频谱; 4)在Mel频谱上面进行倒谱分析

    2.8K41

    Mel频谱MFCC深入浅出

    前言 在音频领域,mel频谱mfcc是非常重要的特征数据,在深度学习领域通常用此特征数据作为网络的输入训练模型,来解决音频领域的各种分类、分离等业务,端点侦测、节奏识别、和弦识别、音高追踪、乐器分类...下面讲解mel频谱mfcc特征的算法流程一些细节、延展,这些细节从局部角度来看,都会影响到最终特征呈现的细节差异,这些差异放大到模型训练结果的准确性、鲁棒性怎么样是非常值得研究的,某些情况下可能会有质的变化...算法流程 设 sr 为采样率,fftLength 为帧长度,slideLength 为滑动长度 下面是一张mel频谱mfcc的大概算法流程。 图片 1....下面是STFT频谱mel频谱(num=128)的效果对比。 图片 7. 离散余弦变换(DCT) 离散余弦变换,即数据为偶函数的实数傅里叶的变换,有去相关能量集中特点。...第三种方式 mel频谱有自己的神经元,开始成为真正的mel频谱网络层,同样的延展,类mel频谱等积分变换,什么都不操作,它就是一个稍微复杂点的算子、激活函数,如果在空间时间维度上加上神经元设计

    2.2K90

    深度学习工具audioFlux--一个系统的音频特征提取库

    等效短时傅里叶变换(STFT),一般基于此实现大家熟知的mel频谱,时域重叠平移加窗的傅里叶变换,一般重叠变换长度1/4,加高斯窗又称做Gabor变换,可以调整窗函数长度来方便的模拟时频分析特点,BFT...频谱重排 同步压缩或重新分配方法是一种用于锐化、高清频谱的技术,可以提升频谱的清晰度精度,audioFlux包含以下算法: reassign - 针对STFT变换重排,基于BFT的mel/bark/...不同频谱的倒谱系数,都代表着不同频谱类型的去音高相关,都有各自的应用价值,比如gtcc有论文反映在语音识别业务中音素效果要比mfcc好一些,cqcc针对乐器的分类一些结构细化业务要远优于mfcc等等。...解卷积 在数学中,解卷积是卷积的逆运算,可以做为信号分解的一种算法,针对频谱而言,分解后的两个数据可以表示为formant(共振峰)频谱pitch频谱,相比mfcc而言,formant是一种更为通识的发音物理结构特征...下面是针对吉他880hz音频的mel频谱的解卷积效果。 图片 可以看到吉他共振峰部分(音色)音高部分明显的分离效果。

    2.3K110

    音频知识(二)--MFCCs

    MFCC(Mel-Frequency Cepstral Coefficients),梅尔倒谱系数,就是比较常用的音频特征提取方式。本文主要介绍mfcc提取流程。...时域频域可以用下图表示,上篇文章的一些变换也是在时频域的转换。 image.png 波形和声谱 常说的波形是指时域分析,横轴是时间,纵轴是信号的变化。...image.png 具体过程如下图,后面介绍mfcc时会详细介绍。 image.png 频谱倒谱 倒频谱(信号)是信号频谱取对数的傅里叶变换后的新频谱(信号),有时候会称频谱的倒频谱。...加窗 分帧后,我们一般会对每帧乘以一个窗函数来平滑信号,Hamming窗口。目的是增加帧两端的连续性,减少后续操作对频谱泄漏。 实现: 频域转换 频域转换就是上文中提到对傅立叶变换了。...将上一步得到的能量对数带入到离散余弦变换公式得到MFCCs: 其中L阶指MFCC系数阶数,通常取13。m就是一步周mel滤波器对个数。 下一篇上代码,通过代码再详细理解~

    4.1K91

    使用 PyTorch 进行音频信号处理的数据操作和转换

    Kaldi (方舟/SCP) 常见音频数据集的数据加载器(VCTK,YesNo) 常见的音频转换 频谱、AmplitudeToDB、MelScale、MelSpectrogram、MFCC...、MuLawEncoding、MuLawDecoding、重采样 合规性接口:使用 PyTorch 运行与其他库一致的代码 Kaldi:频谱、fbank、mfcc、resample_waveform...:音频维度的速率(每秒采样数) specgram:具有维度(通道、频率、时间)的频谱张量 mel_specgram:具有维度(通道、mel、时间)的mel hop_length:连续帧开始之间的样本数...n_fft:傅立叶箱的数量 n_mel, n_mfcc: mel MFCC bin 的数量 n_freq:线性频谱图中的 bin 数量 min_freq:频谱图中最低频段的最低频率 max_freq..., 时间) MelSpectrogram:(频道,时间)->(频道,mel,时间) MFCC:(频道,时间)->(频道,mfcc,时间) MuLawEncode:(频道,时间)->(频道,时间) MuLawDecode

    3.1K20

    实战:基于tensorflow 的中文语音识别模型 | CSDN博文精选

    {train,dev,test} 文件 manifest 文件包含音频文件的元信息,文件路径、对应的文本、持续时长。存储格式为JSON格式。类似于Kaldi里的scp文件 text文件的结合。...得到对应的频谱;(获得分布在时间轴不同时间窗内的频谱) 将上面的频谱通过Mel滤波器组得到Mel频谱;(通过Mel频谱,将线形的自然频谱转换为体现人类听觉特性的Mel频谱) 在Mel频谱上面进行倒谱分析...(取对数,做逆变换,实际逆变换一般是通过DCT离散余弦变换来实现, 取DCT后的第2个到第13个系数作为MFCC系数),获得Mel频率倒谱系数MFCC,这个MFCC就是这帧语音的特征;(倒谱分析,获得MFCC...作为语音特征) 在代码已经被人包装好了,可以通过python_speech_features 中的mfcc函数直接得到音频的mfcc特征, 该函数的参数为: mfcc(signal,samplerate...函数计算了mfcc的一阶差分二阶差分特征,由此对每一帧得到了39维特征向量。

    5.4K10

    机器学习中的音频特征:理解Mel频谱

    傅立叶变换 音频信号由几个单频声波组成。在一段时间内对信号进行采样时,我们仅捕获得到的幅度。傅立叶变换是一个数学公式,它使我们可以将信号分解为单个频率频率幅度。换句话说,它将信号从时域转换到频域。...计算频谱时,还有一些其他细节。y轴转换为对数刻度,颜色尺寸转换为分贝(您可以将其视为振幅的对数刻度)。这是因为人类只能感知到非常小的集中频率幅度范围。...仅用几行代码,我们就创建了一个频谱。好。我们对“频谱”部分有扎实的了解,但对“MEL”则如何。他是谁? 梅尔(Mel)量表 研究表明,人类不会感知线性范围的频率。...我们将y轴(频率)转换为对数刻度,将颜色尺寸(幅度)转换为分贝,以形成频谱。 我们将y轴(频率)映射到mel刻度上以形成mel频谱。 听起来很简单,对吧?...好吧,虽然不尽然,但是我希望这篇文章能使你了解音频特征的处理梅尔频谱的原理。 作者:Leland Roberts deephub 翻译组

    5.3K21

    听音识情绪 | 程序员手把手教你搭建神经网络,更快get女朋友情绪,求生欲max!⛵

    ,这里的音频数据我们会使用 LibROSA工具库来处理绘图(波形频谱)。...针对语音相关的任务(语音识别、声纹识别等),MFCCMel Frequency Cepstrum Coefficient,Mel频率倒谱系数)是非常有效的表征特征。...Mel频率是基于人耳听觉特性提出来的,它与Hz频率成非线性对应关系。Mel频率倒谱系数(MFCC)则是利用它们之间的这种关系,计算得到的Hz频谱特征,它广泛地应用在语音各项任务中。...图片 下面我们绘制一下音频的频谱 import scipy.io.wavfile sr,x = scipy.io.wavfile.read('RawData/03-02-06-02-02-02-12...])) plt.imshow(X.T, interpolation='nearest', origin='lower', aspect='auto') plt.show() 生成的频谱如下图所示

    65831

    【干货】用神经网络识别歌曲流派(附代码)

    使用的库:Python库librosa,用于从歌曲中提取特征,并使用梅尔频率倒谱系数( Mel-frequency cepstral coefficients ,MFCC)。...以下是你需要导入的内容列表: librosalibrary glob,你需要列出不同类型目录中的文件 numpy matplotlib,绘制MFCC graphs Keras的序列模型,一种典型的前馈神经网络...然后,使用specshow,这是librosa库里的频谱。 这是踏板鼓: Low frequency: Kick loop 5 可以看到,在低频率下,低音是非常明显的。没有多少其他频率被表示。...但是,口哨声的频谱明显有更高的频率表示: High frequency: Whistling 颜色越深或越接近红色,在那个频率范围内的能量越大。 限定歌曲流派 你甚至可以看到口哨声的频率的变化。...这需要训练输入训练标签,并获取你想要的epochs数量。你想要10,所以在经过训练的输入重复10次。

    4.9K50

    语音信息转换的新纪元

    例如:采样频率16000Hz的语音信号,分离其声门激励信号和声道冲激响应,绘制频谱。...fft(y))); % 按式(1)取实数部分subplot 211; plot(ff,Y(nn),'k'); hold on; % 画出信号的频谱...循环神经网络(RNN):RNN及其变体LSTMGRU,能够处理序列数据,捕获时间依赖性。卷积神经网络(CNN):CNN擅长处理具有空间层次结构的特征,声谱。...特征提取:使用Kaldi中的工具(compute-mfcc-feats.sh)提取MFCCMel频率倒谱系数)特征。可能需要对音频进行预处理,降噪、采样率转换等。...特征提取:使用Kaldi的脚本(compute-mfcc-feats.sh)提取MFCC特征。可能需要对音频进行预处理,降噪、采样率转换等。

    19121

    《语音信号处理》整理

    得到对应的频谱[6]; 3)将上面的频谱通过Mel滤波器组[7]得到Mel频谱; 4)在Mel频谱上面进行倒谱分析(取对数,做逆变换,实际逆变换一般是通过DCT离散余弦变换来实现,取DCT后的第2个到第...13个系数作为MFCC系数),获得Mel频率倒谱系数MFCC,这个MFCC就是这帧语音的特征; Mel三角滤波器组 MFCC参数提取 !...这种方法与一种基于状态的方 法的最大区别在于: 对于操作的顺序没有严格的限制, 即只关心当前对话的状态信息, 根据现在的状态作出反应, 然后根据 用户的回答或系统的反应修改特征向量。...谱减法假设 语音噪声信号是线性叠加的 噪声是平稳的(指的是频谱固定),噪声与语音信号不相关(指的是噪音在语音频率能量小)。 谱减法相当于对带噪语音的每一个频谱分量乘以一个 系数。...↩ Mel三角带通滤波器:对频谱进行平滑化,并消除谐波的作用,突显原先语音的共振峰。

    1.6K00

    语音识别流程梳理

    特征提取 特征提取是通过将语音波形以相对最小的数据速率转换为参数表示形式进行后续处理分析来实现的,MFCCMel Frequency Cepstral Coefficents)是一种在自动语音说话人识别中广泛使用的特征...在Mel频域内,人的感知能力为线性关系,如果两段语音的Mel频率差两倍,则人在感知也差两倍。...梅尔滤波器组将梅尔域每个三角滤波器的起始、中间截止频率转换线性频率域,并对 DFT 之后的谱特征进行滤波,再进行 log 操作,得到Fbank(Filter Bank)特征。...IDFT FBank 特征的频谱如下图所示,图中四个红点表示的是共振峰,是频谱的主要频率,在语音识别中,根据共振峰来区分不同的音素(phone),所以我们可以把图中红线表示的特征提取出来就行,移除蓝色的影响部分...下图为DNN-HMM混合建模框架,DNN的输入是传统的语音波形经过加窗、分帧,然后提取出来的频谱特征,MFCC、PLP或更底层的滤波器组(filter bank,FBK)声学特征等。

    8.5K30

    MFCC算法讲解及实现(matlab)

    中,使用函数audioread函数来读取本地wav文件,这里要注意的是,采样频率一般为8000Hz16000Hz,采样频率需要大于真实信号最大频率的2倍,才不会导致频谱混叠。...这个式子是把频率对应到频谱中2048个频率分量的某个。...: \qquad 好了,到了这里我们就可以看到了,原始信号之前是20000个采样点的数据,而现在的 M F C C 0 MFCC_0 MFCC0​参数图形大致与原始信号一致,并且其点数只有297...N);%创建hm矩阵 df=fs/N; freq=(0:N-1)*df;%采样频率值 %绘制梅尔滤波器 for i=2:27 %取整,这里取得是28个k中的第2-27个,舍弃028...5.参考文献,资料 1.基于谱熵梅尔积的语音端点检测方法 2.语音识别MFCC 3.语音特征参数MFCC提取过程详解 4.Mel滤波器组的设计与实现(基于MATLABPython) 发布者

    2.5K31
    领券