谁能告诉我为什么当我在 openal 中提高音高时音量会变低?音调越高,音量越小......
alSourcef(source, AL_PITCH, 1.2f);
alSourcef(source, AL_GAIN, 1.0f);
使用此设置,音量仍然非常非常低。有没有办法欺骗它使增益高于1?也许这与距离有关?
仅供引用,源是从 AVrecorder 录制的语音,所以我无法将源音量设置得更高。
最佳答案
Afaik 幅度随音高变化而变化是不正常的。当音高设置为高于原始时,当乘数不完整时,openal 使用某种插值通过乘数 (afaik) 加速采样。
可能有一些罕见的幅度发生变化的情况,但对于具有大量频率内容的较长样本可能不会(因为大多数自然声音往往是这样)
我们认为振幅取决于音高的响度,请参阅 equal loudness contour
也许这种效果可以解释您的问题?
作为解决方法,您可以降低正常音调声音的增益,并为更高音调的声音使用更高的增益。
或者在附加/传递到缓冲区之前将源数据乘以乘数。
关于audio - 开放音高变化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3908926/