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 音频处理初学的几点迷思的主要内容,如果未能解决你的问题,请参考以下文章