我需要帮助找出如何使用librosa package将样本从0.25秒拉伸到1秒。我认为librosa.effects.time_stretch是一个这样做的函数,但它不是拉伸信号,而是做其他事情。应用它或其他librosa或numpy函数(或pydub)的正确方式是什么?
这是我使用16 KHz采样率的尝试,即在0.25秒的时间周期内提供4K样本。作为输出,我需要在整个1秒的持续时间内使用16K个样本,保持采样率不变。
import numpy as np, librosa
x = np.sin(np.linspace(-np.pi, np.pi, 4000)) # wav sample
y = librosa.effects.time_stretch(x, rate=4000/16000)
plt.plot(x) # plotted in blue
plt.plot(y) # plotted in orange这将产生以下图表:

值得注意的是,正弦信号没有拉伸。我以sin()为例。其目的是拉伸语音音频wav文件,其中的分析功能未知。
发布于 2018-01-01 02:30:54
我认为time_stretch应用了一些处理来试图保持音频的音调。你想要的可能是
y = librosa.core.resample(x, 4000, 16000)这就给出了这个图:

https://stackoverflow.com/questions/48038800
复制相似问题