Windows Studio Effects 概述(预览版)
Windows Studio Effects 可在配备兼容神经网络处理单元 (NPU) 的特定 Windows 设备上,利用 AI 为设备摄像头(目前支持前置摄像头)或内置麦克风应用特殊效果。 NPU 支持的 AI 效果包括:
- 背景模糊
- 眼神交流
- 自动取景
- 语音聚焦
- 人像光效
- 创意滤镜
- 眼神交流提词器
AI 增强功能的 Windows Studio Effects 列表。
先决条件
- Windows 11,22H2 或更新版本(版本号不低于 22623.885)。
- 设备必须具有受支持的 NPU,并且硬件制造商必须选择在系统上安装 Windows 录音室效果驱动程序,为此功能提供支持。
Windows Studio Effects 如何与设备硬件配合使用?
Windows Studio Effects 利用 Microsoft 构建的 AI 模型,并针对带有神经网络处理单元 (NPU) 的设备进行编译/优化,可在减轻设备 CPU 和 GPU 负担的前提下,提供高保真、节能省电的 AI 效果,并在整个 Windows 生态系统中为任何兼容设备提供可靠的 Microsoft AI 体验。
Windows Studio Effects 为设备摄像头和麦克风提供了标准化的控制接口(内核流属性和 API)。 使用此控制接口,任何应用程序都可以:
- 了解效果是否受支持
- 根据需要打开或关闭效果
- 访问任何可用的元数据
效果在摄像头(或麦克风)的硬件级别应用,因此,打开 Windows Studio Effects 中的某种效果后,即使应用不知道该效果的存在,也会默认为所有使用摄像头的应用打开它。
请在 Windows Studio Effects 体系结构中了解此机制的详细信息。
如何在“设置”中控制 Windows Studio Effects
Windows Studio Effects 可以通过任务栏打开(如上图所示),也可以通过“设置”菜单进行控制。
- 打开“设置”>“蓝牙和其他设备”>“摄像头”,然后从“连接的摄像头”列表中选择,打开该摄像头的设置。
- 你将看到前置摄像头的显示预览,以及它下面列出的摄像头效果。
“摄像头设置”应用是 Windows 11 中的一项新功能,允许用户查看其系统中的所有摄像头,并从一组控件中按摄像头、用户或计算机选择首选的“默认”值。
“摄像头设置”应用不仅可以调整“亮度”和“对比度”等基本控件,还可以调整“背景模糊”和“眼神交流”等 Windows 录音室效果。
“摄像头设置”应用还支持通过摄像头制造商提供的配套应用进行扩展。 这些配套应用允许设备制造商提供用于调整摄像头设置的自定义用户界面,和/或自定义摄像头效果的额外控件(例如,摄像头制造商提供的“滑稽帽子”效果开/关按钮)。
集成式前置摄像头支持的 Windows Studio Effects 包括:
- 背景效果:支持两种模式
- 标准模糊 - 简单的高斯模糊效果。
- 肖像模糊 - 微妙的背景虚化效果。 根据设备功能,它可能是微妙效果或基于景深的模糊效果。
- 眼神交流:支持两种模式
- 标准 - 对从摄像头俯视屏幕的设备用户进行细微校正。 *不调整眼睛的左右移动。
- 提词器 - 更积极地纠正用户在阅读提词器内容时眼睛在屏幕上扫来扫去的情况。
- 自动取景:检测摄像头视野中的人物,并进行裁剪/变焦,使其保持在取景框内。
- 人像光效:提高在光线不足环境下视频中人像的光效质量,消除强屏幕光反射。
- 创意滤镜:用于添加一些趣味效果和眩光的视频滤镜。
注意
由于计算能力的限制,低容量 NPU 可能支持标准模糊,但不支持肖像模糊。 当设备同时支持标准模糊和肖像模糊时,用户界面会显示“背景效果”开/关按钮,并通过单选按钮让用户在“标准模糊”和“肖像模糊”之间进行选择。 当系统只支持标准模糊时,用户界面会显示“背景模糊”开/关按钮。 此外,低容量 NPU 可能支持“标准”眼神交流效果,但不支持“提词器”眼神交流效果,此时,用户界面会提供一个开/关按钮;但在支持的情况下,还会显示一个单选按钮,用于选择“提词器”效果。
集成式麦克风支持的 Windows Studio Effects 包括:
- 语音聚焦:一种麦克风效果,专为过滤背景噪音而设计,可确保视频通话时语音清晰。
Windows Studio Effects 体系结构
当选择为摄像头使用 Windows Studio Effects 时,Windows Studio Effects 软件包会整合到摄像头使用链的末尾。 这一过程是透明的,因此“真实”摄像头会被“复合”摄像头取代,“复合”摄像头包含摄像头的功能以及 Windows 录音室 AI 效果。 最终用户仍然只会看到“真实”摄像头,但现在可以通过该摄像头使用 Windows Studio Effects。
“真实”摄像头包含内核流 (KS) 属性,如亮度、对比度和 Microsoft 实现的其他属性,以及设备制造商 (OEM) 驱动程序实现的任何用户属性。
由于 Windows Studio Effects 始终是使用链中的最后一环,因此应用程序可以确定,如果为摄像头启用了 Windows Studio Effects,那么摄像头实现的背景模糊、眼神交流和自动取景 KS 属性将由 Windows Studio Effects 提供。
当摄像头未选择使用 Windows Studio Effects 时,访问摄像头的任何应用仅会看到“真实”摄像头的 KS 属性(亮度、对比度等)。
当摄像头选择使用 Windows Studio Effects 时,访问摄像头的任何应用都可以看到“真实”摄像头的 KS 属性,以及表示 AI 效果的 Windows Studio Effects KS 属性,如背景模糊、眼神交流等。
如果同一 KS 属性在使用链的较底层有第二个实现(例如,OEM 的 DMFT 也实现了背景模糊效果),该实现将保持关闭,因为模糊 KS 属性的默认值是关闭。 当为摄像头打开模糊时,Windows 录音室效果会在内部处理该请求,不会将其转发给其他组件(DMFT、AVStream 驱动程序等)。
此方法允许设备制造商(如 Dell 或 Lenovo 等 OEM)和 IHV(如 Intel、AMD 或 NVIDIA)在其 DMFT 中或直接在摄像头中实现自己的摄像头处理功能,然后再由 Windows 录音室效果在此基础上添加标准的 Windows AI 体验。
Windows Studio Effects 的应用集成
只要有应用程序使用 Windows API 启动摄像头流,Windows 就会设置内核流 (KS) 属性的当前值,使其与 Windows Studio Effects“摄像头设置”中指定的默认值相匹配,然后再将控制权移交给应用程序。 通过匹配“摄像头设置”中指定的默认值,摄像头将始终以已知状态启动。
与 Windows Studio Effects 集成时,应用程序可以:
- 始终接受系统默认值 - 用户在“摄像头设置”中确定基本设置(如亮度),然后直接应用此值,应用内不进行任何控制。
- 从系统默认设置开始,但用户可实时调整 - 用户可以在不更改系统默认设置的前提下,在使用应用时调整摄像头设置(如调整应用中的亮度滑块)。 用户可以选择保存应用内的摄像头设置,用于建立新的默认设置。
如果在启动流之前,应用程序向 KS 属性写入了值,而该属性也通过“设置”页面设置了默认值,则 Windows 会在启动流时跳过应用用户的默认值。 例如,如果用户的默认亮度设置为 60,但应用在启动流之前将亮度的当前值设置为 65,那么摄像头启动时,亮度将为 65,而不是 60。
注意
某些控制是应用体验不可或缺的一部分,因此该应用可能希望始终覆盖系统的默认设置。 例如,Microsoft Teams 会始终覆盖背景效果的系统默认设置。 无论用户是否在“摄像头设置”页面中全局启用了模糊功能,加入 Teams 中的通话时,用户都会看到“背景效果”控件,而在应用 UI 中选择的值将被应用。 在后台,Teams 可以智能地利用 Windows 录音室效果基于 NPU 加速的背景分割功能应用背景模糊/替换效果。
无论你的应用提供哪种体验,在应用内提供一个按钮/超链接来启动“摄像头设置”应用始终是个好主意。 可以通过此链接访问“摄像头设置”:ms-settings
可以使用此链接格式启动特定摄像头的“摄像头设置”:ms-settings:camera?cameraId=<symbolic link name in URI data-escaped format>
有关通过相机 API 与 Windows Studio Effects 交互的应用的完整代码示例,请参阅 Windows 相机 GitHub 仓库。
用于为特定摄像头调用“摄像头设置”的示例代码片段
// C# snippet for button click handler that will launch Camera Settings for specific camera device identified by symbolic link name
private async void Button_Click(object sender, RoutedEventArgs e)
{
// Hard coded for this example, one can use DeviceInformation and/or
// MediaCapture VideoDeviceController.Id to get the symbolic link
string symlink = "\\?\USB#VID_04F2&PID_B6B6&MI_00#6&12293a26&1&0000#{e5323777-f976-4f5b-9b55-
b94699c46e44}\GLOBAL";
bool result = await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:camera?cameraId=" +
Uri.EscapeDataString(symlink) ));
}
这适用于 Windows 11 22H2 及更新版本。 在旧版本的 Windows 11 上,调用此 ms-settings
链接会将用户带到“摄像头设置”的根页面。
应用其他摄像头设置
将摄像头的流设置为已知状态后,应用程序随时可以进行查询,并应用进一步配置,根据需要向摄像头写入新的 KS 属性值。 如果用户使用的应用无法知道特定的摄像头控件设置(如亮度或背景模糊),用户在“摄像头设置”中指定的控件设置将始终适用于该应用。 但是,如果用户使用的应用能够获取这些控件设置,那么该应用就能够在使用摄像头时,更改当前的控件设置值。
应用程序不被允许更改默认的控件设置值。 此预防措施可确保应用无法更改使用摄像头的其他应用的行为。 默认值只能通过“摄像头设置”应用更改。
在 Windows 11 的 22H2 版本中,如果用户拥有支持 Windows Studio Effects 的设备,可以直接通过“摄像头设置”页面打开/关闭效果,同时还可以对摄像头硬件做出其他常用设置。
Windows 硬件制造商指导
原始设备制造商 (OEM) 如果正在设计支持最新 Windows 11 功能的硬件,可以选择支持 Windows Studio Effects。
故障排除
Windows 应用中的应用内功能可能与 Windows Studio Effects 应用于摄像头的 AI 效果相重叠(例如,背景模糊)。 如果“摄像头设置”应用未能管理摄像头效果的状态,那么应用内功能就会失去同步,从而导致用户体验出现问题。
如何避免重叠效果
假设有一款应用提供背景模糊功能,在其运行的系统上,摄像头也支持由 Windows Studio Effects 和“摄像头设置”应用所应用的背景模糊 KS 属性。
如果用户在 Windows“摄像头设置”应用中打开了背景模糊,则摄像头启动时,将应用摄像头提供的效果。 然后,应用内的模糊控件要么显示为关闭(尽管模糊效果明显处于打开状态),要么显示为打开,出现双重模糊(摄像头的模糊效果加上应用的模糊效果),造成资源浪费。
在受支持的设备上运行时,我们建议直接利用 Windows Studio Effects 提供高保真效果,同时还可以降低对系统资源和电池使用时间的影响。 这样,当客户与应用内控件交互时,就会直接与摄像头本身的 Windows Studio Effects 功能同步。 有关如何设置同步并避免重叠问题的步骤,请参阅上方“应用与 Windows Studio Effects 的集成”部分。
如果应用运行在支持 Windows Studio Effects 的设备上,但希望采用由其他第三方服务提供的效果(或完全不采用效果),则应关闭与之冲突的 Windows Studio Effects。
要关闭 Windows Studio Effects:
- 检查是否存在重叠的 KS 属性。
- 如果存在重叠的属性,请在启动摄像头时将其设置为关闭。
例如,如果希望确保关闭摄像头级别的模糊功能,请检查摄像头是否提供 KSPROPERTY_CAMERACONTROL_EXTENDED_BACKGROUNDSEGMENTATION
,如果是,请确保将其设置为 KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_OFF
。
Microsoft 致力于提供负责任的 AI 实践
为了确保 Windows Studio Effects 是他们负责任地构建的可信安全操作系统,Microsoft 使用了在整个开发过程中通过公平性测试广泛评估、指导和训练的模型。
此外,创意滤镜使用的数据集包括了各个年龄、性别、种族的用户的 3,000 幅手绘肖像,每幅画像都遵循基于用户偏好研究制定的风格指南。 对于 Teleprompter 和创意滤镜,我们认真考虑了适用于具有独特眼部特征的用户的产品功能。