下载本文的PDF版本 PDF

社会感知

视频会议软件有一天会对谁在说话做出反应吗?

为下一代通信服务建模人机交互

James L. Crowley,INRIA Rhône-Alpes

一个场景:Bob主持会议

Bob管理着一个设计和制造小部件的团队。生活本可以很美好,但Bob的团队分布在三个地点,位于三个不同的时区。Bob过去经常积累大量的飞行里程来参加会议。然而,最近,商务旅行已经演变成一种有损人格、浪费的苦差事。因此,Bob投资了一个高带宽视频通信系统,以减少商务旅行。算上直接成本,该系统本应在三个月内收回成本。然而,存在一个问题。

Bob的视频会议系统汇集了多达16个摄像头的视图,形成一个四乘四的图像马赛克,可以由多达16个视频通道显示。摄像头是静态的,因此会议参与者必须将自己定位在图像的中心。当然,人们并不小心,所以经常只有一部分脸出现在图像的边缘。每个站点的一个摄像头都对准了白板,但永远不清楚哪个白板在哪里。其他摄像头呈现了个人素描板的俯视图,参与者可以在上面绘画,但永远不清楚谁在绘画,或者他们是在说明一个观点还是仅仅为自己做笔记。音频是多达16个麦克风的组合,所有麦克风同时传输。大多数会议的前半部分都花在“摆弄系统”上。对话经常被诸如“等一下,我调整一下摄像头让你看到”之类的语句打断。当你将生产力损失考虑在内时,该系统今年不太可能收回成本。

信息技术是自闭的

通信和信息技术的成本持续呈指数级下降,似乎能够实现大量且多样化的服务,以增强人与人之间的互动。此类服务的示例包括

这是一个开放式的集合,仅受我们想象力的限制。不幸的是,尽管存在支持性通信技术,但这些服务中没有一项进入指数级增长的良性循环。

使用信息技术增强人与人之间的互动目前是不切实际的,因为存在中断问题。信息和通信技术是自闭的。它们不了解互动人类所扮演的社会角色,没有能力预测适当或不适当的服务行为,并且对不适当的服务行为对活动造成的中断不敏感。中断使得信息和通信服务在许多应用中变得不切实际。

Bob想要什么:情境感知会议工具

当他购买系统时,Bob想象他购买的是一个工具,它知道何时在摄像头和麦克风之间切换,以呈现当前发言人的视频图像和声音。他期望图像能够完美地居中于每个发言者的面部,并且可以在白板视图、绘图板视图和多人同时发言时的小组视图之间轻松切换。他甚至想象他可以使用视频记录作为会议纪要。

不幸的是,这种音频和视频的自动录制需要理解会议参与者所扮演的角色。例如,会议主持人确保会议遵循议程并专注于会议的目标。当主持人打断发言者时,即使其他人同时在说话,参与者也必须将注意力转向主持人。主持人将发言权交给参与者,以便他们可以向其他人表达信息。“发言权”的拥有者是应该向其他人展示的发言者。当他或她直接对会议讲话时,其他参与者应该看到他或她的脸。当发言者将注意力转向白板或素描板时,参与者应该看到素描板。当发言者被问题打断时,参与者应该同时看到发言者和提问者的视图。当两位没有发言权的听众进行简短评论时,系统不应通过将他们的私下谈话传输给所有其他参与者来中断会议。当系统正常运行时,它应该自动组成一系列视频镜头,这些镜头可以作为会议的视听“记录”。甚至可以使用离线语音识别来标记这些镜头的Topic,以便可以单独调用它们,而无需滚动浏览整个会议记录。所有这些都应该在会议参与者无需任何思考或干预的情况下发生。

为了给Bob提供他梦想中的系统并为他的公司省钱,Bob的视频会议系统需要了解会议期间正在发生的事情。这种理解被称为情境感知。本文提出了一个概念框架和一个软件模型,用于情境感知的人类活动观察。我们在INRIA(法国国家信息与自动化研究所)Rhône-Alpes开发的框架的核心组件是一个情境模型,它充当一个非线性脚本,用于解释人类当前的动作并预测服务相应的适当和不适当的动作。该框架使用概念层次结构组织交互观察:场景、情境、角色、动作和实体。

以下部分概述了该理论的概念框架。接下来是一个非破坏性服务的分层架构提案。在该层中,我们提出了一个基于组件的架构模型,该模型使用来自自主计算的概念来提供对人类活动的观察,该观察能够稳健地适应环境的变化。

人类活动的情境化观察

大多数人类社会都发展并完善了一种描述人类行为和社会互动的艺术形式:戏剧。戏剧可以用作社会感知的人类活动观察的丰富概念来源。

戏剧制作以剧本的形式提供了社会互动的模型。制作根据角色组织一组演员的动作,这些角色结构化为一系列场景,而场景又由一系列情境组成。角色不仅仅是一组台词。角色定义了一个允许动作的空间,包括对话、动作和情感表达。观众通过使用社会刻板印象识别角色并将这些角色与个人社会经验联系起来来理解制作。

以类似的方式,日常人类行为和互动可以在个人扮演角色的情境中观察和描述。根据活动的不同,动作和互动可能会或多或少地受到对共享剧本的隐含遵守的约束和限制。偏离剧本被认为是不礼貌的,并且经常会引起冲突甚至终止互动。一些活动,例如课堂教学、正式会议、购物或在餐厅用餐,都遵循高度结构化的剧本,这些剧本将个人动作约束为高度可预测的序列。其他人类活动发生在缺乏明确定义的剧本的情况下,因此可预测性较差。我们建议,当存在刻板印象的社会剧本时,它可以用于结构化观察并指导服务的行为以避免中断。

戏剧和生活之间存在一个重要的区别。戏剧剧本由一系列固定的情境组成。现实生活的约束要少得多。对于许多活动,情境形成一个网络而不是一个序列,并且经常表现出循环和非确定性分支。观察人类活动的复杂性和难度与情境的互连程度有关。

词汇表

语境
事物存在或发生的并且可以帮助解释它的情境; 1 可以用来表征情境的任何信息。
场景
对未来可能发生的动作或事件的描述;剧本或电影中角色和事件的书面计划; 1 用于建模人类活动的由扮演角色的实体之间的关系表达的情境网络。 2
情境
在特定时间和地点发生的事情和存在的条件集合; 1 一组关于分配给角色的实体的关系的谓词表达式。 3
关系
对一个或多个扮演角色的实体的属性的谓词测试。
角色
从观察到的实体集合中选择实体的函数。
演员
可以自发地采取行动来改变当前情境的实体的角色。
道具
不能自发地采取行动来改变当前情境的实体的角色。
  1. 剑桥在线英语词典; http://dictionary.cambridge.org
  2. Coutaz, J., Crowley, J. L., Dobson, S., Garlan, D. 2005. 语境是关键。《通信》(关于消失的计算机的特刊)48(3): 49-53。
  3. Brdiczka, O., Maisonnasse, J., Reignier, P. 2005. 交互组的自动检测。《国际多模式交互会议》(ICMI '05),意大利特伦托(10月)。

用于观察活动的概念框架

将戏剧概念转化为软件需要形式化表达。为了有意义,这种形式化表达最终必须以真实系统的程序和动作为基础。在本节中,我们提出了一个概念层次结构定义,用于观察人类活动,有时称为语境模型1 然而,语境是一个高度超载的术语,对不同的人意味着不同的事物。为了避免混淆,本文将用于观察活动的模型称为场景

在常用用法中,情境的含义源于事物相对于其周围环境的放置方式——例如,在位置和动作方面。在我们的例子中,情境的定义需要两个方面:感知和动作。感知是指感知和识别情境的能力;动作是指系统对当前情境做出反应的方式。Bob理想的视频会议系统将解释来自摄像头和麦克风的信号,以确定谁在扮演主持人的角色,谁当前正在发言或提问,然后将使用此信息在参与者的可能视图之间切换。

情境是状态的一种形式。情境表示由扮演角色的演员之间的关系定义的活动状态。情境的变化会触发系统的动作,例如更改当前摄像头或麦克风,或启用面部跟踪以保持摄像头居中于会议参与者。当Bob系统中的发言人指出投影幻灯片上的信息时,系统应从呈现发言人切换到呈现幻灯片。

关系是具有一个或多个参数的真值函数(谓词)。关系的真值取决于机器感知系统可以观察到的属性。一元关系对单个实体的某些属性或属性集应用测试。二元和高阶关系测试多个实体属性的相对值。示例包括空间和时间关系(在前面、旁边、高于等),或其他感知属性(更轻、更绿、更大等)。关系测试已分配给角色的实体的属性。

角色是实体类别的抽象概括。角色类别通常基于类别中的实体可以采取的动作(演员)或可以启用的动作(道具)来定义。角色不是实体的内在属性,而是系统分配给实体的解释。那么角色分配过程如何从可用实体中选择呢?有些人建议将此过程视为过滤器。2 在这种观点中,过滤器充当基于实体属性对实体适用性进行排序的函数。最合适的实体赢得角色分配。

该框架中最低级别的概念是实体和属性。属性是指任何可以观察到的值,或从观察中推断出的值。实体是属性的相关集合。这种唯我论的观点承认系统只能看到它知道如何看到的东西。同时,它回避了与如何定义对象和类概念相关的存在困境。在这种观点中,椅子是可以用作椅子的任何东西,而与其表面形式无关。这两个概念的更正式定义植根于稍后描述的软件架构模型中。属性和实体的操作定义基于用于观察活动的软件组件。

用于观察活动的软件架构

我们构建了几个情境感知系统的示例,这些系统为人类与人之间的互动提供信息和通信服务。我们的系统使用分层架构模型,如图1所示。在最低层,服务对世界的看法由物理传感器和执行器的集合提供。这对应于传感器-执行器层。该层依赖于技术,并通过系统与世界交互的传感器和执行器的多样性来封装。该层的信息以传感器信号和设备命令的形式表示。

传感器信号和执行器之间的硬连线互连是可能的,并且可以提供硬件依赖且效用有限的简单服务。将服务与其底层硬件分离需要传感器-执行器层提供逻辑接口或标准API,这些接口或API以功能为中心且与设备无关。硬件独立性和通用性需要感知和动作的抽象。

感知和动作在比传感器和执行器更高的抽象级别上运行。虽然传感器和执行器在特定于设备的信号上运行,但感知和动作在环境状态方面运行。感知通过识别和观察实体来解释传感器信号。抽象任务以期望的结果而不是盲目执行的动作为表示。

对于大多数人类活动,可能存在无限数量可以观察到的实体,以及任何实体集的无限数量的可能关系。必须根据要提供的服务来确定适当的实体和关系。这是情境模型的作用,如上一节所述。情境模型允许系统集中感知注意力和计算资源,以便将活动的当前状态与适当的系统动作相关联。

服务指定一个由情境模型组成的场景,如刚刚描述的那样。场景以自上而下的方式确定要观察的适当实体、角色和关系,以启动(或招募)和配置感知-动作层中的一组组件。配置完成后,情境模型充当来自感知组件到服务的事件和数据的自下而上的过滤器。

感知-动作层

在感知-动作层,我们为用于感知和动作的软件组件提出了一个数据流过程架构。3,4,5 基于组件的架构由通过连接器连接的自描述功能组件组成。6 这种架构非常适合组件的互操作性,因此提供了一个框架,多个合作伙伴可以通过该框架探索特定组件的设计,而无需重建整个系统。

在感知-动作层内,我们提出了三个不同的子层,如图1所示:模块、组件和联合体。每个层内的组件都根据下层中的组件定义。每个层都提供适当的通信协议和配置原语集。以下描述了每个层内的组件。

模块

模块是自描述组件,正式定义为应用于特定类别数据或事件的同步转换,如图2所示。模块通常 没有状态。它们通过调用方法(或函数或子例程)来执行,并附带一个参数向量,该向量指定要处理的数据并描述如何应用转换。输出通常也通过写入流或通过将事件发布到其他模块或事件调度程序来完成。

模块返回一个结果,其中包括处理结果的报告。此报告中包含的信息示例包括经过的执行时间、对结果的置信度以及遇到的任何异常。

模块的一个示例是将RGB颜色像素转换为每个像素的标量值的过程,该标量值表示像素属于目标区域的概率。可以使用表示颜色直方图比率的查找表来定义这种转换。7 这种模块的常见用途是在图像区域内检测肤色像素,如图3所示。这种模块可用于在Bob的系统中查找人脸,以便引导摄像头保持每个人脸在图像中居中。

用于感知和动作的软件组件

架构中的第二层涉及感知和动作组件,它是模块的自主组件集合,由组件主管以循环方式执行。组件通过同步数据流和异步事件进行通信,以提供用于动作或感知的软件服务。

如图4所示,组件主管解释命令和参数,监督转换的执行,并使用组件的当前状态和能力描述来响应查询。来自模块的自批判报告允许组件主管监视执行时间,并调整下一个周期的模块计划,以便保持指定的服务质量,例如执行时间或跟踪的目标数量。例如,这种监视可用于通过选择N8个像素中的一个像素来降低处理分辨率,或选择性地删除被认为不感兴趣的目标。

图5显示了一个感知组件的简单示例。此组件接收彩色图像并生成肤色斑点的当前位置。标记为“肤色斑点跟踪器”的主管控制器调用并协调用于肤色检测、像素矩分组和跟踪的观察过程。此联合体为复合观察过程提供转换组件。肤色区域跟踪器为此联合体提供主管控制。

感知组件的模型。

图6显示了一个用于稳健感知组件的通用架构模型(编程模式)。使用此模型构建的组件实现递归估计过程以跟踪实体。用于这种估计的众所周知的框架是卡尔曼滤波器。在1997年6月在CVPR '97(计算机视觉和模式识别)上交付的“用于视频通信的面部多模式跟踪”中描述了用于跟踪面部的此架构的早期版本。9

跟踪经典地由三个阶段组成:预测、检测和估计。预测阶段将先前估计的一组目标的属性投影到当前时间的预测值。预测的目标状态被检测过程用来解释当前数据以定位每个目标。估计阶段更新跟踪目标的属性并编辑列表以考虑新的和丢失的目标。

在图6的模型中,这三个经典的跟踪阶段由识别阶段、自动调节阶段和通信阶段完成。在识别阶段,组件执行识别程序以解释单个实体或实体组。识别程序由用于类似Lisp的语言Scheme的轻量级语言解释器解释。10 在我们的实现中,此类程序可以是预先编程的,也可以在配置期间作为代码片段下载到组件。

除了识别之外,主管组件还提供执行调度、自我监视、参数调节和通信。主管还充当调度程序,以同步方式调用模块的执行。对于自我监视,组件应用其自身行为的模型来估计服务质量和对其输出的置信度。监视允许过程检测和适应由不断变化的操作条件导致的性能下降。它通过重新配置其组件模块和操作参数来实现这一点。监视还使过程能够提供对其能力和状态的符号描述。

体内平衡,或“内部状态的自主调节”,是在不受控制的环境中稳健运行的基本属性。当监视和控制处理以保持一定的服务质量时,组件是自动调节的。过程主管通过调整模块参数以最大化估计的服务质量来维持体内平衡。例如,处理时间和精度是跟踪过程的两个重要状态变量。可以通过基于优先级分配删除目标或通过更改某些目标的处理分辨率来维持服务质量指标,例如周期时间、目标数量或精度。

在通信阶段,主管可以响应来自其他组件的请求。这些请求可能会询问过程状态和过程能力的描述,或者它们可能会提供新识别方法的规范。主管充当可编程解释器,接收代码脚本片段,这些脚本片段确定过程执行周期的组成和性质以及过程对事件的反应方式。

感知组件的联合体

联合体11 是协作执行任务的独立组件的集合。我们设计了一个中间件环境,使我们能够动态地启动和连接不同机器上的组件。此环境提供了一个基于XML的接口,允许组件声明输入命令消息和输出数据结构,以及当前操作状态。组件之间存在三类通道用于通信:事件是通过联合体主管提供的发布-订阅机制进行通信的异步符号消息;在两个组件之间提供串行高带宽数据;请求是异步消息,用于请求某些过程变量的当前值。

Bob理想的视频会议系统是由感知组件的联合体提供的用户服务的一个很好的例子。图7显示了我们为欧洲IST(信息社会技术)FAME(促进多元文化通信的代理)项目构建的自动录制和通信系统。这样的系统可以用于为Bob理想的系统提供自动视听合成。在每个站点,都会组装一个组件联合体来检测有关会议参与者的信息,例如他们的位置、头部方向、语音事件和手臂运动,以及发言人正在讨论的幻灯片的变化。来自此联合体的事件通过角色分配组件进行过滤,以告知情境模型有关演员和道具的当前配置。当前情境决定了要传输的摄像头的选择和组合,以及随附的音频组合。

定义情境模型

指定场景的挑战之一是避免复杂性的自然趋势。在一系列实验中,我们开发了一种基于观察人类活动来定义服务场景的方法。我们的方法基于两个原则,并导致一个由六个阶段组成的设计过程。

原则1:保持简单。 在实际示例中,设计人员自然倾向于在情境模型中包含与系统任务并非真正相关的实体和关系。重要的是使用最少的关系集来定义情境,以防止系统复杂性爆炸。最好通过首先指定系统行为来获得这一点,然后为每个动作指定情境,并为每个情境指定实体和关系。最后,对于每个实体和关系,我们确定可以使用的感知组件的配置。

此原则背后的想法是从最简单的情境网络开始,然后逐渐添加新的情境。这有助于避免为不必要的实体定义感知组件。

原则2:行为驱动设计。 此原则背后的想法是从服务要采取的动作的规范驱动系统设计。构建情境模型的第一步是指定所需的服务行为。对于环境信息学,这对应于指定可以采取的动作集,并正式描述可以或应该采取此类动作的条件。对于每个动作,服务设计人员列出了一组可能的情境,其中每个情境是在环境中观察到的实体和关系的配置。情境形成一个网络,其中弧线对应于定义情境的实体之间的角色或关系的变化。弧线定义了对事件的反应。

这两个原则在由六个阶段组成的设计过程中表达。

阶段 1:将动作映射到情境。 系统要采取的动作提供了定义要识别的最少情境集的方法。从动作到情境的映射不必是一对一的。几种情境将导致相同的动作是完全合理的。但是,任何情境都只能有一个动作列表。

阶段 2:识别定义每个情境所需的角色和关系。 情境由一组角色和一组扮演角色的实体之间的关系定义。角色充当一种变量,以便由不同实体扮演的多个版本的情境是等效的。确定每个情境的最少角色集和实体之间所需的必要关系。

阶段 3:定义角色的过滤器。 定义对于实体或代理被分配到角色必须为真的属性,并设计相似性度量。使用它来对实体进行排序,并为每个角色选择最合适的实体。

阶段 4:定义用于观察的组件。 定义一组感知组件,以观察角色所需的实体并测量关系所需的属性。定义组件以将实体分配给角色并测量所需的属性。

阶段 5:定义事件。 情境的变化会生成事件。事件可能是实体分配给角色的变化或扮演角色的实体之间关系变化的结果。

阶段 6:实施,然后改进。 给定第一个定义,实施系统。通过寻找执行新动作所需的最小感知信息来适当地扩展系统。

情境图实现了一个有限状态机。当然,人类行为是从无限的动作集中提取的,因此永远无法完全通过有限状态机来预测。因此,我们的模型最适用于人类行为受良好定义的、普遍遵循的剧本约束的任务。讲座场景就是这样一项活动。

结论

情境模型是关于一组角色和关系的情境网络。角色是演员或道具的抽象类别。实体可以被解释为扮演角色,基于其当前属性。扮演角色的实体之间的关系定义了情境。这个概念框架为设计可以提供非破坏性信息和通信服务的软件服务奠定了基础。

对活动和交互的社会感知观察是非破坏性服务发展的关键要求。为了实现这一点,我们需要稳健的活动观察方法,以及自动学习活动而不会造成中断的方法。此处描述的框架和技术旨在作为这种观察的基础。

参考文献

  1. Dey, A. K. 2001. 理解和使用语境。《个人和普适计算》5(1): 4-7。
  2. Brdiczka, O., Maisonnasse, J., Reignier, P. 2005. 交互组的自动检测。《国际多模式交互会议》,意大利特伦托。
  3. Finkelstein, A., Kramer, J., Nuseibeh, B., eds. 1994. 软件过程建模和技术。Research Studies Press,John Wiley and Sons Inc.
  4. Rasure, J., Kubica, S. 1994. Khoros应用程序开发环境。在《计算机视觉和图像处理的实验环境》中,编辑:H. Christensen 和 J. L. Crowley,1-32。World Scientific Press。
  5. 克劳利,J. L. 1995. 反应式视觉过程的集成与控制。《机器人与自主系统》15(1)。
  6. 肖,M.,加兰,D. 1996. 《软件架构:新兴学科的视角》。普伦蒂斯·霍尔出版社。
  7. 施韦特,K.,克劳利,J. L. 2000. 使用颜色的鲁棒人脸跟踪。第四届IEEE国际自动人脸和手势识别会议,法国。
  8. 皮亚特,J.,克劳利,J. L. 2002. 在实时视频中使用通用对象跟踪器进行基于事件的活动分析。跟踪与监控性能评估会议 (PETS-2002),哥本哈根(六月)。
  9. 克劳利,J. L.,贝拉尔,F. 1997. 用于视频通信的面部多模态跟踪。《计算机视觉与模式识别会议论文集》:640-645。
  10. 卢克斯,A. 2003. 用于视觉系统的Imalab方法。国际视觉系统会议 (ICVS-03),格拉茨。
  11. 埃斯图布利耶,J.,库宁,P. Y.,贝尔卡蒂尔,N. 1997. 过程支持互操作性架构 (ICSP5),芝加哥。

致谢

这项工作得到了欧盟信息社会技术 (IST) 项目 FAME 和 IP CHIL 以及法国国家项目 RNTL/ProAct ContAct 的支持。这项工作是与 Joelle Coutaz、Gaetan Rey、Patrick Reignier、Dave Snowdon、Jean-Luc Meunier 和 Alban Caporossi 合作完成的。

JAMES L. CROWLEY 担任法国蒙博诺的 INRIA 罗纳-阿尔卑斯研究中心 GRAVIR 实验室主任。他担任格勒诺布尔国立理工学院 (INPG) 的教授职位,并在 l'ENSIMAG(国立高等信息与应用数学学院)教授计算机视觉、信号处理、模式识别、机器学习和人工智能课程。在过去的 25 年中,Crowley 编辑了两本书和五个期刊特刊,并撰写了 180 多篇关于计算机视觉和移动机器人的文章。他和他的合作者正在开发用于人类活动声学和视觉感知的技术,应用于交互式环境和新型人机交互形式。他拥有卡内基梅隆大学电气工程博士学位。

acmqueue

最初发表于 Queue 杂志第 4 卷第 6 期
数字图书馆 中评论本文





更多相关文章

维尼·多纳蒂 - 推动组织可访问性
在本文中,我们将探讨微软如何在整个组织中推动可访问性,并将仔细研究促进包容性文化的基本框架和实践。通过审视诸如意识建设、战略发展、可访问性成熟度建模等各个方面,我们旨在为开始可访问性之旅的组织提供指南。我们的想法是分享我们所学到的知识,希望您能够借鉴它,对其进行调整以适应您公司的宗旨,并以一种不仅仅是勾选框活动的方式,而是真正融入您的文化的方式来培养可访问性。


沙塔布·瓦希德 - 设计系统是可访问性交付工具
设计系统是为消费者(即在应用程序上工作的设计师和开发人员)构建的基础设施。一个成功的系统允许组织中的消费者快速扩展跨应用程序的设计和开发,提高生产力,并建立一致性。然而,许多消费者还没有准备好为可访问性而构建。组织能否使为应用程序构建可访问性支持具有可扩展性、生产力和一致性?本文探讨了设计系统如何成为支持可访问性的重要工具。


胡安米·斯宾塞 - 移动应用程序的可访问性考量
在创建移动应用程序时,考虑可访问性至关重要,以确保它们对尽可能广泛的受众来说是可用和令人愉悦的。与桌面体验相比,移动可访问性有其独特的考量,但它为那些在日常活动中依赖移动设备的用户提供了巨大的价值。通过牢记这些考量,移动产品开发团队可以更好地支持和改善所有用户的 lives。本文探讨了移动应用程序的一些关键可访问性考量,并重点介绍了 Bloomberg Connects 应用程序在产品和流程中支持可访问性的几种方式。


克里斯·弗莱扎克,杰弗里·P. 比格姆 - 系统级可访问性
本文通过我们使用 VoiceOver 屏幕阅读器使 iPhone 能够以非视觉方式使用的工作,阐述了系统级可访问性。我们重新构想了非视觉使用的触摸屏输入,引入了适用于屏幕阅读器控制的新手势,并且在输出方面,我们添加了对合成语音和可刷新的盲文显示器(输出触觉盲文字符的硬件设备)的支持。我们添加了新的可访问性 API,应用程序可以采用这些 API,并使我们的用户界面框架默认包含它们。最后,我们添加了一个可访问性服务,以桥接这些新的输入和输出与应用程序之间的联系。





© 版权所有。

© . All rights reserved.