1

我需要帮助弄清楚如何使用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

产生以下情节:

在此处输入图像描述

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

4

1 回答 1

3

我认为 time_stretch 应用了一些处理来尝试保持音频的音高。你想要的大概是

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

这给出了这个情节:

在此处输入图像描述

于 2017-12-31T18:30:54.093 回答