[go: up one dir, main page]

CN116114255A - 使用分布式命令处理的控制 - Google Patents

使用分布式命令处理的控制 Download PDF

Info

Publication number
CN116114255A
CN116114255A CN202180057621.1A CN202180057621A CN116114255A CN 116114255 A CN116114255 A CN 116114255A CN 202180057621 A CN202180057621 A CN 202180057621A CN 116114255 A CN116114255 A CN 116114255A
Authority
CN
China
Prior art keywords
playback
playback device
group
command
devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180057621.1A
Other languages
English (en)
Inventor
丹·卡西米罗
格雷格·拉姆斯泊格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sonos Inc
Original Assignee
Sonos Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sonos Inc filed Critical Sonos Inc
Publication of CN116114255A publication Critical patent/CN116114255A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42203Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS] sound input device, e.g. microphone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Selective Calling Equipment (AREA)
  • Cash Registers Or Receiving Machines (AREA)

Abstract

本文描述的示例技术涉及用作云与包括POC回放设备的媒体回放系统之间的中介的接触点(POC)回放设备。作为中介,当云向媒体回放系统发布命令时,POC回放设备可以执行该命令的一些或全部处理,以确定在媒体回放系统中如何实现该命令。例如,POC回放设备可以确定命令的目标设备,然后使目标设备执行该命令。除了其他可能的益处之外,POC回放设备的这种处理还可以从第三方控制器的角度简化对媒体回放系统的控制,因为,这些控制器不需要完整和/或完全了解媒体回放系统功能和状态的最新知识等。

Description

使用分布式命令处理的控制
相关申请的交叉引用
本申请要求于2020年6月8日提交的题为“Cloud-Based Grouping and Areas”的美国临时申请No.63/036,295的优先权,该申请的全部内容通过引用并入本文。本申请还要求于2020年11月11日提交的题为“Control with Distributed Command Processing”的美国临时申请No.63/112,459的优先权,该申请的全部内容通过引用并入本文。
技术领域
本技术涉及消费者产品,并且更具体地,涉及与媒体回放系统的语音辅助控制或其某个方面相关的方法、系统、产品、特征、服务和其他元素。
背景技术
访问和收听外放设置的数字音频的选项是有限的,直到2002年Sonos公司开始开发新型回放系统为止。然后,Sonos于2003年提交了题为“Method for SynchronizingAudio Playback between Multiple Networked Devices”的其首批专利申请之一,并于2005年开始提供其首批媒体回放系统以供销售。Sonos无线家庭音响系统使人们能够经由一个或多个联网回放设备体验来自许多源的音乐。通过安装在控制器(例如,智能电话、平板计算机、计算机、语音输入设备)上的软件控制应用,人们可以在具有联网回放设备的任何房间中播放他想要的东西。媒体内容(例如,歌曲、播客、视频声音)可以流传输到回放设备,使得每个具有回放设备的每个房间可以回放对应的不同媒体内容。另外,可以将房间分组在一起以同步回放相同的媒体内容,和/或可以在所有房间中同步收听相同的媒体内容。
附图说明
参考以下说明书、所附权利要求和附图,可以更好地理解所公开的技术的特征、方面和优点,在附图中:
结合下面列出的以下描述、所附权利要求和附图,可以更好地理解当前公开的技术的特征、方面和优点。相关领域的技术人员将理解,附图中所示的特征是出于说明的目的,并且包括不同和/或附加特征及其布置的变型是可能的。
图1A是具有根据所公开技术的各方面配置的媒体回放系统的环境的局部剖视图。
图1B是图1A的媒体回放系统和一个或多个网络的示意图。
图2A是示例回放设备的功能框图。
图2B是图2A的回放设备的示例壳体的等距图。
图2C是示例语音输入的图。
图2D是描绘了根据本公开的各方面的示例声音样本的图。
图3A、图3B、图3C、图3D和图3E是示出了根据本公开的各方面的示例回放设备配置的图。
图4是根据本公开的各方面的示例控制器设备的功能框图。
图5A和图5B是根据本公开的各方面的控制器界面。
图6是媒体回放系统的消息流图。
图7A和图7B是根据本公开的各方面的示例控制器界面。
图8A、图8B、图8C和图8D是示出了示例函数和数据结构的图。
图9A和图9B是根据本公开的各方面的示例控制器界面。
图10A是示出了根据所公开技术的各方面的用于促进媒体回放系统的控制的基于云的示例架构的功能框图。
图10B是示出了根据所公开技术的各方面的示例平台应用编程接口的示例功能的图。
图11A、图11B、图11C和图11D是示出了根据所公开技术的各方面的基于云的架构中用户输入的示例处理的功能框图。
图12A、图12B、图12C、图12D和图12E是示出了根据所公开技术的各方面的基于云的架构中用户输入的示例处理的功能框图。
图13是示出了根据所公开技术的各方面的基于云的架构中用户输入的示例处理的功能框图。
图14A和图14B是示出了根据所公开技术的各方面的基于云的架构中用户输入的示例处理的功能框图。
图15是根据所公开技术的各方面的用于处理命令中间体的示例方法的流程图。
图16A、图16B和图16C是示出了用于促进媒体回放系统的控制的基于云的示例架构的功能框图。
图17是用于在媒体回放系统中创建同步组的示例方法的流程图。
附图是出于说明示例实施例的目的,但是应当理解的是,本发明不限于附图中所示的布置和手段。在附图中,相同的附图标记标识至少大致相似的元件。为了促进对任何特定元件的讨论,任何参考数字中的一个或多个最高有效位指的是首次引入该元件的附图。例如,元件103a在参考图1A被首次引入和讨论。
具体实施方式
一、概述
本文描述的示例技术涉及用作云与包括POC回放设备的媒体回放系统(或联网设备的其他系统)之间的中介的接触点(POC)回放设备(或其他合适的设备,例如智能集线器)。作为中介,当云向媒体回放系统发布命令时,POC回放设备可以执行该命令的一些或全部处理,以确定例如命令的性质和/或如何在媒体回放系统中实现该命令。例如,POC回放设备可以确定命令的目标设备,然后使目标设备执行该命令。除了其他可能的益处之外,POC回放设备的这种处理还可以经由外部实体(例如,基于云的基础设施和/或其他第三方控制器等)实现对媒体回放系统的更高效控制,因为这些外部实体不需要完整和/或完全了解媒体回放系统功能和状态的最新知识。另外,这种架构使得命令的解析和执行能够由对媒体回放系统本身而言是本地的设备而不是第三方来执行。
基于云的示例性控制架构可以包括与POC回放设备进行接口连接的一个或多个平台服务器。这些平台服务器可以通过使用第三方云服务(例如,语音助手、流传输媒体服务、和/或包括其他回放系统或“智能家居”电器(例如,冰箱、微波炉、烤箱、洗碗机、洗衣机、热水器)的硬件的其他提供商等)促进对媒体回放系统中的回放设备的控制来补充媒体回放系统。第三方云服务可以使用媒体回放系统平台和/或第三方云服务的通用应用编程接口(API)与平台服务器进行接口连接。一个或多个平台服务器可以将该数据转换为本地控制API调用,然后与媒体回放系统中的POC回放设备进行接口连接以在本地执行回放命令。本地(第一方控制器)同样可以直接与平台服务器和/或POC回放设备进行接口连接,以促进对媒体回放系统的控制。
在语音控制的上下文中,语音助手服务可以处理语音输入以确定用户想要做什么(即,意图),但不需要确定如何在媒体回放系统中实现该意图。相反,使用示例技术,POC回放设备可以接收表示用户意图的数据,并且从该数据确定如何实现该意图。以这种方式,语音助手服务不必知道如何在媒体回放系统中实现该意图的细节。
例如,语音助手服务可以处理语音输入(例如,“在起居室播放一些音乐”)并确定该意图是播放音乐并且目标参数之一是“起居室”。该处理可以被称为第一命令确定。语音助手服务可以经由一个或多个平台服务器向POC回放设备传递表示播放命令的数据(在本文中被称为“命令中间体”)和目标参数(在本文中被称为“中间参数”)。
作为另一示例,语音助手服务可以执行初始意图确定,然后POC回放设备可以执行第二意图确定。以这种方式,意图确定是由语音助手服务和POC回放设备的组合而不是单个实体来执行的。例如,语音助手服务可以对语音输入(例如,“播放一些古典音乐”)执行初始意图确定,以产生表示播放音乐的意图的命令中间体。POC回放设备然后可以执行其自己的意图确定以确定该意图的各种其他方面,例如确切的内容、其来源以及目标回放设备等。
从该命令中间体和中间参数,POC回放设备可以执行第二命令确定以确定如何在媒体回放系统中实现该意图。例如,POC回放设备可以将隐式(例如,说出命令的地方,或“这里”)和显式(“起居室”)目标解析为目标回放设备集。另外,POC回放设备可以确定实现该意图所涉及的媒体回放系统命令的序列。例如,实现该意图可以涉及从两个回放设备形成同步组,然后一旦形成同步组就可以向该两个回放设备发布播放命令。
通过让POC回放设备确定如何实现该意图,语音助手服务不必管理实现细节。例如,形成同步组可以涉及指定将定时信息分发给组成员以促进同步回放的组协调器。在该架构下,语音助手服务不需要知道或管理这些细节,从而简化了对媒体回放系统的控制。
另外,通过将该负担转移到POC回放设备,媒体回放系统可以跨过多个控制器(例如,两个或更多个语音助手服务)表现得更加一致。例如,不是第一语音助手服务和第二语音助手服务独立地(并且可能不同地)确定如何实现具有相同意图的各个语音输入,而是POC回放设备可以以一致的方式实现这些具有相同意图的不同语音输入。
另外,由于在该架构下最终控制是媒体回放系统的本地控制,因此媒体回放系统的制造商可以保持对用户体验的控制。如上所述,在该架构中,用户在各种上下文(例如,不同的语音助手服务或其他云服务)和/或控制器(例如,本地控制器和第三方控制器)中与媒体回放系统的交互是一致且可预测的,这可以有助于改善用户体验。另外,当第三方改变其功能(例如,经由软件更新)时,媒体回放系统的行为可以保持不变,或者以一致的方式进行更新。
另外,该架构可以显著减少在对媒体回放系统进行改变时必须发送给第三方控制器的状态信息量。由于第三方服务不需要知道如何实现命令的所有细节,因此与这些细节相关联的状态信息不需要由第三方服务来维持。相反,第三方控制器可以维持状态信息的子集。通过减少由第三方维持的状态信息量,该架构可以显著降低在更新和存储状态信息时所产生的云计算成本。
该架构的另一可能的益处是第三方控制器不需要专门地向媒体回放系统中的任何特定设备发出命令。相反,发布设备可以向一个或多个平台服务器(即,云)发送命令,并相信该命令将从该集线器得到适当处理。从第三方服务的角度来看,这种实现可以使平台服务API更易于使用。
在确定媒体回放系统命令和目标回放设备之后,POC回放设备使目标回放设备执行媒体回放系统命令。例如,POC回放设备可以通过使用状态更新来使目标回放设备执行媒体回放系统命令。具体地,POC回放设备可以根据媒体回放系统命令更新由POC回放设备维持的状态信息。该更新继而使状态更新在整个媒体回放系统中发生,从而使目标回放设备进行对应的改变。作为另一示例,POC回放设备可以向目标回放设备发送指令以执行媒体回放系统命令。
另外,POC回放设备可以通过向平台服务器发送表示媒体回放系统命令的数据来使目标回放设备执行媒体回放系统命令。平台服务器然后可以使用状态更新或指令来进一步使目标回放设备执行媒体回放系统命令。该实现可以补充基于云的控制架构,同时仍然提供POC回放设备确定如何在本地实现命令的益处。
与语音助手服务或其他第三方服务相比,POC回放设备可以能够利用附加的上下文数据。这种第三方服务可能仅能访问用户已经在服务内生成的数据、或者用户已经选择与该服务共享的数据。出于隐私原因,一些用户可能担心与诸如语音助手服务的云服务共享他们的所有数据。相反,如果他们的数据由POC回放设备用于在本地解析意图,则这些用户可能选择共享更多数据。
更广泛地说,通过在本地做出某些确定,该架构可以保护用户隐私并保持用户数据相对于由第三方云服务执行的确定的安全性。这种第三方云服务可能以广告支持的商业模式运行,由此不再强调用户隐私,而是更有利于将用户数据货币化。通过在本地做出确定使得用户数据不需要与这种第三方云服务共享,该示例架构可以相对于由这种第三方服务进行的云处理增强用户隐私。
在一些情况下,POC回放设备可以基于附加的上下文数据和/或其更详尽的状态信息来调整由语音助手服务做出的意图确定。以这种方式,执行第二命令确定可以被视为次要意图确定,因为POC回放设备可以调整由语音助手服务执行的主要意图确定。例如,用户可以说出诸如“播放一些Mitski收藏歌曲”之类的语音输入,该语音输入可以被语音助手服务处理为使用默认流传输音频服务来播放艺术家Mitski的热门曲目的意图。在对表示该播放命令的中间体执行第二命令确定时,POC回放设备可以确定用户的实际意图是播放他们的“Mitski收藏”播放列表,而语音助手服务并不知道这一点。POC回放设备然后可以使用播放命令来实现由语音助手服务确定的意图以播放“Mitski收藏”播放列表。
如上所述,示例技术涉及在边缘处利用命令处理的基于云的控制架构。一个示例实现涉及媒体回放系统中的接触点(POC)回放设备,该媒体回放系统包括多个回放设备,其中,POC回放设备包括网络接口、至少一个处理器、以及包括指令的至少一种非暂时性计算机可读介质,该指令可由该至少一个处理器执行,使得POC回放设备被配置为:经由网络接口从云服务的一个或多个服务器接收表示命令中间体的数据,该命令中间体包括(i)中间命令和(ii)一个或多个中间参数,其中,命令中间体基于对用户输入执行的第一命令确定,对命令中间体执行第二命令确定,以确定(i)一个或多个媒体回放系统命令和(ii)媒体回放系统中的多个回放设备中的一个或多个目标回放设备;对命令中间体执行第二命令确定,以确定(i)一个或多个媒体回放系统命令和(ii)媒体回放系统中的多个回放设备中的一个或多个目标回放设备;以及使所确定的一个或多个目标回放设备执行所确定的一个或多个媒体回放系统命令。
尽管本文描述的一些实施例可以涉及由给定行动者(例如“用户”和/或其他实体)执行的功能,但应当理解,该描述仅出于解释的目的。除非权利要求本身的语言明确要求,否则不应将权利要求解释为要求任何此类示例行动者进行动作。
另外,一些功能在本文中被描述为“基于”或“响应于”另一元件或功能执行。“基于”应被理解为一个元件或功能与另一功能或元件相关。“响应于”应被理解为一个元件或功能是另一功能或元件的必然结果。为了简洁起见,当存在功能链接时,功能通常被描述为基于另一功能;然而,这种公开应被理解为公开了任一类型的功能关系。
二.示例操作环境
图1A和1B示出了媒体回放系统100(或“MPS 100”)的示例配置,在媒体回放系统100中可以实现本文公开的一个或多个实施例。首先参考图1A,所示的MPS 100与具有多个房间和空间的示例家居环境相关联,其可以统称为“家居环境”、“智能家居”或“环境101”。环境101包括具有若干个房间、空间和/或回放区的家庭,包括主浴室101a、主卧室101b(在本文中被称为“尼克的房间”)、第二卧室101c、家庭房或书房101d、办公室101e、起居室101f、餐厅101g、厨房101h和室外露台101i。虽然下面在家居环境的上下文中描述了某些实施例和示例,但本文描述的技术可以在其他类型的环境中实现。在一些实施例中,例如,MPS100可以在一个或多个商业设置(例如,餐厅、商场、机场、酒店、零售店或其他商店)、一个或多个交通工具(例如,运动型多功能车、公共汽车、汽车、轮船、船、飞机)、多个环境(例如,家居环境和交通工具环境的组合)和/或可能需要多区音频的另一合适环境中实现。
在这些房间和空间内,MPS 100包括一个或多个计算设备。一起参考图1A和图1B,这种计算设备可以包括回放设备102(分别标识为回放设备102a至102n)、网络麦克风设备103(分别标识为“NMD”103a至102i)以及控制器设备104a和104b(统称为“控制器设备104”)。参考图1B,家居环境可以包括附加的和/或其他计算设备,包括本地网络设备在内,例如一个或多个智能照明设备108(图1B)、智能恒温器110、流传输视频加密狗112和本地计算设备105(图1A)。
仍然参考图1B,MPS 100的各种回放设备、网络麦克风、以及控制器设备102、103和104、和/或其他网络设备可以经由点对点连接和/或通过经由网络111(例如,包括网络路由器109的LAN)的其他连接彼此耦接,该连接可以是有线的和/或无线的。例如,书房101d(图1A)中的可以被指定为“左”设备的回放设备102j可以与同样位于书房101d中并且可以被指定为“右”设备的回放设备102a具有点对点连接。在相关实施例中,左回放设备102j可以经由点到点连接和/或经由网络111的其他连接与可以被指定为“前”设备的其他网络设备(例如,回放设备102b)进行通信。
如图1B中进一步所示,MPS 100可以经由在这里被标记为网络107的广域网(“WAN”)(即,互联网)耦接到一个或多个远程计算设备106。在一些实施例中,每个远程计算设备106可以采取一个或多个云服务器的形式。远程计算设备106可以被配置为以各种方式与环境101中的计算设备进行交互。例如,远程计算设备106可以被配置为在家居环境101中促进流传输和/或控制媒体内容(例如,音频)的回放。
在备选示例中,MPS 100的各种回放设备、网络麦克风设备、以及控制器设备102、103和104、和/或其他网络设备可以经由广域网彼此耦接。例如,这些设备可以包括相应的蜂窝(例如,4G/5G)接口,用于形成它们自己的到网络107的互联网连接。使用这些连接,MPS100的设备可以以与经由网络111类似的方式彼此通信,尽管是通过网络107。
在一些实现中,各种回放设备、NMD和/或控制器设备102至104可以通信地耦接到与VAS相关联的至少一个远程计算设备和与媒体内容服务(“MCS””)相关联的至少一个远程计算设备。例如,在图1B所示的示例中,远程计算设备106与VAS 190相关联,而远程计算设备106b与MCS 192相关联。尽管为了清楚起见在图1B的示例中仅示出了单个VAS 190和单个MCS 192,但MPS 100可以耦接到多个、不同的VAS和/或MCS。在一些实现中,VAS可以由AMAZON、GOOGLE、APPLE、MICROSOFT、SONOS或其他语音助手提供商中的一个或多个来操作。在一些实现中,MCS可以由SPOTIFY、PANDORA、AMAZON MUSIC或其他媒体内容服务中的一个或多个来操作。
如图1B中进一步所示,远程计算设备106还包括被配置为执行某些操作(例如,远程地促进媒体回放功能、管理设备和系统状态信息、指引MPS 100的设备与一个或多个VAS和/或MCS之间的通信等操作)的远程计算设备106c。在一个示例中,远程计算设备106c为一个或多个SONOS无线HiFi系统提供云服务器。
在各种实现中,一个或多个回放设备102可以采用板载(例如,集成)网络麦克风设备的形式或包括板载(例如,集成)网络麦克风设备。例如,回放设备102a至102e分别包括对应的NMD 103a至103e或以其他方式配备有对应的NMD103a至103e。除非在本描述中另有说明,否则包括或配备有NMD的回放设备在本文中可互换地被称为回放设备或NMD。在一些情况下,一个或多个NMD103可以是独立的设备。例如,NMD103f和103g可以是独立的设备。独立的NMD可以省略回放设备中通常包括的组件和/或功能,例如扬声器或相关电子设备。例如,在这种情况下,独立的NMD可能不产生音频输出或可能产生有限的音频输出(例如,相对低质量的音频输出)。
MPS 100的各种回放设备和网络麦克风设备102和103可以各自与唯一名称相关联,该唯一名称可以例如在这些设备中的一个或多个设备的设置期间由用户指派给相应的设备。例如,如图1B所示的示例中所示,用户可以将名称“书柜”指派给回放设备102d,因为它在物理上位于书柜上。类似地,NMD 103f可以被指派所命名的“岛”,因为它在物理上位于厨房101h的岛型台面上(图1A)。一些回放设备可以根据区或房间被指派名称,例如分别被命名为“卧室”、“餐厅”、“起居室”和“办公室”的回放设备102e、102l、102m和102n。另外,某些回放设备可以具有功能描述性名称。例如,回放设备102a和102b分别被指派名称“右”和“前”,因为这两个设备被配置为在书房101d的区中在媒体回放期间提供特定音频声道(图1A)。露台中的回放设备102c可以被命名为便携式的,因为它是电池供电的和/或易于运输到环境101的不同区域。其他命名约定也是可能的。
如上所述,NMD可以检测并处理来自其环境的声音,例如包括混合有NMD附近的人所说的话音的背景噪声的声音。例如,当NMD在环境中检测到声音时,NMD可以处理所检测到的声音以确定该声音是否包括这样的话音,即该话音包括旨在用于NMD和最终特定VAS的语音输入。例如,NMD可以标识话音是否包括与特定VAS相关联的唤醒词。
在图1B所示的示例中,NMD 103被配置为通过网络经由网络111和路由器109与VAS190进行交互。例如,当NMD在所检测到的声音中标识出潜在的唤醒词时,可以发起与VAS190的交互。该标识导致唤醒词事件,这继而使NMD开始向VAS 190发送检测到的声音数据。在一些实现中,MPS 100的各种本地网络设备102至105(图1A)和/或远程计算设备106c可以和与所选择的VAS相关联的远程计算设备交换各种反馈、信息、指令和/或相关数据。这种交换可以与包含语音输入的发送消息相关或独立于该发送消息。在一些实施例中,远程计算设备和MPS 100可以经由本文所述的通信路径和/或使用于2017年2月21日提交且题为“Voice Control of a Media Playback System”的美国申请No.15/438,749中所描述的元数据交换信道来交换数据,该美国申请的全部内容通过引用并入本文。
在接收到声音数据流之后,VAS 190确定在来自NMD的流传输数据中是否存在语音输入,并且如果存在,则VAS 190还将确定语音输入中的潜在意图。VAS 190接下来可以将响应发送回MPS 100,这可以包括直接向引起唤醒词事件的NMD发送响应。该响应通常基于VAS190确定的意图存在于语音输入中。作为示例,响应于VAS 190接收到具有“播放甲壳虫(TheBeatles)的嘿!朱迪(Hey Jude)”话语的语音输入,VAS 190可以确定语音输入的潜在意图是发起回放并进一步确定该语音输入的意图是播放特定歌曲“嘿!朱迪”。在这些确定之后,VAS 190可以向特定MCS 192发送命令以取回内容(即,歌曲“嘿!朱迪”),而MCS 192继而直接或间接经由VAS 190向MPS 100提供(例如,流传输)该内容。在一些实现中,VAS 190可以向MPS 100发送使MPS 100本身从MCS 192取回该内容的命令。
在某些实现中,当在由位于彼此附近的两个或更多个NMD检测到的语音中标识出语音输入时,NMD可以促进彼此之间的仲裁。例如,环境101(图1A)中配备NMD的回放设备102d相对靠近配备NMD的起居室回放设备102m,并且设备102d和102m二者可以至少有时检测到同一声音。在这种情况下,这可能需要关于哪个设备最终负责向远程VAS提供所检测到的声音数据的仲裁。NMD之间仲裁的示例可以在例如先前所引用的美国申请No.15/438,749中找到。
在某些实现中,NMD可以被指派给指定的或默认的可能不包括NMD的回放设备,或者与之相关联。例如,厨房101h(图1A)中的岛型NMD 103f可以被指派给相对靠近岛型NMD103f的餐厅回放设备102l。在实践中,NMD可以响应于远程VAS接收到来自NMD的用于播放音频的语音输入而指示所指派的回放设备播放音频,NMD可能已经响应于用户说出用于播放某些歌曲、专辑、播放列表等的命令而向VAS发送该语音输入。关于将NMD和回放设备指派为指定的或默认设备的附加详细信息可以在例如先前所引用的美国专利申请中找到。
可以在以下部分中找到关于示例MPS 100的不同组件以及不同组件可以如何交互以向用户提供媒体体验的其他方面。虽然本文的讨论可能总体上涉及示例MPS 100,但本文描述的技术不限于上述家居环境内的应用等。例如,本文描述的技术在包括更多或更少的任何回放设备、网络麦克风设备和/或控制器设备102至104的其他家居环境配置中可能是有用的。例如,本文的技术可以在具有单个回放设备102和/或单个NMD 103的环境中使用。在这种情况的一些示例中,可以去掉网络111(图1B),并且单个回放设备102和/或单个NMD103可以直接与远程计算设备106a至106d进行通信。在一些实施例中,电信网络(例如,LTE网络、5G网络等)可以独立于LAN与各种回放设备、网络麦克风设备和/或控制器设备102至104进行通信。
a.示例回放设备和网络麦克风设备
图2A是示出了图1A和图1B的MPS 100的回放设备102之一的某些方面的功能框图。如图所示,回放设备102包括各种组件,这些组件中的每个组件在下面更详细地讨论,并且回放设备102的各种组件可以经由系统总线、通信网络或一些其他连接机制可操作地彼此耦接。在图2A所示的示例中,回放设备102可以被称为“配备NMD的”回放设备,因为它包括支持NMD功能的组件,例如图1A中所示的NMD 103之一。
如图所示,回放设备102包括至少一个处理器212,该处理器212可以是时钟驱动的被配置为根据存储器213中存储的指令来处理输入数据的计算组件。存储器213可以是有形的、非暂时性的被配置为存储可由处理器212执行的指令的计算机可读介质。例如,存储器213可以是数据存储设备,该数据存储设备可以加载有可由处理器212执行以实现某些功能的软件代码214。
在一个示例中,这些功能可以涉及回放设备102从可以是另一回放设备的音频源取回音频数据。在另一示例中,该功能可以涉及回放设备102经由至少一个网络接口224向网络上的另一设备发送音频数据、检测到的声音数据(例如,对应于语音输入)和/或其他信息。在又另一示例中,该功能可以涉及回放设备102使一个或多个其他回放设备与回放设备102同步地回放音频。在又另外的示例中,该功能可以涉及回放设备102促进与一个或多个其他回放设备进行配对或以其他方式与一个或多个其他回放设备结合以创建多声道音频环境。许多其他示例功能是可能的,其中一些在下面进行讨论。
如刚刚提到的,某些功能可以包括回放设备102与一个或多个其他回放设备同步对音频内容的回放。在同步回放期间,听者可能感知不到同步的回放设备对音频内容的回放之间的时间延迟差异。于2004年4月4日提交的题为“System and method forsynchronizing operations among a plurality of independently clocked digitaldata processing devices”的美国专利No.8,234,395更详细地提供了回放设备之间的音频回放同步的一些示例,该美国专利的全部内容通过引用并入本文。
为了促进音频回放,回放设备102包括音频处理组件216,音频处理组件216通常被配置为在回放设备102呈现音频之前处理音频。在这方面,音频处理组件216可以包括一个或多个数模转换器(“DAC”)、一个或多个音频预处理组件、一个或多个音频增强组件、一个或多个数字信号处理器(“DSP”))等。在一些实现中,一个或多个音频处理组件216可以是处理器212的子组件。在操作中,音频处理组件216接收模拟音频和/或数字音频,并且处理音频和/或以其他方式有意地改变音频,以产生用于回放的音频信号。
所产生的音频信号然后可以被提供给一个或多个音频放大器217,以通过可操作地耦接到放大器217的一个或多个扬声器218进行放大和回放。音频放大器217可以包括被配置为将音频信号放大到用于驱动一个或多个扬声器218的电平的组件。
每个扬声器218可以包括单独的换能器(例如,“驱动器”),或者扬声器218可以包括具有一个或多个驱动器的包括壳体的完整扬声器系统。例如,扬声器218的特定驱动器可以包括例如低音扬声器(例如,用于低频)、中频段驱动器(例如,用于中频)和/或高音扬声器(例如,用于高频)。在一些情况下,换能器可以由音频放大器217中的各个对应音频放大器驱动。在一些实现中,回放设备可以不包括扬声器218,而是可以包括用于将回放设备连接到外部扬声器的扬声器接口。在某些实施例中,回放设备可以既不包括扬声器218也不包括音频放大器217,而是可以包括用于将回放设备连接到外部音频放大器或视听接收器的音频接口(未示出)。
除了产生用于回放设备102回放的音频信号之外,音频处理组件216还可以被配置为处理要经由网络接口224发送给一个或多个其他回放设备以进行回放的音频。在示例场景中,可以例如通过回放设备102(未示出)的音频线路输入接口(例如,自动检测3.5mm音频线路输入连接)或经由网络接口224从外部源接收要由回放设备102处理和/或回放的音频内容,如下所述。
如图所示,至少一个网络接口224可以采取一个或多个无线接口225和/或一个或多个有线接口226的形式。无线接口可以为回放设备102提供网络接口功能,以根据通信协议(例如,任何无线标准,包括IEEE 802.11a、802.11b、802.11g、802.11n、802.11ac、802.15、4G移动通信标准等)与其他设备(例如,其他回放设备、NMD和/或控制设备)进行无线通信。有线接口可以为回放设备102提供网络接口功能,以根据通信协议(例如,IEEE802.3)通过有线连接与其他设备进行通信。虽然图2A中所示的网络接口224包括有线接口和无线接口二者,但在一些实现中,回放设备102可以仅包括无线接口或仅包括有线接口。
通常,网络接口224促进回放设备102与数据网络上的一个或多个其他设备之间的数据流。例如,回放设备102可以被配置为通过数据网络从一个或多个其他回放设备、LAN内的网络设备和/或WAN(例如,互联网)上的音频内容源接收音频内容。在一个示例中,由回放设备102发送和接收的音频内容和其他信号可以以包括基于互联网协议(IP)的源地址和基于IP的目的地地址的数字分组数据的形式来发送。在这种情况下,网络接口224可以被配置为解析数字分组数据,使得去往回放设备102的数据被回放设备102正确地接收和处理。
如图2A中所示,回放设备102还包括可操作地耦接到一个或多个麦克风222的语音处理组件220。麦克风222被配置为检测回放设备102的环境中的声音(即,声波),然后将该声音提供给语音处理组件220。更具体地,每个麦克风222被配置为检测声音并将声音转换为表示所检测到的声音的数字信号或模拟信号,这然后可以使语音处理组件220基于所检测到的声音执行各种功能,如下面更详细描述的。在一个实现中,麦克风222被布置为麦克风阵列(例如,六个麦克风的阵列)。在一些实现中,回放设备102包括多于六个麦克风(例如,八个麦克风或十二个麦克风)或少于六个麦克风(例如,四个麦克风、两个麦克风或单个麦克风)。
在操作中,语音处理组件220通常被配置为检测并处理经由麦克风222接收到的声音,标识所检测到的声音中的潜在语音输入,以及提取所检测到的声音数据以使VAS(例如,VAS 190(图1B))能够处理在所检测到的声音数据中标识的语音输入。除了其他示例语音处理组件之外,语音处理组件220还可以包括一个或多个模数转换器、声学回声消除器(“AEC”)、空间处理器(例如,一个或多个多声道维纳(Wiener)滤波器、一个或多个其他滤波器、和/或一个或多个波束形成器组件)、一个或多个缓冲器(例如,一个或多个循环缓冲器)、一个或多个唤醒词引擎、一个或多个语音提取器、和/或一个或多个语音处理组件(例如,被配置为识别与家庭相关联的特定用户或特定用户集合的语音的组件)。在示例实现中,语音处理组件220可以包括一个或多个DSP、或DSP的一个或多个模块,或者以其他方式采取一个或多个DSP、或DSP的一个或多个模块的形式。在这方面,某些语音处理组件220可以配置有可以被修改或以其他方式被调谐以实现特定功能的特定参数(例如,增益和/或频谱参数)。在一些实现中,一个或多个语音处理组件220可以是处理器212的子组件。
如图2A中进一步所示,回放设备102还包括电源组件227。电源组件227至少包括外部电源接口228,外部电源接口228可以经由将回放设备102物理地连接到电源插座或一些其他外部电源的电缆等耦接到电源(未示出)。其他电源组件可以包括例如变压器、转换器、以及被配置为格式化电力的类似组件。
在一些实现中,回放设备102的电源组件227可以附加地包括内部电源229(例如,一个或多个电池),内部电源229被配置为在没有到外部电源的物理连接的情况下为回放设备102供电。当配备有内部电源229时,回放设备102可以独立于外部电源进行操作。在一些这种实现中,外部电源接口228可以被配置为促进对内部电源229进行充电。如前面所讨论,包括内部电源的回放设备在本文中可以被称为“便携式回放设备”。另一方面,使用外部电源进行操作的回放设备在本文中可以被称为“固定回放设备”,尽管这种设备实际上可以在家庭或其他环境周围移动。
回放设备102还包括用户界面240,用户界面240可以促进独立于或结合由控制器设备104中的一个或多个控制器设备促进的用户交互的用户交互。在各种实施例中,用户界面240包括一个或多个物理按钮和/或支持在触敏屏幕和/或表面上提供的图形界面等,以供用户直接提供输入。用户界面240还可以包括一个或多个灯(例如,LED)和扬声器,以向用户提供视觉和/或音频反馈。
作为说明性示例,图2B示出了回放设备102的示例壳体230,示例壳体230包括壳体230的顶部234处的控制区域232形式的用户界面。控制区域232包括用于控制音频回放、音量水平和其他功能的按钮236a至236c。控制区域232还包括用于将麦克风222切换到开启状态或关闭状态的按钮236d。
如图2B中进一步所示,控制区域232至少部分地被形成在壳体230的顶部234中的孔环绕,麦克风222(在图2B中不可见)通过这些孔接收回放设备102的环境中的声音。麦克风222可以在沿壳体230的顶部234或其他区域的各种位置和/或在壳体230的顶部234或其他区域内的各种位置进行布置,以便检测来自相对于回放设备102的一个或多个方向的声音。
举例来说,SONOS公司目前提供(或已经提供)销售某些回放设备,包括“PLAY:1”、“PLAY:3”、“PLAY:5”、“PLAYBAR”、“CONNECT:AMP”、“PLAYBASE”、“BEAM”、“CONNECT”和“SUB”,这些回放设备可以实现本文公开的某些实施例。任何其他过去、现在和/或将来的回放设备可以附加地或备选地用于实现本文公开的示例实施例的回放设备。另外,应当理解,回放设备不限于图2A或图2B中所示的示例或SONOS的产品供应。例如,回放设备可以包括有线或无线耳机装置或以其他方式采用有线或无线耳机装置的形式,该有线或无线耳机装置可以经由网络接口等用作MPS 100的一部分。在另一示例中,回放设备可以包括个人移动媒体回放设备的扩展基座,或与其交互。在又另一示例中,回放设备可以是诸如电视、照明器材或在室内外使用的一些其他设备之类的另一设备或组件的组成部分。
图2C是可以由NMD或配备有NMD的回放设备处理的示例语音输入280的图。语音输入280可以包括关键词部分280a和话语部分280b。关键词部分280a可以包括唤醒词或命令关键词。在唤醒词的情况下,关键词部分280a对应于所检测到的引起唤醒词的声音。话语部分280b对应于所检测到的可能包括关键词部分280a之后的用户请求的声音。响应于由关键词部分280a引起的事件,NMD可以处理话语部分280b以标识所检测到的声音数据中任何词的存在。在各种实现中,可以基于话语部分280b中的词来确定潜在意图。在某些实现中,例如当关键词部分包括命令关键词时,潜在意图也可以基于或至少部分基于关键词部分280a中的某些词。在任何情况下,这些词可以对应于一个或多个命令以及某个命令和某些关键词。语音话语部分280b中的关键词可以是例如标识MPS 100中的特定设备或组的词。例如,在所示示例中,语音话语部分280b中的关键词可以是标识将在其中播放音乐的一个或多个区(例如起,居室和餐厅(图1A))的一个或多个词。在一些情况下,话语部分280b可以包括附加信息,例如所检测到的由用户说出的词之间的停顿(例如,非语音时段),如图2C中所示。停顿可以在话语部分280b内划分由用户说出的单独命令、关键词或其他信息的位置。
基于某个命令标准,作为标识语音输入中的一个或多个命令的结果,NMD和/或远程VAS可以采取动作。命令标准可以基于在语音输入内包括某些关键词等。附加地或备选地,用于命令的命令标准可以涉及对一个或多个控制状态和/或区状态变量的标识连同对一个或多个特定命令的标识。控制状态变量可以包括例如标识音量水平的指示符、与一个或多个设备相关联的队列、以及回放状态(例如,设备是否正在播放队列、是否暂停等)。区状态变量可以包括例如标识哪些区播放器(如果有的话)被分在一组的指示符。
在一些实现中,MPS 100被配置为在检测到关键词部分280a中的某个关键词(例如,唤醒词)时暂时降低它正在播放的音频内容的音量。MPS 100可以在处理语音输入280之后恢复音量。这样的过程可以被称为回避,其示例在全部内容通过引用并入本文的美国专利申请No.15/438,749中被公开。
图2D示出了示例声音样本。在该示例中,声音样本对应于与图2A的关键词部分280a中的被发现的唤醒词或命令关键词相关联的声音数据流(例如,一个或多个音频帧)。如图所示,示例声音样本包括在以下时间在NMD的环境中检测到的声音:(i)紧接在说出唤醒词或命令词之前,这可以被称为预卷部分(在时间t0和t1之间),(ii)在说出唤醒词或命令词时,这可以被称为唤醒计部分(在时间t1和t2之间),和/或(iii)在说出唤醒词或命令词之后,这可以被称为后卷部分(在时间t2和t3之间)。其他声音样本也是可能的。在各种实现中,可以根据声学模型来评估声音样本的各方面,该声学模型旨在将梅尔(mels)/频谱特征映射到给定语言模型中的音素以供进一步处理。例如,自动语音识别(ASR)可以包括用于命令关键词检测的这种映射。相比之下,可以精确调谐唤醒词检测引擎以标识特定唤醒词和调用VAS的下游操作(例如,通过仅针对由回放设备处理的语音输入中的随机词)。
可以调谐用于命令关键词检测的ASR以适应广泛范围的关键词(例如,5、10、100、1000、10000个关键词)。与唤醒词检测相比,命令关键词检测可以涉及将ASR输出馈送到板载本地NLU,该板载本地NLU与ASR一起确定命令词事件何时发生。在下面描述的一些实现中,本地NLU可以基于由特定语音输入产生的ASR输出中的一个或多个其他关键词来确定意图。在这些或其他实现中,回放设备可以仅在回放设备确定已经满足特定条件(例如,环境条件(例如,低背景噪声))时才对所检测到的命令关键词事件起作用。
b.示例回放设备配置
图3A至图3E示出了回放设备的示例配置。首先参考图3A,在一些示例实例中,单个回放设备可以属于一个区。例如,露台上的回放设备102c(图1A)可以属于A区。在下面描述的一些实现中,多个回放设备可以“绑定”以形成“绑定对”,该“绑定对”一起形成单个区。例如,图3A中名为“床1”的回放设备102f(图1A)可以绑定到图3A中名为“床2”的回放设备102g(图1A)以形成B区。绑定的回放设备可以具有不同的回放职责(例如,声道职责)。在下面描述的另一实现中,可以合并多个回放设备以形成单个区。例如,名为“书柜”的回放设备102d可以与名为“起居室”的回放设备102m合并以形成单个C区。合并的回放设备102d和102m可以不被具体地指派不同的回放职责。即,合并的回放设备102d和102m除了同步播放音频内容之外,还可以像它们没有被合并时一样各自播放音频内容。
出于控制的目的,MPS 100中的每个区可以被表示为单个用户界面(“UI”)实体。例如,如控制器设备104所显示的,A区可以作为名为“可携带”的单个实体来提供,B区可以作为名为“立体声”的单个实体来提供,以及C区可以作为名为“起居室”的单个实体来提供。
在各种实施例中,区可以采用属于该区的回放设备之一的名称。例如,C区可以采用起居室设备102m的名称(如图所示)。在另一示例中,C区可以替代地采用书柜设备102d的名称。在另外的示例中,C区可以采用这样的名称,即该名称是书柜设备102d和起居室设备102m的某种组合。被选择的名称可以由用户经由控制器设备104处的输入来选择。在一些实施例中,区可以被赋予与属于该区的设备不同的名称。例如,图3A中的B区被命名为“立体声”,但B区中的所有设备都没有该名称。一方面,B区是表示名为“立体声”的单个设备的单个UI实体,该单个UI实体由组成设备“床1”和“床2”组成。在一种实现中,床1设备可以是主卧室101b(图1A)中的回放设备102f,并且床2设备可以是也在主卧室101b(图1A)中的回放设备102g。
如上所述,绑定的回放设备可以具有不同的回放职责,例如某些音频声道的回放职责。例如,如图3B中所示,床1设备102f和床2设备102g可以绑定以产生或增强音频内容的立体声效果。在该示例中,床1回放设备102f可以被配置为播放左声道音频分量,而床2回放设备102g可以被配置为播放右声道音频分量。在一些实现中,这种立体声绑定可以被称为“配对”。
另外,被配置为绑定的回放设备可以具有附加的和/或不同的相应扬声器驱动器。如图3C中所示,名为“前”的回放设备102b可以与名为“SUB(低音炮)”的回放设备102k绑定。前设备102b可以呈现中频到高频的范围,而SUB设备102k例如作为低音扬声器可以呈现低频的范围。当未绑定时,前设备102b可以被配置为呈现全范围的频率。作为另一示例,图3D示出了分别与右回放设备102a和左回放设备102j进一步绑定的前设备102b和SUB设备102k。在一些实现中,右设备102a和左设备102j可以形成家庭影院系统的环绕或“卫星”声道。绑定的回放设备102a、102b、102j和102k可以形成单个D区(图3A)。
在一些实现中,回放设备也可以被“合并”。与某些绑定的回放设备相比,合并的回放设备可以没有指派的回放职责,但可以各自呈现每个相应回放设备能够提供的全范围的音频内容。然而,合并的设备可以被表示为单个UI实体(即,区,如上所述)。例如,图3E示出了起居室中合并的回放设备102d和102m,这将导致这些设备由C区的单个UI实体来表示。在一个实施例中,回放设备102d和102m可以同步回放音频,在此期间各自输出每个相应回放设备102d和102m能够呈现的全范围的音频内容。
在一些实施例中,独立的NMD可以本身在区中。例如,图1A中的NMD 103h被命名为“壁橱”并形成图3A中的I区。NMD也可以与另一设备绑定或合并以形成区。例如,名为“岛”的NMD设备103f可以与回放设备102i厨房绑定,它们一起形成F区,F区也被称为“厨房”。关于将NMD和回放设备指派为指定的或默认设备的其他详细信息可以在例如先前所引用的美国专利申请No.15/438,749中找到。在一些实施例中,独立的NMD可以不被指派给区。
可以布置单独的、绑定的和/或合并的设备的区以形成同步回放音频的回放设备集。这种回放设备集可以被称为“组”、“区组”、“同步组”或“回放组”。响应于经由控制器设备104提供的输入,回放设备可以被动态地分组和取消分组以形成同步回放音频内容的新组或不同的组。例如,参考图3A,A区可以与B区分在一组以形成包括两个区的回放设备的区组。作为另一示例,A区可以与一个或多个其他C区至I区分在一组。可以以多种方式对A区至I区进行分组和取消分组。例如,A区至I区中的三个、四个、五个或更多个(例如,全部)可以分在一组。单独的回放设备和/或绑定的回放设备的区当被分在一组时可以彼此同步地回放音频,如先前引用的美国专利No.8,234,395中所述。分组的设备和绑定的设备是便携式回放设备和固定回放设备之间的关联的示例类型,该关联可以响应于触发事件而引起,如上面所讨论的和下面更详细描述的。
在各种实现中,环境中的区可以被指派特定名称,该特定名称可以是区组内的区的默认名称或区组内的区的名称的组合(例如,“餐厅+厨房”),如图3A中所示。在一些实施例中,区组可以被赋予由用户选择的唯一名称,例如“尼克的房间”,也如图3A中所示。名称“尼克的房间”可以是用户所选择的名称,而不是区组的先前名称,例如房间名称“主卧室”。
返回参考图2A,特定数据可以作为一个或多个状态变量存储在存储器213中,这些状态变量被周期性地更新并用于描述回放区、回放设备和/或与其相关联的区组的状态。存储器213还可以包括与MPS 100的其他设备的状态相关联的数据,该数据可以时不时地在设备之间共享,使得一个或多个设备具有与系统相关联的最新数据。
在一些实施例中,回放设备102的存储器213可以存储与状态相关联的各种变量类型的实例。变量实例可以与对应于类型的标识符(例如,标签)一起存储。例如,某些标识符可以是用于标识区的回放设备的第一类型“a1”、用于标识可以绑定在区中的回放设备的第二类型“b1”、以及用于标识该区可以属于的区组的第三类型“c1”。作为相关示例,在图1A中,与露台相关联的标识符可以指示露台是特定区的唯一回放设备,并且不在区组中。与起居室相关联的标识符可以指示起居室未与其他区分在一组,但包括绑定的回放设备102a、102b、102j和102k。与餐厅相关联的标识符可以指示餐厅是餐厅+厨房组的部分并且设备103f和102i绑定。由于厨房是餐厅+厨房区组的部分,因此与厨房相关联的标识符可以指示相同或相似的信息。下面描述了其他示例区变量和标识符。
在又另一示例中,MPS 100可以包括表示区和区组的其他关联的变量或标识符,例如与区域相关联的标识符,如图3A中所示。区域可以涉及区组的集群和/或不在一个区组内的区。例如,图3A示出了名为“第一区域”的第一区域和名为“第二区域”的第二区域。第一区域包括露台、书房、餐厅、厨房和浴室的区和区组。第二区域包括浴室、尼克的房间、卧室和起居室的区和区组。在一个方面,区域可以用于调用共享另一集群的一个或多个区和/或区组的区组和/或区的集群。在这方面,这种区域不同于区组,区组不与另一区组共享区。可以在例如于2017年8月21日提交的并且题为“Room Association Based on Name”的美国申请No.15/682,506以及于2007年9月11日提交的并且题为“Controlling and manipulatinggroupings in a multi-zone media system”的美国专利No.8,483,853中找到用于实现区域的技术的另外示例。这些申请中的每一个通过引用整体并入本文。
存储器213还可以被配置为存储其他数据。这种数据可以关于可由回放设备102访问的音频源或者回放设备(或一些其他回放设备)可以与之相关联的回放队列。在下面描述的实施例中,存储器213被配置为存储用于在处理语音输入时选择特定VAS的命令数据集。在操作期间,图1A的环境中的一个或多个回放区可以各自播放不同的音频内容。例如,用户可以正在露台区中烧烤并收听由回放设备102c正在播放的嘻哈音乐,而另一用户可以正在厨房区中准备食物并收听由回放设备102i正在播放的古典音乐。在另一示例中,回放区可以与另一回放区同步播放相同的音频内容。
例如,用户可以在办公区中,其中回放设备102n正在播放与露台区中的回放设备102c正在播放的嘻哈音乐相同的嘻哈音乐。在这种情况下,回放设备102c和102n可以同步播放嘻哈音乐,使得用户可以在不同回放区之间移动时无缝地(或至少基本上无缝地)享受正在以外放方式播放的音频内容。可以以类似于回放设备之间的同步的方式实现回放区之间的同步,如先前引用的美国专利No.8,234,395中所述。
如上所述,可以动态地修改MPS 100的区配置。因此,MPS 100可以支持多种配置。例如,如果用户将一个或多个回放设备物理地移动到区或从区中移出,则可以重新配置MPS100以适应变化。例如,如果用户物理地将回放设备102c从露台区移动到办公区,则办公区现在可以包括回放设备102c和102n。在一些情况下,用户可以使用例如控制器设备104之一和/或语音输入将移动的回放设备102c与办公区配对或分在一组和/或重命名办公区中的播放器。作为另一示例,如果一个或多个回放设备102移动到家居环境中的还不是回放区的特定空间,则移动的回放设备可以被重命名或与特定空间的回放区相关联。
另外,MPS 100的不同回放区可以被动态组合成区组或划分为单独的回放区。例如,餐厅区和厨房区可以被组合成用于宴会的区组,使得回放设备102i和102l可以同步呈现音频内容。作为另一示例,书房区中的绑定的回放设备可以划分为(i)电视区和(ii)单独的收听区。电视区可以包括前回放设备102b。收听区可以包括右、左和SUB回放设备102a、102j和102k,它们可以被分组、配对或合并,如上所述。以这种方式划分书房区可以允许一个用户在起居室空间的一个区域中的收听区中收听音乐,而另一用户在起居室空间的另一区域中观看电视。在相关示例中,用户可以利用NMD 103a或103b(图1B)中的任一个以在书房区被分隔成电视区和收听区之前控制书房区。收听区一旦被分隔,就可以由例如NMD103a附近的用户控制,而电视区可以例如由NMD 103b附近的用户控制。然而,如上所述,NMD103中的任何一个可以被配置为控制MPS 100的各种回放和其他设备。
c.示例控制器设备
图4是示出了图1A的MPS 100的控制器设备104中所选择的控制器设备的某些方面的功能框图。这种控制器设备在本文中也可以被称为“控制设备”或“控制器”。图4中所示的控制器设备可以包括通常与上述网络设备的某些组件相类似的组件,例如处理器412、存储程序软件414的存储器413、至少一个网络接口424、以及一个或多个麦克风422。在一个示例中,控制器设备可以是用于MPS 100的专用控制器。在另一示例中,控制器设备可以是可以在其上安装媒体回放系统控制器应用软件的网络设备,例如,iPhoneTM、iPadTM或任何其他智能电话、平板计算机或网络设备(例如,诸如PC或MacTM的联网计算机)。
控制器设备104的存储器413可以被配置为存储控制器应用软件以及与MPS 100和/或系统100的用户相关联的其他数据。存储器413可以加载有软件414中的指令,该指令可由处理器412执行以实现某些功能,例如促进用户访问、控制和/或配置MPS 100。控制器设备104被配置为经由网络接口424与其他网络设备进行通信,网络接口424可以采用无线接口的形式,如上所述。
在一个示例中,可以经由网络接口424在控制器设备104和其他设备之间传送系统信息(例如,诸如状态变量)。例如,控制器设备104可以从回放设备、NMD或另一网络设备接收MPS 100中的回放区和区组配置。同样,控制器设备104可以经由网络接口424向回放设备或另一网络设备发送这种系统信息。在一些情况下,另一网络设备可以是另一控制器设备。
控制器设备104还可以经由网络接口424向回放设备传送回放设备控制命令,例如音量控制和音频回放控制。如上面所建议的,对MPS 100的配置的改变也可以由用户使用控制器设备104来执行。该配置改变可以包括:向区添加或从区中移除一个或多个回放设备、向区组添加或从区组中移除一个或多个区、形成绑定或合并的播放器、将一个或多个回放设备从绑定或合并的播放器分开等。
如图4中所示,控制器设备104还包括通常被配置为促进用户访问并控制MPS 100的用户界面440。用户界面440可以包括被配置为提供各种图形控制器界面(例如,图5A和图5B中所示的控制器界面540a和540b)的触摸屏显示器或其他物理界面。一起参考图5A和图5B,控制器界面540a和540b包括回放控制区域542、回放区区域543、回放状态区域544、回放队列区域546和源区域548。所示的用户界面仅是可以在网络设备(例如,图4中所示的控制器设备)上提供的界面的一个示例,并且用户可以访问该界面以控制媒体回放系统,例如MPS 100。备选地,可以在一个或多个网络设备上实现变化的格式、样式和交互序列的其他用户界面,以提供对媒体回放系统的类似的控制访问。
回放控制区域542(图5A)可以包括可选择的(例如,通过触摸或通过使用光标)图标,该可选择的图标当被选择时使所选择的回放区或区组中的回放设备播放或暂停、快进、回退、跳到下一个、跳到前一个、进入/退出随机播放模式、进入/退出重复模式、进入/退出交叉淡入淡出模式等。回放控制区域542还可以包括可选择的图标,该可选择的图标当被选择时修改均衡设置和/或回放音量等。
回放区区域543(图5B)可以包括MPS 100内的回放区的表示。回放区区域543还可以包括区组(例如,餐厅+厨房区组)的表示,如图所示。
在一些实施例中,回放区的图形表示可以是可选择的,以调出附加的可选择图标来管理或配置MPS 100中的回放区,例如,创建绑定的区、创建区组、分离区组、重命名区组等。
例如,如图所示,可以在回放区的每个图形表示内提供“分组”图标。在特定区的图形表示内提供的“分组”图标可以是可选择的,以调出用于选择MPS 100中要与特定区分在一组的一个或多个其他区的选项。一旦被分组,已经与特定区分在一组的区中的回放设备将被配置为与特定区中的回放设备同步地播放音频内容。类似地,可以在区组的图形表示内提供“分组”图标。在这种情况下,“分组”图标可以是可选择的,以调出用于不选择要从区组中移除的该区组中的一个或多个区的选项。用于经由用户界面对区进行分组和取消分组的其他交互和实现也是可能的。当回放区或区组配置被修改时,可以动态地更新回放区在回放区区域543(图5B)中的表示。
回放状态区域544(图5A)可以包括在所选择的回放区域或区组中当前正在播放、先前播放或安排为接下来播放的音频内容的图形表示。可以在控制器界面上可视地区分所选择的回放区或区组,例如,在回放区区域543和/或回放状态区域544内。图形表示可以包括曲目标题、艺术家姓名、专辑名称、专辑年份、曲目长度以及当经由控制器界面400控制MPS 100时用户知道了会有用的其他相关信息。
回放队列区域546可以包括与所选择的回放区或区组相关联的回放队列中的音频内容的图形表示。在一些实施例中,每个回放区或区组可以与回放队列相关联,该回放队列包括与由该回放区或区组回放的零个或多个音频项相对应的信息。例如,回放队列中的每个音频项可以包括统一资源标识符(URI)、统一资源定位符(URL)或一些其他标识符,其可以由回放区或区组中的回放设备用于从本地音频内容源或联网音频内容源查找和/或取回音频项,该音频项然后可以由回放设备回放。
在一个示例中,可以将播放列表添加到回放队列,在这种情况下,可以将与播放列表中的每个音频项对应的信息添加到回放队列。在另一示例中,回放队列中的音频项可以被保存为播放列表。在另外的示例中,当回放区或区组正在持续播放流传输媒体音频内容(例如,互联网收音机,其可以持续播放直到被停止),而不是具有回放持续时间的分立音频项时,回放队列可以是空的或被填充但“未使用”。在备选实施例中,回放队列可以包括互联网收音机和/或其他流传输媒体音频内容项,并且当回放区或区组正在播放这些项时处于“使用中”。其他示例也是可能的。
当回放区或区组被“分组”或“取消分组”时,可以清除与受影响的回放区或区组相关联的回放队列,或者重新关联。例如,如果包括第一回放队列的第一回放区与包括第二回放队列的第二回放区被分在一组,则所建立的区组可以具有相关联的回放队列,其最初是空的,包含来自第一回放队列的音频项(例如,如果第二回放区被添加到第一回放区),或包含来自第二回放队列的音频项(例如,如果第一回放区被添加到第二回放区),或包含来自第一回放队列和第二回放队列二者的音频项的组合。随后,如果所建立的区组被取消分组,则所得到的第一回放区可以与先前的第一回放队列重新关联,或者可以与新的回放队列相关联,该新的回放队列是空的,或者包含与来自在所建立的区组被取消分组之前所建立的区组相关联的回放队列的音频项。类似地,所得到的第二回放区可以与先前的第二回放队列重新关联,或者可以与新的回放队列相关联,该新的回放队列是空的,或者包含来自在与所建立的区组被取消分组之前所建立的区组相关联的回放队列的音频项。其他示例也是可能的。
仍然参考图5A和图5B,音频内容在回放队列区域646(图5A)中的图形表示可以包括曲目标题、艺术家姓名、曲目长度、和/或与回放队列中的音频内容相关联的其他相关信息。在一个示例中,音频内容的图形表示可以是可选择的,以调出附加的可选择图标来管理和/或操纵回放队列和/或回放队列中表示的音频内容。例如,可以将所表示的音频内容从回放队列中移除,将所表示的音频内容移动到回放队列内的不同位置,或者选择所表示的音频内容以立即播放,或者在任何当前播放的音频内容之后进行播放等。与回放区或区组相关联的回放队列可以存储于该回放区或区组中的一个或多个回放设备上、不在该回放区或区组中的回放设备上和/或一些其他指定设备上的存储器中。这种回放队列的回放可以涉及一个或多个回放设备可能按顺序或随机顺序回放队列中的媒体项。
源区域548可以包括可选择音频内容源和/或与对应VAS相关联的可选择语音助手的图形表示。可以选择性地指派VAS。在某些示例中,多个VAS(例如,亚马逊的Alexa、微软的Cortana等)可以由同一NMD调用。在一些实施例中,用户可以将VAS专门指派给一个或多个NMD。例如,用户可以将第一VAS指派给图1A中所示的起居室中的NMD 102a和102b中的一个或两个,并且将第二VAS指派给厨房中的NMD 103f。其他示例是可能。
d.示例音频内容源
源区域548中的音频源可以是音频内容源,所选择的回放区或区组可以从该音频内容源取回并播放音频内容。区或区组中的一个或多个回放设备可以被配置为从各种可用音频内容源中获取回放音频内容(例如,根据音频内容的对应URI或URL)。在一个示例中,回放设备可以(例如,经由线路输入连接)直接从对应的音频内容源中取回音频内容。在另一示例中,可以在网络上,通过一个或多个其他回放设备或网络设备向回放设备提供音频内容。如下面更详细描述的,在一些实施例中,音频内容可由一个或多个媒体内容服务提供。
示例音频内容源可以包括:媒体回放系统(例如,图1的MPS 100)中的一个或多个回放设备的存储器、一个或多个网络设备(例如,控制器设备、支持网络的个人计算机、或者网络附接存储器(“NAS”))上的本地音乐库、通过互联网(例如,基于云的音乐服务)提供音频内容的流传输音频服务、或者通过回放设备或网络设备上的线路输入连接连接至媒体回放系统的音频源等。
在一些实施例中,可以在诸如图1A的媒体回放系统100之类的媒体回放系统中添加音频内容源,或从中移除音频内容源。在一个示例中,每当添加、移除或更新一个或多个音频内容源时,可以执行对音频项编索引。对音频项编索引可以包括:扫描由媒体回放系统中的回放设备可访问的网络上共享的所有文件夹/目录中的可标识音频项,并且生成或更新包括元数据(例如,标题、艺术家、专辑、曲目长度等)及其他关联信息(例如,找到的每个可标识音频项的URI或URL)的音频内容数据库。用于管理和维持音频内容源的其他示例也是可能的。
图6是示出了MPS 100的设备之间的数据交换的消息流图。在步骤650a,MPS 100经由控制设备104接收所选择的媒体内容(例如,一首或多首歌曲、专辑、播放列表、播客、视频、电台)的指示。所选择的媒体内容可以包括例如与媒体回放系统连接的一个或多个设备(例如,图1C的音频源105)上本地存储的媒体项、和/或一个或多个媒体服务服务器(图1B的远程计算设备106中的一个或多个)上存储的媒体项。响应于接收到所选择的媒体内容的指示,控制设备104将消息651a发送给回放设备102(图1A至图1C)以将所选择的媒体内容添加到回放设备102上的回放队列。
在步骤650b,回放设备102接收消息651a并将所选择的媒体内容添加到回放队列以进行回放。
在步骤650c,控制设备104接收对应于命令的输入以回放所选择的媒体内容。响应于接收到与回放所选择的媒体内容的命令相对应的输入,控制设备104将消息651b发送给回放设备102,使回放设备102回放所选择的媒体内容。响应于接收到消息651b,回放设备102向计算设备106发送消息651c以请求所选择的媒体内容。响应于接收到消息651c,计算设备106发送消息651d,该消息651d包括对应于所请求的媒体内容的数据(例如,音频数据、视频数据、URL、URI)。
在步骤650d,回放设备102接收具有与所请求的媒体内容相对应的数据的消息651d并且回放关联的媒体内容。
在步骤650e,回放设备102可选地使一个或多个其他设备回放所选择的媒体内容。在一个示例中,回放设备102是两个或更多播放器的绑定区之一(图1M)。回放设备102可以接收所选择的媒体内容并将媒体内容的全部或部分发送给绑定区中的其他设备。在另一示例中,回放设备102是组的协调器并且被配置为从该组中的一个或多个其他设备发送和接收定时信息。该组中的其他一个或多个设备可以从计算设备106接收所选择的媒体内容,并且响应于来自回放设备102的消息,开始回放所选择的媒体内容,使得组中的所有设备同步回放所选择的媒体内容。
三.定义区域和创建组
如前面部分所述,用户可以预先定义所保存的组(被称为区域),然后使用这些区域形成组,然后使用各个区和/或区域创建组。在示例中,控制设备104(图4)可以促进用于定义区域并对媒体回放系统100(图1A和图1B)中的回放设备102进行分组的命令。如上面结合图4所讨论的,控制器设备104包括通常被配置为促进用户访问并控制MPS 100的用户界面440。另外,用户界面440可以包括被配置为提供各种图形控制器界面(例如,图5A和图5B中所示的控制器界面540a和540b)的触摸屏显示器或其他物理界面。
图7A和图7B示出了用于促进各种分组控制的另外示例控制界面。图7A示出了用于促进定义在本文中被称为区域的预保存组的示例控制器界面740a。图7B示出了用于促进在创建分组时选择区和区域的示例控制器界面740b。
具体地,图7A的控制器界面740a包括用于选择正在被定义的新区域的名称的区域名称区域741。在区域名称区域741中,用户可以选择预定义区域名称之一(例如,使用触摸输入)或在定制区域名称控件742中输入表示定制区域名称的字符串(例如,使用屏幕上的键盘)。这里,通过示例,选择预定义的区域名称(“楼下”)。
控制器界面740a还包括区选择区域743用于选择要包括在该区域中的区(对应于单独的回放设备102或绑定的回放设备(图3B至图3E))。如图所示,每个区具有用于选择要包括在该区域中的区的对应控件。这里,举例来说,选择与起居室101f、餐厅101g、办公室101e和厨房101h相对应的控件以包括在“楼下”区域中。一旦选择了所期望的区,创建区域控件744的选择导致区域的创建。
在一些示例中,区域可以包括区组。如图7A中所示,区选择区域743列出了区组“露台+厨房”和用于选择要包括在该区域中的区组的对应控件。在该示例中,区选择区域743还单独地列出组成区,使得可以用区组的一个或多个组成区创建区域,而不必包括区组中的每个区。备选地,区选择区域743可能不显示单独的组成员,直到从区组中移除区。
虽然控制器界面740a被示出为用于定义区域的说明性界面,但也可以使用其他类型的界面。例如,使用语音用户界面,用户可以说出诸如“<唤醒词>,请将尼克的房间和主浴室设置为主区域”的语音输入。根据该输入,VAS 190可以确定该意图是使用参数<areaName(区域名称)>=”主”和<区>=[“尼克的房间”、“主卧”]来createArea()。最终,该意图可以被转换为用于定义媒体回放系统100中的区域的一个或多个命令。
图7B示出了用于促进在创建分组时选择区和区域的另一示例控制器界面740b。控制器界面740b包括用于选择要包括在区组中的区和区域的选择区域745。如图所示,每个区和区域具有用于选择要包括在该区域中的区的对应控件。以这种方式,可以使用相同的用户界面来选择组的区和区域。这里,举例来说,在选择区域745中选择与“楼下”区域和露台101i相对应的控件。一旦选择了所期望的区,创建组控件747的选择导致同步组的创建。备选地,切换任何地方控件746创建包括媒体回放系统100中的每个区的区组。
如上所述,结合图2A,回放设备102可以维持或访问描述媒体回放系统的状态的状态变量。该状态信息作为整体可以在状态表或其他数据结构中表示。每个回放设备102维持的状态变量不仅可以描述相应回放设备102的状态,还可以描述媒体回放系统100中的其他回放设备102的状态。该状态信息可以包括指示区是区域的成员的标识符。
具体地,当定义区域时(例如,使用控制器接口740a),媒体回放系统100可以为该区域创建或指派区域标识符(“areaID(区域ID)”)。在示例中,区域ID可以包括标识各个区的回放设备标识符(“playerIDs(播放器ID)”)的数组(或其他数据结构)。回想一下,区可以包括单独的回放设备102或回放设备102的绑定区,该绑定区用作单个逻辑回放设备102。播放器ID本身可以是任何合适的数据类型,例如字符串。以这种方式,区域ID指示该区域的组成区。另外,当对区域进行改变时,可以使用附加或更少的播放器ID来更新区域ID。
图8A示出了示例区域创建函数860a(“createArea()”)。如图所示,createArea将播放器ID作为自变量(对应于区选择区域743中的所选择的区)(图7A)。区域创建函数860a返回与在示例控制器界面740a(图7A)中创建的楼下区域相对应的区域ID 862a。区域ID862a包括指示该区域中的区的播放器ID 861的数组。具体地,区域ID 862a包括分别与起居室101f、餐厅101g、办公室101e和厨房101h相对应的播放器ID 861f、861g、861e和861h。类似的播放器ID 861与媒体回放系统100中的其他区101相关联(例如,主浴室101a具有关联的播放器ID 861a)。当该区域被修改时,可以将播放器ID 861添加到数组中或从数组中移除播放器ID 861。
当选择了创建区域控件744时,控制器设备104调用区域创建函数860a。媒体回放系统100中的回放设备102可以执行该函数。执行该函数可以涉及修改由具有区域ID 862a的回放设备102维持的状态信息。然后向媒体回放系统100中的其他回放设备102传播状态信息的这种改变。
备选地,回放设备102可以指示媒体回放系统100中的另一设备更新状态信息。例如,回放设备102可以指示保存区域中的回放设备102更新状态信息。然后可以向媒体回放系统100中的其他回放设备102以及云传播该改变。作为另一示例,回放设备102可以指示一个或多个平台服务器更新状态信息,该状态信息然后可以通过媒体回放系统100向下传播回改变。
当创建组时(图7B),媒体回放系统100可以执行组创建函数860b(例如,“createGroup()”),如图8B中所示。控制器104处理输入(例如,选择区域745中的区和区域选择)并在该组中建立合适的回放设备集102。该播放器集是单独的播放器ID和在区域ID中表示的播放器ID的集合的并集。
组创建函数860b尤其可以将播放器ID和区域ID等作为自变量。播放器ID 861可以被表示为指示要包括在区组中的每个区101的数据结构。区域ID作为自变量被包括在内,使得可以维持用于形成该组的区域的知识,如下面进一步详细说明的。在图8B中,组创建函数860b将播放器ID 861以及区域ID 862a的数组作为与在选择区域745(图7B)中做出的选择相对应的自变量。
媒体回放系统100中的回放设备102可以执行组创建函数860b。与区域创建函数860a一样,该函数可以由媒体回放系统100中的任何回放设备102来执行。这是可能的,因为所有回放设备102都维持表示媒体回放系统100的状态的状态信息。通过修改该状态信息,回放设备102可以影响自身或其他回放设备102的状态改变,因为改变被传播给媒体回放系统100的所有回放设备102。该架构的一个结果是执行分组函数的回放设备102不一定是该组的一部分。执行函数的回放设备102在本文中被称为接触点(POC)回放设备。
虽然POC回放设备102在本文中通过示例被描述为执行组创建函数860b以及其他示例函数,但在备选实现中,这些函数可以在云中执行。例如,一个或多个平台服务器可以执行组创建函数860b。备选地,平台服务器和POC回放设备可以协调执行某些函数。
组创建函数860b返回表示在第一实例中创建的组的组对象863a-1。组对象863a-1包括播放器ID 864,其是指示该组中的区101的数据结构。组对象863a-1还包括标识创建的组的groupID(组ID)865,其用于指代该组并将该组与其他组进行区分。另外,组对象863a-1包括作为人类可读名称的groupName(组名称)866(这里为“楼下+露台”),该人类可读名称可由控制器设备104显示在控制器界面中且用户可使用其来指代语音输入中的组。
如上所述,通过媒体回放系统100传播对状态信息的改变,例如组的创建。媒体回放系统可以实现用于传播状态信息的一种或多种机制。一种机制可以涉及使用基于事件的消息传递来传播状态信息变化。具体地,回放设备102可以在状态信息发生改变时生成事件。这些事件的订户(例如,其他回放设备102和控制器设备104)被通知这些事件并且经由LAN 111上的事件接收表示这些状态改变的信息。例如,当在媒体回放系统100中更新组信息时,组名称空间的订户可以接收事件。备选地,一个或多个平台服务器可以首先更新由平台服务器维持的状态信息,然后通过媒体回放系统100的设备传播这些改变。
当创建组时,媒体回放系统100可以为组选择组协调器。组协调器是组内的特定回放设备102,其负责通过LAN 111向组内的其他回放设备102分发用于同步回放的回放和定时信息。执行分组命令的POC回放设备102可以代表媒体回放系统100选择组协调器。
选择组协调器可以涉及确定回放设备内是否存在要分组的任何现有组。如果是,则POC回放设备102标识家庭中的现有组,该现有组是要形成的期望组的最大子集。修改该现有组以添加或移除回放设备102,直到形成所期望的组。该过程维持组协调器。备选地,如果未找到子集,则POC回放设备102可以选择被选择为包括在组中的第一回放设备102作为组协调器。
备选地,可以基于一个或多个参数来选择组协调器。示例参数包括诸如处理器速度、存储器、网络接口传输速度之类的设备能力。通常,新一代回放设备102相对于老一代设备可以具有增加的设备能力。其他示例参数包括电源类型(例如,墙上电源优先于电池)或网络连接类型(例如,有线优先于无线)。于2013年9月30日提交的题为“Group CoordinatorDevice Selection”并作为美国专利No.9,654,545颁发的美国专利申请No.14/041,989以及于2013年9月30日提交的题为“Coordinator Device for Paired or ConsolidatedPlayers”并作为美国专利No.9,288,596颁发的美国专利申请No.14/042,001中公开了用于基于参数选择组协调器的示例技术,该两个美国专利申请的全部内容均通过引用并入本文。
在示例中,可以以类似的方式选择POC回放设备102。例如,可以基于一个或多个参数来选择POC回放设备102。备选地,在一些示例中,媒体回放系统100中的每个控制器设备104与回放设备102形成一对一关系以用于发送命令和接收状态更新。例如,控制器设备104a可以与回放设备102a形成关系。然后,对于源自控制器设备104a的命令,回放设备102a用作POC回放设备102。
如上所述,控制器104在调用组创建函数860b之前将区域ID 862解疑为组成播放器ID 861。为了避免丢失关于哪些组成区域在组中的信息,组协调器维持指示组中区域的区域源变量。媒体回放系统内的区域源变量可以统称为源区域Id 867。可以调用设置函数来设置与组形成或修改有关的该区域源变量。
为了说明,图8C示出了示例设置区域源函数860c(“setSourceAreaIDs()”)。举例来说,该函数将区域ID的列表作为自变量并使用该列表来设置源区域Id 867a,其表示与由组创建函数860b创建的新组相关联的区域ID。在示例中,源区域Id 867可以被实现为组内的区域ID的逗号分开的字符串。在该示例中,区域ID 862a在源区域Id 867中表示。当修改组时(例如,通过添加或移除组成员、或改变组协调器),组协调器通过调用设置区域源函数860c(例如,没有区域ID 862)来清除其源区域Id 867。
执行设置区域源函数860c在该组的组协调器上设置新组的源区域Id 867a,其充当代表该组的“真实源”。由于POC回放设备102知道新组的组协调器,POC回放设备102可以结合执行组创建函数860b(或用于从组中添加或移除区101的组修改函数)来调用该函数。为了避免不一致,禁止对组成员执行设置区域源函数860c,并且如果尝试执行设置区域源函数860c,则返回错误代码。
当组协调器更新源区域Id 867a以指示区域ID 862a时,组协调器发出指示源区域Id 867a的最新值的组管理事件。媒体回放系统100中的其他回放设备102接收该组管理事件,并且将源区域Id 867a存储在与组协调器相对应的状态信息中。然后,所有回放设备102都知道新组的组协调器的源区域Id 867a。
在不同的时间,例如当更新或查询组信息时,组协调器使用groupObject(组对象)863生成指示组状态的组事件。组事件将当前群状态传播给媒体回放系统中组事件的订户,该媒体回放系统可以包括媒体回放系统100中的其他回放设备102和控制器设备104以及其他可能的设备(例如,NMD 103)。
该组对象863包括该组的源区域Id 867。为了填充组对象863的源区域Id 867,组协调器可以确定该组的当前源区域Id 867。例如,为了确定该组的当前源区域Id867a,组协调器可以将保存的源区域Id 867a解析为构成的区域ID 862,移除任何无效的区域ID 862(例如,与已经作为保存组被移除的区域相对应的区域ID),然后针对新的组对象863a生成当前的源区域Id 867a。图8D示出了包括当前源区域Id 867a的组对象863a-2,其在第二实例中表示该组的状态。
每个回放设备102在接收到组事件中的组对象863之后,可以将信息存储在组对象863中。以这种方式,媒体回放系统100中的每个回放设备102知道其他回放设备102的源区域Id 867。当组协调器更新其sourceAreaIds(源区域ID)时,组协调器发出包括当前源区域ID的组事件,这使得媒体回放系统中的其他回放设备102更新它们针对该回放设备102保存的状态信息。
为了避免不一致,状态信息中的某些变量可以与版本计数器相关联。例如,每个源区域ID可以与相应的版本计数器相关联。当例如更新源区域Id 867a时,版本计数器递增。当所更新的源区域Id 867a发生事件时,该版本与所更新的状态信息一起被发送。如果回放设备102接收到不期望的版本号,它可能生成错误。
在创建组之后,控制器设备104可以通过订阅组事件或通过调用用于查询组信息的函数(例如,“getGroups()”)等来获得包括源区域Id 867的组信息。在任一情况下,控制器设备104可以接收指示媒体回放系统中组的当前状态的组信息(例如,包括组对象863a在内的一个或多个组对象863),其可以包括每个组的组区域ID。例如,组对象863a包括“楼下+露台”区组的源区域Id 867a。
由于所有回放设备102都维持包括组状态信息的状态信息,因此任何回放设备102都可以生成表示组的组对象863。例如,当控制器设备104调用getGroups()时,任何回放设备102都可以生成表示当前在媒体回放系统100中配置的组的一个或多个组对象863,并向控制器设备104发送表示该对象的数据。如上所述,控制器设备104可以与用于发送命令和接收状态信息的控制器设备形成一对一关系。在这示例中,当控制器设备104a调用getGroups()时,配对的回放设备102a可以生成表示当前在媒体回放系统100中配置的组的一个或多个组对象863,并向控制器设备104a发送表示该对象的数据。
控制器设备104可以使用组信息来显示与每个组相关的信息。例如,图9A示出了与控制器接口540b(图5B)类似的示例控制器接口940a。控制器界面940a包括回放区区域943,其包括MPS 100内的回放区的表示。
控制器界面940a包括新组(“楼下+露台”)的特定表示949。表示949包括组控件969。选择该控件使控制器设备104显示用于修改分组的界面。
为了说明,图9B示出了可以与控制器接口740b(图7B)相同或类似的示例控制器接口940b。当打开控制器界面940b时,基于组对象863a中的信息填充与选择区域945中的区101和区域相对应的控件。通过选择或取消选择与选择区域945中的区101和区域相对应的控件,可以将这些区101或区域添加到组中或从组中移除。
具体地,由于组区域ID 867a指示“楼下+露台”区组是从楼下区域(区域ID 862a)形成的,因此与选择区域945中的楼下区域相对应的控件被示出为被选中。注意,控制器界面940b可以由媒体回放系统100中的任何控制器设备104来显示,而不仅仅是用于创建“楼下+露台”区组的控制器设备104来显示。通过在回放设备102上(而不是在用于创建组的控制器设备104上)维持状态信息中的组区域ID 867a,用于创建组的区域稍后可以由媒体回放系统100中的任何控制器设备104来显示。
IV.基于云的示例架构
本文描述的示例技术涉及基于云的用于促进对包括回放设备和其他智能设备的媒体回放系统的控制的架构。该架构涉及云中的平台服务器和边缘处的接触点(POC)回放设备。平台服务器被配置为从各种源接收命令,例如第三方云服务。POC回放设备被配置为确定如何实现媒体回放系统中的命令。
a.基于云的架构简介
图10A是示出了用于促进诸如媒体回放系统100(图1A和图1B)之类的媒体回放系统的控制功能的基于云的控制架构1000(“云1000”)的功能框图。云1000包括POC回放设备1002和一个或多个平台服务器1006。如图10A中所示,平台服务器在云中(即,连接到网络107),而POC回放设备在边缘处(即,连接到LAN 111)。
另外,通过示例的方式示出了媒体回放系统100(图1A和图1B)中的回放设备102的子集。其他媒体回放系统可以包括附加或更少的回放设备102。媒体回放系统100至少包括一个回放设备102,但该架构可从一个回放设备扩展到许多回放设备102。另外,尽管通过示出单个家庭中的媒体回放系统100来描述云1000和关联的示例,但媒体回放系统100可以在诸如寓所、公寓、宿舍和移动家庭/模块化家庭等之类的各种住宅环境中实现。另外,媒体回放系统100也可以在诸如零售店、餐馆、酒店、沙龙、专业办公室等之类的商业环境中实现。
类似地,NMD 103i以及控制设备104a和104b被示出为提供在云1000中交互和相对于云1000交互的这些类型设备的说明性示例。一个或多个平台服务器1006与计算设备106a和计算设备106b(图1B)一起连接到网络107。一个或多个平台服务器1006可以与计算设备106c(例如,其子集)相同或相似。
另外,出于控制的目的,基于云的控制架构1000可以与各种智能设备集成。智能照明设备108和智能恒温器110(图1B)是表示性的,但不限制为可以与基于云的控制架构1000集成的智能设备的类型。示例智能设备包括家庭安全设备(例如,相机、门/窗传感器、玻璃破碎传感器)、门铃、恒温器、智能插头和开关、“智能”电器(例如,冰箱、微波炉、烤箱、洗碗机、洗衣机、热水加热器)、传感器等。这些智能设备可以使用一个或多个API(例如,由制造商提供的云服务或经由语音助手服务(例如,经由对应于智能设备的“技能”)提供的支持的API)与基于云的控制架构1000集成。
另外,基于云的控制架构1000可以与视频回放设备集成。作为流传输视频播放器,加密狗112旨在表示视频回放设备,但不限制为可以与基于云的控制架构1000集成的视频回放设备的类型。示例视频回放设备包括智能电视、播放条(例如,具有集成的视频流传输功能)、视频游戏控制台、光盘播放器等。与智能设备一样,这些视频回放设备可以使用一个或多个API(例如,由制造商提供的云服务或经由语音助手服务(例如,经由对应于视频回放设备的“技能”)提供的支持的API)与基于云的控制架构1000集成。
在该基于云的架构下,一个或多个平台服务器1006用作基于云的集线器,以接收本地的(例如,经由控制器设备104)和/或来自第三方服务(例如,VAS 190或MCS 192)的命令。以这种方式,一个或多个平台服务器1006可以被认为针对媒体回放系统100提供平台服务。与回放设备102一样,一个或多个平台服务器1006可以维持指示媒体回放系统100中每个回放设备102的当前状态的状态信息。在提供基于云的平台服务时,一个或多个平台服务器1006可以用作多个媒体回放系统100(例如,具有唯一的家庭标识符,其可以被注册给不同的用户和/或位于不同的家庭)以及其他类型的“智能家居”系统和平台的基于云的集线器。
一个或多个平台服务器1006可以支持面向外部的平台API,媒体回放系统100和/或第三方服务可以通过该API发送命令和接收状态更新。另外,一个或多个平台服务器1006可以被配置为支持一个或多个第三方API,例如VAS 190的基于意图的API或MCS 192的流传输协议API。附加地或备选地,POC回放设备1002可以支持面向外部的平台API和/或一个或多个第三方APID,以便促进与第三方服务直接接口连接。为了实现通过网络107进行交互,这种API可以基于超文本传输协议(http)。
POC回放设备1002是媒体回放系统100中的回放设备102中的特定回放设备,其被配置为确定如何在媒体回放系统100中实现从云1000接收到的命令。即,在操作中,POC回放设备1002根据平台API和/或一个或多个第三方API接收表示一个或多个命令和一个或多个参数的数据。由于该数据表示命令和参数,因此可以被称为命令中间体,但不一定是命令将在媒体回放系统100中执行的形式。
基于这些命令中间体,POC回放设备1002可以确定用于在媒体回放系统中实现命令中间体的一个或多个媒体回放系统命令。例如,如果POC回放设备1002接收到源自NMD103和VAS 190的中间播放命令,则确定如何实现在媒体回放系统100中接收到的该播放命令可以涉及关于在哪里、什么以及如何播放媒体的各种确定。例如,POC回放设备1002可以确定在哪里播放该命令(即,目标回放设备)。作为另外的示例,POC回放设备1002可以确定播放什么(例如,内容和/或内容的源)和/或如何播放它(例如,以什么音量或以什么时间播放)。
值得注意的是,在所描述的示例中,被描述为由云1000或其组成设备(例如,平台服务器1006和POC回放设备1002)执行的任何功能可以由云1000中的任何设备执行或在云1000中的设备之间分割。另外,虽然出于说明的目的将许多示例描述为与媒体回放相关,但基于云的架构1000旨在成为可以使用各种智能设备和关联的云服务器实现的架构的示例。
另外,在其他示例中,媒体回放系统100中的不同智能设备(例如,智能集线器)可以执行POC回放设备1002的特征。即,代替使用POC回放设备1002的附加功能进行操作的回放设备102,这些功能由不一定是回放设备102的智能集线器设备来实现。在一些示例中,这种智能集线器设备可以包括与一些回放设备102(例如,所有回放设备102,或子集,例如较便宜或较旧的回放设备102)相关的增加的计算资源(附加和/或较快的处理器,更多的存储器)以促进POC回放设备1002的功能。由于不必被配置用于音频回放,因此智能集线器设备可以不包括扬声器、放大器和关联的回放组件,或者可以包括不太强大的回放组件(例如,类似于独立网络麦克风设备103上的回放组件)。这种智能集线器可以是媒体回放系统100的可选组件。
在一个示例中,这种智能集线器可以执行POC回放设备1002的特征,并与本身用作“集线器”的平台服务器1006进行接口连接,以从第三方服务接收命令本身,如上所述。在其他示例中,智能集线器可以执行POC回放设备1002和平台服务器1006二者的特征。即,智能集线器既可以执行本地命令确定以及可以直接与第三方服务集成。也可以考虑其他布置。
b.平台API
如上所述,平台服务器1006可以支持面向外部的平台API,媒体回放系统100和/或诸如VAS 190和MCS 192之类的第三方服务可以通过该API发送命令和接收状态更新。通常,为了有效地控制媒体回放系统,第三方服务必须知道系统的状态。媒体回放系统100可以使用事件/订户模型来更新第三方,由此每个订户维持状态信息并且订户在状态改变发生时接收表示当前状态的事件。然而,随着智能设备的数量及其复杂性的增长,必须传送的状态信息量可能在网络资源方面变得笨重且昂贵,因为数百万的用户可以各自具有它们自己的系统,这些系统可以各自包括具有数十个或数百个参数的数十个设备,该数十个或数百个参数各自具有对应的状态。
平台API不是提供用于控制媒体回放系统及其组成设备的每个方面的接口,而是提供用于在负担被转移到云1000的情况下外部实体告诉云1000用户想要做什么以确定如何实际实现的接口。由于云1000正在管理实现的细节,因此外部实体不需要管理媒体回放系统100的每个细节(或者甚至不需要知道细节存在)。相反,外部实体可以告诉云1000用户想要做什么并信任云1000来执行它。
例如,如上所述,媒体回放系统100中的回放设备102能够形成同步组,其中组协调器管理同步组的各方面。代替外部实体指派并管理组协调器,云1000可以确定组协调器并管理其状态。外部实体甚至不需要知道组协调器存在。相反,平台API可以使用仅指示该组存在的更简化的状态来更新外部实体。
如上所述,POC回放设备1002可以接收包括一个或多个中间命令和一个或多个中间参数的命令中间体。在一些示例中,这些命令中间体是对命令API的一个或多个函数调用的形式。由平台API公开的函数不是由媒体回放系统100最终将执行的形式。相反,这些函数被设计为传送第三方知道的关于用户想要做什么的内容。
为了说明,图10B示出了根据平台API的示例play()函数1060a。播放函数1060a包括一个或多个参数1061,其包括表示媒体回放系统100的第一参数1061a-1(“系统1061a-1”)。值得注意的是,在基于云的示例控制架构下,外部实体不需要直接与被控制的回放设备102进行通信。相反,可能通过URI的方式,外部实体可以仅指示媒体回放系统100。播放函数1060a还包括表示用户输入的源的第二参数1061b-1(“source[]1061b-1”)。例如,对于语音输入,source[]1061b-1可以指示检测到语音输入的NMD 103。
播放函数1060a还包括指示显式目标的第三参数1061c-1(“target[]1061c-1”)和指示内容的第四参数861d-1(“content[]1061d-1”)。注意,由于云1000正在确定如何执行该命令,因此参数不需要具体地标识设备或内容(例如,通过IP地址或MAC地址,或通过URI(指示特定源处的特定内容))。相反,例如通过指代目标名称(例如,“餐厅”或“楼上”)或元数据(例如,艺术家、专辑或歌曲名称等)),参数可以更一般地指示目标和内容。云1000然后可以确定哪个(哪些)特定目标对应于名称以及使用哪个特定内容和源来执行播放函数。另外,这些参数中的任何一个可能没有任何数据,或者可能具有不指示任何特定目标或内容(例如,可能来自诸如“播放一些音乐”之类的语音输入)的一般数据。
图10B还示出了根据平台API的示例setStatus()函数1060b。setStatus()函数1060b可以用于传送用户改变智能设备的状态(例如,切换智能照明设备108或设置智能恒温器110的温度)的意图。与play()函数1060a一样,setStatus()函数1060b包括表示媒体回放系统100的第一参数1061a-2(“系统1061a-2”)和表示用户输入的源的第二参数1061b-2(“source[]1061b-2”)。setStatus()函数1060b还包括指示显式目标的第三参数1061c-2(“target[]1061b-2”)和指示要设置的状态的第四参数861e-1(“status[]1061e-1”)。
函数1060a和1060b仅表示示例平台API可以公开的函数和参数,以促进关于用户想要在第三方服务和云1000之间做什么的信息的交换。
c.选择POC回放设备
在一些示例中,POC回放设备1002任意地选自媒体回放系统100中的回放设备102。这是可能的,因为,由于回放设备102可能具有相似的硬件(图2A)和软件,它们在某些方面可能或多或少处于相同的位置。例如,基于特定回放设备102在指示媒体回放系统100中的回放设备102的列表或其他数据结构中是第一个,媒体回放系统100可以选择用作POC回放设备1002的特定回放设备102。
备选地,在其他示例中,POC回放设备1002可以基于指示它作为POC回放设备可能是优选的一个或多个参数(包括涉及稳定性和/或能力的参数)来选择。用作POC回放设备1002是回放设备102的典型回放操作之上的附加任务,因此具有附加处理能力(处理器速度和存储器)的回放设备102可以是优选的。另外,稳定的回放设备(例如,具有较长正常运行时间和一致的网络连接的设备)是优选的,因为选择这种设备可以促进与平台服务器1006的连接的稳定性。
虽然回放设备102可能具有类似的硬件,但该硬件的能力可能不同。例如,一些回放设备102相对于媒体回放系统中的其他回放设备102可以具有更快的处理器或更多的存储器。类似地,一些回放设备102相对于媒体回放系统中的其他回放设备102(其可以与较旧的IEEE 802.11标准兼容)可以具有更快的网络接口(例如,其与较新的IEEE 802.11标准(例如,WiFi6)兼容)。通常,为了避免在执行POC回放设备1002的附加功能时对硬件造成压力,选择具有更强大(即,更快)硬件的回放设备102而不是具有更慢(通常更旧或更便携)硬件的回放设备102。
同时,可以在媒体回放系统100内不同地使用具有类似硬件的回放设备102。一些回放设备102可以使用有线(IEEE 802.3)连接来连接到LAN 111,而其他回放设备经由无线(IEEE 802.11)连接来连接。可以假定有线连接比无线连接更稳定,因此可以选择具有有线网络连接的第一回放设备102而不是具有无线网络连接的第二回放设备102。另外,一些回放设备102可以在电池电源下操作,而其他回放设备102在墙上电源上操作。为了避免电池供电的回放设备102上的额外功率消耗(以及关联的电池消耗),可以选择墙上供电的回放设备102而不是电池供电的回放设备102来用作POC回放设备1002。
在示例中,用于选择组协调器的技术可以用于选择POC回放设备1002。于2013年9月30日提交的题为“Group Coordinator Device Selection”并作为美国专利No.9,654,545颁发的美国专利申请No.14/041,989以及于2013年9月30日提交的题为“CoordinatorDevice for Paired or Consolidated Players”并作为美国专利No.9,288,596颁发的美国专利申请No.14/042,001中公开了用于选择组协调器的示例技术,该两个美国专利申请的全部内容先前通过引用并入本文。
在示例中,媒体回放系统100可以标识满足特定要求的回放设备102的子集,然后选择POC回放设备1002。例如,媒体回放系统100可以标识媒体回放系统中的回放设备102具有(i)至少最小处理能力、(ii)墙上供电和(iii)具有至少阈值信号强度的有线连接或无线连接。然后,在该集合中,媒体回放系统100可以任意地选择POC回放设备1002(例如,作为列在该可用子集中的第一回放设备102)。
在另一示例中,POC回放设备1002的角色可以在媒体回放系统100中的所有设备(或合格回放设备102)之间循环。例如,在一个时间段期间,媒体回放系统100(和/或一个或多个平台服务器1006)可以维持表示每个回放设备102和/或媒体回放系统100作为整体在执行角色时的相应性能的记录、日志或其他数据结构。然后,可以选择具有“最佳”(例如,最一致)性能的回放设备102作为POC回放设备1002以在该时间段之后进行操作。该性能可以在随后的时间段内被重新评估。
由于任何回放设备102都可以用作POC回放设备1002,因此媒体回放系统100的POC回放设备1002不一定是静态的。相反,用于媒体回放系统100的POC回放设备1002可以基于各种因素和在各种条件下改变。例如,从媒体回放系统100中添加或移除回放设备102可以导致媒体回放系统100改变POC回放设备1002。另外,POC回放设备1002可以基于对网络配置的改变而改变。其他示例也是可能的。
如上所述,在另外的示例中,智能集线器设备可以执行POC回放设备1002的操作。当智能集线器存在于媒体回放系统100中时,该智能集线器可以基于其可用性被选择用作POC回放设备1002。于2016年1月28日提交的题为“Systems and Methods of DistributingAudio To One Or More Playback Devices”并作为美国专利No.9,886,234颁发的美国申请No.15/009,319中描述了与智能集线器设备相关的另外示例和技术,该美国申请的全部内容通过引用并入本文。
d.确定一个或多个媒体回放系统命令
如上所述,云1000被配置为确定一个或多个媒体回放系统命令(和对应的参数)以在媒体回放系统100中实现中间命令。图11A示出了POC回放设备1002确定一个或多个媒体回放系统命令以执行用户想要做的事情的示例。POC回放设备1002可以基于命令中间体确定媒体回放系统命令,命令中间体可以包括一个或多个中间命令和一个或多个中间参数。
在一些情况下,来自POC回放设备1002的另一实体可以对用户输入执行第一命令确定以确定命令中间体。当用户输入源自诸如语音助手服务或流传输音频服务的第三方域时,诸如VAS 190或MCS 192的第三方云服务可以执行第一命令确定。备选地,平台服务器1006可以执行第一命令确定。另外,两个或更多个实体(例如,平台服务器1006)和第三方云服务之一可以确定命令中间体的一部分,这被统一认为是第一命令确定。POC回放设备1002关于如何在媒体回放系统100中实现命令中间体的确定然后可以被视为第二命令确定。
在示例中,媒体回放系统命令是媒体回放系统100固有的将被执行以在媒体回放系统100中实现中间命令的命令。通常,由媒体回放系统100支持的媒体回放系统命令集比由平台服务的面向外部的平台API或第三方API(例如,VAS 190的基于意图的API)支持的那些命令更广泛和详细。即,如上面子部分b中所讨论的,在使外部API更易于使用的努力中,平台API可能不公开媒体回放系统100的所有细节。然而,为了执行媒体回放系统100的各种功能,媒体回放系统100可以将这些细节实现为媒体回放系统命令或对应的参数。
在一些示例中,诸如当用户输入是语音输入时,执行第一命令确定涉及确定用户输入的意图。如上面结合图1B所述,诸如VAS 190的语音助手服务可以使用自动话音识别来确定语音输入的意图。在确定意图时,VAS 190可以确定该意图对应于一个或多个命令和一个或多个参数,其可以被称为一个或多个中间命令和一个或多个中间参数。
在图11A示例中,用户向NMD 103f说出语音输入,其在该示例中是“在餐厅播放Mitski”。厨房101h中的NMD 103f可以向VAS 190的计算设备106a发送表示该语音输入的数据,其确定语音输入的意图。具体地,所确定的意图是在餐厅中播放艺术家Mitski的曲目。
在确定意图之后,VAS 190的计算设备106a可以向媒体回放系统100发送表示意图的数据。如上所述,该数据被称为命令中间体,并且可以包括例如中间命令(例如,play()860a)和一个或多个中间参数(例如,参数861)。如图11A中所示,计算设备106a可以向平台服务器1006提供命令中间体,平台服务器1006继而向POC回放设备1002发送数据。备选地,计算设备106a可以使用不同的网络路径(例如,不涉及平台服务器1006的路径)向POC回放设备1002发送数据。
可以以各种形式向POC回放设备提供命令中间体。作为另一示例,根据VAS 190的基于意图的API,命令中间体可以是意图和一个或多个参数的形式。例如,计算设备106a可以确定该意图是播放具有参数<内容>=[“Mitski”]和<目标>=[“餐厅”]的音乐。这里,中间命令是播放音乐,并且中间参数是内容参数和目标参数。备选地,这种数据可以是对平台服务的面向外部控制API的一个或多个API调用的形式,例如play()函数。play()函数可以将内容(即,“Mitski”)和目标(即,餐厅)作为自变量,它们可以分别被视为中间命令和中间参数。其他自变量也是可能的。
在示例中,计算设备106a还可以向媒体回放系统100提供可能为附加中间参数形式的其他上下文信息。例如,如图11A中所示,命令中间体可以包括指示用户输入的源的中间参数(源:[厨房]),类似于source[]861b-2参数(图10B)。另一示例中间参数可以包括提供用户输入的用户的用户账户(例如,VAS 190的用户账户,其可以链接到媒体回放系统100的用户简档)。另外的示例性中间参数包括检测用户输入的设备的类型(例如,专用NMD,在具有与语音控制不同的主要功能的设备中实现的NMD,例如回放设备或智能家电、或移动设备)和/或一天中检测到用户输入的时间等。在确定如何在媒体回放系统100中实现命令时,POC回放设备1002可以使用这些中间参数中的一些或所有参数。
在另外的示例中,媒体回放系统100可以向POC回放设备1002提供与用户输入相对应的附加或备选上下文信息。由于向LAN 111上的NMD 103i提供语音输入,媒体回放系统100可以能够提供关于用户输入的上下文数据。在一些情况下,中间参数可以类似于由VAS190提供给回放设备1002的上下文中间参数,并且除了由VAS 190提供给POC回放设备1002之外或者作为其备选,还可以由媒体回放系统100提供给POC回放设备1002。与上下文信息相关的另外示例将在后续部分中更详细地讨论。
在一些情况下,确定一个或多个媒体回放系统命令可以涉及标识与中间命令相对应的媒体回放系统命令的POC回放设备1002。例如,如果中间命令是在如图11A中所示的VAS190的基于意图的API中播放音乐,则POC回放设备1002可以确定一个或多个媒体回放系统命令应当包括本地播放命令。值得注意的是,即使存在对应于中间命令的媒体回放系统命令,POC回放设备1002也可以确定媒体回放系统命令与中间命令相比的不同自变量,以在媒体回放系统100中实现中间命令和中间参数。
在一些示例中,由计算设备106a执行的命令确定被视为主要意图确定,而由POC回放设备1002执行的命令确定被视为次要意图确定。即,POC回放设备1002可以用次要意图确定来修改或补充由VAS 190执行的意图确定。这种次要意图确定可以采用修改一个或多个中间参数来修改意图的形式。
例如,在图11A的示例中,VAS 190可以确定语音输入中对艺术家“Mitski”的指代(在未指代特定专辑或曲目的情况下)是从默认流传输音频服务播放艺术家“Mitski”的热门曲目的意图。中间参数可以经由一个或多个表示该内容的源的URI来指示该内容。POC回放设备可以将该内容识别为不同于用户收藏的Mitski播放列表,并在一个或多个媒体回放系统命令中用该内容替换用户收藏的Mitski播放列表。
如上所述,POC回放设备1002可以基于媒体回放系统100可用的附加数据来确定该次要意图。该附加数据可以包括指示回放设备102或与媒体回放系统100集成的其他设备的各种状态的附加状态信息(例如,状态变量)。另外,该附加数据可以包括来自在执行主要意图确定时与媒体回放系统100共享(例如,经由平台服务器1006)但不一定由VAS 190共享或考虑的其他云服务(例如,流传输音频服务和智能设备云服务)的用户数据。
作为另一示例,POC回放设备1002可以修改中间命令以更接近地匹配媒体回放系统100的能力。例如,媒体回放系统可以支持“真正的静音”状态,该状态可以打开和关闭,同时保持在禁用静音之后恢复的音量设置。VAS 190可以接收“使餐厅静音”的语音输入。VAS190可以确定该语音输入的意图是将回放设备102l的音量水平设置为零,这对应于特定中间命令。在示例中,POC回放设备1002可以将用于将回放设备102l的音量水平设置为零的中间命令修改为用于启用真正的静音状态的媒体回放系统命令。
执行第二命令确定还可以包括从媒体回放系统100中的智能设备中确定一个或多个目标设备。例如,执行第二命令确定可以涉及从媒体回放系统100中的多个回放设备102中确定一个或多个目标回放设备。备选地,确定目标设备可以涉及确定一个或多个智能IoT设备(例如,智能照明设备108或智能恒温器110)。在一些情况下,目标设备可以包括不同类型的设备,例如回放设备102和智能IoT设备或者两种或更多种不同类型的IoT设备等。
命令中间体可以明确或隐含地指示目标设备。另外,POC回放设备1002可以基于媒体回放系统100的在接收到命令中间体时存在的各种状态(例如,预先存在的组或预配置的分组(例如,区域))来确定某些设备是隐式目标。即,POC回放设备1002可以确定这样的目标设备,即该目标设备不一定是由命令中间体明确或隐含地作为目标,而是基于不一定为命令中间体的源已知的状态和/或设备信息。在下文中,回放设备102提供了显式和隐式目标设备的各种示例,但这种示例也适用于在媒体回放系统100中集成的目标智能IoT设备。
如上所述,用户输入可以明确地指示一个或多个回放设备。返回到图11A的示例,用户通过在他们的语音输入中按名称提及“餐厅”来明确地将餐厅101g中的回放设备102l作为目标。在一些示例中,VAS 190可以将该语音标识为对应于餐厅101g,并且在命令中间体中明确指示该目标回放设备(例如,作为播放命令的目标自变量)。在其他示例中,在媒体回放系统100中,VAS 190可能将语音输入的与用户说“餐厅”相对应的部分识别为说词“餐厅”和“房间”或短语“餐厅”的话音,但不会将该话音识别为对应于餐厅101g。在这种情况下,VAS 190可以将语音输入的该部分表示为不一定是目标参数的一个或多个中间参数。POC回放设备然后可以确定参数对应于回放设备102l(通过指代餐厅101g)。
除了语音输入之外,用户输入还可以使用GUI明确地将一个或多个回放设备102作为目标。例如,用户可以使用控制设备104上的GUI来选择一个或多个目标回放设备。另外,用户可以在控制应用内导航到控制界面或控制界面集,该控制界面集包括对应于特定回放设备或回放设备集的控制。使用这些控制输入的命令可以明确地将对应的回放设备或回放设备集作为目标。其他示例也是可能的。
用户输入还可以隐含地指示一个或多个目标回放设备。用户可以通过向与回放设备102相关联的NMD 103说出命令来隐含地将回放设备102作为目标。换言之,用户可以通过向房间中的NMD 103说话来将该房间中的一个或多个设备作为目标。NMD 103可以通过在特定回放设备102中物理实现(即,在相同的壳体或外壳中)来与特定回放设备102相关联。备选地,NMD 103可以使用功能关联来与特定回放设备102相关联。媒体回放系统100可以维持或访问表示NMD103与媒体回放系统100中的回放设备102之间的关联的数据。例如,NMD103i可以作为餐厅101g的一部分与回放设备102l相关联。
在图11A的示例中,由于用户在厨房101h中向NMD 103f说话,因此可以假设用户也将厨房101h中的回放设备102i作为目标。然而,该假设可以通过在语音输入中明确地将餐厅110g作为目标而被否定。如果用户尚未指示明确的目标,则POC回放设备可能已经将也在厨房101h中的回放设备102i标识为目标回放设备。值得注意的是,在一些情况下,POC回放设备102可能必须调整或覆盖NMD 103f上的默认值以在NMD 103f本身上播放Mitski,与回放设备102相比,NMD 103f在音频回放方面的能力可能较差。
在一些情况下,命令中间体可以指示可能经由中间参数检测到输入的控制器。例如,VAS 190可以包括指示捕获语音输入的NMD 103的中间参数。在另外的示例中,区可以以持久的一对一布置与远程控制相关联(与控制器104相反,控制器104可以选择性地控制媒体回放系统100中的任何区)。经由这种远程提供的用户输入可以通过LAN 111和/或网络107路由到POC回放设备102。远程的标识然后可以由POC回放设备102用于标识与远程相关联的目标回放设备。
在另外的示例中,用户输入可以通过参考所保存的组或区域来将一个或多个特定回放设备102作为目标。如上面结合图3A所讨论的,用户可以预定义所保存的组(被称为区域),然后使用单独的区和/或区域来创建组。与区一样,这些区域可以与名称(例如“楼上”和“楼下”)相关联,这些名称可以在一个或多个中间参数中引用。POC回放设备1002可以将区域解疑为组成区以确定目标回放设备。在一些情况下,POC回放设备102维持指示与每个预定义区域相关联的区的状态信息。
在一些实现中,作为区域保存的组可以包括与区域的组成区相关联的组成智能设备。例如,主浴室101a和主卧室101b中的智能照明设备可以使用区域标识符来引用(例如“打开主卧室中的灯”)。类似于回放设备102,回放设备1002可以将区域解疑为组成区以确定目标智能设备。
在一些情况下,明确或隐含地作为目标的回放设备102已经在具有一个或多个不一定作为目标的附加回放设备102的组中。例如,在图11A的示例中,当用户说出语音输入“在餐厅中播放Mitski”时,餐厅101g中的回放设备102l可能已经在与起居室101f中的回放设备102m同步的组中。在这种情况下,取决于VAS 190是否维持分组状态信息以及该状态在用户输入时是否是最新的,VAS 190可能知道或可能不知道该预先存在的分组。因此,起居室101f中的回放设备102m可能未在命令中间体中指示。
另一方面,POC回放设备1002维持指示媒体回放系统100中的当前分组的状态信息。POC回放设备1002可以基于该状态信息来标识具有明确或隐含地作为目标的回放设备102的预先存在的组中的附加回放设备。例如,在图11A的示例中,POC回放设备1002可以将起居室101f中的回放设备102m确定为一个或多个目标回放设备之一。
然而,在一些情况下,用户可能不打算将这些附加回放设备作为目标。例如,如果用户创建了包括主卧室101b和主浴室101a的组,则他们可能不打算在第二天早上明确地将主浴室101a作为目标时将主卧室101b作为目标(可能是因为他们的伴侣正在主卧室101b中睡觉)。另一方面,用户可能知道该分组(先前已经创建了该分组,或者以其他方式(例如,经由控制设备104上的GUI)知道它的存在)并且期望将附加回放设备作为目标。
因此,在一些示例中,POC回放设备1002可以使用上下文信息来确定是否包括不一定是目标的附加回放设备102。这种上下文信息可以包括一天中接收到用户输入的时间(例如,是在白天还是晚上接收到该请求)、使用语音或其他输入与该组同时进行的其他交互(这将指示将该组作为目标的意图)、自创建该组以来的时间长度、和/或与附加回放设备102相对应的区中的其他用户的存在。其他示例也是可能的。
在另外的示例中,POC回放设备1002可以基于隐含地作为目标的回放设备的状态来确定在一个或多个目标回放设备的集合中是否包括隐含地作为目标的回放设备。具体地,当隐含地作为目标的回放设备处于可以执行中间命令或一个或多个媒体回放系统命令的状态时,POC回放设备1002可以确定在一个或多个目标回放设备的集合中包括隐含地作为目标的回放设备。例如,当中间命令是音量调整命令时,POC回放设备1002可以在隐含地作为目标的回放设备当前正在播放音频时确定在一个或多个目标回放设备的集合中包括隐含地作为目标的回放设备。该确定背后的假设可能是:用户不太可能使用语音来调整当前未使用的回放设备的音量。可以针对其他类型的命令做出类似的状态确定。
当POC回放设备1002标识多个目标回放设备时,一个或多个媒体回放系统命令可以包括分组命令。值得注意的是,POC回放设备1002可以确定一个或多个媒体回放系统命令包括分组命令,而无需用户输入明确地请求分组。换言之,由于用户输入明确地和/或隐含地将多个回放设备1002作为目标,因此在媒体回放系统100中执行中间命令涉及确定对多个回放设备1002进行分组的附加命令。
示例分组命令可以形成各种类型的组。例如,在一些情况下,分组命令可以使两个或更多个回放设备形成同步组。作为另一示例,分组命令可以形成多个IoT设备的功能组,例如媒体回放系统100中的一组多个智能恒温器110或区域(例如,楼上)中的一组智能照明设备108。在其他示例中,分组命令可以形成两种或更多种不同类型的设备的组,例如回放设备102和智能IoT设备或两种或更多种不同类型的智能IoT设备。
为了说明,在图11A的示例中,POC回放设备1002可以确定一个或多个目标回放设备包括餐厅101g中的回放设备102l(因为它被明确地作为目标)和起居室101f中的回放设备102m(因为它在具有回放设备102l的预先存在的组中)。POC回放设备1002可以确定分组命令,该分组命令当被执行时从目标回放设备构建组。这涉及:确定哪个特定回放设备102将用作组协调器,以及构建分组命令使得该特定回放设备102将用作组协调器。值得注意的是,这些细节可能不会暴露给VAS 190(即使VAS 190是命令中间体的源),因为这些细节由POC回放设备102在内部处理。
如果一些回放设备已经在组中,则POC回放设备1002可以在分组命令中使用该预先存在的组,这可以最小化对媒体回放系统100的破坏。例如,POC回放设备1002可以标识目标回放设备的最大子集,然后根据需要修改该组以包括所有目标回放设备。其他示例也是可能的。
作为实现命令的一部分而形成的组可以是短暂的。即,两个或更多个目标设备可以临时形成组来执行所确定的命令,该组然后可以在命令被执行之后被取消分组。如果目标设备是回放设备,则该分组可以是同步组,该同步组可以在回放会话的持续时间内保持原位。在一些情况下,确定媒体回放系统命令(和对应的参数)以实现中间命令可以涉及确定用于在执行所确定的命令之后对目标回放设备进行取消分组的取消分组命令。在另外的示例中,某些设备可以被配置为在某些条件下(例如,不活动的时间段内)自动取消分组。
在一些示例中,命令中间体可以明确或隐含地地将回放设备102作为目标,但该回放设备102不可用或(例如,经由LAN 111或网络107)不可到达。例如,用户可以说出诸如“在露台上播放一些Whitney歌曲”之类的用户输入,该用户输入明确地将便携式、电池供电的回放设备102c作为目标。然而,如果回放设备102c断电、与LAN 111断开连接或者以其他方式不可用,则POC回放设备102可能无法对回放设备102c执行所确定的媒体回放系统命令。
在示例中,POC回放设备可以确定一个或多个中间参数明确地指示特定回放设备(例如,诸如回放设备102c的便携式回放设备)并且进一步确定该特定回放设备当前在媒体回放系统100中不可用。在示例中,POC回放设备1002可以基于任何合适的技术(例如,尝试ping或以其他方式与特定回放设备通信)做出该确定。
基于这些确定,POC回放设备1002可以将一个或多个备选回放设备标识为一个或多个目标回放设备。备选回放设备可以是靠近用户的回放设备,或者靠近不可用回放设备的回放设备等。另外,备选回放设备可以是接收到用户输入的NMD 103。其他示例也是可能的。
e.执行所确定的媒体回放系统命令
在确定一个或多个媒体回放系统命令之后,云1000可以使所确定的媒体回放系统命令被执行或进行。例如,POC回放设备1002可以自己执行所确定的媒体回放系统命令。备选地,POC回放设备1002可以向一个或多个目标回放设备发送表示执行所确定的媒体回放系统命令的指令的数据。在又另外的示例中,POC回放设备1002可以向平台服务器106发送表示所确定的媒体回放系统命令的数据,平台服务器106继而使所确定的媒体回放系统命令在一个或多个目标回放设备上执行或进行。其他示例也是可能的。
如上所述,在一些情况下,POC回放设备1002回放设备可以代表目标回放设备执行所确定的媒体回放系统命令。如上所述,POC回放设备1002维持其自身和媒体回放系统100中的其他回放设备102的状态信息。POC回放设备1002可以根据所确定的媒体回放系统命令来修改其状态信息。
例如,继续图11A示例的分组命令,POC回放设备1002可以更新回放设备102l和回放设备102m的状态信息以指示它们的成员资格以及作为新组中的组协调器和组成员的相应角色。这些变化然后可以通过LAN 111传播给回放设备102l和回放设备102m,它们更新由回放设备102l和回放设备102m维持的相应状态信息。该更新有效地形成组,因为回放设备102l和回放设备102m根据它们作为新组中的组协调器和组成员的新状态开始进行操作。
在形成组之后,POC回放设备1002可以执行播放命令以完成实现用户“播放Mitksi”的意图。具体地,POC回放设备1002可以更新新组的状态信息以指示该组当前正在播放用户的Mitski播放列表。与分组命令一样,该所更新的状态信息然后可以通过LAN 111传播给回放设备102l和回放设备102m,它们开始播放用户的Mitski播放列表。
备选地,POC回放设备1002可以向一个或多个目标回放设备发送表示执行所确定的媒体回放系统命令的指令的数据。图11B示出了POC回放设备1002向组协调器(回放设备102l)发送用于创建新组的指令以及用于回放Mitski播放列表的指令的示例。回放设备102l接收这些指令,更新其用于分组和回放的状态信息以指示其新角色和回放状态。另外,回放设备102l更新关于组成员(回放设备102m)的状态信息,使回放设备102m加入新组,并与回放设备102l进行同步回放。
在一些实现中,如图11C中所示,POC回放设备1002可以向平台服务器1006发送表示所确定的媒体回放系统命令的数据。类似于POC回放设备720,平台服务器1006可以代表目标回放设备执行所确定的媒体回放系统命令。例如,平台服务器1006可以根据所确定的媒体回放系统命令来更新状态信息,然后向目标回放设备传播这些改变,如图11C中所示。备选地,平台服务器1006可以向一个或多个目标回放设备发送表示执行所确定的媒体回放系统命令的指令的数据。其他示例也是可能的。
f.更新媒体回放系统状态
在一些示例中,在使所确定的媒体回放系统命令被执行之后,云1000可以促进更新由媒体回放系统100和外部实体(例如,VAS 190和MCS 192)维持的状态信息以指示目标回放设备的更新状态。如上所述,在一些情况下,云1000可以实现事件/订户模型。在事件/订户模型中,特定名称空间(例如,组名称空间或回放名称空间等)的订户在该名称空间发生这种状态更新时接收表示状态更新的事件。备选地,云1000可以实现查询模型,由此设备可以向云1000查询状态更新。
例如,如图11D中所示,为了传播关于新创建的组(“餐厅+起居室”)的组信息,POC回放设备1002可以生成具有表示新创建的组的组对象的组事件。向组事件的订户传播组对象,其可以包括媒体回放系统中的一个或多个平台服务器1006以及控制器设备104a和104b等。另外,平台服务器1006可以向订阅组事件的第三方服务转发或生成组事件。
在一些实现中,诸如VAS 190和MCS 192之类的第三方服务可以订阅不同类型的名称空间,该名称空间与回放设备102和平台服务器106订阅的名称空间相比,包括更少的状态信息。这可能是由平台API实现的名称空间(与由内部API实现的名称空间相比)。例如,平台API的组名称空间可能包括关于新组及其成员的信息,但不包括关于组协调器的状态信息。这允许第三方服务管理(甚至关注)相对较少的状态信息。
g.示例命令
图12A、图12B、图12C和图12D是示出了云1000处理各种示例命令的功能框图。这些命令以及本文描述的其他命令旨在说明可以在示例媒体回放系统100中执行的各种命令。本领域技术人员将理解,本文描述的示例和技术可以应用于控制各种目标设备(例如,回放设备102和其他类型的智能设备)的许多不同类型的命令。
在图12A中,用户向餐厅101g中的NMD 103i说出语音输入(“调高音量”)。VAS 190对该语音输入执行第一命令确定,这导致该语音输入具有执行向上音量调整的意图的确定。VAS 190经由平台服务器1006向POC回放设备1002传递表示该意图的中间命令。
POC回放设备1002继而确定用于实现命令中间体的一个或多个媒体回放系统命令和针对一个或多个媒体回放系统命令的一个或多个目标回放设备。这里,用户输入未明确地指示任何目标回放设备。相反,POC回放设备1002基于隐含地作为目标来标识回放设备102l和回放设备102m。具体地,通过向餐厅101g中的NMD 103i说话,用户隐含地将回放设备102l作为目标。POC回放设备1002基于指示NMD 103i作为用户输入的源的中间参数并且进一步基于NMD 103i和回放设备102l之间的关联(即,二者都在餐厅101g)将回放设备102l标识为目标回放设备。如上所述,可以在状态信息中维持这种关联。
另外,由于回放设备102m与回放设备102i在一个组中,因此POC回放设备1002也将回放设备102m标识为目标回放设备。换言之,基于至少一个特定回放设备(即,回放设备102i)与一个或多个附加回放设备(即,回放设备102m)在一个组中,POC回放设备1002将一个或多个附加回放设备(即,回放设备102m)标识为在一个或多个目标回放设备的集合中。
在图12B中,用户向书房101d中的NMD 103a说出语音输入(“这里传送回放”)。VAS190对该语音输入执行第一命令确定,这导致该语音输入具有执行回放传送的意图的确定。VAS 190经由平台服务器1006向POC回放设备1002传递表示该意图的中间命令。
在接收到这些命令中间体之后,POC回放设备1002继而确定用于实现命令中间体的一个或多个媒体回放系统命令和针对一个或多个媒体回放系统命令的一个或多个目标回放设备。这里,用户输入未明确地指示任何目标回放设备。相反,POC回放设备1002基于隐含地作为目标来标识回放设备102a。具体地,通过向在回放设备102a中实现的NMD 103a说话,用户隐含地将回放设备102a作为目标。POC回放设备1002基于媒体回放系统100中的指示NMD 103a作为用户输入的源的上下文信息并且进一步基于NMD 103a和回放设备102a之间的关联将回放设备102a标识为目标回放设备。
另外,POC回放设备1002标识当前正在一个或多个源回放设备上播放的特定音频内容以传送到一个或多个目标回放设备(即,回放设备102a)。POC回放设备1002可以基于指示一个或多个源回放设备当前正在播放音频的一个或多个源回放设备的回放状态来标识源回放设备和特定音频内容。如前面部分所述,POC回放设备1002可以维持或访问指示回放设备102的各种状态(例如,回放状态)的状态信息。POC回放设备1002可以参考该信息来确定哪些回放设备102当前正在播放音频内容,并且进一步确定当前正在播放什么音频内容。例如,POC回放设备1002可以将在回放设备102l和回放设备102m上播放的Mitski播放列表标识为特定音频内容和源回放设备。
POC回放设备1002可以确定影响回放系统的媒体回放系统命令的序列。媒体回放系统命令的序列可以包括用于发起目标回放设备(即,回放设备102a)的回放的播放命令,该播放命令可以包括作为参数的指示源回放设备(即,包括回放设备102l和回放设备102m的组)上的当前播放位置的偏移量。播放命令可以指示目标回放设备在该偏移量处开始播放。另外,媒体回放系统命令的序列可以包括用于停止源回放设备的回放的命令。
在各种实现中,云1000可以使用用于传送回放的任何合适技术,例如,于2020年1月17日提交的题为“Playback Session Transitions Across Different Platforms”的美国申请No.16/745,910中描述的用于传送回放的技术,该美国申请的全部内容通过引用并入本文。另外,如结合图11A至图11C的示例所述,本文描述为由POC回放设备1002执行的功能也可以由平台服务器1006执行,或者可以在POC回放设备1002和平台服务器1006以及媒体回放系统100中的其他设备之间分割。
在图12C中,用户向主浴室101a中的NMD 103h说出语音输入(“在主浴室中播放Lala Lala”)。VAS 190对该语音输入执行第一命令确定,这导致该语音输入具有在主浴室播放艺术家Lala Lala的音乐的意图的确定。VAS 190经由平台服务器1006向POC回放设备1002传递表示该意图的中间命令。
POC回放设备1002继而确定用于实现命令中间体的一个或多个媒体回放系统命令和针对一个或多个媒体回放系统命令的一个或多个目标回放设备。这里,POC回放设备1002可以确定指示“主”的中间参数指示区域标识符(“主”),如上所述,该区域标识符与预先被配置为在被实例化时包括两个或更多个组成区或房间的区域相对应。POC回放设备1002可以将该区域解疑为组成房间或区(例如,主浴室101a和主卧室101b),并且将主浴室101a中的回放设备102h以及回放设备102f和102g标识为目标回放设备。
另外,POC回放设备1002可以确定执行命令中间体所需的一个或多个媒体回放系统命令涉及组创建命令,用于将两个或更多个回放设备分组在同步组中以在媒体回放系统中同步回放音频内容(以便在“主”区域的所有区中播放“Lala Lala”)。在确定组创建命令时,POC回放设备1002可以针对新组选择组协调器,其可以执行各种功能以促进同步回放,例如向同步组中的其他回放设备分发定时信息。
在一些情况下,用户输入可以源自第三方控制器,例如流传输媒体服务应用。如上面结合图4所讨论的,控制器设备可以是可以在其上安装媒体回放系统控制器应用软件的网络设备,例如,iPhoneTM、iPadTM或任何其他智能电话、平板计算机或网络设备(例如,诸如PC或MacTM的联网计算机)。这种网络设备还可以或备选地运行流传输媒体服务应用,用户可以使用该流传输媒体服务应用来选择媒体并将其流传输到网络设备。这种设备还可以允许使用流传输协议将回放目标从网络设备改变为一个或多个回放设备。示例性流传输协议包括
Figure BDA0004113477480000581
Figure BDA0004113477480000582
在图12D中,用户可以使用耳塞使用流传输媒体服务应用开始在控制器设备104b上播放音频内容。期望在准备晚餐时大声地播放音乐,用户使用对应于特定流传输音频服务的流传输媒体服务应用(即,MCS 192)将回放目标从控制器设备104b改变为餐厅和厨房。这导致流传输媒体服务应用向计算设备106b发送一个或多个命令。这些命令是根据流传输音频服务的流传输协议形成的。
在接收到这些命令之后,计算设备106b向一个或多个平台服务器1006发送一个或多个命令。根据流传输音频服务的流传输协议,这些命令可以是API调用的形式。例如,流传输协议play()函数可以将内容(即,指示当前在控制器设备104b处播放内容的URI或URI的数组(例如,播放列表))和目标(即,餐厅和厨房)作为自变量。平台服务器1006可以实现流传输协议以便被配置为根据流传输音频服务的流传输协议接受API调用。备选地,MCS 192的计算设备106b可以被配置为调用媒体回放系统100的平台API。
平台服务1006可以将流传输协议play()函数和自变量作为命令中间体传递给POC回放设备1002。从这些命令中间体,POC回放设备1002可以确定一个或多个媒体回放系统命令,包括开始在目标回放设备上播放内容的播放命令。POC回放设备1002可以使用指示URI的中间参数来构建媒体回放系统播放命令,该URI指示当前在控制器设备104b处播放内容。
另外,POC回放设备1002也可以将厨房101h内的回放设备102i和回放设备102l标识为针对播放命令的目标回放设备。POC回放设备1002可以确定这些回放设备被取消分组,并且基于这些确定,确定在媒体回放系统100中实现命令中间体所需的一个或多个媒体回放系统命令包括组创建命令(即,对厨房101h中的回放设备102i和餐厅101g中的回放设备102l进行分组)。
于2016年7月29日提交的题为“Voice Control of a Media Playback System”并作为美国专利No.9,947,316颁发的美国专利申请No.15/223,218中描述了与回放传送和语音控制相关的示例技术,该美国专利申请的全部内容通过引用并入本文。
POC回放设备可以对针对诸如加密狗112的视频回放设备处的目标命令执行类似的命令确定。在图12E中,用户向书房101d中的NMD 103a说出语音输入(“播放怪奇物语(Stranger Things)”)。VAS 190对该语音输入执行第一命令确定,这导致该语音输入具有恢复在
Figure BDA0004113477480000591
上播放怪奇
Figure BDA0004113477480000592
的意图的确定。VAS 190经由平台服务器1006向POC回放设备1002传递表示该意图的中间命令。在该示例中,命令中间体包括指向
Figure BDA0004113477480000601
上的怪奇
Figure BDA0004113477480000602
系列的第2季的第3集的URI。
POC回放设备1002继而确定用于实现命令中间体的一个或多个命令和/或针对该一个或多个命令的一个或多个目标回放设备。这里,由于未指定显式视频回放目标,因此POC回放设备1002可以基于与书房101d相关联的加密狗112和向书房101d中的NMD 103a说出的语音输入来确定目标视频回放设备是加密狗112。POC回放设备1002可以确定用于实现该意图的命令(例如,根据流传输视频服务(即,
Figure BDA0004113477480000603
)的API的play()命令)。
POC回放设备1002可以促使该命令的实现。例如,如图12E中所示,POC回放设备可以向加密狗112发送表示命令的数据,加密狗112可以使用该数据来根据流传输视频服务的API执行play()命令。备选地,POC回放设备可以向与流传输视频服务相关联的一个或多个计算设备106b发送表示命令的数据,这使一个或多个计算设备106b将所请求的视频流传输到加密狗112以供回放。
h.上下文和状态信息
如上面在前面部分中所述,POC回放设备1002可以基于上下文信息来确定(除了命令中间体之外,或作为命令中间体的备选的)一个或多个媒体回放系统命令。该上下文信息可以包括可用于云1000但不一定可用于诸如VAS 190和MCS 192之类的第三方云服务的信息。因此,访问该上下文信息可以提高POC回放设备1002确定如何在媒体回放系统100中实现命令中间体的能力。
在另一示例中,云1000可以维持或访问用户偏好(例如,用户收藏的、关注的艺术家或加星标的歌曲等)和/或来自多个流传输音频服务的回放历史数据。用户可以注册不同流传输音频服务(例如,SPOTIFY、APPLE MUSIC、PANDORA、BANDCAMP等)的相应用户帐户,以在媒体回放系统100上实现来自这些服务的回放。另外,用户可以选择加入以与云1000共享来自这些服务的回放数据以改善音乐发现和确定,包括来自发生在回放设备102以及其他设备(例如,移动设备)上的这些服务的回放。
云1000可以使用该数据来确定播放命令的内容。例如,参考图13,如果用户说出诸如“在这里播放一些Dehd歌曲”之类的语音输入,则VAS 190可以尝试基于默认流传输音频服务来标识来自艺术家“Dehd”的内容。相反,云1000可以基于用户与多个流传输音频服务的交互来补充或修改该确定,与VAS 190相比,这可以提供更相关的内容选择。
另外,媒体回放系统100可以基于用户存在和/或活动来收集信息。例如,位于整个家庭(图1A)的回放设备102可以包括用于帮助听者定位(例如,用于确定用户存在于某些区或房间中)的传感器。该听者定位信息可以经由LAN 111和/或网络107与云1000共享。例如,起居室101f中的回放设备102m可以检测到起居室101f中的用户,并响应地在用户位置名称空间中生成事件以指示该存在,从而向用户位置名称空间(例如,云1000)的订户提供该信息。
媒体回放系统100可以使用用于听者定位的任何合适技术。下文中描述了若干种示例技术:于2011年12月29日提交的题为“Sound Field Calibration Using ListenerLocalization”并作为美国专利No.9,084,058颁发的美国申请No.13/340,126;于2012年8月7日提交的题为“Acoustic Signatures in a Playback System”并作为美国专利No.8,930,005颁发的美国申请No.13/568,993;以及于2014年9月2日提交的题为“ZoneRecognition”并作为美国专利No.10,275,138颁发的美国申请No.14/475,191,这些美国申请的全部内容均通过引用并入本文。下文中描述了另外的示例技术:于2019年11月1日提交的题为“Systems and Methods for Device Localization”的美国申请No.16/672,271;于2019年11月1日提交的题为“Systems and Methods for Target Device Prediction”的美国申请No.16/672,280;以及于2020年1月28日提交的题为“Systems and Methods forPlayback Device Managemen”的美国申请No.16/775,212。于2020年8月31日提交的题为“Ultrasonic Transmission for Presence Detection”的美国申请No.63/072,888中描述了其他示例技术,该美国申请的全部内容通过引用并入本文。
云1000可以使用该信息来标识目标回放设备。例如,云1000可以使用听者在起居室中的存在来将该区标识为在目标回放设备集中。备选地,云1000可以使用听者在区中的存在来将该区标识为不在目标回放设备集中。例如,卧室101c晚上存在用户,云1000可以使用听者在卧室101c中的存在将回放设备102e从目标回放设备集中排除(可能尽管其他因素指示应该包括该区,例如预先存在的区)。
在一些情况下,用户可以选择与媒体回放系统共享生物特征数据,该生物特征数据可以提供用户活动的指示。例如,来自诸如智能手表的可穿戴设备的数据可以有助于确定活动(例如,睡觉、锻炼、放松等)。该数据可以用于确定播放命令的内容,或是否包括作为目标回放设备的某些回放设备等。
云1000还可以以各种方式使用一天中的时间。一天中的时间可以影响情绪和/或活动,情绪和/或活动可以用于例如在确定如何在媒体回放系统100中实现播放命令时指导内容选择。云1000可以维持或访问来自服务器的时间数据(例如,使用网络时间协议)。
另外,可以结合使用多条上下文信息来对用户活动作出预测。例如,各种上下文数据(例如,用户偏好、区的类型和日期的类型)可以用于预测(例如,来自预定义活动集的)用户活动。例如,如果用户在下午5点和下午7点之间位于厨房101h中并且是活动的,则云1000可以预测用户正在做饭并且确定与该活动相对应的特定音频内容。
i.与第三方控制器的互动
图14A和图14B是示出了云1000与各种第三方控制器交互的功能框图。一种类型的第三方控制器可以是“专用”远程控件,例如具有被配置为控制特定房间或区的回放和音量的传输和音量控制的远程控件。另一种类型的第三方控制器是智能设备上的集成控件(例如,智能恒温器110上的控件)。当经由第三方控制器做出改变时,云1000可以促进更新对应于这些改变的状态。另外,云1000可以促进向第三方控制器通知经由云1000做出的改变。
图14A示出了专用远程控件114被配置为控制起居室101f(即,回放设备102m)的回放和音量的示例。具体地,远程控件114包括:可选择以开始和停止回放设备102m上的回放的播放/暂停控制,以及可选择以调整回放设备102m上的音量的音量控制。其他控件也是可能的。可以在远程控件114的设置过程中配置该区。
图14A中还示出了包括一个或多个计算设备106d的物联网(IOT)云服务194a。IOT云服务194a可以支持远程控件114。另外,云1000可以经由平台API和/或云服务194a的API与IOT云服务器194a集成。
在图14A的示例中,当远程控件114上的控制被选择时,远程控件114向POC回放设备1002发送表示所选择的控制的数据。在一些情况下,该数据可以被视为命令中间体,因为该命令可以是根据平台API的。POC回放设备1002然后可以确定用于在媒体回放系统中实现所选择的控制的媒体回放系统命令,然后使目标回放设备(例如,回放设备102m)执行所确定的媒体回放系统命令。
备选地,远程控件可以向POC回放设备1002发送表示所选择的控制的已经处于媒体回放系统命令形式的数据。在这种示例中,POC回放设备可以确定目标回放设备,该目标回放设备可以包括回放设备102m的附加回放设备(例如,如果回放设备102m在预先存在的组中)。POC回放设备1002然后可以使目标回放设备执行由从远程控件114接收到的数据表示的媒体回放系统命令。
图14B示出了专用远程控件114被配置为控制起居室101f(即,回放设备102m)的回放和音量的另一示例。在该示例中,远程控件114经由IOT云服务194a与云1000进行通信。如图14B中所示,计算设备106d可以向平台服务器1006发送表示命令中间体的数据,平台服务器1006继而向POC回放设备1002发送表示命令中间体的数据。POC回放设备可以根据命令中间体确定媒体回放系统命令和/或目标回放设备,然后使目标回放设备执行所确定的媒体回放系统命令。
五.用于处理命令中间体的示例技术
图15是示出了用于处理命令中间体的示例方法1500的流程图。方法1500可以由包括云1000的系统(例如,POC回放设备1002和一个或多个平台服务器1006(图10A))来执行。备选地,方法1500可以由任何合适的设备或由设备的系统(例如,回放设备102、NMD 103、控制设备104、计算设备105、计算设备106)或由智能IoT设备(例如,智能照明设备108或智能恒温器110)来执行。出于说明的目的,某些特征被描述为由POC回放设备1002来执行。
在框1502,方法1500涉及接收表示包括(i)中间命令和(ii)一个或多个中间参数的命令中间体的数据。例如,媒体回放系统100(图1A和图1B)中的POC回放设备1002(图10A)可以经由网络接口从云服务的一个或多个服务器接收表示包括(i)中间命令和(ii)一个或多个中间参数的命令中间体的数据。命令中间体的示例在上面部分III中进行了描述。
命令中间体可以是基于对用户输入执行的第一命令确定的。例如,诸如语音助手服务、流传输音频服务、IOT服务或平台服务之类的云服务可以对用户输入执行第一命令确定以确定命令中间体。执行第一命令确定以确定命令中间体的示例在上面部分III中进行了描述。
在框1504处,方法1500涉及对命令中间体执行第二命令确定以确定(i)一个或多个媒体回放系统命令和(ii)媒体回放系统中的多个回放设备中的一个或多个目标回放设备。例如,POC回放设备1002可以基于命令中间体并且可能基于诸如上下文信息的附加信息来确定一个或多个媒体回放系统命令。确定媒体回放系统命令的示例在上面部分III中进行了描述
另外,POC回放设备1002可以从媒体回放系统100中的多个回放设备102中确定一个或多个目标回放设备。如上所述,在各种实现中,POC回放设备1002可以附加地或备选地确定不一定是回放设备的目标设备,例如各种智能设备(例如,智能照明设备108或智能恒温器110)。确定目标回放设备的示例在上面的部分III中进行了描述。
在框1506处,方法1500涉及使所确定的一个或多个目标回放设备执行所确定的一个或多个媒体回放系统命令。例如,POC回放设备1002可以通过更新状态信息使一个或多个目标回放设备执行所确定的一个或多个媒体回放系统命令;这种实现的示例在上面部分III中进行了描述。在其他示例中,POC回放设备1002可以通过向一个或多个目标回放设备发送表示用于执行所确定的一个或多个媒体回放系统命令的指令的数据来使一个或多个目标回放设备执行所确定的一个或多个媒体回放系统命令,如上面部分III中所述。又另外,在附加示例中,POC回放设备1002可以通过向平台服务器1006发送表示所确定的一个或多个媒体回放系统命令和一个或多个目标设备的数据来使一个或多个目标设备执行所确定的一个或多个媒体回放系统命令,也如上面部分III中所述。
在框1508处,方法1500涉及更新状态信息。例如,POC回放设备1002可以根据所确定的一个或多个媒体回放系统命令来更新由POC回放设备1002维持的状态信息。又另外,POC回放设备1002可以使其他设备更新它们的状态信息。例如,POC回放设备1002可以针对状态事件订户生成状态更新事件,该状态更新事件通过LAN 111和/或网络111(图10A)来传播。因此,状态事件订户可以经由相应的网络接口接收状态对象,该状态对象包括通过执行所确定的一个或多个媒体回放系统命令而修改的状态信息,然后更新表示通过执行所确定的一个或多个媒体回放系统命令而修改的状态信息的相应状态信息。
可以作为方法1500的一部分被执行的另外变化和功能在整个本公开中进行了描述,包括在前面部分I、II、III和IV以及以下部分中。
VI.示例分组技术
如上所述,本文描述的示例技术涉及基于云的用于促进各种回放操作(例如,媒体回放系统的分组和其他控制功能)的架构。图16A、图16B和图16C是示出了基于云的包括POC回放设备1602和一个或多个平台服务器1606的架构1600的功能框图。另外,通过示例的方式示出了媒体回放系统100(图1A和图1B)中的回放设备102的子集。类似地,NMD 103i以及控制设备104a和104b被示出为提供在基于云的架构1600中交互和与基于云的架构1000交互的这些类型设备的说明性示例。一个或多个平台服务器1606与计算设备106a和计算设备106b(图1B)一起连接到网络107。一个或多个平台服务器1606可以与计算设备106c(例如,其子集)相同或相似。
在该基于云的架构下,一个或多个平台服务器1606用作基于云的集线器,以接收本地的(例如,经由控制器设备104)和/或来自第三方服务(例如,VAS 190或MCS 192)的命令。以这种方式,一个或多个平台服务器1606可以被认为针对媒体回放系统100提供平台服务。与回放设备102一样,一个或多个平台服务器1606可以维持指示媒体回放系统100中每个回放设备102的当前状态的状态信息。在提供基于云的平台服务时,一个或多个平台服务器1606可以用作多个媒体回放系统100(例如,具有唯一的家庭标识符,其可以被注册给不同的用户和/或位于不同的家庭)以及其他类型的“智能家居”系统和平台的基于云的集线器。
一个或多个平台服务器1606可以支持控制API,媒体回放系统100和/或第三方服务可以通过该API发送命令和接收状态更新。另外,一个或多个平台服务器1606可以被配置为支持一个或多个第三方API,例如VAS 190的基于意图的API或MCS 192的流传输协议API。为了实现通过网络107进行交互,这种API可以基于超文本传输协议(http)。
POC回放设备1602是媒体回放系统100中的回放设备102中的特定回放设备,其被配置为执行从平台服务器1606c接收到的命令。由于,如上所述,每个回放设备102维持其自身和媒体回放系统100中的其他回放设备102的状态信息,因此媒体回放系统100中的任何回放设备102可以用作POC回放设备1602。
在一些示例中,POC回放设备1602任意地选自媒体回放系统100中的回放设备102。这是可能的,因为,由于回放设备102可能具有相似的硬件(图2A)和软件,它们在某些方面可能或多或少处于相同的位置。例如,基于特定回放设备102在指示媒体回放系统100中的回放设备102的列表或其他数据结构中是第一个,媒体回放系统100可以选择用作POC回放设备1602的特定回放设备102。
备选地,在其他示例中,POC回放设备1602可以基于指示它作为POC回放设备可能是优选的一个或多个参数(包括涉及稳定性和/或能力的参数)来选择。用作POC回放设备1602是回放设备102的典型回放操作之上的附加任务,因此具有附加处理能力(处理器速度和存储器)的回放设备102可以是优选的。另外,稳定的回放设备(例如,具有较长正常运行时间和一致的网络连接的设备)是优选的,因为选择这种设备可以促进与平台服务器1606的连接的稳定性。
虽然回放设备102可能具有类似的硬件,但该硬件的能力可能不同。例如,一些回放设备102相对于媒体回放系统中的其他回放设备102可以具有更快的处理器或更多的存储器。类似地,一些回放设备102相对于媒体回放系统中的其他回放设备102(其可以与较旧的IEEE 802.11标准兼容)可以具有更快的网络接口(例如,其与较新的IEEE 802.11标准(例如,WiFi6)兼容)。通常,为了避免在执行POC回放设备1602的附加功能时对硬件造成压力,选择具有更强大(即,更快)硬件的回放设备102而不是具有更慢(通常更旧)硬件的回放设备102。
同时,可以在媒体回放系统100内不同地使用具有类似硬件的回放设备。一些回放设备102可以使用有线(IEEE 802.3)连接来连接到LAN 111,而其他回放设备经由无线(IEEE 802.11)连接来连接。可以假定有线连接比无线连接更稳定,因此可以选择具有有线网络连接的回放设备102而不是具有无线网络连接的回放设备。另外,一些回放设备102可以在电池电源下操作,而其他回放设备102在墙上电源上操作。为了避免电池供电的回放设备102上的额外功率消耗(以及关联的电池消耗),可以选择墙上供电的回放设备102而不是电池供电的回放设备102来用作POC回放设备1602。
在示例中,用于选择组协调器的技术可以用于选择POC回放设备1602。于2013年9月30日提交的题为“Group Coordinator Device Selection”并作为美国专利No.9,654,545颁发的美国专利申请No.14/041,989以及于2013年9月30日提交的题为“CoordinatorDevice for Paired or Consolidated Players”并作为美国专利No.9,288,596颁发的美国专利申请No.14/042,001中公开了用于选择组协调器的示例技术,该两个美国专利申请的全部内容先前通过引用并入本文。
在示例中,媒体回放系统100可以标识满足特定要求的回放设备102的子集,然后选择POC回放设备1602。例如,媒体回放系统100可以标识媒体回放系统中的回放设备102具有(i)至少最小处理能力、(ii)墙上供电和(iii)具有至少阈值信号强度的有线连接或无线连接。然后,在该集合中,媒体回放系统100可以任意地选择POC回放设备(例如,作为列在该可用子集中的第一回放设备102)。
在另一示例中,POC回放设备1602的角色可以在媒体回放系统100中的所有设备(或合格回放设备102)之间循环。例如,在一个时间段期间,媒体回放系统100(和/或一个或多个平台服务器1606)可以维持表示每个回放设备102和/或媒体回放系统100作为整体在执行角色时的相应性能的记录、日志或其他数据结构。然后,可以选择具有“最佳”(例如,最一致)性能的回放设备102作为POC回放设备1602以在该时间段之后进行操作。该性能可以在随后的时间段内被重新评估。
由于任何回放设备102都可以用作POC回放设备1602,因此媒体回放系统100的POC回放设备1602不一定是静态的。相反,用于媒体回放系统100的POC回放设备1602可以基于各种因素和在各种条件下改变。例如,从媒体回放系统100中添加或移除回放设备102可以导致媒体回放系统100改变POC回放设备1602。另外,POC回放设备1602可以基于对网络配置的改变而改变。其他示例也是可能的。
在图16A中,通过使用LAN 111上的控制器设备104a,用户可以使用用户界面440(图4)来选择两个或更多个回放设备102进行分组。例如,用户可以使用诸如控制器界面740b的控制器界面来选择一个或多个区区域和/或一个或多个区域。在示例中,媒体回放系统100的用户可能已经被预配置了被称为“主”的区域,其包括主卧室101b和主浴室101a。在该改变之后,控制器界面740b将包括主区域以及楼下区域(前提是楼下区域尚未被用户移除)的列表。另外,用户在执行家务或一些其他活动时可能期望在楼上的整个卧室中的一些音乐。这样,用户可以在控制器界面740b中选择卧室101c和主区域。
在接收到表示对两个或更多个回放设备102进行分组的请求的用户输入之后,控制器设备104a可以调用组创建函数860b(被示出为“createGroup()”)(图8B)。结合调用createGroup()函数,控制器设备104a可以将组中的任何区域解疑为组成设备,如部分III所述。具体地,参考上面介绍的示例,控制器设备104a可以将“主”区域解疑为主卧室101b和主浴室101a。在控制器设备104a调用组创建函数860b时,控制器设备104a本身不执行操作。
相反,表示该函数调用及其自变量的数据被传递给一个或多个平台服务器1606,如图16A中所示。在一些示例中,一个或多个平台服务器1606接收该数据,并向POC回放设备1602转发表示createGroup()函数调用及其自变量的数据。涉及一个或多个平台服务器1606的这种命令路由与本地命令路由形成对比,本地命令路由将涉及通过LAN 111而不是通过云(即,平台服务器1606)在本地将函数调用及其自变量路由到POC回放设备102。
POC回放设备1602执行createGroup()函数调用。POC回放设备1602可以以与前一部分中关于POC回放设备102所述类似的方式执行createGroup()函数调用。即,POC回放设备1602可以选择组协调器并更新组协调器和组成员的状态信息以指示他们在新组中的角色。具体地,如图16A中所示,POC回放设备1602更新回放设备102e(在卧室101c中)、回放设备102f和102g(在主卧室101b中)、以及回放设备102h(在主浴室101a中)的状态信息。
注意,回放设备102f和102g被配置为在绑定区(即,立体声对)中。在一些实现中,由于媒体回放系统100将绑定区视为单个逻辑回放设备,因此POC回放设备1602与绑定区的协调器进行通信而不是与绑定区中的每个回放设备进行通信。然后,绑定区的协调器根据需要更新组成员。
另外,POC回放设备1602可以调用设置区域源函数860c(图8C)以在新组的组协调器上设置源区域Id 867字符串。在该示例中,“主+卧室”组的源区域Id 867将指示主区域,这将在组协调器的状态信息中设置。
为了传播关于新创建的组的组信息,POC回放设备1602可以生成具有表示新创建的组的组对象863的组事件(图8D)。向组事件的订户传播该组对象863,其可以包括媒体回放系统中的一个或多个平台服务器1606以及控制器设备104a等。源区域Id 867可以与其他组信息一起传播给组对象863中的其他设备,如前一部分中所述。
为了向第三方服务传播组信息,一个或多个平台服务器1606生成事件,VAS 190和MCS 192中的一个或多个可以订阅该事件以接收媒体回放系统100的状态信息。例如,在生成新组之后,平台服务器1606可以生成组事件或向VAS 190的一个或多个计算设备106a和/或MCS 190的一个或多个计算设备106b转发组事件。
更广泛地说,使用事件生成和/或进行查询(例如,getGroups()”),诸如VAS 190和MCS 192之类的第三方服务可以维持在回放设备102(或其子集)上维持的状态信息。这允许第三方服务使用状态信息形成对一个或多个平台服务的API调用。例如,在用户定义区域之后,该区域的存在可以传播给由VAS 190维持的状态信息,这允许VAS 190在确定语音输入的意图时识别对该区域的指代。
分组命令也可以源自第三方服务,例如语音助手。转到图16B,用户可以向NMD103i说出语音命令,例如“在餐厅和厨房中播放Mitski”。NMD 103i可以可以向VAS 190的计算设备106a发送表示该语音命令的数据,其确定语音输入的意图。具体地,该意图是在餐厅和厨房中播放艺术家Mitski的歌曲。
计算设备106a向平台服务器1606发送表示该意图的数据。根据VAS 190的基于意图的API,该数据可以是意图和一个或多个参数的形式。例如,计算设备106a可以确定该意图是播放参数<内容>=“Mitski”和<目标>=[“餐厅”、“厨房”]的音乐。备选地,这种数据可以是对平台服务的控制API的一个或多个API调用的形式,例如play()函数。play()函数可以将内容(即,“Mitski”)和目标(即,餐厅和厨房)作为自变量。其他自变量也是可能的。
尽管语音输入未明确地要求分组,但由于语音输入指示了用于播放的两个目标,因此影响用户的意图可能需要形成组。在接收到这种意图时,一个或多个平台服务器1606可以确定是否需要基于媒体回放系统100的由一个或多个平台服务器1606维持的状态信息(包括分组状态信息)对所列出的回放目标(即,起居室和餐厅)进行分组。然后一个或多个平台服务器1606可以调用组创建函数860b。
更广泛地说,平台服务器1606可以将从第三方服务接收到的数据转换为与平台服务的控制API相对应的命令。例如,平台服务器1606可以从VAS 190的计算设备106a接收基于意图的数据,并根据平台服务的控制API将该基于意图的数据转换为一个或多个命令。例如,平台服务器1606可以将该基于意图的数据转换为play()函数和createGroup()函数。
在一些情况下,这种转换在平台服务器1606和媒体回放系统之间划分。例如,平台服务器1606可以将从第三方服务接收到的数据转换为一个或多个具有自变量的命令。然后,在媒体回放系统中,POC回放设备1602可以对如何将自变量转换为状态变化做出最终确定。其他示例也是可能的。
如果来自VAS 190的数据包括对作为回放目标的区域的指代,则一个或多个平台服务器1606可以将该区域解疑为组成组。该操作可以类似于较早示例中由控制器104执行的解疑。类似于较早示例,一个或多个平台服务器1606可以维持用于创建组的区域ID(例如,通过将区域ID包括在组创建函数860b的自变量中,然后POC回放设备1602在设置区域源函数860c中使用这些区域ID)。
备选地,媒体回放系统100可以确定必要的分组。例如,一个或多个平台服务器1606可以使用语音输入中指示的所有回放目标来调用createGroup()函数。然后,在执行createGroup()函数时,POC回放设备1602可以确定如何从所指示的回放目标构建组。例如,POC回放设备1602可以标识被指示为目标的分组的回放设备的最大子集,然后根据需要修改该组以匹配该意图。
类似于图16A的示例,POC回放设备1602执行createGroup()函数调用。POC回放设备1602可以以与前一部分中关于POC回放设备102所述类似的方式执行createGroup()函数调用。即,POC回放设备1602可以选择组协调器并更新组协调器和组成员的状态信息以指示他们在新组中的角色。具体地,如图16B中所示,POC回放设备1602更新回放设备102i(在厨房102i中)和回放设备102l(在餐厅101g中)的状态信息。
为了传播关于新创建的组(“餐厅+厨房”)的组信息,POC回放设备1602可以生成具有表示新创建的组的组对象863的组事件(图8D)。向组事件的订户传播该组对象863,其可以包括媒体回放系统中的一个或多个平台服务器1606以及控制器设备104a和104b等。另外,平台服务器1606可以向订阅组事件的第三方服务转发或生成组事件。
在一些情况下,分组命令可以源自第三方控制器,例如流传输媒体服务应用。如上面结合图4所讨论的,控制器设备可以是可以在其上安装媒体回放系统控制器应用软件的网络设备,例如,iPhoneTM、iPadTM或任何其他智能电话、平板计算机或网络设备(例如,诸如PC或MacTM的联网计算机)。这种网络设备还可以或备选地运行流传输媒体服务应用,用户可以使用该流传输媒体服务应用来选择媒体并将其流传输到网络设备。这种设备还可以允许使用流传输协议将回放目标从网络设备改变为一个或多个回放设备。示例性流传输协议包括
Figure BDA0004113477480000721
Figure BDA0004113477480000722
在图16C中,用户可以使用耳塞使用流传输媒体服务应用开始在控制器设备104b上播放音频内容。期望在准备晚餐时大声地播放音乐,用户使用对应于特定流传输音频服务的流传输媒体服务应用(即,MCS 192)将回放目标从控制器设备104b改变为餐厅和厨房。这导致流传输媒体服务应用向计算设备106b发送一个或多个命令。这些命令是根据流传输音频服务的流传输协议形成的。
在接收到这些命令之后,计算设备106b向一个或多个平台服务器1606发送一个或多个命令。根据流传输音频服务的流传输协议,这些命令可以是API调用的形式。例如,流传输协议play()函数可以将内容(即,指示当前在控制器设备104b处播放内容的URI)和目标(即,餐厅和厨房)作为自变量。平台服务器1606可以实现流传输协议以便被配置为根据流传输音频服务的流传输协议接受API调用。备选地,MCS 192的计算设备106b可以被配置为调用媒体回放系统100的控制API。
类似于图16B的示例,尽管播放命令未具体地要求分组,但由于语音输入指示了用于播放的两个目标,因此影响用户的意图可能需要形成组。在接收到这种意图时,一个或多个平台服务器1606可以确定是否需要基于媒体回放系统100的由一个或多个平台服务器1606维持的状态信息(包括分组状态信息)对所列出的回放目标(即,起居室和餐厅)进行分组。然后一个或多个平台服务器1606可以调用组创建函数860b。
如果来自MCS 192的数据包括对作为回放目标的区域的指代,则一个或多个平台服务器1606可以将该区域解疑为组成组。该操作可以类似于较早示例中由控制器104执行的解疑。类似于较早示例,一个或多个平台服务器1606可以维持用于创建组的区域ID(例如,通过将区域ID包括在组创建函数860b的自变量中,然后POC回放设备1602在设置区域源函数860c中使用这些区域ID)。备选地,媒体回放系统100可以确定必要的分组。
类似于图16A和图16B的示例,POC回放设备1002执行createGroup()函数调用。即,POC回放设备1002可以选择组协调器并更新组协调器和组成员的状态信息以指示他们在新组中的角色。具体地,如图16C中所示,POC回放设备1002更新回放设备102i(在厨房102i中)和回放设备102l(在餐厅101g中)的状态信息。
为了传播关于新创建的组(“餐厅+厨房”)的组信息,POC回放设备1002可以生成具有表示新创建的组的组对象863的组事件(图8D)。向组事件的订户传播该组对象863,其可以包括媒体回放系统中的一个或多个平台服务器1006以及控制器设备104a和104b等。另外,平台服务器1006可以向订阅组事件的第三方服务转发或生成组事件。
图17是示出了经由基于云的架构在媒体回放系统中创建组的示例方法1700的流程图。方法1700可以由包括一个或多个平台服务器1606和POC回放设备1602(图16A至图16C)的系统来执行。备选地,方法1600可以由任何合适的设备或设备系统(例如,回放设备102、NMD 103、控制设备104、计算设备105或计算设备106)来执行。
在框1702处,方法1700涉及接收与对平台API的一个或多个函数调用相对应的数据。例如,一个或多个平台服务器1606可以经由广域网(例如,网络107)上的一个或多个网络接口来接收与对平台API的一个或多个函数调用相对应的数据。一个或多个函数调用包括组创建函数(例如,图8B的组创建函数860a),其指示作为一个或多个自变量(例如,播放器ID 861)的两个或更多个回放设备在媒体回放系统内进行分组。一个或多个自变量还可以指示区域标识符(例如,区域ID 862(图8A)),其表示被预配置为在被实例化时包括媒体回放系统的两个或更多组成区的区域。
在一些情况下,一个或多个平台服务器1606从媒体回放系统的第一控制器设备接收对应于一个或多个函数调用的数据。例如,控制器设备104可以调用组创建函数860a(图16A)。用户可以在控制器界面(例如,控制器界面740b(图7B)或控制器界面940b(图9B))中选择区或区域以包括在该组中。
当在控制器设备104的控制器界面中选择区域时,方法1700可以涉及控制器设备104将由区域标识符指示的区域解疑为表示两个或更多个组成区的区标识符。组创建函数的第一自变量可以包括多个区标识符,其包括组成区(例如,播放器ID 861[](图8B))。创建组创建函数的第二自变量可以指示区域标识符,例如区域ID 862a(图8B)。
备选地,一个或多个平台服务器1606从第三方服务接收对应于一个或多个函数调用的数据。例如,一个或多个平台服务器1606从语音助手服务的服务器(例如,VAS 190的计算设备106a(图16B))接收对应于一个或多个函数调用的数据。作为另一示例,一个或多个平台服务器1606从流传输音频服务的服务器(例如,MCS 192的计算设备106c(图16C))接收对应于一个或多个函数调用的数据。在这种情况下,一个或多个平台服务器可以将由区域标识符指示的区域解疑为表示两个或更多个组成区的区标识符。
在一些示例中,方法1700涉及从另一API转换为平台API的一个或多个函数调用。例如,一个或多个平台服务器1606可以将表示根据从VAS 190接收到的语音输入确定的意图的数据转换为平台API的一个或多个函数调用(图16B)。作为另一示例,一个或多个平台服务器1606可以将流传输协议API的一个或多个函数调用转换为平台API的一个或多个函数调用(图16C)。
在框1704处,方法1700涉及向接触点(POC)回放设备发送表示组创建函数的数据。例如,一个或多个平台服务器1606可以向POC回放设备1602发送表示组创建函数860b的数据。该数据可以表示该函数的特定调用,包括特定自变量,如结合图8B所讨论的。图16A、图16B和图16C中示出了这种发送。
在框1706处,方法1700涉及接收表示组创建函数的数据。例如,POC回放设备1602可以接收表示组创建函数860b的数据。图16A、图16B和图16C中示出了这种发送。
在框1708处,方法1700涉及执行组创建函数。例如,POC回放设备1602可以执行组创建函数,如结合图8B以及图16A、图16B和图16C所讨论的。如较早部分所讨论的,媒体回放系统100中的任何回放设备102都能够用作POC回放设备1602。然而,在一些实现中,基于各种参数来选择POC回放设备1602。
执行组创建函数可以涉及从两个或更多个回放设备中选择组协调器。组协调器将回放和定时信息分发给同步组中的其他回放设备。POC回放设备1602可以任意地或基于一个或多个因素来选择组协调器,如结合图8B所讨论的。
执行组创建函数可以涉及设置所选择的组协调器的状态信息以指示同步组中的该角色。例如,POC回放设备1602可以修改自身、组协调者或组成员的状态信息。这些改变可以通过组以及整个媒体回放系统100来传播。
执行组创建函数还可以涉及存储创建组时指定的区域的指示。例如,POC回放设备1602可以在组协调器上设置源区域标识符字符串,以经由区域标识指示同步组包括该区域。图8C示出了用于设置这种源区域标识符串的示例设置源区域标识符函数860c。
在框1710处,方法1700涉及针对组事件订户生成组事件。例如,POC回放设备1602可以针对组事件订户生成第一组事件。生成事件使组事件订户经由相应的网络接口接收第一组对象(例如,组对象863a-2(图8D))。第一组对象包括对应于同步组的组状态信息。基于接收到第一组对象,组事件订户根据第一组对象来更新表示同步组的相应状态信息等,如上面结合图8D以及图16A至图16C以及所讨论的。
如上所述,在一些示例中,组包括区域。在这种示例中,第一组对象指示源区域标识符字符串。订户可以在源区域标识符字符串中使用该区域ID来填充控制器界面(图9B)。
在示例中,POC回放设备1602针对组事件订户生成第二组事件。生成第二组事件可以涉及将组协调器上存储的源区域标识符字符串解析为区域标识符集合。注意,POC回放设备还维持表示源区域标识符字符串的状态信息,但组协调器存储最新版本并用作该字符串的真实源。
POC回放设备1602从区域标识符集合中过滤与已经从区组中移除的区域相对应的一个或多个区域标识,并生成包括与同步组相对应的组状态信息的第二组对象。第二组对象包括表示过滤后的集合的源区域标识符字符串。生成第二组事件使组事件订户:经由相应的网络接口接收第二组对象,以及基于第二组对象来更新表示同步组的相应状态信息(图16A)。
在另外的示例中,方法1700涉及存储定义一个或多个区域的数据。例如,在接收到对应于一个或多个函数调用的数据之前,POC回放设备1602可以从控制器设备接收表示用于定义特定区域(即,保存的组)的命令的数据。特定区域在实例化时包括媒体回放系统的一个或多个区。通常,区域包括两个或更多个区,因为具有一个区的区域可以被称为区本身。当定义新区域时,可以使用使更新事件订户更新相应的状态信息以表示特定区域的事件(例如,用于更新事件订户的更新事件)通过媒体回放系统来传播该变化。
结论
以上描述尤其公开了各种示例系统、方法、装置和尤其包括在硬件上执行的固件和/或软件的制品。应当理解的是,这些示例仅是示意性的,而不应当被认为是限制性的。例如,可以想到,这些固件、硬件和/或软件方面或组件中的任意一个或全部可以专门在硬件中实现、专门在软件中实现、专门在固件中实现、或在硬件、软件和/或固件的任意组合中实现。因此,所提供的示例不是实现这些系统、方法、装置和/或制品的唯一方式。
主要在说明性的环境、系统、过程、步骤、逻辑块、处理以及直接或间接地与耦接到网络的数据处理设备的操作相类似的其他象征性表示的方面上,提出本说明书。本领域技术人员通常使用这些处理描述和表示,以向本领域技术人员的其他技术人员传播他们的工作内容。阐述了各种具体细节,以提供本公开的透彻理解。然而,本领域技术人员应理解,不需要特定、具体细节就可以实施本公开。在其他实例中,没有描述熟知的方法、过程、组件和电路,以避免不必要地使实施例的方面模糊不清。因此,本公开的范围由随附权利要求、而不是以上实施例的描述来界定。
当随附权利要求中的任一项权利要求被理解成涵盖纯软件和/或固件实现时,在此明确限定至少一个示例中的至少一个元素以包括存储软件和/或固件的非暂时性有形介质,如存储器、DVD、CD、蓝光等。
例如根据下面描述的各个方面来说明本技术。为方便起见,本技术的各个方面的各个示例被描述为编号的示例(1、2、3等)。这些示例是作为示例提供,而不限制本技术。注意,任何一个从属示例能够以任意组合方式组合,并被放入相应的独立示例中。其他示例可以类似的方式呈现。
示例1:一种由包括媒体回放系统中的接触点(POC)回放设备的系统执行的方法,该媒体回放系统包括连接到局域网的多个回放设备,该方法包括:经由网络接口从云服务的一个或多个服务器接收表示命令中间体的数据,命令中间体包括(i)中间命令和(ii)一个或多个中间参数,其中,命令中间体基于对用户输入执行的第一命令确定;对命令中间体执行第二命令确定,以确定(i)一个或多个媒体回放系统命令和(ii)媒体回放系统中的多个回放设备中的一个或多个目标回放设备;以及使所确定的一个或多个目标回放设备执行所确定的一个或多个媒体回放系统命令。
示例2:根据示例1所述的方法,其中,使所确定的一个或多个目标回放设备执行所确定的一个或多个媒体回放系统命令包括:根据所确定的一个或多个媒体回放系统命令来更新关于至少一个目标回放设备的状态信息;以及针对状态事件订户生成状态更新事件,其中,生成状态更新事件使状态事件订户:(i)经由相应的网络接口接收状态对象,该状态对象包括通过执行所确定的一个或多个媒体回放系统命令而修改的状态信息,以及(ii)
更新表示通过执行所确定的一个或多个媒体回放系统命令而修改的状态信息的相应状态信息。
示例3:根据示例1至2中任一个所述的方法,其中,用户输入包括语音命令,其中,
一个或多个中间参数包括指示检测到语音命令的网络麦克风设备NMD的参数,并且其中,对命令中间体执行第二命令确定包括:基于指示检测到语音命令的NMD的参数,将至少一个特定回放设备标识为一个或多个目标回放设备。
示例4:根据示例3所述的方法,其中,中间命令是音量调整命令,并且其中,标识一个或多个目标回放设备包括:基于(i)NMD与至少一个特定回放设备之间的关联,将至少一个特定回放设备标识为一个或多个目标回放设备。
示例5:根据示例4所述的方法,其中,标识一个或多个目标回放设备包括:基于至少一个特定回放设备与一个或多个附加回放设备在一个组中,将一个或多个附加回放设备标识为一个或多个目标回放设备。
示例6:根据示例3所述的方法,其中,中间命令是回放传送命令,并且其中,对命令中间体执行第二命令确定包括:基于(i)NMD与至少一个特定回放设备之间的关联,将至少一个特定回放设备标识为一个或多个目标回放设备;以及
基于指示一个或多个源回放设备当前正在播放音频的一个或多个源回放设备的回放状态,标识当前正在一个或多个源回放设备上播放的特定音频内容以传送到一个或多个目标回放设备。
示例7:根据任一前述示例所述的方法,其中,中间命令包括回放命令,并且其中,
对命令中间体执行第二命令确定包括:
确定一个或多个中间参数指示针对回放命令的第一目标回放设备和第二目标回放设备;确定第一目标回放设备和第二目标回放设备被取消分组;以及基于(i)一个或多个中间参数指示针对回放命令的第一目标回放设备和第二目标回放设备的确定,以及(ii)第一目标回放设备和第二目标回放设备被取消分组的确定,确定一个或多个媒体回放系统命令包括组创建命令,用于将第一目标回放设备和第二目标回放设备分组在同步组中以同步回放音频内容。
示例8:根据示例7所述的方法,其中,确定一个或多个中间参数指示针对回放命令的第一目标回放设备和第二目标回放设备包括:确定特定中间参数表示区域标识符,该区域标识符与被预配置为当被实例化时包括媒体回放系统的两个或更多个组成区的区域相对应,其中,两个或更多个区包括包含第一回放设备的第一区和包含第二回放设备的第二区。
示例9:根据任一前述示例所述的方法,其中,对命令中间体执行第二命令确定包括:确定一个或多个媒体回放系统命令包括用于将两个或更多个回放设备分组在同步组中以在媒体回放系统中同步回放音频内容的组创建命令,并且其中,使所确定的一个或多个目标回放设备执行所确定的一个或多个媒体回放系统命令包括:从两个或更多个回放设备中选择组协调器,以将定时信息分发给同步组中的其他回放设备;以及更新关于组协调器的状态信息,以指示组协调器是同步组的组协调器。
示例10:根据说明例9所述的方法,还包括:在接收到对应于一个或多个函数调用的数据之前,POC回放设备从控制器设备接收表示用于定义特定区域的命令的数据,其中,特定区域当被实例化时包括媒体回放系统的一个或多个区;以及POC回放设备针对更新事件订户生成更新事件,该更新事件使更新事件订户更新表示特定区域的相应状态信息。
示例11:根据任一前述示例所述的方法,其中,中间命令包括回放命令,并且其中,对命令中间体执行第二命令确定包括:确定特定用户账户与用户输入相关联;以及基于以下各项中的一项或多项来确定针对回放命令的特定音频内容:(i)用户账户的一个或多个偏好和(ii)包括一个或多个目标回放设备的一个或多个区,以及(iii)一天中接收到用户输入的时间。
示例12:根据示例11所述的方法,其中,确定回放命令的特定音频内容包括基于以下各项中的一项或多项来预测用户活动:(i)用户账户的一个或多个偏好和(ii)包括一个或多个目标回放设备的一个或多个区,以及(iii)一天中接收到用户输入的时间;以及基于所预测的用户活动来确定特定音频内容。
示例13:根据任一前述示例所述的方法,其中,对命令中间体执行第二命令确定包括:确定一个或多个中间参数明确指示便携式回放设备;确定便携式回放设备当前在媒体回放系统中不可用;以及将一个或多个备选回放设备标识为一个或多个目标回放设备。
示例14:根据任一前述示例所述的方法,还包括:在执行所确定的一个或多个媒体回放系统命令之后,更新媒体回放系统中的状态信息,以指示一个或多个目标回放设备的状态;以及经由网络接口向云服务的一个或多个服务器发送表示更新状态信息的子集的数据。
示例15:根据任一前述示例所述的方法,其中,执行第二命令确定包括执行次要意图确定,其中,云服务的一个或多个服务器对用户输入执行主要意图确定。
示例16:根据任一前述示例所述的方法,其中,POC回放设备不是一个或多个目标回放设备之一。
示例17:一种其上存储有指令的有形、非暂时性计算机可读介质,该指令可由一个或多个处理器执行以使系统执行根据示例1至16中任一个所述的方法。
示例18:一种设备,包括网络接口、一个或多个处理器、以及其上存储有指令的有形、无形计算机可读介质,该指令可由一个或多个处理器执行以使系统执行根据示例1至16中的任一个所述的方法。
示例19:一种系统,包括网络接口、一个或多个处理器、以及其上存储有指令的有形、无形计算机可读介质,该指令可由一个或多个处理器执行以使系统执行根据示例1至16中的任一个所述的方法。
示例20:一种系统,包括一个或多个设备,该设备包括网络接口、一个或多个处理器、以及其上存储有指令的有形、无形计算机可读介质,该指令可由一个或多个处理器执行以使系统执行根据示例1至16中的任一个所述的方法。
示例21:一种由包括平台服务的一个或多个平台服务器和媒体回放系统中的接触点(POC)回放设备的系统执行的方法,媒体回放系统包括连接到局域网的多个回放设备,该方法包括:一个或多个平台服务器经由一个或多个网络接口从广域网上的第一计算设备接收与对平台应用编程接口(API)的一个或多个函数调用相对应的数据,其中,一个或多个函数调用包括的组创建函数,组创建函数指示作为一个或多个自变量、与媒体回放系统内进行分组的两个或更多个回放设备相对应的标识符;一个或多个平台服务器,经由一个或多个网络接口向POC回放设备发送表示组创建函数的数据;POC回放设备接收表示组创建函数的数据;POC回放设备执行组创建函数,以将两个或更多个回放设备分组在同步组中以在媒体回放系统中同步回放音频内容,其中,执行组创建函数包括:从两个或更多个回放设备中选择组协调器,以将回放和定时信息分发给同步组中的其他回放设备;以及更新关于组协调器的状态信息,以指示组协调器是同步组的组协调器;以及POC回放设备针对组事件订户生成第一组事件,其中,生成第一组事件使组事件订户(i)经由相应的网络接口接收包括对应于同步组的组状态信息的第一组对象,以及(ii)根据第一组对象来更新表示同步组的相应状态信息。
示例22:根据示例20所述的方法,其中,组创建函数的一个或多个自变量指示区域标识符,区域标识符表示被预配置为在被实例化时包括媒体回放系统的两个或更多个组成区的区域,其中每个组成区包括一个或多个相应的回放设备,并且其中,执行组创建函数还包括:POC回放设备在组协调器上设置源区域标识符字符串,以经由区域标识符指示同步组包括该区域。
示例23:根据示例22所述的方法,其中,第一计算设备是媒体回放系统的第一控制器设备,并且其中,第一控制器设备将由区域标识符指示的区域解疑为表示两个或更多个组成区的区标识符,并且其中,组创建函数的第一自变量指示包括两个或更多个组成区的多个区标识符,以及其中,组创建函数的第二自变量指示区域标识符。
示例24:根据示例23所述的方法,其中,组事件订户包括第一控制器设备,其中,组对象指示源区域标识符字符串,并且其中,第一控制器设备经由源区域标识符字符串中的区域标识符显示包括同步组包含该区域的指示的控制器界面。
示例25:根据示例22至24中任一个所述的方法,其中,该方法还包括:POC回放设备针对组事件订户生成第二组事件,其中,生成第二组事件包括:将存储在组协调器上的源区域标识符字符串解析为区域标识符集合,其中,POC回放设备维持表示源区域标识符字符串的状态信息;从区域标识符集合中过滤与已经从区组中移除的区域相对应的一个或多个区域标识符;以及生成包括与同步组相对应的组状态信息的第二组对象,组状态信息包括表示过滤后的集合的源区域标识符字符串,并且其中,生成第二组事件使组事件订户(i)经由相应的网络接口接收第二组对象,以及(ii)基于第二组对象来更新表示同步组的相应状态信息。
示例26:根据示例22至25中任一个所述的方法,其中,第一计算设备是语音助手服务的服务器,其中,表示对平台API的一个或多个函数调用的数据包括表示从语音输入确定的意图的数据,其中,该方法还包括:一个或多个平台服务器将意图转换为平台API的一个或多个函数调用。
示例27:根据示例26所述的方法,其中,该方法还包括:一个或多个平台服务器将由区域标识符指示的区域解疑为表示两个或更多个组成区的区标识符。
示例28:根据示例22至27中任一个所述的方法,其中,第一计算设备是流传输音频服务的服务器,并且其中,表示对API的一个或多个函数调用的数据包括表示对流传输协议API的一个或多个函数调用的数据,并且其中,该方法还包括将对流传输协议API的一个或多个函数调用转换为平台API的一个或多个函数调用。
示例29:根据示例22至28中任一个所述的方法,其中,POC回放设备不是同步组中的两个或更多个回放设备之一。
示例30:根据示例22至29中任一个所述的方法,还包括:在接收到对应于一个或多个函数调用的数据之前,POC回放设备从控制器设备接收表示用于定义特定区域的命令的数据,其中,特定区域当被实例化时包括媒体回放系统的一个或多个区;以及POC回放设备针对更新事件订户生成更新事件,该更新事件使更新事件订户更新表示特定区域的相应状态信息。
示例31:一种其上存储有指令的有形、非暂时性计算机可读介质,该指令可由一个或多个处理器执行以使系统执行根据示例21至30中任一个所述的方法。
示例32:一种设备,包括网络接口、一个或多个处理器、以及其上存储有指令的有形、无形计算机可读介质,该指令可由一个或多个处理器执行以使系统执行根据示例21至30中的任一个所述的方法。
示例33:一种系统,包括网络接口、一个或多个处理器、以及其上存储有指令的有形、无形计算机可读介质,该指令可由一个或多个处理器执行以使系统执行根据示例21至30中的任一个所述的方法。
示例34:一种系统,包括一个或多个设备,该设备包括网络接口、一个或多个处理器、以及其上存储有指令的有形、无形计算机可读介质,该指令可由一个或多个处理器执行以使系统执行根据示例21至30中的任一个所述的方法。

Claims (29)

1.一种媒体回放系统的接触点POC回放设备,所述媒体回放系统包括连接到局域网的多个回放设备,所述回放设备被配置为:
经由所述回放设备的网络接口,从云服务的一个或多个服务器接收数据,所述数据表示基于对用户输入执行的第一命令确定的命令中间体并且包括:
中间命令,以及
一个或多个中间参数;
对所述命令中间体执行第二命令确定,以确定:
一个或多个媒体回放系统命令,以及
所述媒体回放系统中的多个回放设备中的一个或多个目标回放设备;以及
使所确定的一个或多个目标回放设备执行所确定的一个或多个媒体回放系统命令。
2.根据权利要求1所述的回放设备,其中,使所确定的一个或多个目标回放设备执行所确定的一个或多个媒体回放系统命令包括:
根据所确定的一个或多个媒体回放系统命令来更新关于至少一个目标回放设备的状态信息;以及
针对状态事件订户生成状态更新事件,其中,生成所述状态更新事件使所述状态事件订户:
经由相应的网络接口接收状态对象,所述状态对象包括通过执行所确定的一个或多个媒体回放系统命令而修改的状态信息,以及
更新对通过执行所确定的一个或多个媒体回放系统命令而修改的状态信息加以表示的相应状态信息。
3.根据权利要求1或2所述的回放设备,其中:
所述用户输入包括语音命令,
所述一个或多个中间参数包括指示检测到所述语音命令的网络麦克风设备NMD的参数,以及
对所述命令中间体执行所述第二命令确定包括:基于指示检测到所述语音命令的NMD的参数,将至少一个特定回放设备标识为所述一个或多个目标回放设备。
4.根据权利要求3所述的回放设备,其中:
所述中间命令是音量调整命令,以及
标识所述一个或多个目标回放设备包括:基于所述NMD与所述至少一个特定回放设备之间的关联,将所述至少一个特定回放设备标识为所述一个或多个目标回放设备。
5.根据权利要求3或4所述的回放设备,其中,标识所述一个或多个目标回放设备包括:基于所述至少一个特定回放设备与一个或多个附加回放设备在一个组中,将所述一个或多个附加回放设备标识为所述一个或多个目标回放设备。
6.根据权利要求3所述的回放设备,其中:
所述中间命令是回放传送命令,
对所述命令中间体执行所述第二命令确定包括:
基于所述NMD与所述至少一个特定回放设备之间的关联,将所述至少一个特定回放设备标识为所述一个或多个目标回放设备;以及
基于指示一个或多个源回放设备当前正在播放音频的所述一个或多个源回放设备的回放状态,标识当前正在所述一个或多个源回放设备上播放的特定音频内容以传送到所述一个或多个目标回放设备。
7.根据权利要求1或2所述的回放设备,其中:
所述中间命令包括回放命令,以及
对所述命令中间体执行所述第二命令确定包括:
确定所述一个或多个中间参数指示针对所述回放命令的第一目标回放设备和第二目标回放设备;
确定所述第一目标回放设备和所述第二目标回放设备被取消分组;以及
基于(i)确定所述一个或多个中间参数指示针对所述回放命令的第一目标回放设备和第二目标回放设备,以及(ii)确定所述第一目标回放设备和所述第二目标回放设备被取消分组,确定所述一个或多个媒体回放系统命令包括用于将所述第一目标回放设备和所述第二目标回放设备分组在同步组中以同步回放音频内容的组创建命令。
8.根据权利要求7所述的回放设备,其中,确定所述一个或多个中间参数指示针对所述回放命令的第一目标回放设备和第二目标回放设备包括:确定特定中间参数表示与被预配置为当实例化时包括所述媒体回放系统的两个或更多个组成区在内的区域相对应的区域标识符,其中,两个或更多个区包括包含所述第一目标回放设备的第一区和包含所述第二目标回放设备的第二区。
9.根据权利要求1或2所述的回放设备,其中:
对所述命令中间体执行所述第二命令确定包括:确定所述一个或多个媒体回放系统命令包括用于将两个或更多个回放设备分组在同步组中以在所述媒体回放系统中同步回放音频内容的组创建命令,以及
使所确定的一个或多个目标回放设备执行所确定的一个或多个媒体回放系统命令包括:
从所述两个或更多个回放设备中选择组协调器,以将定时信息分发给所述同步组中的其他回放设备;以及
更新关于所述组协调器的状态信息,以指示所述组协调器是所述同步组的组协调器。
10.根据权利要求9所述的回放设备,其中,所述回放设备还被配置为:
针对组事件订户生成组事件,其中,生成所述组事件使所述组事件订户:
经由相应的网络接口接收包括与所述同步组相对应的组状态信息的第一组对象,并且
根据所述第一组对象来更新表示所述同步组的相应状态信息。
11.根据权利要求1至3中任一项所述的回放设备,其中:
所述中间命令包括回放命令,以及
对所述命令中间体执行所述第二命令确定包括:
确定特定用户帐户与所述用户输入相关联;以及
基于以下各项中的一项或多项来确定针对所述回放命令的特定音频内容:
所述用户帐户的一个或多个偏好;
包括所述一个或多个目标回放设备的一个或多个区,以及
一天中接收到所述用户输入的时间。
12.根据权利要求11所述的回放设备,其中,针对所述回放命令的特定音频内容包括:
基于以下各项中的一项或多项来预测用户活动:
所述用户帐户的一个或多个偏好;
包括所述一个或多个目标回放设备的一个或多个区,以及
一天中接收到所述用户输入的时间;以及
基于所预测的用户活动来确定所述特定音频内容。
13.根据前述权利要求中任一项所述的回放设备,其中,对所述命令中间体执行所述第二命令确定包括:
确定所述一个或多个中间参数明确地指示便携式回放设备;
确定所述便携式回放设备当前在所述媒体回放系统中不可用;以及
将一个或多个备选回放设备标识为所述一个或多个目标回放设备。
14.根据前述权利要求中任一项所述的回放设备,其中,所述POC回放设备还被配置为:
在执行所确定的一个或多个媒体回放系统命令之后,更新所述媒体回放系统中的状态信息,以指示所述一个或多个目标回放设备的状态;以及
经由网络接口向所述云服务的一个或多个服务器发送表示所述更新状态信息的子集的数据。
15.根据前述权利要求中任一项所述的回放设备,其中:
执行所述第二命令确定包括执行次级意图确定;以及
所述云服务的一个或多个服务器对所述用户输入执行主要意图确定。
16.根据前述权利要求中任一项所述的回放设备,其中,所述POC回放设备不是所述一个或多个目标回放设备之一。
17.一种由包括媒体回放系统中的接触点POC回放设备的系统执行的方法,所述媒体回放系统包括连接到局域网的多个回放设备,所述方法包括:
经由网络接口从云服务的一个或多个服务器接收表示命令中间体的数据,所述命令中间体包括(i)中间命令和(ii)一个或多个中间参数,其中,所述命令中间体基于对用户输入执行的第一命令确定;
对所述命令中间体执行第二命令确定,以确定(i)一个或多个媒体回放系统命令和(ii)所述媒体回放系统中的多个回放设备中的一个或多个目标回放设备;以及
使所确定的一个或多个目标回放设备执行所确定的一个或多个媒体回放系统命令。
18.一种包括根据前述权利要求中任一项所述的接触点POC回放设备的系统,其中,所述POC回放设备在包括连接到局域网的多个回放设备的媒体回放系统中。
19.一种由包括平台服务的一个或多个平台服务器和媒体回放系统中的接触点POC回放设备在内的系统执行的方法,所述媒体回放系统包括连接到局域网的多个回放设备,所述方法包括:
所述一个或多个平台服务器经由一个或多个网络接口从广域网上的第一计算设备接收与对平台应用编程接口API的一个或多个函数调用相对应的数据,其中,所述一个或多个函数调用包括组创建函数,所述组创建函数指示作为一个或多个自变量的、与所述媒体回放系统内要分组的两个或更多个回放设备对应的标识符;
一个或多个平台服务器,经由所述一个或多个网络接口向所述POC回放设备发送表示所述组创建函数的数据;
所述POC回放设备接收表示所述组创建函数的数据;
所述POC回放设备执行所述组创建函数,以将所述两个或更多个回放设备分组在同步组中以在所述媒体回放系统中同步回放音频内容,其中,执行所述组创建函数包括:
从所述两个或更多个回放设备中选择组协调器,以将回放和定时信息分发给所述同步组中的其他回放设备;以及
更新关于所述组协调器的状态信息,以指示所述组协调器是所述同步组的组协调器;以及
所述POC回放设备针对组事件订户生成第一组事件,其中,生成所述第一组事件使所述组事件订户(i)经由相应的网络接口接收包括对应于所述同步组的组状态信息的第一组对象,以及(ii)根据所述第一组对象来更新表示所述同步组的相应状态信息。
20.根据权利要求19所述的方法,其中,所述组创建函数的一个或多个自变量指示区域标识符,所述标识符表示被预配置为在实例化时包括所述媒体回放系统的两个或更多个组成区在内的区域,其中每个区包括一个或多个相应的回放设备,并且其中,执行所述组创建函数还包括:
所述POC回放设备在所述组协调器上设置源区域标识符字符串,以经由所述区域标识符指示所述同步组包括所述区域。
21.根据权利要求20所述的方法,其中,所述第一计算设备是所述媒体回放系统的第一控制器设备,并且其中,所述第一控制器设备将由所述区域标识符指示的区域解疑为表示所述两个或更多个组成区的区标识符,并且其中,所述组创建函数的第一自变量指示包括所述两个或更多个组成区的多个区标识符,以及其中,所述组创建函数的第二自变量指示所述区域标识符。
22.根据权利要求21所述的方法,其中,所述组事件订户包括第一控制器设备,其中,组对象指示所述源区域标识符字符串,并且其中,所述第一控制器设备显示控制器界面,所述控制器界面包括如下指示:经由所述源区域标识符字符串中的所述区域标识符指示所述同步组包含所述区域。
23.根据权利要求20至22中任一项所述的方法,其中,所述方法还包括:
所述POC回放设备针对组事件订户生成第二组事件,其中,生成所述第二组事件包括:
将存储在所述组协调器上的源区域标识符字符串解析为区域标识符集合,其中,所述POC回放设备维持表示所述源区域标识符字符串的状态信息;
从所述区域标识符集合中过滤与已经从区组中移除的区域相对应的一个或多个区域标识符;以及
生成包括与所述同步组相对应的组状态信息的第二组对象,所述组状态信息包括表示过滤后的集合的源区域标识符字符串,以及
其中,生成所述第二组事件使所述组事件订户:(i)经由相应的网络接口接收所述第二组对象,以及(ii)基于所述第二组对象来更新表示所述同步组的相应状态信息。
24.根据权利要求20至23中任一项所述的方法,其中,所述第一计算设备是语音助手服务的服务器,其中,表示对所述平台API的一个或多个函数调用的数据包括表示从语音输入确定的意图的数据,其中,所述方法还包括:
所述一个或多个平台服务器将所述意图转换为所述平台API的一个或多个函数调用。
25.根据权利要求24所述的方法,其中,所述方法还包括:
所述一个或多个平台服务器将由所述区域标识符指示的区域解疑为表示所述两个或更多个组成区的区标识符。
26.根据权利要求20至23中任一项所述的方法,其中,所述第一计算设备是流传输音频服务的服务器,并且其中,表示对所述API的一个或多个函数调用的数据包括表示对流式传输协议API的一个或多个函数调用的数据,并且其中,所述方法还包括将对流传输协议API的一个或多个函数调用转换为所述平台API的一个或多个函数调用。
27.根据权利要求19至26中任一项所述的方法,其中,所述POC回放设备不是所述同步组中的两个或更多个回放设备之一。
28.根据权利要求19至27中任一项所述的方法,还包括:
在接收对应于一个或多个函数调用的数据之前,所述POC回放设备从控制器设备接收表示用于定义特定区域的命令的数据,其中,所述特定区域在被实例化时包括所述媒体回放系统的一个或多个区;以及
所述POC回放设备针对更新事件订户生成更新事件,所述更新事件使更新事件订户更新用于表示所述特定区域的相应状态信息。
29.一种包括平台服务的一个或多个平台服务器和媒体回放系统中的接触点POC回放设备在内的系统,其中,所述媒体回放系统包括连接到局域网的多个回放设备,其中,所述系统被配置为执行权利要求19至28之一所述的方法。
CN202180057621.1A 2020-06-08 2021-06-08 使用分布式命令处理的控制 Pending CN116114255A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063036295P 2020-06-08 2020-06-08
US63/036,295 2020-06-08
US202063112459P 2020-11-11 2020-11-11
US63/112,459 2020-11-11
PCT/US2021/036392 WO2021252483A1 (en) 2020-06-08 2021-06-08 Control with distributed command processing

Publications (1)

Publication Number Publication Date
CN116114255A true CN116114255A (zh) 2023-05-12

Family

ID=76731038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180057621.1A Pending CN116114255A (zh) 2020-06-08 2021-06-08 使用分布式命令处理的控制

Country Status (4)

Country Link
US (2) US12075109B2 (zh)
EP (1) EP4162698A1 (zh)
CN (1) CN116114255A (zh)
WO (1) WO2021252483A1 (zh)

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440644A (en) 1991-01-09 1995-08-08 Square D Company Audio distribution system having programmable zoning features
JP3094900B2 (ja) 1996-02-20 2000-10-03 ヤマハ株式会社 ネットワーク機器およびデータ送受信方法
US6404811B1 (en) 1996-05-13 2002-06-11 Tektronix, Inc. Interactive multimedia system
US6469633B1 (en) 1997-01-06 2002-10-22 Openglobe Inc. Remote control of electronic devices
US6611537B1 (en) 1997-05-30 2003-08-26 Centillium Communications, Inc. Synchronous network for digital media streams
US6032202A (en) 1998-01-06 2000-02-29 Sony Corporation Of Japan Home audio/video network with two level device control
US20020002039A1 (en) 1998-06-12 2002-01-03 Safi Qureshey Network-enabled audio device
US7130616B2 (en) 2000-04-25 2006-10-31 Simple Devices System and method for providing content, management, and interactivity for client devices
US6256554B1 (en) 1999-04-14 2001-07-03 Dilorenzo Mark Multi-room entertainment system with in-room media player/dispenser
US7657910B1 (en) 1999-07-26 2010-02-02 E-Cast Inc. Distributed electronic entertainment method and apparatus
US6522886B1 (en) 1999-11-22 2003-02-18 Qwest Communications International Inc. Method and system for simultaneously sharing wireless communications among multiple wireless handsets
ATE354247T1 (de) 1999-12-03 2007-03-15 Ericsson Telefon Ab L M Verfahren zur gleichzeitigen wiedergabe von audio signalen in zwei telefonen
US20010042107A1 (en) 2000-01-06 2001-11-15 Palm Stephen R. Networked audio player transport protocol and architecture
AU2001231115A1 (en) 2000-01-24 2001-07-31 Zapmedia, Inc. System and method for the distribution and sharing of media assets between mediaplayers devices
WO2001053994A2 (en) 2000-01-24 2001-07-26 Friskit, Inc. Streaming media search and playback system
WO2001061939A2 (en) 2000-02-18 2001-08-23 Bridgeco Ag Multi-portal bridge for providing network connectivity
US6631410B1 (en) 2000-03-16 2003-10-07 Sharp Laboratories Of America, Inc. Multimedia wired/wireless content synchronization system and method
AU4219601A (en) 2000-03-31 2001-10-15 Classwave Wireless Inc. Dynamic protocol selection and routing of content to mobile devices
GB2363036B (en) 2000-05-31 2004-05-12 Nokia Mobile Phones Ltd Conference call method and apparatus therefor
US6778869B2 (en) 2000-12-11 2004-08-17 Sony Corporation System and method for request, delivery and use of multimedia files for audiovisual entertainment in the home environment
US7143939B2 (en) 2000-12-19 2006-12-05 Intel Corporation Wireless music device and method therefor
US20020124097A1 (en) 2000-12-29 2002-09-05 Isely Larson J. Methods, systems and computer program products for zone based distribution of audio signals
US6757517B2 (en) 2001-05-10 2004-06-29 Chin-Chi Chang Apparatus and method for coordinated music playback in wireless ad-hoc networks
AU2002361767A1 (en) 2001-12-17 2003-07-09 Becomm Corporation Method and system for synchronization of content rendering
US8103009B2 (en) 2002-01-25 2012-01-24 Ksc Industries, Inc. Wired, wireless, infrared, and powerline audio entertainment systems
US7853341B2 (en) 2002-01-25 2010-12-14 Ksc Industries, Inc. Wired, wireless, infrared, and powerline audio entertainment systems
KR20040077970A (ko) 2002-02-20 2004-09-07 메시네트웍스, 인코포레이티드 애드-호크 네트워크 용량을 증가시키기 위해 채널간에802.11 데이터 트래픽을 라우팅하는 시스템 및 방법
US7657224B2 (en) 2002-05-06 2010-02-02 Syncronation, Inc. Localized audio networks and associated digital accessories
WO2003096741A2 (en) 2002-05-09 2003-11-20 Michael Braithwaite Audio network distribution system
US8060225B2 (en) 2002-07-31 2011-11-15 Hewlett-Packard Development Company, L. P. Digital audio device
EP1389853B1 (en) 2002-08-14 2006-03-29 Sony Deutschland GmbH Bandwidth oriented reconfiguration of wireless ad hoc networks
US7295548B2 (en) 2002-11-27 2007-11-13 Microsoft Corporation Method and system for disaggregating audio/visual components
US7571014B1 (en) 2004-04-01 2009-08-04 Sonos, Inc. Method and apparatus for controlling multimedia players in a multi-zone system
US8234395B2 (en) 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US7483538B2 (en) 2004-03-02 2009-01-27 Ksc Industries, Inc. Wireless and wired speaker hub for a home theater system
US7630501B2 (en) 2004-05-14 2009-12-08 Microsoft Corporation System and method for calibration of an acoustic system
US8483853B1 (en) 2006-09-12 2013-07-09 Sonos, Inc. Controlling and manipulating groupings in a multi-zone media system
WO2008046141A1 (en) 2006-10-17 2008-04-24 Avega Systems Pty Ltd Unification of multimedia devices
US9084058B2 (en) 2011-12-29 2015-07-14 Sonos, Inc. Sound field calibration using listener localization
US8930005B2 (en) 2012-08-07 2015-01-06 Sonos, Inc. Acoustic signatures in a playback system
US9288596B2 (en) 2013-09-30 2016-03-15 Sonos, Inc. Coordinator device for paired or consolidated players
US9654545B2 (en) 2013-09-30 2017-05-16 Sonos, Inc. Group coordinator device selection
US10275138B2 (en) 2014-09-02 2019-04-30 Sonos, Inc. Zone recognition
US9811312B2 (en) * 2014-12-22 2017-11-07 Intel Corporation Connected device voice command support
US9886234B2 (en) 2016-01-28 2018-02-06 Sonos, Inc. Systems and methods of distributing audio to one or more playback devices
US9947316B2 (en) 2016-02-22 2018-04-17 Sonos, Inc. Voice control of a media playback system
US9811314B2 (en) * 2016-02-22 2017-11-07 Sonos, Inc. Metadata exchange involving a networked playback system and a networked microphone system
US9749583B1 (en) * 2016-03-31 2017-08-29 Amazon Technologies, Inc. Location based device grouping with voice control
US10931999B1 (en) * 2016-06-27 2021-02-23 Amazon Technologies, Inc. Systems and methods for routing content to an associated output device
US10466962B2 (en) * 2017-09-29 2019-11-05 Sonos, Inc. Media playback system with voice assistance
US11184660B1 (en) * 2018-09-27 2021-11-23 Amazon Technologies, Inc. Voice-based state switching and LED selection for remote control devices
CN112289313A (zh) * 2019-07-01 2021-01-29 华为技术有限公司 一种语音控制方法、电子设备及系统
CN113127609B (zh) * 2019-12-31 2024-10-18 华为技术有限公司 语音控制方法、装置、服务器、终端设备及存储介质

Also Published As

Publication number Publication date
US20250097505A1 (en) 2025-03-20
US20230217057A1 (en) 2023-07-06
US12075109B2 (en) 2024-08-27
WO2021252483A1 (en) 2021-12-16
EP4162698A1 (en) 2023-04-12

Similar Documents

Publication Publication Date Title
US12143788B2 (en) Playback transitions
US11956480B2 (en) Grouping in a system with multiple media playback protocols
US11188294B2 (en) Detecting the nearest playback device
US20220261212A1 (en) Playback Transitions
US11740857B2 (en) Playback session transitions across different platforms
US11720320B2 (en) Playback queues for shared experiences
US12088650B2 (en) Seamless transition of source of media content
US20250110690A1 (en) Unified content experience
US12075109B2 (en) Control with distributed command processing
US20240104151A1 (en) Dynamic Content Recommendations
EP4409920B1 (en) Routines for playback devices
US20240345703A1 (en) Media Playback System Switcher
US20250088694A1 (en) Controller Application Mode Switching
US20250240479A1 (en) Networked Device Group Information in a System with Multiple Media Playback Protocols
US20240267582A1 (en) Dashboard user interface
US20250238195A1 (en) Playback Queues for Shared Experiences

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination