WebAudio API:更改样本的音高(例如mp3)

时间:2015-12-27 00:38:30

标签: javascript web-audio

我想我可以使用playbackRate拉伸样本但是如何设置音高?我试图在不使用任何库的情况下实现这一目标。

我在规范中发现了一些关于多普勒音高效应的信息,但除此之外,我找不到任何与我的目标真正相关的信息。只是一个简单的音高变换,这甚至可能吗?如果是,那怎么样?

修改:可能是playbackRate也改变了音调,但是浏览器会应用某种修正吗?我想可能就是这种情况。如果是这种情况,我必须禁用它。

1 个答案:

答案 0 :(得分:4)

样本没有“简单”的音高变化。有很多方法可以在不改变播放速率的情况下改变音高 - 粒度再合成,相移声编码 - 但它们都不是微不足道的,并且没有任何方法可以融入Web Audio API。 (顺便说一下,多普勒正在被移除,因为它很糟糕。)playbackRate实际上是样本运行的速率 - 这将影响“速度”和表观音调(音调样本)。

我在Input Effects demo中使用jungle.js库实现了音高变换(粒度再合成)效果 - 但这不是一件容易的事。 HTML的<audio>元素进行拉伸,但没有指定算法,这使得它可以解释很多。