Python | librosa:如何通过添加更多点来及时拉伸信号

时间:2017-12-30 23:36:44

标签: python-3.x time signal-processing wav librosa

我需要帮助弄清楚如何使用librosa package拉伸0.25到1秒的样本。我认为librosa.effects.time _ stretch是一个这样做的函数,但它不是拉伸信号,而是做其他事情。应用它或其他librosanumpy函数(或pydub)的正确方法是什么?

这是我尝试使用16 KHz采样率,即在0.25秒的时间周期内给出4K样本。作为输出,我需要16K样本持续1秒的持续时间,保持采样率恒定。

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

产生以下图:

enter image description here

值得注意的是,正弦信号未被拉伸。我用sin()作为例子。目的是拉伸语音音频wav文件,其中分析功能未知。

1 个答案:

答案 0 :(得分:1)

我认为time_stretch会应用一些处理来尝试保留音频的音高。你想要的可能是

y = librosa.core.resample(x, 4000, 16000)

给出了这个情节:

enter image description here