ffmpeg:aphasemeter,测量的含义

ffmpeg:aphasemeter,测量的含义

我非常努力地在网上查找有关相位和立体声成像的信息,但信息相当模糊。有人要求我将音轨的立体声图像保持在 +0.5 和 +1.0 之间,但在音频工程领域,我总是听说立体声图像范围为 180 度,分为“中心 90 度范围、左 45 度范围和右 45 度范围”。除了“不要让相位差太大”之外,我不太明白他们到底要求我什么,这不太具体,尤其是在我听到 0.5 和 1.0 这个数字之后。

因此,我记得,除了 DAW 和测角仪插件之外,ffmpeg 的 aphasemeter 过滤器提供 1 到 -1 之间的值,其中 1 表示完全同相(单声道),而 -1 表示完全异相(我猜左声道和右声道正好相反)。这看起来像是要求我遵守的“+0.5 和 +1.0 之间”的要求。

  1. 相位计的输出是在什么时间跨度内计算的?使用什么时间跨度是合理的?像 RMS 一样测量 300ms 是否合适?或者 50ms,因为那是 20Hz 信号(最低可听见的声音)完成一个完整周期的时间?
  2. 这个介于 -1 和 1 之间的数字是如何计算的?
  3. aphasemeter 的相位检测选项接受 90 到 180 之间的参数:这与 -1 和 1 有何关系?
  4. 这与“中心 90、左 45 和右 45”有何关系?您在所有相位插件中都看到过这种关系。我知道硬声像左(信号完全左移,右声道静音)将位于“中心 90 范围”的边缘,测角仪将以 45 度角向左倾斜。这会导致相位计输出 0.5 吗?编辑:不,它不会导致相位计输出 0.5 吗?编辑:不,我曾尝试丢弃音频的右声道并使用相位计评估相位,但它不是恒定的。我还尝试使左右声道相同:输出始终为 1.0,这是预期的,但当我使左右声道完全相反时,我并不总是得到 -1.0 作为输出(实际上我很少得到它),但输出值始终为负。我真的不明白 aphasemeter 输出的是什么

感谢您阐明这些数字的真正含义。

答案1

音频由样本组成。48000 Hz 立体声流在音频的每一秒中每个声道(左声道和右声道)都有 48000 个样本。但是,这些样本被分成几帧;典型的帧大小为 1024 个样本(每个声道),但不同的编解码器使用不同的大小。这些样本可能具有不同的位深度,并且是整数或浮点值。

aphasemeter 过滤器的作用是首先将源流转换为浮点数,以便每个样本值介于 +1 和 -1 之间。它还将其转换为立体声流。这意味着所有其他通道布局(单声道、5.1 等)都重新矩阵化为立体声。然后,对于一帧中的每对样本,它将计算

   left * right * 2
-----------------------
left*left + right*right

这是一对样本的相位差。如果分母为 0,则相位差为 1。一帧中所有样本对的平均相位就是该帧的相位差测量值。

至于这些值如何与角度相对应,这个答案可能会有用:https://dsp.stackexchange.com/a/10916

相关内容