首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何正确使用pitch_shift (librosa)?

如何正确使用pitch_shift (librosa)?
EN

Stack Overflow用户
提问于 2019-08-05 16:24:37
回答 1查看 4.1K关注 0票数 1

我尝试使用来自librosa的librosa和pitch_shift。我录下了我的声音,并使用了以下代码:

代码语言:javascript
运行
复制
sampling_rate= 44100
y, sr = librosa.load(directory, sr=sampling_rate) # y is a numpy array of the wav file, sr = sample rate

y_shifted = librosa.effects.pitch_shift(y, sr, n_steps=4, bins_per_octave=24)  # shifted by 4 half steps
librosa.output.write_wav(directory, y_shifted, sr=sampling_rate, norm=False)

效果很好-差不多。

我在我的新声音里听到了一些噪音(在pitch_shifting之后)

有什么需要我用的吗?

不换班:

https://vocaroo.com/i/s1qEEDvzcUHN

使用shift (n_steps = 4):

https://vocaroo.com/i/s0cOiC0cFJSB

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-05 17:01:22

俯仰移位通常涉及STFT,通常是沿着频率轴的幅度谱的偏移,然后通过格里芬-林-algorithm (关于格里芬-林姆工作方式的Quora-解释)进行信号重建。

问题是,当我们改变星等光谱时,我们就是这样做的,而忽略了相位!Griffin试图找到一个合理的解决方案,以找到正确的相位重构时,时域信号,但它往往只是:一个合理的解决方案,而不是一个完美的。所以你才会听到金属的刺耳声。这就是你的信号不完全正确的相位(也称为“相位”)。

我相信你对librosa的函数调用是完全正常的。这可能不是地球上最伟大的实施。让PyRubberband试一试。它基于橡胶带 (一个C++库)并有一个好名声

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57362543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档