音高意味着“感知频率”。尼斯。但是当我在OpenAL中使音调非常低时,声音的播放次数会延长很多倍。如果我把它做得很高,声音会很短,但频率很高。对我来说,从逻辑上说是变慢或变速的结果。
或者是音调!=速度?
答案 0 :(得分:3)
Paul R有一个很好的答案,但我想稍微扩展一下。如果您将声音视为一系列脉冲(并且它的类型),那么较高的音调将具有每秒更多的脉冲(更高的频率)并且更低的音调将具有更少的(更低的频率)。要降低现有声音的音高,您必须将这些脉冲扩散(使它们彼此远离)。因此,声音的持续时间会增加,因为您没有减少脉冲数量,您只是将它们分开(每秒更少)。如果你试图增加音调,则会发生相反的情况:脉冲更接近,从而使声音的持续时间更短。
如果您希望持续时间保持不变,无论记录音高的变化如何,您都必须抛弃信息(较低音调)或制造信息(较高音调)。这是花哨处理的用武之地。什么可以安全丢弃?什么可以安全地复制或构建?
答案 1 :(得分:1)
将pitch
和rate
组合在一起相对容易,因为您需要做的就是改变播放样本的速度。如果您以预期速度的一半播放样本,那么音高将减半并且声音将以半速出现(考虑以错误速度运行的磁带卡座)。相反,比预期更快地播放样本将增加音高并使一切更快。
你可以独立地改变pitch
和rate
,但这需要更多的处理,通常使用某种分析和重新合成算法(例如PSOLA演讲)。
答案 2 :(得分:0)
使用您在OpenAL中描述的算法,音高= f(速度),速度= f'(音高)。
可以使用不同的算法在某种程度上独立地改变这些参数。有很多算法可以做到这一点。
所讨论的算法可以存在于频域(声码器,频域卷积)或时域(PSOLA,WSOLA,扩展WSOLA)或同时存在(使用时域方法的混合模型)用于音调部分的瞬态部分和声码器方法。)