2020-10-07 Librosa 音频处理初学的几点迷思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020-10-07 Librosa 音频处理初学的几点迷思相关的知识,希望对你有一定的参考价值。

参考技术A 以下摘自与博客园博主@凌逆战的问答:

Q1:librosa.stft里导出的矩阵实部部分,官方描述是the magnitude of the frequency(频率的幅度), 是不是就是对应我们平时说的振幅/音量的意思呢?但是这个矩阵的值,又和我用librosa.amplitude_to_db导出的矩阵的值不一样,这让我很疑惑;

A1: 频率的幅度不代表音响,时域波形的增幅才代表音量。

Q2:有没有什么办法可以提取每一个采样点/帧的频率以及该频率对应的时长呢?我之前的想法是用stft导出频率和相位,然后用相位和频率的关系计算出时间差,但是stft似乎导出的不是频率因此也不可行。。。有什么建议吗?

A2: 一个采样点有没频率概念,频率的概念是一秒内采样点的个数,画个语谱图出来,应该就能明白了。

Q3:librosa里面有没有什么办法可以获取一段音频某一采样点/帧的基波呢?

A3: 求基频好像有,librosa.yin和librosa.pyin用于基本频率估计。你可以参考 API手册 。

------------------------------------------------------------------------

再次感谢@凌逆战的悉心指教!

Reference:

1. https://www.cnblogs.com/LXP-Never/p/11561355.html

音频合并,剪切,降采样,时长等处理

参考技术A 1.音频重采样

import librosa

# to install librosa package

# > conda install -c conda-forge librosa

filename = '1.wav'

newFile = '1_8k.wav'

y, sr = librosa.load(filename, sr=48000)

y_8k = librosa.resample(y,sr,8000)

librosa.output.write_wav(newFile, y_8k, 8000)

2.音频合并

import sox

import os

pa='../yin/'

path='../pin/'

cbn=sox.Combiner()

list=os.listdir(pa)

for i in list:

    if i.endswith('wav'):

        print(str(i[:-4]))

        cbn.build([i,i,i,i,i,i,i],path+str(i[:-4])+'.wav', 'concatenate')

3.获取文件夹中的音频时长,并把不是1.4s长度的放在一个文件夹中

、4.截取音频时长并显示

以上是关于2020-10-07 Librosa 音频处理初学的几点迷思的主要内容,如果未能解决你的问题,请参考以下文章

使用 librosa 进行音频分类的 MFCC 特征描述符

音频合并,剪切,降采样,时长等处理

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

Python Librosa:用于计算 MFCC 特征的默认帧大小是多少?

音频特征提取——librosa工具包使用

如何从 librosa 中的 mel 频谱图重建 STFT 矩阵,以便重建原始音频?