音频编程环境中的音高和速度是一回事吗?

时间:2010-05-05 17:43:02

标签: audio performance openal pitch

音高意味着“感知频率”。尼斯。但是当我在OpenAL中使音调非常低时,声音的播放次数会延长很多倍。如果我把它做得很高,声音会很短,但频率很高。对我来说,从逻辑上说是变慢或变速的结果。

或者是音调!=速度?

3 个答案:

答案 0 :(得分:3)

Paul R有一个很好的答案,但我想稍微扩展一下。如果您将声音视为一系列脉冲(并且它的类型),那么较高的音调将具有每秒更多的脉冲(更高的频率)并且更低的音调将具有更少的(更低的频率)。要降低现有声音的音高,您必须将这些脉冲扩散(使它们彼此远离)。因此,声音的持续时间会增加,因为您没有减少脉冲数量,您只是将它们分开(每秒更少)。如果你试图增加音调,则会发生相反的情况:脉冲更接近,从而使声音的持续时间更短。

如果您希望持续时间保持不变,无论记录音高的变化如何,您都必须抛弃信息(较低音调)或制造信息(较高音调)。这是花哨处理的用武之地。什么可以安全丢弃?什么可以安全地复制或构建?

答案 1 :(得分:1)

pitchrate组合在一起相对容易,因为您需要做的就是改变播放样本的速度。如果您以预期速度的一半播放样本,那么音高将减半并且声音将以半速出现(考虑以错误速度运行的磁带卡座)。相反,比预期更快地播放样本将增加音高并使一切更快。

可以独立地改变pitchrate,但这需要更多的处理,通常使用某种分析和重新合成算法(例如PSOLA演讲)。

答案 2 :(得分:0)

使用您在OpenAL中描述的算法,音高= f(速度),速度= f'(音高)。

可以使用不同的算法在某种程度上独立地改变这些参数。有很多算法可以做到这一点。

所讨论的算法可以存在于频域(声码器,频域卷积)或时域(PSOLA,WSOLA,扩展WSOLA)或同时存在(使用时域方法的混合模型)用于音调部分的瞬态部分和声码器方法。)