4

音高的意思是“感知频率”。好的。但是当我在 OpenAL 中将音调调得很低时,声音的播放时间会延长很多倍。如果我把它调得很高,声音会很短,但频率很高。对我来说,从逻辑上讲,是变慢或变快的结果。

还是音高!=速度?

4

3 回答 3

3

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

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

于 2010-05-05T18:38:14.080 回答
2

pitch改变和组合起来相对容易rate,因为您需要做的就是改变播放样本的速率。如果您以预期速率的一半播放样本,则音高将减半,声音将以一半的速度发出(想想磁带机以错误的速度运行)。相反,以比预期更快的速度播放样本会增加音调并使一切变得更快。

可以独立地进行变化pitchrate但是这样做需要更多的处理,通常使用某种分析和重新合成算法(例如语音的 PSOLA)。

于 2010-05-05T17:54:10.140 回答
0

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

可以使用不同的算法稍微独立地改变这些参数。有多种算法可以做到这一点。

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

于 2015-09-20T19:32:29.460 回答