librosa库一些函数新用法

mac2024-06-02  32

之前用函数也就是会用一个形参就行了,没想到librosa还有很多方便的方法,

比如这个玩意:

filename = librosa.util.example_audio_file() y, sr = librosa.load(filename, offset=15.0, duration=5.0)

这是官方例子

意思人家也给了,就是从15秒位置处加载5秒,好厉害啊。

duration就是加载的时长。不必再用索引进行截断了。

下面证明上面的说法:画图,时长直接可得

>>> y.shape[0]/sr 5.0

代码在此,时间轴懒得改/写了

Y,sr=librosa.load(filename) pad=np.zeros(shape=15*sr) >>> for i in range(pad.shape[0]): pad[i]=np.nan plt.plot(np.hstack((pad,y)),'r-.') plt.show()

 

另外还有获取时长的函数:

get_duration(y=None, sr=22050, S=None, n_fft=2048, hop_length=512, center=True, filename=None)

指定y和sr肯定可以啊,自己也可以计算,或者指定S和sr,当然参数一定要保持一致,n_fft和hop

当然也可以只指定filename,其实这个里面肯定有读取文件这一步,至少有读取文件信息,时长、采样等

>>> # Or compute duration from an STFT matrix >>> y, sr = librosa.load(librosa.util.example_audio_file()) >>> S = librosa.stft(y) >>> librosa.get_duration(S=S, sr=sr) 61.44 >>> # Or a non-centered STFT matrix >>> S_left = librosa.stft(y, center=False) >>> librosa.get_duration(S=S_left, sr=sr) 61.3471201814059

这个函数作用不大,不是啥关键函数。

 

另外有相关问题可以加入QQ群讨论,不设微信群

QQ群:868373192 

语音深度学习群

最新回复(0)