掌桥专利:专业的专利平台
掌桥专利
首页

设备之间封装和同步状态的相互作用

文献发布时间:2023-06-19 18:37:28


设备之间封装和同步状态的相互作用

本申请是申请日为2018年10月19日申请号为201811220623.4发明名称为“设备之间封装和同步状态的相互作用”的发明专利申请的分案申请。

技术领域

本公开涉及媒体回放操作,并且具体地讲,涉及被分组在一起以自组织方式进行回放的回放设备的同步。

背景技术

媒体回放设备在消费者应用程序方面是众所周知的。通常,它们涉及在消费者设备诸如媒体播放器设备(电视、音频系统)处回放视频或音频。最近,回放应用程序已扩展以包括通过网络设备回放,诸如在蓝牙或WiFi网络上回放。在网络应用程序中,回放通常涉及从第一播放器设备如智能手机向连接的渲染设备的流式回放内容。第一播放器设备可能不存储回放内容本身;其可以从另一个源来流传输内容。

发明内容

根据本公开的一些实施例,提供一种方法,包括:响应于改变联网渲染设备的回放会话的命令,从所述命令识别所述命令的目标设备;从所述目标设备的功能来确定所述目标设备的回放模式;以及同步所述目标设备与作为所述会话的成员的其他设备的回放,所述同步包括识别要根据所述回放会话来渲染的至少一个资产和所述资产的回放定时。

附图说明

图1示出了根据本公开的一个方面的系统。

图2为根据本公开的一个方面的渲染设备的框图。

图3是示出根据本公开的实施方案的同步会话的进展的状态图。

图4为示出根据本公开的一个方面向会话中添加设备的示例性过程的信号流程图。

图5为示出根据本公开的一个方面的回放内容的示例性渲染的信号流程图。

图6为示出根据本公开的另一方面的回放内容的示例性渲染的信号流程图。

图7为示出根据本公开的另一方面从会话移除渲染设备的示例性过程的信号流程图。

图8示出了根据本公开的一个方面,可呈现在能够显示的设备中的示例性用户界面。

图9示出了用于在会话中管理设备的示例性用户界面。

图10为示出根据本公开的一个方面的回放内容的示例性组管理的信号流程图。

图11示出了用于在会话中管理设备的示例性用户界面。

图12为示出根据本公开的另一方面的示例性组管理的信号流程图。

图13示出了根据本公开的一个方面的一种方法。

图14和图15示出了用于输入根据本公开的方面管理渲染设备的命令的两个使用情形。

图16示出了根据本公开的另一方面的一种方法。

图17示出了根据本公开的又一方面的一种方法。

图18示出了根据本公开的另一方面的一种方法。

图19为根据本公开的又一方面的系统的网络图。

图20A为示出根据本公开的一个方面的虚拟助理系统的框图。

图20B示出了根据本公开的一个方面的虚拟助理系统的功能。

图21示出了根据本公开的另一方面的系统。

图22示出了根据本公开的一个方面的用于会话管理的通信流。

图23示出了根据本公开的一个方面的会话管理方法。

具体实施方式

本公开的方面提供用于在一组自组织回放设备之间管理媒体回放的技术。此类技术可能涉及在所述回放设备之间建立会话,其中回放设备传送关于其回放功能的信息。基于设备的回放功能,可以针对会话导出回放模式。可以在会话的成员设备之间同步回放操作,其中设备接收要根据回放操作渲染的资产的标识和资产回放的定时信息。当设备能够这样做时,设备可以直接从媒体源流传输回放资产。这样节省了通信资源。

虽然网络设备自组织组上的媒体回放是已知的,但其往往是低效的。此类应用程序通常导致组中的第一设备将回放内容流传输至组中的每个设备。当第一设备从另一个源检索流传输的内容时,这导致此类应用程序中的带宽效率低,因为第一设备检索然后重新传输将由组中的其他设备渲染的内容。然而,本公开的技术允许在会话的所有设备上以一致的方式执行回放,即使在上行链路带宽受到约束时或者当数字权利管理(“DRM”)约束限制对资产的访问时。

图1示出了根据本公开的一个方面的系统100。系统100可包括经由网络120在相互通信中提供的多个渲染设备110.1-110.N。渲染设备110.1-110.N可配合以协调方式渲染媒体项。

在操作期间,渲染设备中的一个(例如,设备110.1)可以“主”设备的角色操作。主设备110.1可存储数据,为方便起见称为“回放队列”,代表由一组渲染设备110.1-110.N播放的媒体资产的播放列表。回放队列可以识别例如将连续播放的多个资产、当前回放模式(例如,根据“随机”或“重复”模式播放的音频资产)等。在其他方面,资产可以在算法例如算法站的基础上识别为流传输站,或者在第三方应用程序的情况下,识别为由该应用程序维护的数据结构。主设备110.1可以与其他渲染设备110.2-110.N通信以同步媒体资产的回放。

组中的其他渲染设备110.2-110.N称为“辅助”设备,可以同步播放资产。在一个方面,设备110.1-110.N均可以直接从网络上的媒体源130流传输资产。辅助设备110.2-110.N通常存储代表当前正在播放的资产和用于同步渲染的时基的数据。在另一方面,渲染设备(例如,设备110.3)不具备从媒体源130流传输资产的功能,主设备110.1可以将数据直接流传输到不具备功能的渲染设备110.3。在另一方面,主设备110.1可以解密和解码资产,然后将资产数据(例如,音频字节)流传输到辅助设备,而不考虑辅助设备的功能。

本讨论的原理找到了多种不同类型的渲染设备110.1-110.N的应用。其可包括由渲染设备110.1表示的智能手机或平板电脑;显示设备110.2;和扬声器设备110.1-110.N。尽管未在图1中示出,但本发明的原理可应用于其他类型的设备,例如膝上型计算机和/或个人计算机,个人媒体播放器,机顶盒,基于光盘的媒体播放器,服务器,投影仪,可穿戴计算机,嵌入式播放器(例如,汽车音乐播放器)和个人游戏设备。

渲染设备110.1-110.N可以在相互通信,共同显示为网络120的一个或多个网络中提供。网络120可以提供通信架构,各种渲染设备110.1-110.N通过其发现彼此。例如,在住宅应用中,网络120可提供通信架构,通过该通信架构,普通家庭中的渲染设备可以发现彼此。在办公室应用中,网络120可提供通信架构,通过该通信架构,公共建筑物、公共部门和/或公共校园中的渲染应用程序可以发现彼此。除非本文另外指明,否则网络120的架构和/或拓扑(包括网络120的数量)对于本讨论是无关紧要的。

图2为根据本公开的一个方面的渲染设备200的框图。渲染设备200可以包括处理器210、存储器220、用户界面230、收发器240,以及适合于设备类型的显示器250和/或扬声器260。

渲染设备可包括执行存储在存储器220中的程序指令的处理器210。所述程序指令可以定义渲染设备200的操作系统212;同步管理器214(本文讨论的);渲染设备200的各种应用程序216.1-216.N涉及可以由渲染设备200和对应渲染设备110.1-110.N(图1)执行的回放操作;并且可选地,回放媒体218将由渲染设备200和/或对应渲染设备110.1-110.N(图1)渲染。

渲染设备200还可包括其他功能单元,诸如用户界面230、收发器(“TX/RX”)240、显示器250和/或扬声器260。用户界面230可提供控件,渲染设备200通过该控件与用户交互。用户界面组件可包括各种操作者控件,如按钮、开关、指针设备等以及各种输出组件,如指示器、灯、扬声器和/或显示器。

TX/RX 240可以提供界面,渲染设备200通过该界面与网络120(图1)通信,并且通过扩展与其他渲染设备通信,并且根据需要与媒体源通信。

显示器250和/或扬声器260表示渲染组件,设备200可通过该渲染组件渲染回放内容:视频和/或音频,取决于渲染设备的类型。显示器和扬声器被示出为与用户界面230分开,仅仅是强调可由渲染设备200执行的回放操作。实际上,涉及用户界面操作的相同显示器和/或扬声器也将涉及回放操作。

如所指出的,本公开的原理涉及各种渲染设备之间的回放操作的同步,并且具体地,涉及多种类型的渲染设备。因此,给定的渲染设备无需具有图2所示的所有组件。例如,扬声器设备不需要包括显示器。机顶盒设备不需要包括扬声器或显示器。因此,将本公开的原理投入运行时,预期与图2的框图有一些偏差。

图3为示出根据本公开的实施方案的同步会话300的进展的状态图。同步会话300可根据若干主要阶段进行,包括会话修订阶段(分别显示为阶段310、320),同步/回放阶段330,以及可选地,队列迁移状态340。可以输入会话修订阶段,以将渲染设备添加到同步会话(阶段320)或将渲染设备从会话中移除(阶段320)。同步/回放阶段330代表当前是公共同步组成员的设备交换关于回放的信息的操作阶段。可以输入队列迁移阶段340,以将回放队列的状态从一个渲染设备转移到另一个渲染设备,从而有效地为一组设备指定新的主设备。

同步会话300可由前两个渲染设备(可能更多)开始,到会话300。通常,会话从第一渲染设备(例如,图1的设备110.1)发起,这即表示渲染设备110.1将被包括在会话中。可识别第二渲染设备(例如,图1的设备110.2)。

根据该识别,会话300可进入修订状态310以将所选择的设备添加到会话300。设备110.1、110.2可进行相互通信以协商用于渲染的回放模式。一旦协商完成,设备可进入同步/回放状态330,期间会话的成员设备交换信息以用于渲染。

会话可能前进到其他状态以响应其他控件输入。例如,如果接收到向会话300添加另一设备(例如设备110.3)的输入,则会话300可返回到状态310,其中主设备(例如,设备110.1)与新设备110.3协商进行渲染的回放模式。

如果接收到从会话300中删除设备的输入,则会话300可前进至另一修订状态320,在此处从会话中移除已识别的设备(例如,设备110.3)。在该状态下,主设备110.1可与将要移除的设备110.3通信以终止设备在会话中的成员资格。设备110.3应终止渲染。

从会话300删除设备时,会话300可前进到几个其他状态。删除设备可将会话的最后两个设备(例如,设备110.2和110.3)分离(即,会话中没有设备组),这可导致会话300结束。

在另一种使用情况下,被删除的设备可能是会话的“主”设备。在这种情况下,删除主设备可使会话进入队列迁移状态340,其中从保留在会话中的设备中选择新的主设备,并且将回放队列信息传送到新选择的主设备。一旦选择了新的主设备,则会话300可返回到同步/回放状态330。

在另一方面,可响应操作者控件执行队列迁移。例如,操作者可与当前不充当主设备的设备交互。操作者可参与控制以改变回放会话,例如,通过改变回放模式或回放资产(例如,从一个资产播放列表切换到另一个资产播放列表)。作为响应,会话内的设备可前进到队列迁移状态340以将队列传送到与操作者交互的设备,然后一旦操作者参与新的重放模式就返回到同步/回放状态330。

在又一个方面,可响应于设备故障而执行设备320的删除,如果需要,可执行队列迁移340的删除。同步信息的交换可涉及会话内的设备之间的消息传输。如果在预先确定的时间段内未从给定设备接收到消息,则其可由其他设备解释为设备故障。作为响应,会话可前进到状态320以从会话中删除故障设备,并且如果故障设备是主设备,则在状态340中执行队列迁移。

通常,可由设备处的各种用户界面部件支持回放会话。一些示例性用户界面示出在图8和图9中。在一个方面,状态改变可在更新用户界面之前被实施为原子事务。这样,用户界面可在同步/回放状态330的操作期间周期性地刷新,这简化了用户界面的呈现。

如果终止事件或队列迁移事件都不被触发,则当在状态320处完成会话修改时,会话300可返回到同步/回放状态330。

图4示出了根据本公开的一个方面的用于将设备添加到会话300(图3)的设备之间的信号流400。在该示例中,将两个渲染设备110.2、110.3添加到来自管理会话的第一渲染设备110.1的会话。

如图所示,可通过将两个设备(在此为设备110.1和设备110.2)添加到会话来开始会话300。响应于指示设备110.2将被添加到会话的用户输入,渲染设备110.1可向渲染设备110.2传输请求其回放能力的消息(消息410)。渲染设备110.2可通过提供关于其回放能力的信息来作出响应(消息420)。

设备110.1可建立会话对象,该会话对象将设备110.1和设备110.2识别为会话的成员并且识别要执行的回放渲染操作的各种特征(框430)。此后,渲染设备110.1、110.2可交换关于回放渲染操作的同步信息(消息440)。

同步信息可包括描述设备的类型和设备支持的渲染模式两者的信息。例如,设备可将其自身识别为支持视频的、支持音频的或两者。设备可识别支持的回放应用程序(例如,ITunes、Spotify、Pandora、Netflix等),并且在适用的情况下,识别与此类信息相关联的帐户标识符。

根据此类信息,主设备可建立会话对象,该会话对象识别要渲染的资产、资产的定时信息和其他回放模式信息(例如,将用于渲染的应用程序)。来自会话对象的状态信息可在其整个生命周期中被分配到会话中的其他设备。

回放渲染操作可随着将由渲染设备110.1、110.2播放的媒体的类型变化,并且因此同步信息的类型也可变化。考虑以下使用情况:

渲染设备110.1、110.2两者均从音乐播放列表播放。在这种情况下,主设备可存储表示回放队列例如构成音频播放列表的音频资产、通过其访问音频资产的任何内容服务(例如,iTunes)、回放模式(例如,随机、播放顺序)等的数据。在一个方面,同步信息可识别正在播放的资产(例如,通过URL和数字权利管理令牌)、用于渲染音乐资产的定时信息以及设备110.1、110.2的角色(例如,设备是播放整个资产还是资产的指定信道—左、右)。渲染设备110.1、110.2可使用该信息来获取播放列表中识别的音乐资产并同步渲染这些音乐资产。回放模式(例如,跳到上一曲目、跳到下一曲目、随机)的改变可能在设备之间传输新的同步信息。

在另一方面,同步信息可识别正在使用的内容服务和识别正通过其访问服务的服务参数的句柄(可能是用户ID、密码、会话ID)以及设备在回放中的相应角色(例如,视频、音频、音频信道等)的任何参数。在此类情况下,渲染设备110.1、110.2可与支持内容服务的服务器130验证其自身。服务器130可保持关于正在播放的资产、回放顺序等的信息,并且可直接将资产提供给设备。

渲染设备110.1、110.2两者均播放普通的视听资产。在这种情况下,主设备可存储表示回放队列例如来自将被渲染的资产的视频分量和音频分量、通过其访问资产的任何内容服务以及回放设置的数据。许多视听资产可包含多个视频分量(例如,视频在不同屏幕分辨率和/或编码格式下的表示、视频在不同视角处的表示等)和多个音频分量(例如,不同语言的音频轨道)。同步信息可识别将由组中的每个设备渲染的资产分量和用于渲染相应分量的定时信息(例如,资产的时间线之间的参考点)。渲染设备110.1、110.2可使用该信息来获取与设备的相应类型相关的视听资产的分量。例如,显示设备可获取与显示器的配置一致的资产的视频部分,并且扬声器设备可获取与渲染设置(例如,如由回放设置所指定的英语音频轨道或法语音频轨道)一致的资产的音频部分。

如图所示,当选择新的主设备时,可执行队列迁移(状态340)。可在设备之间的消息的交换之后执行对新的主设备的选择,并且可以各种方式执行对新的主设备的选择。在第一方面,用于会话的各个设备可能不能够用作主设备,例如因为它们是特征受限的设备。因此,基于设备能力,设备可从用于作为主设备操作的候选者中排除。可基于设备的特征来在候选设备之间选择主设备。例如,设备可基于以下因素而变化:基于它们是电池驱动的还是线路供电的、基于它们到网络120的连通性带宽、基于它们的负载(例如,它们是否靠近它们的发热限制)、基于特征诸如处理其他任务的中断频率。

可响应于这些因素中的一个或多个因素(优选地(任选地)指示更高可靠性的因素)而执行对主设备的选择。例如,可确定线路供电的设备比电池驱动的设备更可靠。可确定在其发热限制附近操作的设备不如并非在发热限制附近操作的设备可靠。具有较高带宽连通性的设备可被认为比具有低带宽的设备更可靠。不常被中断的设备可被认为比以较高比率被中断的设备更可靠。对新的主设备的选择可从对这些因素的考虑(无论是单独的还是集体的)得出。

图4还示出了用于将另一设备110.3添加到会话的操作。在此,会话被示出响应于在渲染设备110.1处的用户输入而被添加到会话。渲染设备110.1可向渲染设备110.3传输请求其回放能力的信息(信息450)。渲染设备110.2可通过提供关于其回放能力的信息来作出响应(消息460)。

设备110.1可修改会话对象以添加设备110.3(框470)。在例示的示例中,会话对象会将设备110.1、110.2和110.3识别为会话的成员。它还会识别要执行的回放渲染操作的各种特征。这些特征可根据框430中识别的特征而基于设备110.1、110.2和110.3的能力重叠改变。此后,渲染设备110.1、110.2和110.3可交换关于回放渲染操作的同步信息(消息480)。

图5为示出根据本公开的一个方面的根据会话300(图3)的回放内容的示例性渲染的信号流程图。在该示例中,三个渲染设备110.1至110.3是普通回放会话的成员。

在该回放示例中,每个渲染设备具有使用通用应用程序来回放媒体内容的能力。因此,每个渲染设备110.1至110.3经由网络从媒体源130流传输其相应的回放内容并且独立于彼此地渲染回放内容,由框520、530和540表示。在该示例中,渲染设备110.1至110.3彼此通信以同步回放(消息510),但它们通过与媒体源130的独立通信过程来获取将被渲染的回放内容。

图6为示出根据本公开的另一方面的根据会话300(图3)的回放内容的示例性渲染的信号流程图。在该示例中,三个渲染设备110.1至110.3是普通回放会话的成员。

在该回放示例中,渲染设备不具有使用通用应用程序来回放媒体内容的通用能力。设备110.1和设备110.2具有从媒体源130获取其相应的回放内容的能力,但设备110.3不具有这种能力。

在该示例中,渲染设备110.1、110.2经由网络从媒体源130流传输其相应的回放内容并且独立于彼此地渲染回放内容,由框620和630表示。设备中的一者(该示例中的设备110.1)可获取用于渲染设备110.3的内容并将该回放内容传输到渲染设备110.3(框640)。因此,渲染设备110.3从会话中的另一设备110.1而不是从媒体源获取其内容。

在一些应用中,由于数字权利管理(DRM)问题,渲染设备110.3可能不具有在给定回放模式下渲染内容的能力。例如,如果进行了将不具有参与当前活动的回放模式的权利的设备(例如,因为将被添加的设备不具有登录内容正从其播放的媒体源的账户)添加到正在进行的会话的尝试,则可能发生若干结果。在一种情况下,可能不添加非支持渲染设备。在另一种情况下,可衍生另选的回放模式以播放当前回放模式下的相同资产(例如,通过切换到新设备确实具有访问权利的另选应用程序)。

图7为示出根据本公开的另一方面的从会话300(图3)移除渲染设备110.2的示例性过程的信号流程图。在该示例中,三个渲染设备110.1至110.3从一开始就是普通回放会话的成员。在该示例中,这三个设备110.1至110.3可参与周期性同步通信(信息710)以同步设备之间的回放。

在某一时刻,可接收指示应当从会话移除设备110.2的用户输入。作为响应,主设备(在此为设备110.1)可修改会话对象以将设备110.2识别为离开设备。主设备110.1可向离开设备110.2传输指示设备将结束回放的消息730。作为响应,渲染设备110.2可结束其回放(框740)。此后,涉及回放的同步消息750将在保留在会话中的设备110.1、110.3之间交换。

在另一方面,可在正被移除的设备处发起设备的移除。在该事件(未示出)中,正被移除的设备可终止其回放并向主设备传输向主设备通知该设备的移除的消息。

尽管前述讨论已呈现由通用设备(设备110.1)控制的会话管理功能,但是本讨论的原理不限于此。因此,本讨论的原理寻找其中不同设备改变会话状态的应用(图3)。因此,将设备添加到会话(状态310)可由任何设备(包括要添加到会话的设备)发起。类似地,从会话删除设备(状态320)可由任何设备(主设备或辅助设备)发起。如所讨论的队列迁移可由用户控制或由从会话移除主设备的事件发起。

作为例示性的示例,考虑辅助设备加入其中另一设备已作为管理设备活动的现有会话的布置。这可例如在由智能扬声器110.3(图1)—管理用于驻留的一组设备的回放会话的扬声器设备管理会话的情况下发生。用户可将他/她的智能电话110.1添加到会话。在这种情况下,智能电话110.1可发起用于使其自身加入会话的操作(图3的状态310)。其初始可能承担辅助设备的角色并且开始渲染与正在播放的媒体资产相关联的媒体资产(例如,视频内容、图像内容)。最终,用户可通过智能电话110.1来参与回放控制操作,这可引起将回放队列信息传输到智能电话110.1的队列迁移事件(状态340)。此外,用户可从会话移除智能电话110.1(状态320),这可能引起将回放队列信息传输到会话中的另一设备—可能返回到智能扬声器110.3的第二队列迁移事件(状态340)。

另选地,在使得智能电话110.1成为主设备的队列迁移事件之后,用户(或另一用户)可通过扬声器110.3来参与回放控制操作。在此类情况下,可发生将回放队列信息传输到智能扬声器的另一队列迁移事件(状态340)。

不需要在其中用户通过连接的设备来输入命令的所有情况下执行队列迁移。在其他实施方案中,为组的成员的设备可共享在这些设备处向用户显示关于正在进行的回放会话的信息的远程控制用户界面。此类远程控制显示器可允许用户输入命令,如果不是在主设备处输入,则这些命令可被传达到主设备以改变回放模式。在这些使用情况下不需要发生队列迁移。

图8示出了根据本公开的一个方面,可呈现在能够显示的设备中的用于会话300(图3)管理的示例性用户界面800。用户界面800可包括用于管理会话中的设备成员资格的控件810,用以管理回放会话中的资产的回放的控件820、825,以及用于渲染资产信息的区域830、835。

控件810可包括用于在会话中添加或删除设备的控件。在图8的示例中,控制区域810包括用于添加设备的第一控件812,显示当前处于会话中的设备的第二控件814,和用于访问其他会话管理控件的第三控件816。

控件820、825可以控制资产回放。在例示的示例中,它们包括播放/暂停控件,使回放跳过以返回到前一资产或前进到下一资产的控件,音量控件,以及使回放沿资产的回放时间轴跳至指定位置的控件。尽管图8中未示出,但也可调用控件来改变回放模式(例如,正常播放、随机、重复),改变播放列表,改变用来接收媒体的服务,改变用来接收媒体的用户账户等。此外,可提供特定于所渲染的资产的类型的用户控件,为音频资产提供与用于视频资产的用户控件组不同的用户控件组。

区域830、835可提供资产内容或关于该内容的元数据的显示。对于音频信息,其可包括与所渲染的音频相关联的图形图像和/或文本信息(例如,艺术家图像、艺术作品、音轨名称等)。对于视频,其可包括资产本身的视频数据。

图9示出了用于在会话300(图3)中管理设备的示例性用户界面900。在该示例中,用户界面900可包括用于在会话中添加和/或删除设备的控制区域910,其可包括用于显示其他信息的其他区域920、930、940至945。例如,区域920可以显示关于该会话的回放模式的信息。区域930可以提供用于管理回放的用户控件。区域940至945可为不是该会话的成员但可被添加的其他设备显示状态指示器。

图10为示出根据本公开的一个方面的回放内容的示例性组管理的信号流程图。图10所示的技术发现应用程序处于这样的环境下,其中新设备(这里为渲染设备110.3)尝试加入进行中的会话300(图3),但例如由于用户权限或阻止设备之间的直接通信的其他约束而被阻止发现一组会话中的主设备110.1。为了便于讨论,假设加入设备110.3可以发现该组的另一个成员并与之通信。在图10的示例中,加入设备110.3可与设备110.2通信。

在该示例中,在作为该组的成员的两个设备110.1、110.2之间执行回放同步1010。加入设备110.3可以将加入该组的请求发送到非主设备110.2(消息1020)。作为响应,非主设备110.2可将该加入请求消息中继到主设备110.1(消息1030)。主设备可经由向非主设备110.2的通信来请求将设备110.3加入的能力(消息1040),并且非主设备110.2可将该通信中继到加入设备110.3(消息1050)。加入设备110.3可识别其在响应消息中的能力(消息1060),其被发送到非主设备110.2并被中继到主设备110.1(消息1070)。主设备可修改将渲染设备110.3识别为到达设备的会话对象(框1080)。之后,可在三个渲染设备110.3之间执行回放同步1090。

图10的实施方案可发现使用所谓的“哑设备”的应用程序,哑设备是指不具有充当组管理中的主设备的功能的设备。因此,在图10所示的方面,即使在渲染设备110.2没有能力执行会话管理操作本身的情况下,渲染设备110.2也可在其他设备之间中继组管理消息。

在另一个方面,在涉及哑设备的情况下,主设备可为此类设备提供用户界面控件,这些控件提供组控件以及仅适用于本地设备的控件。图11示出了用于在会话300(图3)中管理设备的示例性用户界面1100。在该示例中,用户界面1100可包括用于控制会话内的设备的控制区域1110。其可包括第一控件1112,该控件被示为滑动条,用于控制当前会话中的所有设备的回放音量。它可包括用于逐个地控制会话设备的回放音量的其他控件1114、1116。一种此类控件例如控件1114可在本地控制设备。

响应于与本地控件1114的用户交互,设备可执行由用户输入直接指示的动作。因此,响应于与音量控件的交互,渲染设备可相应地改变其音量输出。响应于与将会话组表示为一个整体或表示为另一个设备的控件的交互,渲染设备可以向主设备报告用户输入,主设备将发出音量控制命令到该会话中的其他设备。

在另一方面,会话设备可执行操作以模拟在常规迁移不可能的情况下的队列迁移。考虑一种情况,一个会话保持在适当位置,它既包括全功能渲染设备(可充当主设备的设备)又包括其他哑设备(不能充当主设备的设备)。在这样的具体实施中,主设备可向哑设备提供呈现会话管理功能的用户界面。可能发生的是,用户控制会话以从会话中删除当前主设备,这将会把队列管理责任移到另一个哑设备。在此类情况下,会话设备可以多种方式进行响应:

·在一个方面,主设备可以搜索该会话中可用作主设备的其他设备(哑设备除外)。如果找到了这样的设备,则可执行队列迁移以将队列管理责任转移到另一个有能力的设备。

·在另一个方面,主设备可保留队列管理责任。它可使自己静音来模拟从会话中被删除但仍执行队列管理操作。

图12示出了根据本公开的另一方面的用于会话300(图3)管理的通信流1200。图12在这样的情况下发现应用程序,队列管理由第一设备(这里为渲染设备110.2)执行,并且用户尝试添加根据访问控制权限来操作的设备(渲染设备110.3)。

在通信流1200中,在渲染设备110.1处输入添加请求,该添加请求指示渲染设备110.3应被添加到会话中;添加请求(消息1210)被传送至队列管理器、渲染设备110.2。作为响应,渲染设备110.2可以将加入请求消息(消息1220)发送到渲染设备110.3。渲染设备110.3可利用凭据质询(消息1230)进行响应,该质询被发送至队列管理器、渲染设备110.2。作为响应,渲染设备110.2可将凭据质询传递到渲染设备110.1,从后者接收到添加请求(消息1240)。渲染设备110.1可向队列主设备110.2提供凭据(消息1250),队列主设备110.2将凭据中继到将待加入的渲染设备110.3。假设凭据被接受(框1270),则待加入的渲染设备110.3可传达准予加入请求的响应消息(消息1280)。可在渲染设备110.2和110.3之间执行回放同步1290。

本公开的原理可在网络环境中发现应用程序,其中可基于设备位置创建设备之间的关联。在住宅应用中,播放器设备可与房屋内的单个房间(例如厨房、起居室等)相关联。在商业应用中,播放器设备可与单独的会议室、办公室等相关联。便携式设备常常根据自动发现附近位置的设备的协议进行操作。在此类应用中,可将此类设备的标识符自动填充在控制区域910中以允许操作者在会话中添加和删除设备。

在一个方面,设备可被配置为被自动添加到会话中以及从会话中删除。例如,智能电话中的音频播放器可在检测到汽车中的嵌入式播放器时自动建立与该播放器的会话(例如,因为汽车被启动)。回放会话可在该会话加入时通过汽车的音频系统自动地渲染媒体。如果该智能手机检测到与嵌入式音频播放器的联系因为例如汽车熄火而丢失,则可能将该会话解构。此外,如果/当它在回放中的稍后检测到其他设备,例如家用音响部件,则它可以使这些设备加入。这样,本公开的原理可产生这样的回放体验,其使得回放“跟从”并且操作者成为经过他/她的日常生活的人。

图13示出了根据本公开的一个方面的用于会话300(图3)管理的方法1300。可响应于识别要在目标设备上采取的动作的命令(诸如,“在厨房播放爵士乐”)而调用方法1300。响应于这样的命令,方法1300将对作为该命令的目标的设备(例如,厨房媒体播放器)进行分类。目标设备可被归类为智能设备或哑设备。

当目标设备被归类为“智能设备”时,方法1300确定目标设备是否是回放组的成员(框1315)。如果不是,则目标设备可检索所选择的内容并开始渲染(框1320)。

如果在框1315处确定目标设备为回放组的成员,则方法1300可将目标设备的角色确定为组的主设备、组的辅助设备或组的“静默主设备”(框1325)。当目标设备被归类为辅助设备时,方法1300可使得目标设备将其自身从组中移除(框1330)并且在新的组中成为其自身的主设备。此后,方法1300可前进到框1320,并且目标设备可渲染所识别的内容。

如果在框1325处目标设备被归类为主设备,则方法1300可使得该组被拆分(框1335)。拆分组可将目标设备从先前限定的组移除并且允许先前限定的组继续其之前的动作。方法1300可执行队列迁移,在队列迁移下,先前限定的组中的一些其他设备可采取主设备的角色并且继续组的管理和其渲染操作。目标设备可在新的组(初始仅由目标设备形成)中成为其自身的主设备。方法1300可前进到框1320,并且目标设备可渲染所识别的内容。

如果在框1325处目标设备被归类为静默主设备,则方法1300可使得该静默主设备中断组的回放(框1345)。方法1300可前进到框1320,并且目标设备可渲染所识别的内容。

如果在框1310处目标设备被归类为哑设备,则方法1300可确定目标设备当前是否正在播放内容(框1350)。如果是,则方法1300可使得目标设备停止回放(框1355)。此后,或者如果目标设备没在播放内容,则方法1300可将目标设备的通信范围内的另一设备限定为代表目标设备作为“静默主设备”操作(框1360)。静默主设备可检索命令中识别的内容并将所检索的内容流传输到目标设备以进行渲染(框1365)。静默主设备不需要通过其自己的输出来本地播放所检索的内容;实际上,静默主设备可响应于命令而播放不同于将由目标设备播放的内容的不同内容。

在图13的方法1300的操作期间,将设备归类为“智能设备”或“哑设备”可基于通过目标设备的回放能力、其使用权利或它们的组合对设备的能力的识别。当目标设备不能够自行检索和播放所识别的内容时,其可能被归类为哑设备。例如,目标设备可能不是支持互联网的设备,并且因此将不能够从基于互联网的媒体服务下载内容。另选地,即使目标设备能够从此类服务下载内容,其可能不具有获得对此类服务的访问权限所需的帐户信息或其他认证信息。在此类场景中,目标设备可被归类为哑设备。另选地,如果目标设备具有下载和渲染所识别的内容的能力,则目标设备可被归类为智能设备。

队列迁移操作可能并非在所有设备中都可用。在此类使用情况下,方法1300可中断目标设备为其成员的组的回放(未示出)。另选地,方法1300还可开始在目标设备(其成为其自身的主设备)上开始播放所识别的流,并且还可使得目标设备在其先前组中成为其他设备的静默主设备(操作未示出)。

方法1300(图14)寻找在各种使用情况下并且具有各种设备的应用。图14和图15示出了两个此类使用情况。图14示出了其中操作者向其自身可能或可能不是目标设备的回放设备1400呈现口头命令的使用情况。图15示出了其中操作者经由触摸屏输入向控制设备1500(在该示例中,示出为智能电话)呈现命令的另一使用情况;在图15的示例中,控制设备1500不是目标设备。

在一个方面,可提供控制方法来识别目标设备并将命令引导至可提供对目标设备的控制的设备(例如,目标设备自身或目标设备的主设备)。一个此类控制方法示出在图13中。在此,方法1300可确定是否在目标设备处接收命令(框1365)。如果是,则方法1300可前进到框1315并且可参与上述操作。如果否,则方法1300可确定目标设备的状态(框1370),例如,其是否参与具有主设备的组。方法1300可将命令中继到目标设备或目标设备的主设备(框1375)。例如,如果目标设备参与组,则方法1300可将命令中继到目标设备的主设备。如果目标设备可充当其自己的主设备,则方法1300可将命令中继到目标设备自身。

图16示出了根据本公开的另一方面的用于会话300(图3)管理的方法1600。方法1600可寻找当命令被引导至其中可具有若干目标设备的位置的应用(当厨房中存在若干设备时,“在厨房播放爵士乐”)。方法1600可识别命令被引导至的目标设备,然后确定目标设备是否已被配置为属于立体声对(框1610)。如果是,则可在方法1600下评估与命令强调的目标设备配对的任何设备。

方法1600可识别目标设备是否为任何当前操作渲染组的成员(框1620)。它确定任何目标设备是否为此类组的成员(框1625)。如果不是,则方法1600可确定目标设备是否可用作其自身的主设备(框1630)。如果目标设备可用作主设备,则方法1600会使目标设备成为新组的主设备(框1635),并且目标设备检索由命令识别的内容并开始渲染该内容(框1640)。在其中目标设备与另一个设备配对的情况下,则所述设备可一起协商来指定其中之一作为主设备并且另一个作为辅助设备。

在框1630处,如果目标设备不能用作主设备,则方法1600可找到另一个设备充当目标设备的静默主设备(框1645)。当可分配静默主设备时,方法1600可使静默主设备检索所识别的内容并将内容的渲染数据推送到目标设备(框1650)。虽然在图16中未示出,但是没有发现针对所识别的目标设备的静默主设备,在这种情况下,方法1600将响应于命令而返回错误。

在框1625处,如果目标设备是组的成员,则该方法可确定该组是否包含目标设备之外的设备(框1655)。如果不是,则目标设备组可开始渲染所识别的内容(框1640)。

如果目标设备是包含命令所指向的设备的组的成员(框1655),则方法1600可从旧组中拆分出目标设备(框1660)。方法1600可确定目标设备是否为现有组的主设备(框1665)。如果目标设备是现有组的主设备,则方法1600可对作为目标设备从其拆分的现有组的成员的设备执行队列迁移(框1670)。如果成功,则先前渲染事件可使用作为现有组的成员的其他设备继续。

将组拆分(框1660)将导致使用目标设备形成新组。方法1600可前进到框1630并执行框1630-1650的操作,以开始对新组的渲染操作。

如上文所讨论的,设备可基于设备的操作参数,诸如具有适当的账户信息来渲染所识别的内容、联机操作供电(而不是电池供电)、网络连接的质量以及设备类型(例如,当渲染音频时,扬声器设备可优先于其他类型的媒体播放器)而作为给定组的主设备操作。当识别目标设备是否可用作主设备(框1630)的目标时,组内的每个目标设备可基于设备对渲染内容所需的能力的比较来评估。当组内没有目标设备可用作主设备时,不是该组的成员的其他设备也可基于设备对渲染所识别内容所需的能力的比较来评估是否用作静默主设备,还评估候选主设备的能力以与新组中的目标设备进行通信。在一些情况下,当没有发现目标设备可作为主设备操作,并且当没有发现其他设备可作为静默主设备操作时,方法1600可在错误内容(未示出)中结束。

在某些使用情形中,可能无法成功执行队列迁移(框1670)。在这种情况下,方法1600将导致现有组的设备—任何将不加入新组中的目标设备的设备—停止播放(操作未示出)。在另一个替代方案中,同样未示出,方法1600可使用以前是现有组的一部分并且将不加入新组中的目标设备的设备在并行处理中执行框1630-1650的操作(操作未示出)。

图17示出了可在本公开的一个方面,响应于在目标设备处停止回放的命令(例如,“到厨房停止播放”)而进行的会话300(图3)管理的方法1700。与现有方法一样,该命令不需要在为设备的目标的设备处输入。方法1700还识别为命令的目标的设备,然后确定该目标设备是否与其他设备配对(框1710)。如果配对,则所有已配对设备被视为符合方法1700的目的的目标设备。方法1700可确定目标设备所属的组(框1730),并且其可对目标设备进行分类(框1740)。

如果目标设备是没有辅助设备的主设备,则方法1700将在目标设备上停止回放(框1750)。

如果目标设备是具有辅助设备的主设备,则方法1700对回放内容执行队列迁移(框1760)来将另一个设备建立为主设备。此后,方法1700可停止在目标设备上的回放,如框1750所示。与在先前的实施方案中一样,如果队列迁移因任何原因而失败,则任选地方法1700可使回放在当前组中的所有设备上停止(操作未示出)。

如果目标设备是辅助设备,则方法1700将从其当前组(框1770)中移除目标设备,并且停止在目标设备上回放,如框1750所示。

如果目标设备是静默主设备,则方法1700可使目标设备保持静默(框1780)。

图18示出了根据本公开的一个方面的用于会话300(图3)管理的另一种方法1800。方法1800可在输入命令时发现应用,该命令以相对的术语识别期望的内容(例如,“将该音乐添加到厨房”,其中不直接识别该音乐)。图18的方法1800可进行操作以识别命令所引用的内容。

方法1800可通过确定输入命令的设备(为了方便起见,称为“命令设备”)是否播放内容而开始(框1810)。如果是,则方法1800可出于该方法的目的将命令设备指定为主机组。该“主机组”是目标设备最终将出于渲染目的而加入的组。

如果在框1810处,方法1800确定命令设备未播放,则方法1800将通过替代方式识别主机组(框1830)。在一个方面,方法1800可确定当前参与回放操作的范围中有多少组(框1832)。如果仅识别出一个组,则可以在主机组中设计该组(框1834)。如果识别出多个组,则方法1800可基于排名标准将该组中的一个指定为主机组,所述排名标准诸如与命令设备(并且因此用户)的音频接近度、与命令设备的蓝牙接近度、表示设备到命令设备的物理布局的数据,和/或启发法诸如最近开始回放的组或最近接收用户交互的组。

一旦指定主机组,则方法1800将确定要向主机组添加的目标设备(框1840)。同样,可识别目标设备(本例中的厨房设备)。方法1800可以确定目标设备与任何其他设备配对,诸如通过立体声对(框1842)。如果是这样,配对设备也被指定为目标设备(框1844)。然后,方法1800添加目标设备至主机组(框1850)。

本公开的原理延伸至其他使用情形。例如,命令诸如“将音乐移到厨房”可以执行为从一个回放组中移除目标设备的移除操作和将目标设备添加到另一个回放组的添加操作。因此,上述实施方案中公开的技术可以级联执行,以提供复杂程度更大的设备管理特征。

本公开的方面使用响应于语音命令输入的基于计算机的虚拟助理服务。在一个方面,虚拟助理可以以开发命令上下文的方式将用户命令关联在一起,这允许虚拟助理将例如不特定于设备或媒体的命令关联到目标设备或媒体内容。

图19是示例性系统1900的网络图,其中虚拟助理服务可用于管理会话300(图3)。系统1900包括多个用户设备1910.1至1910.3,其经由通信网络1930与服务器1920通信。在该示例中,虚拟助理服务1940被显示为由服务器1920提供。在另选具体实施中,虚拟助理服务1940将由用户设备1910.1至1910.3中的一者提供,或者其可分布在多个设备1910.1至1910.3上。预期关于在系统1900内放置虚拟助理1940的实施细节决策将被定制以适合各个应用的需要。

本发明的虚拟助理1940可包括语音过程1942、自然语言过程1944和流控制过程1946。语音过程1942将接收代表在设备1910.1至1910.3中的一个输入的口头命令的音频数据,并且其可生成语音的文本表示。自然语言过程1944将确定来自音频的文本表示的意图。流控制过程1946年将从自然语言过程1944生成的目的数据生成会话命令。这些命令可以被输出到设备1910.1至1910.3,以实现与口头命令一致的会话变化。

在操作期间,可在接受口头输入的任何设备输入用户命令,并且将用户命令集成到用于会话控制的系统中。因此,可在智能电话设备1910.1、智能扬声器设备1910.2、媒体播放器1910.3等处输入命令。这些设备可捕获代表口头命令的音频,并将音频中继到作为虚拟助理1940操作的设备1920。虚拟助理可将音频解析为文本并进一步解析为会话控制命令,该会话控制命令可输出到设备1910.1至1910.3以管理回放会话。

预期用户将输入指向与用户与之交互的设备不同的设备的口头命令。因此,用户可输入命令到智能电话1910.1,该命令旨在实现在扬声器1910.2或数字媒体播放器1910.3处回放的变化。在另一个时间,用户可在一个房间(未示出)的扬声器1910.2处输入命令,该命令旨在改变另一个房间中另一个扬声器(未示出)的回放。最后,预期用户可输入没有明确提供实现回放中的变化所需的所有信息的命令。例如,用户可以输入不特定于将被呈现的媒体或作为命令目标的设备的命令。

本公开的方面开发“上下文”数据,该数据识别作为用户命令主题的设备和/或媒体。上下文可以响应于操作员命令随时间推移而变化。当接收到更改回放的新命令时,虚拟助理1940将参考目前开发的上下文来确定命令的主题。

以下示例说明了如何开发上下文。在该示例中,用户可输入以下命令:

命令1:“在厨房播放爵士乐”

命令2:“暂停”

第一个命令识别要播放的媒体项(爵士播放列表)和目标设备(厨房扬声器)。因此,虚拟助理1940可生成会话命令以使厨房设备呈现所识别的媒体项。虚拟助理1940还可以存储识别包括厨房设备在内的上下文的数据。

当接收到命令2时,虚拟助理1940可确定该命令不是特定于媒体并且不是特定于目标设备的。虚拟助理1940可以参考当前为用户开发的上下文,并且可以根据该上下文识别目标设备。这样,虚拟助理1940可生成会话命令以使厨房设备暂停回放。

用户命令可导致当前已开发的组的扩展。例如,考虑如下命令序列:

命令1:“在厨房播放爵士乐”

命令2:“在客厅播放这首曲目”

如上文所讨论的,第一个命令可开发包括厨房回放设备的上下文组。第二个命令(特别是如果在厨房设备处输入)可以扩展上下文组以包括来自其他位置的目标设备。虚拟助理1940可以识别当前回放的上下文,其中“这首”表示在厨房中呈现的爵士乐播放列表,并且可以向正在播放爵士乐播放列表的组添加客厅设备。

此外,用户命令可引起上下文组的收缩。考虑如下命令序列:

命令1:“在所有空间播放古典音乐”

命令2:“停止在厨房中播放”

第一个命令可以开发上下文组,该上下文组包括与在其中输入命令的设备相邻的所有设备(例如,住宅中的所有设备)。第二个命令可导致目标设备从组中移除。在此示例中,虚拟助理1940将从会话中移除厨房设备,但使组中的其他设备继续播放。虚拟助理1940还可使得从上下文中移除厨房设备。在此方面,如果接收到其他命令(例如,“播放爵士乐”),然后虚拟助理1940可在上下文中(除了厨房设备之外的所有设备)将设备称为稍后接收的命令的目标。

在另一方面,导致会话组收缩的命令可导致上下文组被清除。因此,在前述示例中,当接收到命令2时,虚拟助理可以使厨房设备从会话中移除,并且清除上下文。在这个方面,可以在虚拟助理没有可用的活动上下文的情况下处理稍后接收的命令(例如,“播放爵士乐”)。例如,命令可被解释为被引导至在其中输入命令的本地设备。因此,虚拟助理1940将导致在本地设备处呈现爵士播放列表。

继续本示例,虚拟助理还可以检查将开始播放爵士乐的本地设备的回放状态。如果本地设备是会话组的一部分(例如,正在播放古典音乐的剩余设备的集合),虚拟助理可以使会话组中的所有设备切换到新媒体项。如果本地设备不是会话组的一部分(例如,是在命令2中从会话组中删除的厨房设备),虚拟助理可以使用厨房设备创建新的会话组。在任一结果中,由虚拟助理识别为目标设备的一组设备可以成为用于处理新用户命令的新上下文。

以类似的方式,导致回放在大区域被停止的命令(例如,“在所有空间停止”)可能导致上下文被清除。在这种情况下,稍后接收的“播放爵士乐”命令将不引用上下文“所有空间”,而是以不同的方式解析,例如,通过在其中输入命令的本地设备上播放爵士乐。

在一个方面中,识别为立体声对成员(例如,左扬声器和右扬声器)的设备可以作为单元而不是单个设备添加到上下文以及从上下文中移除。

上述讨论讨论了上下文,这些上下文包括针对不明确识别命令的目标设备的命令待识别为目标设备的设备。在另一方面,也可针对媒体项开发上下文。

考虑以下示例:

命令1:“在厨房播放爵士乐。”

命令2:“在此处播放。”

对于命令2,通过设备相对于用户的位置来识别目标设备—目标设备是用户输入口头命令的设备。但是,未识别媒体项。

在一个方面,虚拟助理还可基于先前用户命令开发识别媒体(例如媒体项、媒体播放列表)的上下文。在前述示例中,命令1将爵士播放列表识别为要在厨房设备上呈现的媒体。当处理命令2时,上下文(爵士乐)可提供对用户期望在新设备上播放的媒体的识别。

考虑以下示例:

命令1:“播放爵士乐。”

命令2:“在厨房播放。”

此处,同样地,命令1识别要在本地设备上播放的媒体播放列表。命令1还可为后接收的命令提供上下文。收到命令2时,虚拟助理1940可根据上下文(爵士乐)识别命令的媒体播放列表。在此示例中,虚拟助理1940将发出会话命令,以将厨房设备添加到播放爵士乐播放列表的组中。

可针对与虚拟助理交互的不同用户开发上下文。因此,在住宅应用中,虚拟助理可为家庭的各个成员开发上下文。当给定用户输入新命令时,虚拟助理可参考针对该用户开发的上下文,识别要应用于该命令的目标设备和/或媒体项。

图20A示出根据各种示例的虚拟助理系统2000的框图。在一些示例中,虚拟助理系统2000可在独立式计算机系统上实现。在一些示例中,虚拟助理系统2000可跨多个计算机分布。在一些示例中,虚拟助理的模块和功能中的一些模块和功能可被划分成服务器部分和客户端部分,其中客户端部分位于一个或多个用户设备1910.1-1910.3上并通过一个或多个网络来与服务器部分(例如,服务器1920)进行通信,例如,如图19所示。在一些示例中,虚拟助理系统2000可以是图19中所示的服务器系统1920的具体实施。应当指出的是,虚拟助理系统2000仅为虚拟助理系统的一个示例,并且该虚拟助理系统2000可具有比所示更多或更少的部件、可组合两个或更多个部件,或者可具有部件的不同配置或布置。图20A中所示的各种部件可在硬件、用于由一个或多个处理器执行的软件指令、固件(包括一个或多个信号处理集成电路和/或专用集成电路)或它们的组合中实现。

虚拟助理系统2000可包括存储器2002、一个或多个处理器2004、输入/输出(I/O)接口2006以及网络通信接口2008。这些部件可通过一个或多个通信总线或信号线2010彼此进行通信。

在一些示例中,存储器2002可包括非暂态计算机可读介质,诸如高速随机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备)。

在一些示例中,I/O接口2006可将虚拟助理系统2000的输入/输出设备2016诸如显示器、键盘、触摸屏和麦克风耦接至用户界面模块2022。与用户界面模块2022结合的I/O接口2006可接收用户输入(例如,声音输入、键盘输入、触摸输入等)并相应地对这些输入进行处理。在一些示例中,例如,当虚拟助理在独立式用户设备上实施时,虚拟助理系统2000可包括分别便于提供与设备1910.1-1910.3(图19)的通信的部件和I/O通信接口中的任一者。在一些示例中,虚拟助理系统2000可表示虚拟助理具体实施的服务器部分1920(图19),并且可通过位于用户设备(例如,设备1910.1-1910.3(图19))上的客户端侧部分来与用户进行交互。

在一些示例中,网络通信接口2008可包括一个或多个有线通信端口2012和/或无线传输和接收电路2014。一个或多个有线通信端口可经由一个或多个有线接口例如以太网、通用串行总线(USB)、火线等来接收和发送通信信号。无线电路2014可从通信网络以及其他通信设备接收RF信号和/或光学信号,并且将RF信号和/或光学信号发送至通信网络以及其他通信设备。无线通信可使用多种通信标准、协议和技术中的任一者,诸如GSM、EDGE、CDMA、TDMA、蓝牙、Wi-Fi、VoIP、Wi-MAX、或任何其他合适的通信协议。网络通信接口2008可使得虚拟助理系统2000通过网络诸如互联网、内联网和/或无线网络(诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN))与其他设备之间的通信成为可能。

在一些示例中,存储器2002或存储器2002的计算机可读存储介质可存储程序、模块、指令和数据结构,包括以下内容中的全部或其子集:操作系统2018、通信模块2020、用户界面模块2022、一个或多个应用2024和虚拟助理模块2026。具体地,存储器2002或存储器2002的计算机可读存储介质可存储用于执行过程的指令。一个或多个处理器2004可执行这些程序、模块和指令,并从数据结构读取数据或将数据写到数据结构。

操作系统2018(例如,Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS,或嵌入式操作系统诸如VxWorks)可包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动器,并且促进各种硬件、固件和软件部件之间的通信。

通信模块2020可促进虚拟助理系统2000与其他设备之间的通过网络通信接口2008进行的通信。例如,通信模块2020可与电子设备(诸如,设备1910.1-1910.3(图19))的RF电路208进行通信。通信模块2020还可包括用于处理由无线电路2014和/或有线通信端口2012所接收的数据的各种部件。

用户界面模块2022可经由I/O接口2006来接收来自用户(例如,来自键盘、触摸屏、指向设备、控制器和/或麦克风)的命令和/或输入,并在显示器上生成用户界面对象。用户界面模块2022还可准备输出(例如,语音、声音、动画、文本、图标、振动、触觉反馈、光照等)并将输出经由I/O接口2006(例如,通过显示器、音频通道、扬声器、触摸板等)递送给用户。

应用2024可包括被配置为由一个或多个处理器2004执行的程序和/或模块。例如,如果虚拟助理系统在独立式用户设备上实现,则应用2024可包括用户应用,诸如游戏、日历应用程序、导航应用或邮件应用。如果虚拟助理系统2000在服务器1920(图19)上实现,则应用2024可包括例如资源管理应用、诊断应用或调度应用。

存储器2002还可存储虚拟助理模块2026(或虚拟助理的服务器部分)。在一些示例中,虚拟助理模块2026可包括以下子模块或者其子集或超集:输入/输出处理模块2028、语音转文本(STT)处理模块2030、自然语言处理模块2032、对话流处理模块2034、任务流处理模块2036、服务处理模块2038和语音合成模块2040。这些模块中的每个模块均可具有对以下虚拟助理模块2026的系统或数据与模型中的一者或多者或者其子集或超集的访问权限:知识本体2060、词汇索引2044、用户数据2048、任务流模型2054、服务模型2056和ASR系统。

在一些示例中,使用在虚拟助理模块2026中实现的处理模块、数据和模型,虚拟助理可执行以下中的至少一些:将语音输入转换成文本;识别在从用户接收的自然语言输入中表达的用户意图;主动引出并获得完全推断用户意图所需的信息(例如,通过消除字词、姓名、意图的歧义等);确定用于满足推断出的意图的任务流;以及执行该任务流以满足推断出的意图。

在一些示例中,如图20B中所示,I/O处理模块2028可通过图20A中的I/O设备2016与用户进行交互或通过图20A中的网络通信接口2008与用户设备(例如,图19的设备1910.1-1910.3)进行交互,以获取用户输入(例如,语音输入)并提供对用户输入的响应(例如,作为语音输出)。I/O处理模块2028随同接收到用户输入一起或在接收到用户输入之后不久可任选地获取与来自用户设备的用户输入相关联的上下文信息。上下文信息可包括特定于用户的数据、词汇,和/或与用户输入相关的偏好。在一些示例中,该上下文信息还包括在接收到用户请求时的用户设备的软件状态和硬件状态,和/或在接收到用户请求时与用户的周围环境相关的信息。在一些示例中,I/O处理模块2028还可将与用户请求有关的跟进问题发送至用户,并从用户接收回答。在用户请求被I/O处理模块2028接收并且用户请求可包括语音输入时,I/O处理模块2028可将语音输入转发至STT处理模块2030(或语音识别器),以用于语音文本转换。

STT处理模块2030可包括一个或多个ASR系统。一个或多个ASR系统可处理通过I/O处理模块2028接收到的语音输入,以产生识别结果。每个ASR系统可包括前端语音预处理器。前端语音预处理器可从语音输入提取表示性特征部。例如,前端语音预处理器可对语音输入执行傅里叶变换,以提取表征语音输入的光谱特征部作为表示性多维向量的序列。此外,每个ASR系统可包括一个或多个语音识别模型(例如,声音模型和/或语言模型),并且可实现一个或多个语音识别引擎。语音识别模型的示例可包括隐马尔可夫模型、高斯混合模型、深层神经网络模型、n元语言模型、以及其他统计模型。语音识别引擎的示例可包括基于动态时间规整的引擎和基于加权有限状态换能器(WFST)的引擎。一个或多个语音识别模型和一个或多个语音识别引擎可用于处理前端语音预处理器的所提取的表示性特征部,以产生中间识别结果(例如,音素、音素串和子字),并且最终产生文本识别结果(例如,字词、字词串或符号的序列)。在一些示例中,语音输入可至少部分地由第三方服务处理或在用户的设备(例如,图19的设备1910.1-1910.3)上处理,以产生识别结果。一旦STT处理模块2030产生包含文本串(例如,字词,或字词的序列,或符号的序列)的识别结果,识别结果便可被传送至自然语言处理模块2032以用于意图推断。

在一些示例中,STT处理模块2030可包括可识别字词的词汇,和/或可经由语音字母转换模块2031来访问该词汇。每个词汇字词可与以语音识别语音字母表来表示的字词的一个或多个候选发音相关联。具体地,可识别字词的词汇可包括与多个候选发音相关联的字词。例如,该词汇可包括与

在一些示例中,可基于候选发音的普遍性来对候选发音进行排名。例如,候选语音

当接收到语音输入时,STT处理模块2030可用于(例如,使用声音模型)确定对应于该语音输入的音素,并且然后尝试(例如,使用语言模型)确定匹配该音素的字词。例如,如果STT处理模块2030可首先识别与该语音输入的一部分对应的音素序列

在一些示例中,STT处理模块2030可使用模糊匹配技术来确定话语中的字词。因此,例如,STT处理模块2030可确定音素序列

在一些示例中,自然语言处理模块2032可被配置为接收与语音输入相关联的元数据。元数据可指示是否对语音输入(或者对应于该语音输入的字词或符号的序列)执行自然语言处理。如果元数据指示将执行自然语言处理,则自然语言处理模块可从STT处理模块接收字词或符号的序列以执行自然语言处理。然而,如果元数据指示将不执行自然语言处理,则可禁用自然语言处理模块,并且可从虚拟助理输出来自STT处理模块的字词或符号的序列(例如,文本串)。在一些示例中,元数据可进一步识别对应于用户请求的一个或多个域。基于该一个或多个域,自然语言处理器可禁用知识本体2060中该一个或多个域之外的域。这样,自然语言处理被约束为知识本体2060中的该一个或多个域。具体地,可使用知识本体中的该一个或多个域而不是其他域来生成结构化查询(下文描述)。

虚拟助理的自然语言处理模块2032(“自然语言处理器”)可取得由STT处理模块2030生成的字词或符号的序列(“符号序列”),并尝试将该符号序列与由虚拟助理所识别的一个或多个“可执行意图”相关联。“可执行意图”可表示可由虚拟助理执行并且可具有在任务流模型2054中实现的相关联的任务流的任务。相关联任务流可以是虚拟助理为了执行任务而采取的一系列经编程的动作和步骤。虚拟助理的能力范围可取决于已在任务流模型2054中实施并存储的任务流的数量和种类,或换句话讲,取决于虚拟助理所识别的“可执行意图”的数量和种类。然而,虚拟助理的有效性还可取决于助理从以自然语言表达的用户请求中推断出正确的“一个或多个可执行意图”的能力。

在一些示例中,除了从STT处理模块2030获取的字词或符号的序列之外,自然语言处理模块2032还可(例如,从I/O处理模块2028)接收与用户请求相关联的上下文信息。自然语言处理模块2032可任选地使用上下文信息来明确、补充和/或进一步限定被包含在从STT处理模块2030接收的符号序列中的信息。上下文信息可包括例如:用户偏好、用户设备的硬件和/或软件状态、在用户请求之前、期间或之后不久收集的传感器信息、虚拟助理与用户之间的先前交互(例如,对话)等。如本文所述,上下文信息可以是动态的,并且可随对话的时间、位置、内容以及其他因素而变化。

在一些示例中,自然语言处理可基于例如知识本体2060。知识本体2060可以是包含许多节点的分级结构,每个节点表示“可执行意图”或与“可执行意图”或其他“属性”中的一者或多者相关的“属性”。如上所述,“可执行意图”可表示虚拟助理能够执行的任务,即该任务为“可执行的”或可被进行的。“属性”可表示与可执行意图或另一属性的子方面相关联的参数。知识本体2060中的可执行意图节点与属性节点之间的链接可定义由属性节点表示的参数如何与由可执行意图节点表示的任务相关。

在一些示例中,知识本体2060可由可执行意图节点和属性节点组成。在知识本体2060内,每个可执行意图节点可直接链接至或通过一个或多个中间属性节点链接至一个或多个属性节点。类似地,每个属性节点可直接链接至或通过一个或多个中间属性节点间接链接至一个或多个可执行意图节点。

可执行意图节点连同其链接的概念节点一起可被描述为“域”。在本论述中,每个域可与相应的可执行意图相关联,并涉及与特定可执行意图相关联的一组节点(以及这些节点之间的关系)。每个域可与一个或多个其他域共享一个或多个属性节点。

在一些示例中,知识本体2060可包括虚拟助理能够理解并对其起作用的所有域(以及因此可执行的意图)。在一些示例中,知识本体2060可诸如通过添加或移除整个域或节点,或者通过修改知识本体2060内的节点之间的关系来进行修改。

此外,在一些示例中,可将与多个相关可执行意图相关联的节点群集在知识本体2060中的“超级域”下。

在一些示例中,知识本体2060中的每个节点可与和由节点表示的属性或可执行意图有关的一组字词和/或短语相关联。与每个节点相关联的相应组的字词和/或短语可是所谓的与节点相关联的“词汇”。可将与每个节点相关联的相应组的字词和/或短语存储在与由节点所表示的属性或可执行意图相关联的词汇索引2044中。词汇索引2044可任选地包括不同语言的字词和短语。

自然语言处理模块2032可从STT处理模块2030接收符号序列(例如,文本串),并确定符号序列中的字词牵涉哪些节点。在一些示例中,如果发现符号序列中的字词或短语(经由词汇索引2044)与知识本体2060中的一个或多个节点相关联,则该字词或短语可“触发”或“激活”这些节点。基于已激活节点的数量和/或相对重要性,自然语言处理模块2032可选择可执行意图中的一个可执行意图作为用户意图使虚拟助理执行的任务。在一些示例中,可选择具有最多“已触发”节点的域。在一些示例中,可选择具有最高置信度值(例如,基于其各种已触发节点的相对重要性)的域。在一些示例中,可基于已触发节点的数量和重要性的组合来选择域。在一些示例中,在选择节点的过程中还考虑附加因素,诸如虚拟助理先前是否已正确解译来自用户的类似请求。

用户数据2048可包括特定于用户的信息,诸如特定于用户的词汇、用户偏好、用户地址、用户的默认语言和第二语言、用户的联系人列表、以及每位用户的其他短期或长期信息。在一些示例中,自然语言处理模块2032可使用特定于用户的信息来补充用户输入中所包含的信息,以进一步限定用户意图。

在一些示例中,一旦自然语言处理模块2032基于用户请求而识别出可执行意图(或域),自然语言处理模块2032便可生成结构化查询,以表示所识别的可执行意图。在一些示例中,结构化查询可包括针对可执行意图的域内的一个或多个节点的参数,并且该参数中的至少一些参数填充有在用户请求中指定的特定信息和要求。根据知识本体,域的结构化查询可包括预定参数。在一些示例中,基于语音输入和使用STT处理模块2030从语音输入得出的文本,自然语言处理模块2032可针对域生成部分结构化查询,其中部分结构化查询包括与域相关的参数。在一些示例中,自然语言处理模块2032可利用所接收的上下文信息来填充结构化查询的一些参数,如前文所论述。

在一些示例中,自然语言处理模块2032可将所生成的结构化查询(包括任何已完成的参数)传送至任务流处理模块2036(“任务流处理器”)。任务流处理模块2036可被配置为接收来自自然语言处理模块2032的结构化查询,(必要时)完成结构化查询,并且执行“完成”用户最终请求所需的动作。在一些示例中,完成这些任务所必需的各种过程可在任务流模型2054中提供。在一些示例中,任务流模型2054可包括用于获取来自用户的附加信息的过程,以及用于执行与可执行意图相关联的动作的任务流。

在一些用例中,为了完成结构化查询,任务流处理模块2036可能需要发起与用户的附加对话,以便获得附加信息和/或弄清可能有歧义的话语。当有必要进行此类交互时,任务流处理模块2036可调用对话流处理模块2034以参与同用户的对话。在一些示例中,对话流处理模块2034可确定如何(和/或何时)向用户请求附加信息,并且接收和处理用户响应。该问题可通过I/O处理模块2028而被提供至用户并可从用户接收回答。在一些示例中,对话流处理模块2034可经由音频和/或视觉输出来向用户呈现对话输出,并接收经由口头或物理(例如,点击)响应的来自用户的输入。继续上述示例,当任务流处理模块2036调用对话流处理模块2034来确定与所选域相关联的结构化查询的参数信息时,对话流处理模块2034可生成问题以传递给用户。一旦从用户接收到回答,对话流处理模块2034便可利用缺失信息填充结构化查询,或将信息传递给任务流处理模块2036以根据结构化查询来完成缺失信息。

一旦任务流处理模块2036已针对可执行意图完成结构化查询,任务流处理模块2036便可着手执行与可执行意图相关联的最终任务。因此,任务流处理模块2036可根据包含在结构化查询中的特定参数来执行任务流模型中的步骤和指令。

在一些示例中,任务流处理模块2036可在服务处理模块2038(“服务处理模块”)的辅助下完成用户输入中所请求的任务或者提供用户输入中所请求的信息性回答。在一些示例中,可通过服务模型2056中的相应服务模型来指定每项服务所需的协议和应用编程接口(API)。服务处理模块2038可针对服务来访问适当的服务模型,并依据服务模型根据该服务所需的协议和API来生成针对该服务的请求。

在一些示例中,自然语言处理模块2032、对话处理模块2034以及任务流处理模块2036可被共同且反复地使用,以推断并限定用户的意图、获得信息,以进一步明确并细化用户意图并最终生成响应(即,输出至用户或完成任务)以满足用户的意图。所生成的响应可以是对语音输入的至少部分地满足用户的意图的对话响应。此外,在一些示例中,所生成的响应可被输出为语音输出。在这些示例中,所生成的响应可被发送到语音合成模块2040(例如,语音合成器),在语音合成模块中,可处理所生成的响应以将对话响应以语音形式合成。在其他示例中,所生成的响应可以是与满足语音输入中的用户请求相关的数据内容。

语音合成模块2040可被配置为合成语音输出以呈现给用户。语音合成模块2040基于虚拟助理提供的文本来合成语音输出。例如,所生成的对话响应可为文本串的形式。语音合成模块2040可将文本串转换成可听语音输出。语音合成模块2040可使用任何合适的语音合成技术,以便从文本生成语音输出,包括但不限于:拼接合成、单位选择合成、双音素合成、特定于域的合成、共振峰合成、发音合成、基于隐马尔可夫模型(HMM)的合成,以及正弦波合成。在一些示例中,语音合成模块2040可被配置为基于与这些字词对应的音素串来合成各个字词。例如,音素串可与所生成的对话响应中的字词相关联。音素串可被存储在与字词相关联的元数据中。语音合成模型2040可被配置为直接处理元数据中的音素串,以合成语音形式的字词。

在一些示例中,替代使用语音合成模块2040(或除此之外),可在远程设备(例如,服务器系统1920(图19))上执行语音合成,并且可将合成的语音发送至用户设备以输出给用户。例如,这可发生在一些具体实施中,其中在服务器系统处生成虚拟助理的输出。并且因为服务器系统通常比用户设备具有更强的处理能力或更多的资源,所以有可能获得比客户端侧合成将实现的质量更高的语音输出。

虽然以上参考一些实施方案详细地描述了本发明,但是本发明的范围和实质内的变化对于本领域的普通技术人员而言将为显而易见的。因此,本发明应被认为仅由所附权利要求的范围来限制。

图21示出了根据本公开的另一个方面的系统2100。在该实施方案中,提供渲染设备2110.1-2110.n,该渲染设备经由通信网络2130与服务器2120通信。在一个具体实施中,服务器2120可以在渲染设备2110.1-2110.n所在的局域网中提供,这可以在服务器2120充当本地网络的代理设备时发生。在另一个具体实施中,服务器2120可以在互联网位置处提供,这可以在服务器2120被集成到在线服务中时发生。

在图21所示的方面中,服务器2120可以执行上文所述的会话管理操作。因此,服务器2120可以存储回放队列数据并管理渲染设备2110.1-2110.n的会话数据。虽然服务器2120不会将媒体数据渲染为回放的一部分,但是服务器2120可以代表参与回放的渲染设备2110.1-2110.n作为主设备操作。在这方面,服务器2120可以代表许多同时激活的组充当主设备。服务器2120可以存储在注册表2125中向其注册的渲染设备2110.1-2110.n的数据。

图22示出了根据本公开的一个方面的用于可发生在渲染设备2210和服务器2220之间的会话300(图3)管理的通信流2200,以用服务器2200注册渲染设备2210。渲染设备2210可发送注册消息(msg.2230)到服务器2200,以识别设备。服务器2220将确定设备是否为服务器2220尚未为其存储信息的新设备(框2232)。如果是,则服务器2220将发送请求消息(msg.2234)到渲染设备2210,以请求信息诸如其能力、位置和帐户信息。渲染设备2210可在响应消息中提供所请求的信息(msg.2236),并且服务器2220还将渲染设备存储在其注册表中(框2238)。如果在框2232处,服务器2220确定渲染设备2210不是新设备,则服务器2220将在其注册表中将渲染设备2210标记为活动状态(仍在框2238处)。

本公开的原理可在自组织网络环境中发现应用,其中单个渲染设备可在未确定的时间处打开和关闭并且仍在未确定的时间处可获得和丢失网络连接。因此,图22的方法2200可通过渲染设备作为标准上电程序的一部分或者在其获得网络连接时发起。

图23示出了根据本公开的一个方面的会话300管理方法2300。当在输入设备处接收到用户命令(框2310)时(示例:“在厨房播放爵士乐”),可发起方法2300。在接收到命令之后,输入设备可将命令报告给服务器2120(图21)(框2315)。在服务器处,方法2300将从其注册表数据识别命令的目标设备(框2320)。对于如此识别的每个目标设备,方法2300将从框2325至框2385中所示的操作中采用适当的步骤。

该方法可确定目标设备的类型(框2325)。如果方法2300将目标设备分类为智能设备,则方法2300将确定目标设备是否已为活动组的一员(框2330)。如果不是,则方法2300将使得服务器向目标设备发出命令以开始回放,从而识别目标设备的播放列表及其在组中的类型(框2335)。

如果在框2330处,方法2300确定目标设备已经是组的成员,则方法2300可以确定目标设备在其组内的角色(框2340)。如果目标设备是主设备,则方法2300可以确定拆分组(框2345)。方法2300可以启动用于回放已经活动的组的内容的队列迁移过程(框2350),这可导致服务器向已经活动的组的其他成员发出命令(未示出),将这些成员中的一者指定为新的主要设备。方法2300可以使服务器向目标设备发出命令以开始回放,识别目标设备的播放列表及其在组中的角色(框2335)。

如果在框2340处,该方法确定目标设备充当静音主设备,则方法2300可以向目标设备发出命令以代表其已经活动的组中断回放(框2355)。方法2300可以向已经活动的组的另一个目标设备发出命令,将其指定为新的静音主设备(框2360)。方法2300还可以使服务器向目标设备发出命令以开始回放,识别目标设备的播放列表及其在组中的角色(框2335)。在一方面,在框2355和2335中向目标设备发出的命令可以合并到公共消息或消息组中。

如果在框2340处,该方法确定目标设备充当辅助设备,则方法2300可以向目标设备发出命令,该命令将目标设备分配给新组(框2365)。方法2300还可以使服务器向目标设备发出命令以开始回放,识别目标设备的播放列表及其在组中的角色(框2335)。同样,在框2365和2335中向目标设备发出的命令可以合并到公共消息或消息组中。

如果在框2325处该方法确定目标设备为哑设备,则方法2300可以确定目标设备当前是否参与回放(框2370)。如果是,则方法2300可以向目标设备发出命令以停止回放(框2375)。方法2300可以为目标设备2380定义静音主设备(框2380),并且向目标设备发出识别其新主设备的命令(框2385)。在框2375和2385中向目标设备发出的命令可以合并到公共消息或消息组中。方法2300可以向指定的主设备2385发出命令以将媒体流传输到目标设备(框2385)。

如上所述,本公开提出了用于在具有各种设计和功能的多个松散连接的渲染设备之间开发自组织渲染网络的技术。设备可以自主地发现彼此,并且它们可以交换通信以同步它们的渲染操作。这些设备可能具有各种功能。一些高性能设备可具有与媒体源通信的功能,将自身认证为具有对作为回放会话的一部分渲染的媒体项的访问权限,并且自主下载媒体项以进行回放。其他低性能的设备可能不具备此类功能;这些设备可以在主要-辅助关系中以“辅助”模式操作,其中这些设备接收从另一“主要”设备发送给它的媒体内容,而不具有例如自己向媒体源认证或自主下载媒体项的功能。此外,渲染设备可以通过许多不同设备中的任何一个接受用户输入—经由智能电话或计算机的触摸屏输入,在智能电话、计算机或智能扬声器处由麦克风捕获的音频输入等,以控制渲染网络执行的渲染操作。期望本文公开的各种会话管理技术可以响应于渲染会话之间的变化的环境保证而自适应地应用。例如,可能发生给定会话300在被发起时将由作为主要设备操作的第一渲染设备(图1)管理,但是,随着时间的推移,可能由于从会话中移除第一渲染设备,此后的会话将由互联网上的服务器管理(图21)。可能发生的是,会话将在操作期间的一个点由通信流400(图4)管理,在其生命周期的另一个点处可以通过方法1300(图13)进行管理,并且在生命周期的另一点处可以通过方法2300(图23)进行管理。本公开的原理适应这种变化。

前面的讨论标识了可以在根据本发明的各种实施方案构造的回放设备和服务器中使用的功能块。在一些应用中,上文描述的功能块可以作为集成软件系统的元件提供,其中块可以作为计算机程序的单独元件提供,这些块被存储在存储器中并由处理设备执行。非暂态计算机可读介质可具有用于使计算机执行功能块的程序指令。在其他应用中,功能块可以作为处理系统的分立电路部件提供,例如数字信号处理器或专用集成电路内的功能单元。本发明的其他应用可以体现为专用硬件和软件部件的混合系统。此外,不需要将本文所述的功能块作为单独的单元提供。除非另有说明,否则这些实施细节对于本发明的操作并不重要。

如上所述,本发明技术的一个方面在于采集和使用得自各种来源的数据,以改进向用户递送其可能感兴趣的启发内容或任何其他内容。本公开预期,在一些实例中,这些所采集的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。这样的个人信息数据可以包括人口统计数据、基于位置的数据、电话号码、电子邮件地址、推特ID、家庭地址、与用户的健康或健康水平相关的数据或记录(例如,生命体征测量值、用药信息、锻炼信息)、出生日期或任何其他识别信息或个人信息。

本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,所述个人信息数据可用于递送用户较感兴趣的目标内容。因此,使用此类个人信息数据使得用户能够对所递送的内容进行有计划的控制。

本公开设想负责采集、分析、公开、传输、存储或其他使用此类个人信息数据的实体将遵守既定的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。用户可以方便地访问此类策略,并应随着数据的采集和/或使用变化而更新。用户的个人信息应采集为实体的合法和合理使用,而不应在这些合法使用之外共享或出售。此外,在收到用户知情同意后,应进行此类采集/共享。此外,此类实体应考虑采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保其他有权访问个人信息数据的人遵守其隐私政策和流程。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。此外,应调整政策和实践,以便采集和/或访问的特定类型的个人信息数据,并适用于包括管辖范围的具体考虑的适用法律和标准。因此,在每个国家应保持不同的个人数据类型的不同的隐私实践。

不管前述情况如何,本公开还设想用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本发明的技术可被配置为在注册服务期间或之后任何时候允许用户选择“选择加入”或“选择退出”参与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供情绪相关数据。在另一个示例中,用户可选择限制情绪相关数据被保持的时间长度,或完全禁止基础情绪状况的开发。除了提供“选择加入”和“选择退出”选项外,本公开设想提供与访问或使用个人信息相关的通知。例如,用户可在下载应用程序时通知用户,其个人信息数据将被访问,然后在个人信息数据被应用程序访问之前再次提醒用户。

此外,本公开的目的是应管理和处理个人信息数据以最小化无意或未经授权访问或使用的风险。一旦不再需要数据,通过限制数据采集和删除数据可最小化风险。此外,并且当适用时,包括在某些健康相关应用中,数据去标识可用于保护用户的隐私。在适当的情况下,可以通过移除特定标识符(例如,出生日期等)、控制存储的数据的量或特征(例如,在城市级而非地址级收集位置数据)、控制数据的存储方式(例如,在用户之间聚合数据)和/或其他方法来促进去标识。

因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还设想各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过基于非个人信息数据或绝对最低限度的个人信息(例如,与用户相关联的设备所请求的内容、对内容递送服务可用的其他非个人信息或公开可用信息)来推断偏好,从而选择内容并递送给用户。

为了帮助专利局和本申请中发布的任何专利的任何读者解释所附权利要求,申请人希望注意到他们并不旨在任何所附权利要求或权利要求要素引用35U.S.C.112(f),除非在特定权利要求中明确使用“用于......的装置”或“用于......的步骤”。

本文具体示出和/或描述了本发明的若干实施方案。然而,应当理解,在不脱离本发明的实质和预期范围的情况下,本发明的修改和变型由上述教导内容涵盖并且在所附权利要求的范围内。

技术分类

06120115632298