Audio-Tapered 音量控件

IAudioEndpointVolume 接口管理音频磁带的音量控件。 这些控件非常适合显示音量滑块的 Windows 应用程序。 对于绑定到音频磁带音量控件的音量滑块,滑块位置的每个更改都会产生与滑块行驶距离成正比的感知响度的变化。 对于特定的旅行距离,无论滑块运动在滑块的下部、上部或中间部分移动,感知到的音量增加或减少的量大致相同。 感知到的响度与音频信号功率的对数大致呈线性变化。

术语 音频减量器 最初称为强力计中抵抗元素的磁带形状,用作音频电子设备中的音量控制。 音频磁带抵抗元素在零音量位置最宽,最大音量位置最窄。 强量计控制设备通过扬声器播放的音频信号的电压级别。 变速器旨在生成一个近似线性关系,在强力计擦除器的位置与扬声器的感知响度之间产生近似线性关系。 振动器位置和扬声器的电压之间的关系是非线性的。

相比之下,具有线性锥线的抗拒元素在强量计擦除器的移动范围内具有统一的宽度。 因此,扬声器的电压随擦除器位置的线性变化。 刷器位置和响度之间的关系是非线性的。

同样,显示音量滑块的 Windows 应用程序定义滑块位置与扬声器的输出信号级别之间的关系。 实际上,关系可以是线性磁带或音频磁带。

下图显示了滑块位置到输出电压的映射,以及线性磁带音量控制感知到的响度。

线性磁带卷控制输出图

在上图左侧,当音量滑块从最小位置(标记为 Min)移动到其最大位置(标记为最大值)时,音频数字到模拟转换器(DAC)的输出电压级别呈线性增长。 垂直轴上的标签 VFS 表示全比例 DAC 输出电压。

但是,感知到的响度与音频信号的对数大致不同,如上图右侧所示。 因此,滑块在接近最小设置的间隔内移动会导致感知到的响度变化相对较大,但滑块在接近最大设置的间隔内移动会导致感知到的音量变化相对较小。

在上图右侧,垂直轴的音量以分贝(dB)测量,相对于全比例功率设置(以 0 分贝为单位)。 响度曲线在负无穷大处与垂直轴相交,但关系图中只显示从 0 分贝到 –96 分贝的部分。 仅显示曲线的这一部分的决定有点任意,但 –96 分贝方便地表示相对于全阶功率的下一到最低输出级别的功率。 此值计算为 20log₁₀(1/65535)。

由于滑块位置在上图中最小设置附近发生小变化会导致大声变化,因此用户可能会发现难以控制该区域的音量。 相对较小的滑块移动可将音量推送到所需级别或低于所需级别。 改进的音量控制将提供滑块位置和音量之间的更线性关系。

下图显示了滑块位置到输出电压的映射,以及音频磁带音量控制感知到的响度。

音频磁带音量控制输出图

如上图右侧所示,感知到的音量因滑块位置的变化而呈线性变化。 为使这种情况发生,DAC 电压必须随位置呈非线性变化,如图左侧所示。 随着滑块从最大设置向左移动,曲线以每小时 0 伏特的方式接近 0 伏。 最小滑块位置的电压非常小,但它可能不完全为零。

IAudioEndpointVolume 接口中的以下方法使用以分贝为单位的卷设置:

这些方法在音量设置和感知到的音量设置之间产生近似线性关系。 这些方法管理的音量控制以分贝为单位的音量范围取决于音频终结点设备。 若要确定特定设备的卷范围,请调用 IAudioEndpointVolume::GetVolumeRange 方法。

相比之下,IAudioEndpointVolume 接口中以下方法的卷设置遵循卷范围的更温和的曲线:

在 Windows Vista 中,这些方法使用在上图中显示的音频带曲线与线性磁带曲线之间的中间曲线。 请注意,曲线的形状可能会在 Windows 的未来版本中发生变化。 上述列表中的前四种方法将卷级别表示为 0.0(最小卷)到 1.0(最大卷)的规范化值。 对于列表中的最后两种方法,请调用 IAudioEndpointVolume::GetVolumeStepInfo 方法以获取卷范围中的步骤数。

以下接口使用线性磁带曲线进行卷设置:

有关这些接口的详细信息,请参阅 会话卷控制。 有关不同版本的 Windows 中的音量范围和默认音量级别的信息,请参阅 默认音频音量设置

卷控件