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

Asp*_*ger 0 javascript web-audio-api

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

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

编辑:是否也playbackRate改变了音调,但浏览器应用了某种校正?我想可能是这样的。如果是这种情况并且可能的话,我必须禁用它。

cwi*_*lso 5

样本不存在“简单”的音高变换。有很多方法可以在不改变播放速率的情况下改变音调 - 粒度重新合成、相移声码 - 但它们都不是微不足道的,而且没有一个被嵌入到 Web Audio API 中。(顺便说一句,多普勒正在被删除,因为它非常hacky。)playbackRate实际上是样本运行的速率 - 这将影响“速度”和明显的音调(音调样本的)。

我在输入效果演示中实现了音高转换(粒度重新合成)效果- 使用jungle.js 库 - 但这并不是一件简单的事情。HTML 的<audio>元素会进行拉伸,但没有指定算法,这使得它可以有多种解释。