分布式同步的制作方法

文档序号:26009735发布日期:2021-07-23 21:29阅读:113来源:国知局
分布式同步的制作方法

相关申请的交叉引用

本申请要求2018年10月15日提交的美国专利申请no.16/160,996的优先权,其全部内容通过引用整体并入本文。

本公开涉及消费者产品,更具体地,涉及与媒体回放或者其某个方面有关的方法、系统、产品、特征、服务和其他元素。



背景技术:

在外放设置下访问和收听数字音频的选项受到限制,直到2002年sonos公司开始开发新型回放系统。然后,sonos于2003年提交了题为“methodforsynchronizingaudioplaybackbetweenmultiplenetworkeddevices”的其首批专利申请之一,并于2005年开始提供其首批媒体回放系统以供销售。sonos无线家庭音响系统使人们可以经由一个或多个联网回放设备体验来自许多源的音乐。通过安装在控制器(例如,智能手机、平板电脑、计算机、语音输入设备)上的软件控制应用,人们可以在具有联网的回放设备的任何房间中播放自己想要的内容。媒体内容(例如,歌曲、播客、视频声音)可以被流传输到回放设备,使得具有回放设备的每个房间可以回放对应的不同媒体内容。另外,可以将房间分组在一起以同步回放相同的媒体内容,和/或可以在所有房间中同步收听相同的媒体内容。

附图说明

结合下面列出的以下描述、所附权利要求和附图,可以更好地理解当前公开的技术的特征、方面和优点。相关领域的技术人员将理解,附图中所示的特征是出于说明的目的,并且包括不同和/或附加特征及其布置的变型是可能的。

图1a示出了具有根据所公开技术的各方面配置的媒体回放系统的环境的局部剖视图。

图1b示出了图1a的媒体回放系统和一个或多个网络的示意图。

图1c示出了回放设备的框图。

图1d示出了回放设备的框图。

图1e示出了网络麦克风设备的框图。

图1f示出了网络麦克风设备的框图。

图1g示出了回放设备的框图。

图1h示出了控制设备的局部示意图。

图1-i至图1l示出了相应的媒体回放系统地区的示意图。

图1m示出了媒体回放系统区域的示意图。

图2a示出了根据所公开的技术的各方面配置的回放设备的前等距视图。

图2b示出了没有格栅的图3a的回放设备的前等距视图。

图2c示出了图2a的回放设备的分解图。

图3a示出了根据所公开的技术的各方面配置的网络麦克风设备的前视图。

图3b示出了图3a的网络麦克风设备的侧等距视图。

图3c示出了图3a和图3b的网络麦克风设备的分解图。

图3d示出了图3b的部分的放大图。

图3e示出了图3a-图3d的网络麦克风设备的框图。

图3f示出了示例语音输入的示意图。

图4a-图4d示出了根据所公开的技术的各方面的处于操作的各个阶段的控制设备的示意图。

图5示出了控制设备的前视图。

图6示出了媒体回放系统的消息流程图。

图7示出了根据一些实施例的播放来自多个源的音频内容的两个回放设备的示例配置。

图8示出了根据一些实施例的播放来自多个源的音频内容的两个回放设备的示例配置。

图9示出了根据一些实施例的播放来自多个源的音频内容的三个回放设备的示例配置。

图10示出了根据一些实施例的播放来自多个源的音频内容的两个回放设备的示例配置。

图11a示出了根据一些实施例的播放来自多个源的音频内容的四个回放设备的示例配置。

图11b示出了根据一些实施例的播放来自多个源的音频内容的四个回放设备的示例配置。

图12示出了根据一些实施例的由回放设备执行的用于播放来自多个源的音频内容的示例方法。

图13示出了根据一些实施例的由回放设备执行的用于播放来自多个源的音频内容的示例方法。

附图是出于说明示例实施例的目的,但是本领域普通技术人员将理解,本文公开的技术不限于附图中所示的布置和/或工具。

具体实施方式

i.概述

期望回放设备播放来自许多不同源(例如,音频流服务、视频流服务、音频或视频源、语音助手服务(vas)门铃、对讲机、电话和其他源)的音频内容。有时期望同时播放来自多个源的音频内容。例如,在播放音乐或播放与电视节目或其他视频内容相关联的音频时,在一些情况下,可能期望回放设备还播放门铃提示音或提供语音(或其他音频)响应或确认。

例如,假设以下场景,其中:(i)用户正在观看电视节目、电影或其他视频内容,以及(ii)回放设备正在播放与该视频内容相关联的音频内容。在回放设备播放与视频内容相关联的音频内容时,访客或送货人员激活用户的联网门铃(例如,nest或类似的门铃或对讲系统)。响应于门铃的激活,并且在继续播放与视频内容相关联的音频内容时,回放设备回避(降低音量)与视频内容相关联的音频内容,并且回放设备播放来自门铃的音频,从而提醒用户门铃激活。并且对于具有双向对讲或话音功能的门铃系统,带有麦克风的回放设备可以附加地使用户经由配备麦克风的回放设备和门铃之间的双向通信链路与访客或送货人员进行交谈,同时回放设备继续播放与视频内容相关联的音频内容,尽管可能以较低的(或回避的)音量级播放与视频内容相关联的音频内容。

尽管单个常规回放设备可以能够播放来自第二音频源(例如,门铃/对讲机或与其相关联的计算设备/系统)的第二音频内容(例如,与门铃/对讲机相关联的音频),同时仍可以播放来自第一音频源(例如,电视或与电视相关联或提供音频/视频内容以用于回放的计算设备/系统)的第一音频内容(例如,与视频内容相关联的音频),当两个或更多个联网回放设备的集合(或组)需要彼此同步地播放第二音频(例如,与门铃/对讲机相关联的音频),同时两个或更多个联网的回放设备的集合还彼此同步地播放第一音频(例如,与视频内容关联的音频)时,会出现技术问题。

例如,如本文描述的一些实施例,在多个回放设备和/或音频源中的一个或多个以不同的时钟速率计时的场景中,由多个回放设备播放来自多个音频源的多个音频流提出了技术挑战。在系统中尤其如此,其中,如本文描述的一些实施例,(i)多个音频源和回放设备经由异步数据网络(例如,以太网、wifi或其他异步网络)连接,其中,音频内容的分组以不确定的延迟通过lan或wan,和/或(ii)多个音频源和回放设备未同步到集中的、专用的主时钟,该主时钟使所有设备都能在集中的、专用的主时钟的时间、相位和/或频率的控制下或以其他方式与之同步地同时,精确地执行回放功能。

当组中的不同回放设备从不同的音频源获取不同的音频内容以由该组彼此同步地回放时,该问题进一步复杂化。例如,在一些当前同步回放方案中,如果第一回放设备尝试根据第一回放设备的定时来播放其获取并向第二回放设备提供的第一音频内容,并且还尝试根据第二回放设备的定时来播放从第二回放设备接收到的第二音频内容,第一回放设备和第二回放设备可以创建定时参考循环,其中,两个回放设备都无法可靠地同步播放两个分离的音频内容流中的任何一个。更大的回放设备组和从附加音频源获取的附加音频内容使问题进一步复杂化。

本文公开和描述的系统和方法克服了当回放设备组从不同的音频源获得不同的音频内容以由该组中的回放设备同时地同步回放时可能出现的这些和其他技术问题。在本文公开的一些实施例中,两个或更多个回放设备的组被配置为同步组,其中,该同步组中的所有回放设备被配置为彼此同步地播放音频内容。在一些实施例中,在立体声对中配置两个回放设备的组,其中,一个回放设备播放音频内容的右声道,而另一个回放设备播放音频内容的左声道。在一些实施例中,两个或更多个回放设备的组被配置为合并的回放设备,其中,合并的回放设备中的不同回放设备被配置为播放音频内容的不同频率和/或声道。在一些实施例中,两个或更多个回放设备的组被配置为多声道环绕声系统,其中,该组中的不同回放设备被配置为播放环绕声内容的一个或多个声道。并且在一些实施例中,两个或更多个回放设备的组未以同步组、立体声对、合并的回放没备或环绕声系统布置来配置,但是各个回放设备被配置为在网络上共享回放定时信息和时钟定时信息,使得各个回放设备可以至少彼此同步地播放一些音频内容(例如,来自某些类型的音频源的某些类型的音频),即使这些各个回放设备可能没有被正式地分组为同步组、立体声对、合并的回放设备、环绕声系统或任何其他正式分组。并且在其他实施例中,两个或更多个回放设备的组可以包括以下各项中的一项或多项:(i)以同步组分组的两个或更多个回放设备的集合,(ii)被分组为立体声对的两个回放设备的集合,(iii)被分组为合并的回放设备的两个或更多个回放设备的集合,(iv)被分组为环绕声系统的两个或更多个回放设备的集合,和/或(v)两个或更多个未正式分组但仍被配置为彼此同步地回放来自某些类型的源的至少一些音频或某些类型的音频的回放设备的集合。

在各种配置中,所公开的技术方案的一个方面涉及获取音频内容的不同回放设备如何针对它们各自所获取的音频内容生成回放定时,然后将该回放定时与音频内容一起发送到组中的其他回放设备,以用于由组中的回放设备同步地回放。

所公开的技术方案的另一方面涉及在与组中的其他回放设备同步地播放音频内容之前,组中的回放设备如何基于时钟定时信息来调整从回放设备接收到的回放定时。在一些实施例中,第一回放设备基于其自身的时钟定时信息和从另一个回放设备(例如,第二回放设备或第三回放设备)接收到的时钟定时信息来调整从第二回放设备接收到的回放定时。

所公开的技术方案的另一方面基于将回放定时的生成与时钟定时的生成解耦合,以允许例如获取音频内容的回放设备(即“源”回放设备)基于从另一个回放设备接收到的时钟定时来生成用于该音频内容的回放定时。从回放定时的生成与时钟定时的生成解耦合而产生的相关方面基于回放设备如何能够使用来自不同回放设备的回放定时和时钟定时来同步地播放音频内容。

所公开的技术方案的另一方面基于使任何回放设备(或网络中的其他设备)能够提供时钟定时,以由回放设备用来生成回放定时和/或基于回放定时同步地播放音频内容。在一些实施例中,网络中的任何设备(例如,回放设备或其他计算设备)可以提供用于同步回放会话的时钟定时,并且网络中提供时钟定时的设备可以随时间而变化。

本文公开的技术方案的这些和其他方面使回放设备组能够同步地播放从该组中的多个回放设备(以及从该组中的任何回放设备)获取的音频内容,即使这些回放设备和音频源具有不同的时钟时间和/或以略不同的时钟速率运行。

例如,本文公开的一些实施例涉及包括一个或多个处理器以及包括指令的有形的、非暂时性计算机可读介质的第一回放设备,该指令在被执行时使第一回放设备与一个或多个其他回放设备同步地执行与播放音频内容有关的计算功能。

在一些实施例中,该第一回放设备被配置为生成第一回放设备的第一时钟定时信息,其中,第一时钟定时信息包括第一回放设备的第一时钟时间。第一回放设备还接收包括第二时钟时间的第二时钟定时信息,并确定第一时钟时间和第二时钟时间之间的差。

第一回放设备附加地从第一音频信息源接收第一音频信息和指示何时播放第一音频信息的至少一部分的第一回放定时信息。

并且,在接收到第一音频信息和回放定时信息之后,第一回放设备基于(i)第一回放定时信息,(ii)第一时钟定时信息,以及(iii)第一时钟时间和第二时钟时间之间的差,与第二回放设备同步地播放第一音频信息。

然后,在与第二回放设备同步地播放第一音频信息时,第一回放设备接收第二音频信息。并且,响应于接收到第二音频信息,第一回放设备(i)基于第一时钟时间和第二时钟时间之间的差来生成第二回放定时信息,(ii)向第二回放设备发送第二音频信息和第二回放定时信息,并且(iii)基于第二回放定时信息和第一时钟定时信息与第二回放设备同步地播放第二音频信息。

虽然本文描述的一些示例可以涉及由给定行动者(例如,“用户”、“听众”和/或其他实体)执行的功能,但是应该理解,这仅仅出于解释的目的。除非权利要求本身的语言明确要求,否则不应将权利要求解释为要求由任何此类示例行动者进行的动作。

在附图中,相同的附图标记识别大致类似和/或相同的元件。为了促进对任何特定元件的讨论,参考数字中的一个或多个最高有效位指的是首次引入该元件的附图。例如,首先参照图1a介绍和讨论元件110a。图中所示的许多细节、尺寸、角度和其他特征仅是所公开技术的特定实施例的说明。因此,在不脱离本公开的精神或范围的情况下,其他实施例可以具有其他细节、尺寸、角度和特征。另外,本领域普通技术人员将理解,可以在没有以下描述的若干个细节的情况下实践各种公开的技术的其他实施例。

ii.合适的操作环境

图1a是分布在环境101(例如,房屋)中的媒体回放系统100的局部剖视图。媒体回放系统100包括一个或多个回放设备110(分别被识别为回放设备110a-110n)、一个或多个网络麦克风设备(“nmd”)120(分别被识别为nmd120a-120c)以及一个或多个控制设备130(分别被识别为控制设备130a和130b)。

如本文所使用的,术语“回放设备”通常可以指代被配置为接收、处理和输出媒体回放系统的数据的网络设备。例如,回放设备可以是接收和处理音频内容的网络设备。在一些实施例中,回放设备包括由一个或多个放大器供电的一个或多个换能器或扬声器。然而,在其他实施例中,回放设备包括扬声器和放大器之一(或任意一个都不包括)。例如,回放设备可以包括一个或多个放大器,该一个或多个放大器被配置为经由相应的电线或电缆来驱动回放设备外部的一个或多个扬声器。

此外,如本文中所使用的,术语nmd(即,“网络麦克风设备”)通常可以指代被配置用于音频检测的网络设备。在一些实施例中,nmd是主要配置用于音频检测的独立设备。在其他实施例中,nmd被合并到回放设备中(反之亦然)。

术语“控制设备”通常可以指代网络设备,该网络设备被配置为执行与促进用户对媒体回放系统100进行访问、控制和配置相关的功能。

回放设备110中的每一个被配置为从一个或多个媒体源(例如,一个或多个远程服务器、一个或多个本地设备)接收音频信号或数据,并且回放所接收到的音频信号或数据作为声音。一个或多个nmd120被配置为接收口语命令,并且一个或多个控制设备130被配置为接收用户输入。响应于所接收到的口语命令和/或用户输入,媒体回放系统100可以经由一个或多个回放设备110回放音频。在某些实施例中,回放设备110被配置为响应于触发而开始媒体内容的回放。例如,一个或多个回放设备110可以被配置为在检测到相关联的触发条件(例如,用户在厨房中的存在、检测咖啡机操作)时回放早晨的播放列表。在一些实施例中,例如,媒体回放系统100被配置为与第二回放设备(例如,回放设备100b)同步地回放来自第一回放设备(例如,回放设备100a)的音频。下面参照图1b-图1l更详细地描述根据本公开的各种实施例配置的媒体回放系统100的回放设备110、nmd120和/或控制设备130之间的交互。

在图1a所示的实施例中,环境101包括具有多个房间、空间和/或回放地区的家庭,包括(从左上方开始的顺时针方向)主浴室101a、主卧室101b、第二卧室101c、家庭房或书房101d、办公室101e、客厅101f、餐厅101g、厨房101h和室外阳台101i。尽管下文在家居环境的上下文中描述了某些实施例和示例,但是本文所述的技术可以在其他类型的环境中实现。在一些实施例中,例如,媒体回放系统100可以在一个或多个商业设置(例如,餐厅、购物中心、机场、酒店、零售店或其他商店)、一个或多个交通工具(例如,运动型多功能车、巴士、汽车、轮船、小船、飞机)、多个环境(例如,家庭和交通工具环境的组合)和/或可能需要多地区音频的其他合适环境中实现。

媒体回放系统100可以包括一个或多个回放地区,其中一些可以对应于环境101中的房间。媒体回放系统100可以建立有一个或多个回放地区,其后可以添加或移除附加地区,以形成例如图1a所示的配置。每个地区可以根据不同的房间或空间(例如,办公室101e、主浴室101a、主卧室101b、第二卧室101c、厨房101h、餐厅101g、客厅101f和/或室外阳台101i)被赋予名称。在一些方面,单个回放地区可以包括多个房间或空间。在某些方面,单个房间或空间可以包括多个回放地区。

在图1a所示的实施例中,主浴室101a、第二卧室101c、办公室101e、客厅101f、餐厅101g、厨房101h和室外阳台101i均包括一个回放设备110,并且主卧室101b和书房101d包括多个回放设备110。在主卧室101b中,回放设备110l和110m可以被配置为例如与回放设备110中的各个回放设备、绑定的回放地区、合并的回放设备和/或其任何组合同步地回放音频内容。类似地,在书房101d中,回放设备110h-110j可以被配置为例如与回放设备110中的各个回放设备、一个或多个绑定的回放设备和/或一个或多个合并的回放设备同步地回放音频内容。下面参照例如图1b和图1e以及图1i-图1m描述了关于绑定和合并的回放设备的附加细节。

在一些方面,环境101中的一个或多个回放地区均可以播放不同的音频内容。例如,用户可能正在室外阳台101i烧烤并收听由回放设备110c播放的嘻哈音乐,而另一用户正在厨房101h中准备食物并收听由回放设备110b播放的古典音乐。在另一示例中,回放地区可以与另一个回放地区同步地播放相同的音频内容。例如,用户可以正在办公室101e中收听回放设备110f播放与由室外阳台101i上的回放设备110c回放的嘻哈音乐相同的音乐。在一些方面,回放设备110c和110f同步地回放嘻哈音乐,使得用户感觉到音频内容在不同回放地区之间移动时被无缝地(或至少基本上无缝地)播放。关于回放设备和/或地区之间的音频回放同步的附加细节可以在例如题为“systemandmethodforsynchronizingoperationsamongapluralityofindependentlyclockeddigitaldataprocessingdevices”的美国专利no.8,234,395中找到,其全部内容通过引用并入本文。

a.合适的媒体回放系统

图1b是媒体回放系统100和云网络102的示意图。为了便于说明,从图1b中省略了媒体回放系统100和云网络102的某些设备。一个或多个通信链路103(以下称为“链路103”)将媒体回放系统100和云网络102通信地耦合。

链路103可以包括例如一个或多个有线网络、一个或多个无线网络、一个或多个广域网(wan)、一个或多个局域网(lan)、一个或多个个域网(pan)、一个或多个电信网络(例如,一个或多个全球移动系统(gsm)网络、码分多址(cdma)网络、长期演进(lte)网络、5g通信网络网络和/或其他合适的数据传输协议网络)等。云网络102被配置为响应于经由链路103从媒体回放系统100发送的请求,将媒体内容(例如,音频内容、视频内容、照片、社交媒体内容)传递到媒体回放系统100。在一些实施例中,云网络102还被配置为从媒体回放系统100接收数据(例如,语音输入数据),并且相应地向媒体回放系统100发送命令和/或媒体内容。

云网络102包括计算设备106(分别被识别为第一计算设备106a、第二计算设备106b和第三计算设备106c)。计算设备106可以包括各个计算机或服务器,例如,存储音频和/或其他媒体内容的媒体流服务服务器、语音服务服务器、社交媒体服务器、媒体回放系统控制服务器等。在一些实施例中,一个或多个计算设备106包括单个计算机或服务器的模块。在某些实施例中,一个或多个计算设备106包括一个或多个模块、计算机和/或服务器。此外,尽管以上在单个云网络的上下文中描述了云网络102,但是在一些实施例中,云网络102包括多个包括通信耦合的计算设备的云网络。此外,尽管在图1b中将云网络102示为具有三个计算设备106,但是在一些实施例中,云网络102包括少于(或多于)三个计算设备106。

媒体回放系统100被配置为经由链路103从网络102接收媒体内容。所接收的媒体内容可以包括例如统一资源标识符(uri)和/或统一资源定位符(url)。例如,在一些示例中,媒体回放系统100可以从与所接收到的媒体内容相对应的uri或url流传输、下载或以其他方式获得数据。网络104将链路103与媒体回放系统100的设备(例如,回放设备110、nmd120和/或控制设备130中的一个或多个)中的至少一部分通信地耦合。网络104可以包括例如无线网络(例如,wifi网络、蓝牙、z-wave网络、zigbee和/或其他合适的无线通信协议网络)和/或有线网络(例如,包括以太网、通用串行总线(usb)和/或其他合适的有线通信的网络)。如本领域普通技术人员将理解的,如本文中所使用的,“wifi”可以指代以2.4兆赫兹(ghz)、5ghz和/或其他合适的频率传输的若干种不同的通信协议,包括例如电气和电子工程师协会(ieee)802.11a、802.11b、802.11g、802.11n、802.11ac、802.11ac、802.11ad、802.11af、802.11ah、802.11ai、802.11aj、802.11aq、802.11ax、802.11ay、802.15等。

在一些实施例中,网络104包括专用通信网络,媒体回放系统100使用该专用通信网络在各个设备之间发送消息和/或向媒体内容源(例如,一个或多个计算设备106)发送媒体内容和从媒体内容源发送媒体内容。在某些实施例中,网络104被配置为仅媒体回放系统100中的设备可访问,从而减少与其他家用设备的干扰和竞争。然而,在其他实施例中,网络104包括现有的家庭通信网络(例如,家庭wifi网络)。在一些实施例中,链路103和网络104包括一个或多个相同的网络。在一些方面,例如,链路103和网络104包括电信网络(例如,lte网络、5g网络)。此外,在一些实施例中,在没有网络104的情况下实现媒体回放系统100,并且包括媒体回放系统100的设备可以例如经由一个或多个直接连接、pan、电信网络和/或其他合适的通信链路彼此通信。

在一些实施例中,可以在媒体回放系统100中定期添加音频内容源,或从中移除音频内容源。例如,在一些实施例中,当一个或多个媒体内容源被更新、添加到和/或从媒体回放系统100中移除时,媒体回放系统100对媒体项目进行索引。媒体回放系统100可以扫描回放设备110可访问的一些或所有文件夹和/或目录中的可识别媒体项目,并且产生或更新包括所找到的每个可识别媒体项目的元数据(例如,标题、艺术家、专辑、曲目长度)和其他相关联信息(例如,uri、url)的媒体内容数据库。例如,在一些实施例中,媒体内容数据库被存储在回放设备110、网络麦克风设备120和/或控制设备130中的一个或多个上。

在图1b所示的实施例中,回放设备1101和110m包括组107a。回放设备110l和110m可以基于在媒体回放系统100中的控制设备130a和/或另一控制设备130处接收到的用户输入而被临时或永久地放置在家庭中的不同房间中并在组107a中被分组在一起。当布置在组107a中时,回放设备110l和110m可以被配置为同步地从一个或多个音频内容源回放相同或相似的音频内容。在某些实施例中,例如,组107a包括绑定地区,其中,回放设备110l和110m分别包括多声道音频内容的左音频声道和右音频声道,从而产生或增强音频内容的立体声效果。在一些实施例中,组107a包括附加的回放设备110。然而,在其他实施例中,媒体回放系统100省略了回放设备110的组107a和/或其他分组的布置。下面参照图1-i至图im更详细地描述关于回放设备的组和其他布置的附加细节。

媒体回放系统100包括nmd120a和120d,每个nmd包括一个或多个被配置为从用户接收语音发声的麦克风。在图1b所示的实施例中,nmd120a是独立设备,并且nmd120d被集成到回放设备110n中。nmd120a例如被配置为从用户123接收语音输入121。在一些实施例中,nmd120a向语音助手服务(vas)发送与所接收到的语音输入121相关联的数据,该语音助手服务(vas)被配置为(i)处理所接收到的语音输入数据,并且(ii)向媒体回放系统100发送对应的命令。在一些方面,例如,计算设备106c包括vas(例如,由中的一个或多个操作的vas)的一个或多个模块和/或服务器。计算设备106c可以经由网络104和链路103从nmd120a接收语音输入数据。响应于接收到语音输入数据,计算设备106c处理语音输入数据(即,“播放披头士乐队的heyjude”),并确定处理后的语音输入包括播放歌曲(例如,“heyjude”)的命令。因此,计算设备106c向媒体回放系统100发送命令,以从一个或多个回放设备110上的合适的媒体服务(例如,经由一个或多个计算设备106)回放披头士乐队的“heyjude”。

b.合适的回放设备

图1c是包括输入/输出111的回放设备110a的框图。输入/输出111可以包括模拟i/o111a(例如,一条或多条电线、电缆和/或被配置为承载模拟信号的其他合适的通信链路)和/或数字i/o111b(例如,一条或多条电线、电缆或被配置为承载数字信号的其他合适的通信链路)。在一些实施例中,模拟i/o111a是音频线输入连接,包括例如自动检测3.5mm音频线输入连接。在一些实施例中,数字i/o111b包括索尼/飞利浦数字接口格式(s/pdif)通信接口和/或电缆和/或东芝链路(toslink)电缆。在一些实施例中,数字i/o111b包括高清晰度多媒体接口(hdmi)接口和/或电缆。在一些实施例中,数字i/o111b包括一个或多个无线通信链路,其包括例如射频(rf)、红外、wifi、蓝牙或其他合适的通信协议。在某些实施例中,模拟i/o111a和数字i/o111b包括被配置为分别接收用于发送模拟信号和数字信号的电缆的连接器的接口(例如,端口、插头、插孔),而不必包括电缆。

回放设备110a例如可以经由输入/输出111(例如,电缆、电线、pan、蓝牙连接、adhoc有线或无线通信网络、和/或其他合适的通信链路)从本地音频源105接收媒体内容(例如,包括音乐和/或其他声音的音频内容)。本地音频源105可以包括例如移动设备(例如,智能电话、平板电脑、膝上型计算机)或其他合适的音频组件(例如,电视、台式计算机、放大器、留声机、蓝光播放器、存储数字媒体文件的存储器)。在一些方面,本地音频源105包括智能电话、计算机、网络连接存储(nas)和/或被配置为存储媒体文件的其他合适的设备上的本地音乐库。在某些实施例中,回放设备110、nmd120和/或控制设备130中的一个或多个包括本地音频源105。然而,在其他实施例中,媒体回放系统完全省略了本地音频源105。在一些实施例中,回放设备110a不包括输入/输出111,并且经由网络104接收所有音频内容。

回放设备110a还包括电子设备112、用户接口113(例如,一个或多个按钮、旋钮、转盘、触敏表面、显示器、触摸屏)以及一个或多个换能器114(以下称为“换能器114”)。电子设备112被配置为经由网络104(图1b)从计算设备106a-c中的一个或多个、经由输入/输出111从音频源(例如,本地音频源105)接收音频,放大所接收的音频,并输出放大后的音频以经由一个或多个换能器114回放。在一些实施例中,回放设备110a可选地包括一个或多个麦克风115(例如,单个麦克风、多个麦克风、麦克风阵列)(以下称为“麦克风115”)。在某些实施例中,例如,具有一个或多个可选麦克风115的回放设备110a可以作为nmd来操作,该nmd被配置为从用户接收语音输入并且基于所接收到的语音输入相应地执行一个或多个操作。

在图1c所示的实施例中,电子设备112包括一个或多个处理器112a(以下称为“处理器112a”)、存储器112b、软件组件112c、网络接口112d、一个或多个音频处理组件112g(以下称为“音频组件112g”)、一个或多个音频放大器112h(以下称为“放大器112h”)和电源112i(例如,一个或多个电源、电力电缆、电源插座、电池、感应器线圈、以太网供电(poe)接口和/或其他合适的电源)。在一些实施例中,电子设备112可选地包括一个或多个其他组件112j(例如,一个或多个传感器、视频显示器、触摸屏、电池充电基座)。

处理器112a可以包括被配置为处理数据的时钟驱动的计算组件,并且存储器112b可以包括计算机可读介质(例如,有形的、非暂时性的计算机可读介质、装载有一个或多个软件组件112c的数据存储设备),该计算机可读介质被配置为存储用于执行各种操作和/或功能的指令。处理器112a被配置为执行存储在存储器112b上的指令以执行一个或多个操作。该操作可以包括例如使回放设备110a从音频源(例如,一个或多个计算设备106a-106c(图1b))和/或另一个回放设备110取回音频数据。在一些实施例中,该操作还包括使回放设备110a向另一个回放设备110a和/或其他设备(例如,nmd120之一)发送音频数据。某些实施例包括使回放设备110a与一个或多个回放设备110中的另一个配对以启用多声道音频环境(例如,立体声对、绑定地区)的操作。

处理器112a还可以被配置为执行使回放设备110a将音频内容的回放与一个或多个回放设备110中的另一个同步的操作。如本领域的普通技术人员将理解的,在多个回放设备上的音频内容的同步回放期间,收听者将优选地无法感知回放设备110a与其他一个或多个其他回放设备110的音频内容回放之间的时延差。关于回放设备之间的音频回放同步的附加细节可以在例如美国专利no.8,234,395中找到,该专利通过引用合并于此。

在一些实施例中,存储器112b还可以被配置为存储与回放设备110a相关联的数据,例如,回放设备110a是其成员的一个或多个地区和/或地区组、回放设备110a可访问的音频源、和/或回放设备110a(和/或一个或多个回放设备中的另一个)可以与之相关联的回放队列。所存储的数据可以包括一个或多个状态变量,该状态变量被周期性地更新并用于描述回放设备110a的状态。存储器112b还可以包括与媒体回放系统100的一个或多个其他设备(例如,回放设备110、nmd120、控制设备130)的状态相关联的数据。在一些方面,例如,状态数据在媒体回放系统100的至少一部分设备之间的预定时间间隔期间(例如,每5秒、每10秒、每60秒)共享,使得一个或多个设备具有与媒体回放系统100相关联的最新数据。

网络接口112d被配置为促进回放设备110a与数据网络(例如,链路103和/或网络104(图1b))上的一个或多个其他设备之间的数据传输。网络接口112d被配置为发送和接收与媒体内容(例如,音频内容、视频内容、文本、照片)和包括数字分组数据的其他信号(例如,非暂时性信号)相对应的数据,该数字分组数据包括基于互联网协议(ip)的源地址和/或基于ip的目标地址。网络接口112d可以解析数字分组数据,使得电子设备112正确地接收和处理去往回放设备110a的数据。

在图1c所示的实施例中,网络接口112d包括一个或多个无线接口112e(以下称为“无线接口112e”)。无线接口112e(例如,包括一个或多个天线的合适的接口)可以被配置为与一个或多个其他设备(例如,其他回放设备110、nmd120和/或控制设备130中的一个或多个)无线通信,该一个或多个其他设备根据适合的无线通信协议(例如,wifi、蓝牙、lte)通信地耦合到网络104(图1b)。在一些实施例中,网络接口112d可选地包括有线接口112f(例如,被配置为接收诸如以太网、usb-a、usb-c和/或thunderbolt电缆之类的网络电缆的接口或插座),该有线接口112f被配置为根据合适的有线通信协议通过与其他设备的有线连接进行通信。在某些实施例中,网络接口112d包括有线接口112f并且不包括无线接口112e。在一些实施例中,电子设备112完全排除网络接口112d,并且经由另一通信路径(例如,输入/输出111)发送和接收媒体内容和/或其他数据。

音频处理组件112g被配置为处理和/或过滤包括由电子设备112(例如,经由输入/输出111和/或网络接口112d)接收的媒体内容的数据,以产生输出音频信号。在一些实施例中,音频处理组件112g包括例如一个或多个数模转换器(dac)、音频预处理组件、音频增强组件、数字信号处理器(dsp)和/或其他合适的音频处理组件、模块、电路等。在某些实施例中,一个或多个音频处理组件112g可以包括处理器112a的一个或多个子组件。在一些实施例中,电子设备112省略了音频处理组件112g。在一些方面,例如,处理器112a执行存储在存储器112b上的指令以执行音频处理操作以产生输出音频信号。

放大器112h被配置为接收和放大由音频处理组件112g和/或处理器112a产生的音频输出信号。放大器112h可以包括被配置为将音频信号放大到足以驱动一个或多个换能器114的电平的电子设备和/或组件。在一些实施例中,例如,放大器112h包括一个或多个开关或d类功率放大器。然而,在其他实施例中,放大器包括一种或多种其他类型的功率放大器(例如,线性增益功率放大器、a类放大器、b类放大器、ab类放大器、c类放大器、d类放大器、e类放大器、f类放大器、g类和/或h类放大器和/或其他合适类型的功率放大器)。在某些实施例中,放大器112h包括两个或更多个前述类型的功率放大器的合适的组合。此外,在一些实施例中,放大器112h中的各个放大器对应于换能器114中的各个换能器。然而,在其他实施例中,电子设备112包括被配置为将放大的音频信号输出到多个换能器114的单个放大器112h。在一些其他实施例中,电子设备112省略了放大器112h。

换能器114(例如,一个或多个扬声器和/或扬声器驱动器)从放大器112h接收放大的音频信号,并且将放大的音频信号呈现或输出为声音(例如,具有大约20赫兹(hz)和20千赫兹(khz)之间的频率的可听声波)。在一些实施例中,换能器114可以包括单个换能器。然而,在其他实施例中,换能器114包括多个音频换能器。在一些实施例中,换能器114包括多于一种类型的换能器。例如,换能器114可以包括一个或多个低频换能器(例如,超低音扬声器、低音扬声器)、中频换能器(例如,中档换能器、中低音扬声器)和一个或多个高频换能器(例如,一或多个高音扬声器)。如本文中所使用的,“低频”通常可以指代低于约500hz的可听频率,“中频”通常可以指代大约500hz和大约2khz之间的可听频率,并且“高频”通常可以指代高于2khz的可听频率。然而,在某些实施例中,一个或多个换能器114包括不遵守前述频率范围的换能器。例如,换能器114之一可以包括中低音换能器,其被配置为以大约200hz和大约5khz之间的频率输出声音。

举例来说,sonos公司目前提供(或已经提供)销售某些回放设备,包括例如“sonosone”、“play:1”、“play:3”、“play:5”、“playbar”、“connect:amp”、“connect”、和“sub”。其他合适的回放设备可以附加地或备选地用于实现本文公开的示例实施例的回放设备。另外,本领域的普通技术人员将理解,回放设备不限于本文描述的示例或sonos产品供应。在一些实施例中,例如,一个或多个回放设备110包括有线或无线耳机(例如,耳边式耳机、耳上式耳机、入耳式耳机)。在其他实施例中,一个或多个回放设备110包括扩展坞和/或被配置为与用于个人移动媒体回放设备的扩展坞交互的接口。在某些实施例中,回放设备可以集成到另一设备或组件,例如,电视、照明器材或在室内或室外使用的一些其他设备。在一些实施例中,回放设备省略用户接口和/或一个或多个换能器。例如,图1d是回放设备110p的框图,该回放设备110p包括输入/输出111和电子设备112,而没有用户接口113或换能器114。

图1e是绑定的回放设备110q的框图,该绑定的回放设备110q包括与回放设备110i(例如,超低音扬声器)(图1a)超声绑定的回放设备110a(图1c)。在所示的实施例中,回放设备110a和110i是容纳在分离的外壳中的回放没备110中的分离的回放设备。然而,在一些实施例中,绑定的回放设备110q包括容纳回放设备110a和110i两者的单个外壳。绑定的回放设备110q可以被配置为与未绑定的回放设备(例如,图1c的回放设备110a)和/或成对的或绑定的回放设备(例如,图1b的回放设备1101和110m)不同地处理和再现声音。在一些实施例中,例如,回放设备110a是被配置成呈现低频、中频和高频音频内容的全范围回放设备,并且回放设备110i是被配置成呈现低频音频内容的超低音扬声器。在一些方面,当与第一回放设备绑定时,回放设备110a被配置为仅呈现特定音频内容的中频和高频分量,而回放设备110i呈现特定音频内容的低频分量。在一些实施例中,绑定的回放设备110q包括附加的回放设备和/或另一个绑定的回放设备。下面参照图2a-图3d更详细地描述附加的回放设备实施例。

c.合适的网络麦克风设备(nmd)

图1f是nmd120a(图1a和图1b)的框图。nmd120a包括一个或多个语音处理组件124(以下称为“语音组件124”)和关于回放设备110a(图1c)描述的若干个组件,包括处理器112a、存储器112b和麦克风115。nmd120a可选地包括还包括在回放设备110a(图1c)中的其他组件,例如,用户接口113和/或换能器114。在一些实施例中,nmd120a被配置为媒体回放设备(例如,一个或多个回放设备110),并且还包括例如音频处理组件112g(图1c)、换能器114和/或其他回放设备组件中的一个或多个。在某些实施例中,nmd120a包括物联网(iot)设备,例如,恒温器、警报面板、火灾和/或烟雾探测器等。在一些实施例中,nmd120a包括麦克风115、语音处理124、以及以上关于图1b描述的电子设备112的组件中的仅一部分。在一些方面,例如,nmd120a包括处理器112a和存储器112b(图1b),而省略了电子设备112的一个或多个其他组件。在一些实施例中,nmd120a包括附加组件(例如,一个或多个传感器、相机、温度计、气压计、湿度计)。

在一些实施例中,nmd可以被集成到回放设备中。图1g是包括nmd120d的回放设备110r的框图。回放设备110r可以包括回放没备110a的许多或所有组件,并且还包括麦克风115和语音处理124(图1f)。回放设备110r可选地包括集成控制设备130c。控制设备130c可以包括例如被配置为在没有分离的控制设备的情况下接收用户输入(例如,触摸输入、语音输入)的用户接口(例如,图1b的用户接口113)。然而,在其他实施例中,回放设备110r从另一个控制设备(例如,图1b的控制设备130a)接收命令。下面参照图3a-图3f更详细地描述附加的nmd实施例。

再次参考图1f,麦克风115被配置为从环境(例如,图1a的环境101)和/或nmd120a所位于的房间中获取、捕捉和/或接收声音。所接收到的声音可以包括例如语音发声、由nmd120a和/或另一个回放设备回放的音频、背景语音、环境声音等。麦克风115将所接收到的声音转换成电信号以产生麦克风数据。语音处理124接收并分析麦克风数据以确定在麦克风数据中是否存在语音输入。语音输入可以包括例如激活词,其后跟包括用户请求的发声。如本领域普通技术人员将理解的,激活词是表示用户语音输入的词或其他音频提示。例如,在查询vas时,用户可能会说出激活词“alexa”。其他示例包括用于调用vas的“ok,google”和用于调用vas的“hey,siri”。

在检测到激活词之后,语音处理124监测语音输入中伴随的用户请求的麦克风数据。用户请求可以包括例如控制第三方设备(例如,恒温器(例如,恒温器)、照明设备(例如,philips照明设备)或媒体回放设备(例如,回放设备))的命令。例如,用户可以说出激活词“alexa”,其后跟“将恒温器设置为68度”的发声,以设置家庭(例如,图1a的环境101)中的温度。用户可以说出相同的激活词,其后跟“点亮客厅”的发声,以打开家庭客厅区域中的照明设备。用户可以类似地说出激活词,其后跟在家庭中的回放设备上播放特定歌曲、专辑或音乐播放列表的请求。关于接收和处理语音输入数据的附加描述可以在下面参照图3a-图3f更详细的描述中找到。

d.合适的控制设备

图1h是控制设备130a(图1a和图1b)的局部示意图。如本文所使用的,术语“控制设备”可以与“控制器”或“控制系统”互换使用。控制设备130a尤其被配置为接收与媒体回放系统100有关的用户输入,并且作为响应,使媒体回放系统100中的一个或多个设备执行与用户输入相对应的动作或操作。在所示的实施例中,控制设备130a包括其上安装了媒体回放系统控制器应用软件的智能电话(例如,iphonetm、android电话)。在一些实施例中,控制设备130a包括例如平板电脑(例如,ipadtm)、计算机(例如,膝上型计算机、台式计算机)和/或其他合适的设备(例如,电视、汽车音响主机、iot设备)。在某些实施例中,控制设备130a包括用于媒体回放系统100的专用控制器。在其他实施例中,如以上关于图1g所描述的,控制设备130a被集成到媒体回放系统100中的另一设备中(例如,回放设备110、nmd120和/或被配置为通过网络进行通信的其他合适的设备中的一个或多个)。

控制设备130a包括电子设备132、用户接口133、一个或多个扬声器134和一个或多个麦克风135。电子设备132包括一个或多个处理器132a(以下称为“处理器132a”)、存储器132b、软件组件132c和网络接口132d。处理器132a可以被配置为执行与促进用户对媒体回放系统100进行访问、控制和配置相关的功能。存储器132b可以包括数据存储设备,其可以加载有可由处理器302执行以执行那些功能的一个或多个软件组件。软件组件132c可以包括被配置为促进对媒体回放系统100的控制的应用和/或其他可执行软件。存储器112b可以被配置为存储例如软件组件132c、媒体回放系统控制器应用软件和/或与媒体回放系统100和用户相关联的其他数据。

网络接口132d被配置为促进控制设备130a与媒体回放系统100中的一个或多个其他设备和/或一个或多个远程设备之间的网络通信。在一些实施例中,网络接口132d被配置为根据一个或多个合适的通信行业标准(例如,红外、无线电、包括ieee802.3的有线标准、包括ieee802.11a、802.11b、802.11g、802.11n、802.11ac、802.15、4g、lte的无线标准)进行操作。网络接口132d可以被配置为例如向回放设备110、nmd120、控制设备130中的其他控制设备、图1b的计算设备106之一、以及包括一个或多个其他媒体回放系统的设备等发送数据和/或从这些设备接收数据。所发送的和/或所接收的数据可以包括例如回放设备控制命令、状态变量、回放地区和/或地区组配置。例如,基于在用户接口133处接收到的用户输入,网络接口132d可以向一个或多个回放设备发送来自控制设备304的回放设备控制命令(例如,音量控制、音频回放控制、音频内容选择)。网络接口132d也可以发送和/或接收配置更改,例如,将一个或多个回放设备添加到地区/从地区中删除;将一个或多个地区添加到地区组/从地区组中删除;形成绑定或合并的播放器;从绑定或合并的播放器分离一个或多个回放设备等。可以在下面参照图1-i至图1m找到地区和组的附加描述。

用户接口133被配置为接收用户输入并且可以促进对媒体回放系统100的控制。用户接口133包括媒体内容艺术133a(例如,专辑封面、歌词、视频)、回放状态指示符133b(例如,流逝和/或剩余时间指示符)、媒体内容信息区133c、回放控制区133d和地区指示符133e。媒体内容信息区133c可以包括对关于当前正在播放的媒体内容和/或队列或播放列表中的媒体内容的相关信息(例如,标题、艺术家、专辑、流派、发行年份)的显示。回放控制区133d可以包括可选择(例如,经由触摸输入和/或经由光标或其他合适的选择器)图标,以使所选择的回放地区或地区组中的一个或多个回放设备执行回放动作,例如,播放或暂停、快进、快退、跳到下一个、跳到前一个、进入/退出随机播放模式、进入/退出重复模式、进入/退出交叉淡入淡出模式等。回放控制区133d还可以包括用于修改均衡设置、回放音量和/或其他合适的回放动作的可选择图标。在所示的实施例中,用户接口133包括呈现在智能电话(例如,iphonetm、android电话)的触摸屏界面上的显示。然而,在一些实施例中,可以备选地在一个或多个网络设备上实现变化的格式、样式和交互序列的其他用户接口,以提供对媒体回放系统的类似的控制访问。

一个或多个扬声器134(例如,一个或多个换能器)可以被配置为向控制设备130a的用户输出声音。在一些实施例中,一个或多个扬声器包括各个换能器,各个换能器被配置为相应地输出低频、中频和/或高频。在一些方面,例如,控制设备130a被配置为回放设备(例如,回放设备110之一)。类似地,在一些实施例中,控制设备130a被配置为nmd(例如,nmd120之一),其经由一个或多个麦克风135接收语音命令和其他声音。

一个或多个麦克风135可以包括例如一个或多个电容式麦克风、驻极体电容式麦克风、动态麦克风和/或其他合适类型的麦克风或换能器。在一些实施例中,两个或更多个麦克风135可以被布置为捕捉音频源(例如,语音、可听声音)的位置信息和/或被配置为促进对背景噪声的过滤。此外,在某些实施例中,控制设备130a被配置为用作回放设备和nmd。然而,在其他实施例中,控制设备130a省略了一个或多个扬声器134和/或一个或多个麦克风135。例如,控制设备130a可以包括设备(例如,恒温器、iot设备、网络设备),该设备包括电子设备132的一部分和用户接口133(例如,触摸屏),而没有任何扬声器或麦克风。下面参照图4a-图4d和图5更详细地描述附加的控制设备实施例。

e.合适的回放设备配置

图1-l至图1m示出了地区和地区组中的回放设备的示例配置。首先参考图1m,在一个示例中,单个回放设备可以属于一个地区。例如,第二卧室101c(图1a)中的回放设备110g可以属于c地区。在以下所述的一些实施方式中,多个回放设备可以被“绑定”以形成“绑定对”,它们一起形成单个地区。例如,回放设备1101(例如,左侧回放设备)可以被绑定到回放设备1101(例如,左侧回放设备)以形成a地区。绑定的回放设备可以具有不同的回放职责(例如,声道职责)。在以下所述的另一实施方式中,多个回放设备可以被合并以形成单个地区。例如,回放设备110h(例如,前置回放设备)可以与回放设备110i(例如,低音炮)以及回放设备110j和110k(例如,分别为左环绕扬声器和右环绕扬声器)合并以形成单个d地区。在另一示例中,回放设备110g和110h可以被合并以形成合并组或地区组108b。合并的回放设备110g和110h可以不被具体地分配不同的回放职责。即,合并的回放设备110h和110i除了同步播放音频内容之外,还可以如它们未合并时那样均播放音频内容。

媒体回放系统100中的每个地区可以作为单个用户界面(ui)实体被提供以进行控制。例如,a地区可以作为名为主浴室的单个实体提供。b地区可以作为名为主卧室的单个实体提供。c地区可以作为名为第二卧室的单个实体提供。

绑定的回放设备可以具有不同的回放职责,例如,某些音频声道的职责。例如,如图1-i所示,回放设备110l和110m可以被绑定,以便产生或增强音频内容的立体声效果。在该示例中,回放设备1101可以被配置为播放左声道音频分量,而回放设备110k可以被配置为播放右声道音频分量。在一些实施方式中,这种立体声绑定可以被称为“配对”。

另外,绑定的回放设备可以具有附加的和/或不同的相应扬声器驱动器。如图1j所示,可以将名为前置(front)的回放设备110h与名为低音炮(sub)的回放设备110i绑定。前置设备110h可以被配置为呈现中高频范围,并且低音炮设备110i可以被配置为呈现低频。然而,当未绑定时,前置设备110h可以被配置为呈现整个频率范围。作为另一示例,图1k示出了前置设备110h和低音炮设备110i分别进一步与左侧回放设备110j和右侧回放设备110k绑定。在一些实施方式中,左侧设备110j和右侧设备102k可以被配置为形成家庭影院系统的环绕或“卫星”声道。绑定的回放设备110h、110i、110j和110k可以形成单个d地区(图1m)。

合并的回放设备可以没有分配回放职责,并且均可以呈现相应回放设备能够回放的音频内容的全部范围。然而,合并的设备可以被表示为单个ui实体(即,如上所述的地区)。例如,主浴室中的回放设备110a和110n具有a地区的单个ui实体。在一个实施例中,回放设备110a和110n均可以输出每个相应的回放设备110a和110n能够同步回放的音频内容的全部范围。

在一些实施例中,nmd可以与另一设备绑定或合并,以形成地区。例如,可以将nmd120b与回放设备110e绑定,两者一起形成f地区,该f地区被命名为“客厅”。在一些实施例中,独立网络麦克风设备本身可以在一个地区中。然而,在其他实施例中,独立网络麦克风设备可以不与地区相关联。例如,在先前引用的美国专利申请no.15/438,749中可以找到关于将网络麦克风设备和回放设备关联为指定设备或默认设备的附加细节。

可以将单个、绑定和/或合并的设备的地区分在一组,以形成地区组。例如,参考图1m,a地区可以与b地区分在一组,以形成包括该两个地区的地区组。类似地,g地区可以与h地区分在一组,以形成地区组108b。作为另一示例,a地区可以与一个或多个其他地区c-i分在一组。a-i地区可以以多种方式进行分组和取消分组。例如,可以将三个、四个、五个或更多个(例如,全部)a-i地区分在一组。如先前参考的美国专利no.8,234,395中所述,当被分在一组时,单个和/或绑定的回放设备的地区可以彼此同步地回放音频。回放设备可以动态分组和取消分组,以形成同步回放音频内容的新的或不同的组。

在各种实施方式中,环境中的地区可以是组内地区的默认名称,或者是地区组内的地区名称的组合。例如,地区组108b可以被分配一个名称,例如“餐厅+厨房”,如图1m所示。在一些实施例中,还可以将地区组命名为由用户选择的唯一名称。

某些数据可以作为一个或多个状态变量存储在回放设备的存储器(例如,图1c的存储器112b)中,该一个或多个状态变量被周期性地更新并用于描述回放地区、回放设备和/或与其相关联的地区组的状态。存储器还可以包括与媒体系统的其他设备的状态相关联的数据,并且间或地在设备之间共享,使得设备中的一个或多个具有与系统相关联的最新数据。

在一些实施例中,存储器可以存储与状态相关联的各种变量类型的实例。变量实例可以与对应于类型的标识符(例如,标签)一起存储。例如,某些标识符可以是用于识别地区的回放设备的第一类型“a1”、用于识别可以绑定在该地区中的回放没备的第二类型“b1”和用于识别该地区可能所属的地区组的第三类型“c1”。作为相关示例,与第二卧室101c相关联的标识符可以指示回放设备是c地区的唯一回放设备,而不是地区组中的回放设备。与书房(den)相关联的标识符可以指示该书房没有与其他地区分在一组,而是包括绑定的回放设备110h-110k。与餐厅相关联的标识符可以指示该餐厅是餐厅+厨房地区组108b的一部分,并且设备110b和110d被分在一组(图1l)。由于厨房是餐厅+厨房地区组108b的一部分,因此与该厨房相关联的标识符可以指示相同或相似的信息。其他示例地区变量和标识符如下所述。

在又一示例中,媒体回放系统100可以存储表示地区和地区组的其他关联的变量或标识符,例如,与区域相关联的标识符,如图1m所示。区域可以涉及地区组的集群和/或不在地区组内的地区的集群。例如,图1m示出了包括a-d地区的上部区域109a,以及包括e-i地区的下部区域109b。在一个方面,区域可以用于调用地区组和/或地区的集群,其共享另一集群的一个或多个地区和/或地区组。在另一方面,这不同于地区组,地区组不与另一地区组共享地区。用于实现区域的技术的其他示例可以在例如2017年8月21日提交的题为“roomassociationbasedonname”的美国申请no.15/682,506和2007年9月11日提交的题为“controllingandmanipulatinggroupingsinamulti-zonemediasystem”的美国专利no.8,483,853中找到。这些申请中的每一个通过引用整体并入本文。在一些实施例中,媒体回放系统100可以不实现区域,在这种情况下,系统可以不存储与区域相关联的变量。

iii.示例系统和设备

图2a是根据所公开的技术的各方面配置的回放设备210的前等距视图。图2b是没有格栅216e的回放设备210的前等距视图。图2c是回放设备210的分解图。一起参照图2a-图2c,回放设备210包括壳体216,该壳体216包括上部216a、右侧或第一侧部216b、下部216c、左侧或第二侧部216d、格栅216e和后部216f。多个紧固件216g(例如,一个或多个螺钉、铆钉、夹子)将框架216h附接到壳体216。壳体216中的腔体216j(图2c)被配置为接收框架216h和电子设备212。框架216h被配置为承载多个换能器214(在图2b中分别识别为换能器214a-214f)。电子设备212(例如,图1c的电子设备112)被配置为从音频源接收音频内容,并向换能器214发送与音频内容相对应的电信号以进行回放。

换能器214被配置为从电子设备112接收电信号,并且还被配置为在回放期间将所接收到的电信号转换为可听声音。例如,换能器214a-214c(例如,高音扬声器)可以被配置为输出高频声音(例如,具有大于大约2khz的频率的声波)。换能器214d-214f(例如,中低音扬声器、低音扬声器、中音扬声器)可以被配置为以低于换能器214a-214c的频率的频率输出声音(例如,具有低于大约2khz的频率的声波)。在一些实施例中,回放设备210包括与图2a-图2c所示的换能器不同的多个换能器。例如,如下面参照图3a-3c进一步详细描述的,回放设备210可以包括少于六个换能器(例如,一个、两个、三个)。然而,在其他实施例中,回放设备210包括多于六个换能器(例如,九个、十个)。此外,在一些实施例中,换能器214的全部或一部分被配置为作为相控阵来操作,以期望地调整(例如,变窄或变宽)换能器214的辐射图,从而改变用户对从回放设备210发出的声音的感知。

在图2a-图2c的所示实施例中,滤波器216i与换能器214b轴向对准。滤波器216i可以被配置为期望地衰减换能器214b输出的预定频率范围,以改善声音质量和换能器214共同输出的感知声级。然而,在一些实施例中,回放设备210省略了滤波器216i。在其他实施例中,回放设备210包括与换能器214b和/或换能器214中的至少另一个对准的一个或多个附加滤波器。

图3a和图3b分别是根据所公开的技术的实施例配置的nmd320的前等距侧视图和右等距侧视图。图3c是nmd320的分解图。图3d是图3b的一部分的放大图,包括nmd320的用户接口313。首先参照图3a-图3c,nmd320包括壳体316,该壳体316包括上部316a、下部316b和中间部分316c(例如,格栅)。上部316a中的多个端口、洞或孔316d允许声音传递到位于壳体316内的一个或多个麦克风315(图3c)。一个或多个麦克风316被配置为经由孔316d接收声音,并基于所接收到的声音产生电信号。在所示实施例中,壳体316的框架316e(图3c)围绕腔体316f和316g,该腔体316f和316g被配置为分别容纳第一换能器314a(例如,高音扬声器)和第二换能器314b(例如,中低音扬声器、中音扬声器、低音扬声器)。然而,在其他实施例中,nmd320包括单个换能器,或者两个以上(例如,两个、五个、六个)换能器。在某些实施例中,nmd320完全省略了换能器314a和314b。

电子设备312(图3c)包括被配置为驱动换能器314a和314b并进一步被配置为分析与一个或多个麦克风315产生的电信号相对应的音频数据的组件。例如,在一些实施例中,电子设备312包括以上参照图1c描述的电子设备112的许多或所有组件。在某些实施例中,电子设备312包括以上参照图1f描述的组件,例如,一个或多个处理器112a、存储器112b、软件组件112c、网络接口112d等。在一些实施例中,电子设备312包括附加的合适的组件(例如,接近传感器或其他传感器)。

参照图3d,用户接口313包括多个控制表面(例如,按钮、旋钮、电容性表面),该控制表面包括第一控制表面313a(例如,先前的控件)、第二控制表面313b(例如,下一个控件)和第三控制表面313c(例如,播放和/或暂停控制)。第四控制表面313d被配置为接收与一个或多个麦克风315的激活和停用相对应的触摸输入。第一指示器313e(例如,一个或多个发光二极管(led)或另一种合适的照明器)可以被配置为仅在一个或多个麦克风315被激活时才照明。第二指示器313f(例如,一个或多个led)可以被配置为在正常操作期间保持稳定,并且闪烁或以其他方式从稳定改变为指示对语音活动的检测。在一些实施例中,用户接口313包括附加的或更少的控制表面和照明器。在一个实施例中,例如,用户接口313包括第一指示器313e,省略了第二指示器313f。此外,在某些实施例中,nmd320包括回放没备和控制设备,并且用户接口313包括控制没备的用户接口。

一起参照图3a-图3d,nmd320被配置为经由一个或多个麦克风315从一个或多个相邻用户接收语音命令。如以上参照图1b所描述的,一个或多个麦克风315可以获取、捕捉或记录附近(例如,在nmd320的10m或更小范围内的区域)的声音,并且向电子设备312发送与所记录的声音相对应的电信号。电子设备312可以处理电信号,并且可以分析所得的音频数据以确定存在一个或多个语音命令(例如,一个或多个激活词)。在一些实施例中,例如,在检测到一个或多个合适的语音命令之后,nmd320被配置为向另一设备和/或远程服务器(例如,图1b的一个或多个计算设备106)发送所记录的音频数据的一部分以进行进一步分析。远程服务器可以分析音频数据,基于语音命令确定适当的动作,并向nmd320发送消息以执行适当的动作。例如,用户可以说“sonos,播放michaeljackson”。nmd320可以经由一个或多个麦克风315记录用户的语音发声,确定语音命令的存在,并且向远程服务器(例如,图1b的一个或多个远程计算设备106,vas和/或另一种合适的服务的一个或多个服务器)发送具有语音命令的音频数据。远程服务器可以分析音频数据并确定与命令相对应的动作。然后,远程服务器可以向nmd320发送命令以执行所确定的动作(例如,回放与michaeljackson有关的音频内容)。nmd320可以接收命令并从媒体内容源回放与michaeljackson相关的音频内容。如以上参照图1b所述,合适的内容源可以包括经由lan(例如,图1b的网络104)、远程服务器(例如,图1b的一个或多个远程计算设备106)等通信地耦合到nmd320的设备或存储设备。然而,在某些实施例中,nmd320确定和/或执行与一个或多个语音命令相对应的一个或多个动作,而无需外部设备、计算机或服务器的干预或介入。

图3e是示出了根据本公开的各方面的nmd320的附加特征的功能框图。nmd320包括被配置为促进语音命令捕捉的组件,包括:语音活动检测器组件312k、波束成形器组件3121、回声消除(aec)和/或自声音抑制组件312m、激活词检测器组件312n和语音/话音转换组件312o(例如,语音到文本和文本到语音)。在图3e所示的实施例中,前述组件312k-312o被示出为分离的组件。然而,在一些实施例中,一个或多个组件312k-312o是处理器112a的子组件。

波束成形和自声音抑制组件3121和312m被配置为检测音频信号并确定所检测到的音频信号中表示的语音输入的各个方面,例如,方向、幅度、频谱等。语音活动检测器活动组件312k与波束成形和aec组件3121和312m可操作地耦合,并且被配置为确定在所检测到的音频信号中很可能已经发生语音活动的一个或多个方向。可以通过监视将语音与其他声音区分开的度量来识别潜在的语音方向。这种度量可以包括例如相对于背景噪声的语音频带内的能量和该语音频带内的熵(其是频谱结构的测量)。如本领域普通技术人员将理解的,语音通常具有比大多数常见背景噪声更低的熵。

激活词检测器组件312n被配置为监视和分析所接收到的音频以确定在所接收到的音频中是否存在任何激活词(例如,唤醒词)。激活词检测器组件312n可以使用激活词检测算法来分析所接收到的音频。如果激活词检测器312n检测到激活词,则nmd320可以处理所接收到的音频中包含的语音输入。示例激活词检测算法接受音频作为输入,并且提供在该音频中是否存在激活词的指示。许多第一方和第三方激活词检测算法是已知的并且可商购的。例如,语音服务的运营商可以使其算法可用于第三方设备。备选地,可以训练算法以检测某些激活词。在一些实施例中,激活词检测器312n在接收到音频同时(或基本同时)运行多个激活词检测算法。如上所述,不同的语音服务(例如,amazon的apple的或microsoft的)均可以使用不同的激活词来调用它们各自的语音服务。为了支持多种服务,激活词检测器312n可以针对每个支持的语音服务通过激活词检测算法并行地运行接收到的音频。

语音/文本转换组件312o可以通过将语音输入中的语音转换为文本来促进处理。在一些实施例中,电子设备312可以包括针对与家庭相关联的特定用户或特定用户集合训练的语音识别软件。这样的语音识别软件可以实现被调谐到特定语音简档的语音处理算法。调谐到特定的语音简档可以需要比传统语音激活服务更少的计算密集型算法,传统语音激活服务通常从广泛的用户基础和不针对媒体回放系统的各种请求中进行采样。

图3f是根据本公开的各方面的由nmd320捕捉的示例语音输入328的示意图。语音输入328可以包括激活词部分328a和语音发声部分328b。在一些实施例中,激活词557a可以是已知的激活词,例如,与amazon的相关联的“alexa”。然而,在其他实施例中,语音输入328可以不包括激活词。在一些实施例中,网络麦克风设备可以在检测到激活词部分328a时输出听觉和/或视觉响应。附加地或备选地,nmb可以在处理语音输入和/或一系列语音输入之后输出听觉和/或视觉响应。

语音发声部分328b可以包括:例如,一个或多个口头命令(分别被识别为第一命令328c和第二命令328e)和一个或多个口头关键词(分别被识别为第一关键词328d和第二关键词328f)。在一个示例中,第一命令328c可以是播放音乐的命令,例如,特定的歌曲、专辑、播放列表等。在该示例中,关键词可以是识别要在其中播放音乐的一个或多个区(例如,图1a中所示的客厅和餐厅)的一个或多个单词。在一些示例中,语音发声部分328b可以包括其他信息,例如,所检测到的用户说出的单词之间的停顿(例如,非语音的时间段),如图3f所示。该停顿可以在语音发声部分328b内标定用户说出的分开的命令、关键词或其他信息的位置。

在一些实施例中,媒体回放系统100被配置为在检测到激活词部分557a的同时临时减小其正在播放的音频内容的音量。媒体回放系统100可以在处理语音输入328之后恢复音量,如图3f所示。这样的过程可以被称为回避(ducking),其示例在通过引用整体并入本文的美国专利申请no.15/438,749中公开。

图4a-图4d是控制设备430(例如,图1h的控制设备130a、智能电话、平板电脑、专用控制设备、iot设备和/或另一种合适的设备)的示意图,示出了在各种操作状态下的相应的用户界面显示。第一用户界面显示431a(图4a)包括显示名称433a(即“房间”)。所选组区433b显示在所选组和/或地区中回放的音频内容的音频内容信息(例如,艺术家姓名、曲目名称、专辑封面)。组区433c和433d显示相应的组和/或地区名称,以及在相应组或地区的回放队列中回放的或下一个回放的音频内容的音频内容信息。音频内容区433e包括与所选组和/或地区(即,所选组区433b中指示的组和/或地区)中的音频内容有关的信息。下部显示区433f被配置为接收触摸输入以显示一个或多个其他用户界面显示。例如,如果用户在下部显示区433f中选择“浏览”,则控制设备430可以被配置为输出第二用户界面显示431b(图4b),该第二用户界面显示431b包括多个音乐服务433g(例如,spotify、tunein电台、apple音乐、pandora、amazon、tv、本地音乐、线路输入),用户可以通过这些音乐服务浏览媒体内容,并且用户可以经由一个或多个回放设备(例如,图1a的回放设备110之一)从这些音乐服务中选择媒体内容以进行回放。备选地,如果用户在下部显示区433f中选择“我的sonos”,则控制设备430可以被配置为输出第三用户界面显示431c(图4c)。第一媒体内容区433h可以包括与各个专辑、电台或播放列表相对应的图形表示(例如,专辑封面)。第二媒体内容区433i可以包括与各个歌曲、曲目或其他媒体内容相对应的图形表示(例如,专辑封面)。如果用户选择图形表示433i(图4c),则控制设备430可以被配置为开始回放与图形表示433j相对应的音频内容,并输出第四用户界面显示431d,第四用户界面显示431d包括图形表示433j的放大版本、媒体内容信息433k(例如,曲目名称、艺术家、专辑)、传输控件433m(例如,播放、上一个、下一个、暂停、音量)以及对当前所选组和/或地区名称的指示433n。

图5是控制设备530(例如,膝上型计算机、台式计算机)的示意图。控制设备530包括换能器534、麦克风535和相机536。用户界面531包括传输控制区533a、回放状态区533b、回放地区区533c、回放队列区533d和媒体内容源区533e。传输控制区包括一个或多个用于控制媒体回放的控件,该控件包括例如音量、上一个、播放/暂停、下一个、重复、随机播放、曲目位置、淡入淡出、均衡等。音频内容源区533e包括一个或多个媒体内容源的列表,用户可以从该列表中选择媒体项目以用于回放和/或添加到回放队列。

回放地区区420可以包括媒体回放系统100内的回放地区的表示(图1a和图1b)。在一些实施例中,回放地区的图形表示可以是可选择的,以调出附加的可选择图标来管理或配置媒体回放系统中的回放地区,例如,绑定地区的创建、地区组的创建、地区组的分离、地区组的重命名等。在所示的实施例中,可以在回放地区的每个图形表示内提供“分组”图标。在特定地区的图形表示内提供的“分组”图标可以是可选择的,以调出用于选择要与特定地区分在一组的媒体回放系统中的一个或多个其他地区的选项。一旦被分组,已经与特定地区分在一组的地区中的回放设备可以被配置为与该特定地区中的回放设备同步地播放音频内容。类似地,可以在地区组的图形表示内提供“分组”图标。在所示实施例中,“分组”图标可以是可选择的,以调出用于取消选择要从地区组中移除的该地区组中的一个或多个地区的选项。在一些实施例中,控制设备530包括用于经由用户界面531对地区进行分组和取消分组的其他交互作用和实现。在某些实施例中,当回放地区或地区组配置被修改时,可以动态地更新回放地区在回放地区区533b中的表示。

回放状态区533c包括在所选择的回放地区或地区组中当前正在播放、先前播放或被安排为接下来播放的音频内容的图形表示。可以在用户界面上(例如,在回放地区区533b和/或回放队列区533d内)可视地区分所选择的回放地区或地区组。图形表示可以包括曲目名称、艺术家姓名、专辑名称、专辑年份、曲目长度和其他相关信息,当用户经由用户界面531控制媒体回放系统时,用户了解这些信息可以是有用的。

回放队列区533d可以包括与所选择的回放地区或地区组相关联的回放队列中的音频内容的图形表示。在一些实施例中,每个回放地区或地区组可以与回放队列相关联,该回放队列包含与该回放地区或地区组回放的零个或多个音频项相对应的信息。例如,回放队列中的每个音频项可以包括统一资源标识符(uri)、统一资源定位符(url)或一些其他标识符,其可以由回放地区或地区组中的回放设备用于从本地音频内容源或联网音频内容源查找和/或取回音频项,能够供回放没备回放。在一些实施例中,例如,可以将播放列表添加到回放队列,在这种情况下,可以将与播放列表中的每个音频项对应的信息添加到回放队列。在一些实施例中,回放队列中的音频项可以被保存为播放列表。在某些实施例中,当回放地区或地区组正在持续播放流传输音频内容(例如,互联网收音机,其可以持续播放直到被停止),而不是具有回放持续时间的分立音频项时,回放队列可以为空的或被填充但“未使用”。在一些实施例中,回放队列可以包括互联网收音机和/或其他流传输音频内容项,并且当回放地区或地区组正在播放这些项时处于“使用中”。

当回放地区或地区组被“分组”或“取消分组”时,可以清除与受影响的回放地区或地区组相关联的回放队列,或者重新关联。例如,如果包括第一回放队列的第一回放地区与包括第二回放队列的第二回放地区被分在一组,则所建立的地区组可以具有相关联的回放队列(其最初是空的),包含来自第一回放队列的音频项(例如,如果第二回放地区被添加到第一回放地区),或包含来自第二回放队列的音频项(例如,如果第一回放地区被添加到第二回放地区),或包含来自第一回放队列和第二回放队列二者的音频项的组合。随后,如果所建立的地区组被取消分组,则所得到的第一回放地区可以与先前的第一回放队列重新关联,或者与新的回放队列相关联,该新的回放队列是空的,或者包含与来自在所建立的地区组被取消分组之前所建立的地区组相关联的回放队列的音频项。类似地,所得到的第二回放地区可以与先前的第二回放队列重新关联,或者与新的回放队列相关联,该新的回放队列是空的,或者包含来自在与所建立的地区组被取消分组之前所建立的地区组相关联的回放队列的音频项。

图6是示出了媒体回放系统100(图1a-图1m)的设备之间的数据交换的消息流程图。

在步骤650a处,媒体回放系统100经由控制设备130a接收对所选媒体内容(例如,一个或多个歌曲、专辑、播放列表、播客、视频、电台)的指示。所选媒体内容可以包括例如本地存储在连接到媒体回放系统的一个或多个设备(例如,图1c的音频源105)上的媒体项目和/或存储在一个或多个媒体服务服务器(图1b的一个或多个远程计算设备106)上的媒体项目。响应于接收到对所选媒体内容的指示,控制设备130a向回放设备110a发送消息651a(图1a-1c),以将所选媒体内容添加到回放设备110a上的回放队列。

在步骤650b处,回放设备110a接收消息651a,并将所选媒体内容添加到回放队列以进行回放。

在步骤650c处,控制设备130a接收与回放所选媒体内容的命令相对应的输入。响应于接收到与回放所选媒体内容的命令相对应的输入,控制设备130a向回放设备110a发送消息651b,使回放设备110a回放所选媒体内容。响应于接收到消息651b,回放设备110a向第一计算设备106a发送消息651c,以请求所选媒体内容。响应于接收到消息651c,第一计算设备106a发送消息651d,该消息651d包括与所请求的媒体内容相对应的数据(例如,音频数据、视频数据、url、uri)。

在步骤650d处,回放设备110a接收具有与所请求的媒体内容相对应的数据的消息651d,并回放相关联的媒体内容。

在步骤650e处,回放设备110a可选地使一个或多个其他设备回放所选媒体内容。在一个示例中,回放设备110a是两个或更多个播放器的绑定地区之一(图1m)。回放设备110a可以接收所选媒体内容,并向绑定地区中的其他设备发送媒体内容的全部或一部分。在另一示例中,回放设备110a是组的协调器,并且被配置为从组中的一个或多个其他设备发送和接收定时信息。组中的其他一个或多个设备可以从第一计算设备106a接收所选媒体内容,并响应于来自回放设备110a的消息开始回放所选媒体内容,使得组中的所有设备同步回放所选媒体内容。

iv.示例实施例的概述

如上所述,期望回放设备播放来自许多不同源(例如,音频流传输服务、视频流传输服务、音频或视频源、语音助手服务(vas)门铃、对讲机、电话和其他源)的音频内容。有时期望同时播放来自多个源的音频内容。例如,在播放音乐或播放与电视节目或其他视频内容相关联的音频时,在一些情况下,可能期望回放设备还播放门铃提示音或提供语音(或其他音频)响应或确认。

例如,假设以下场景,其中:(i)用户正在观看电视节目、电影或其他视频内容,以及(ii)回放设备正在播放与该视频内容相关联的音频内容。在回放设备播放与视频内容相关联的音频内容时,访客或送货人员激活用户的联网门铃(例如,nest或类似的门铃或对讲系统)。响应于门铃的激活,并且在继续播放与视频内容相关联的音频内容时,回放设备回避(降低音量)与视频内容相关联的音频内容,并且回放设备播放来自门铃的音频,从而提醒用户门铃激活。并且对于具有双向对讲或话音功能的门铃系统,带有麦克风的回放设备可以附加地使用户经由配备麦克风的回放设备和门铃之间的双向通信链路与访客或送货人员进行交谈,同时回放设备继续播放与视频内容相关联的音频内容,尽管可能以较低的(或回避的)音量级播放与视频内容相关联的音频内容。

尽管单个常规回放设备可以能够播放来自第二音频源(例如,门铃/对讲机或与其相关联的计算设备/系统)的第二音频内容(例如,与门铃/对讲机相关联的音频),同时仍可以播放来自第一音频源(例如,电视或与电视相关联或提供音频/视频内容以用于回放的计算设备/系统)的第一音频内容(例如,与视频内容相关联的音频),当两个或更多个联网回放设备的集合(或组)需要彼此同步地播放第二音频(例如,与门铃/对讲机相关联的音频),同时两个或更多个联网的回放设备的集合还彼此同步地播放第一音频(例如,与视频内容关联的音频)时,会出现技术问题。

例如,如本文描述的一些实施例,在多个回放设备和/或音频源中的一个或多个以不同的时钟速率计时的场景中,由多个回放设备播放来自多个音频源的多个音频流提出了技术挑战。在系统中尤其如此,其中,如本文描述的一些实施例,(i)多个音频源和回放设备经由异步数据网络(例如,以太网、wifi或其他异步网络)连接,其中,音频内容的分组以不确定的延迟通过lan或wan,和/或(ii)多个音频源和回放设备未同步到集中的、专用的主时钟,该主时钟使所有设备都能在集中的、专用的主时钟的时间、相位和/或频率的控制下或以其他方式与之同步地同时,精确地执行回放功能。

当组中的不同回放设备从不同的音频源获取不同的音频内容以由该组彼此同步地回放时,该问题进一步复杂化。例如,如果第一回放设备尝试根据第一回放设备的定时来播放其获取并向第二回放设备提供的第一音频内容,并且还尝试根据第二回放设备的定时来播放从第二回放设备接收到的第二音频内容,第一回放设备和第二回放设备可以创建定时参考循环,其中,两个回放设备都无法可靠地同步播放两个分离的音频内容流中的任何一个。更大的回放设备组和从附加音频源获取的附加音频内容使问题进一步复杂化。

本文公开和描述的系统和方法克服了当回放设备组从不同的音频源获得不同的音频内容以由该组中的回放设备同时地同步回放时可能出现的这些和其他技术问题。

所公开的技术方案的一个方面涉及获取音频内容的不同回放设备如何针对它们各自所获取的音频内容生成回放定时,然后将该回放定时与音频内容一起发送到组中的其他回放设备,以用于由组中的回放设备同步地回放。

所公开的技术方案的另一方面涉及在与组中的其他回放设备同步地播放音频内容之前,组中的回放设备如何基于时钟定时信息来调整从回放设备接收到的回放定时。在一些实施例中,第一回放设备基于其自身的时钟定时信息和从另一个回放设备(例如,第二回放设备或第三回放设备)接收到的时钟定时信息来调整从第二回放设备接收到的回放定时。

所公开的技术方案的另一方面基于将回放定时的生成与时钟定时的生成解耦合,以允许例如获取音频内容的回放设备(即“源”回放设备)基于从另一个回放设备接收到的时钟定时来生成用于该音频内容的回放定时。从回放定时的生成与时钟定时的生成解耦合而产生的相关方面基于回放设备如何能够使用来自不同回放设备的回放定时和时钟定时来同步地播放音频内容。

所公开的技术方案的另一方面基于使任何回放设备(或网络中的其他设备)能够提供时钟定时,以由回放设备用来生成回放定时和/或基于回放定时同步地播放音频内容。在一些实施例中,网络中的任何设备(例如,回放设备或其他计算设备)可以提供用于同步回放会话的时钟定时,并且网络中提供时钟定时的设备可以随时间而变化。

本文公开的技术方案的这些和其他方面使回放设备组能够同步地播放从该组中的多个回放设备(以及从该组中的任何回放设备)获取的音频内容,即使这些回放设备和音频源具有不同的时钟时间和/或以略不同的时钟速率运行。

vi.技术特征

在一些实施例中,技术方案的至少一些方面源自音频信息的技术结构和组织、回放定时以及回放设备用于彼此同步地播放来自音频源的音频内容的时钟定时信息,包括:不同的回放设备如何基于时钟定时(本地时钟定时或远程时钟定时)生成回放定时,以及如何基于(本地生成或远程生成的)回放定时和(本地生成或远程生成的)时钟定时播放音频内容。

因此,为了帮助理解所公开的技术方案的某些方面,下面描述了音频信息、回放定时和时钟定时信息的某些技术细节,以及回放设备在不同配置下如何生成和/或使用回放定时和时钟定时来播放音频内容。除非另有说明,否则下面描述的音频信息、回放定时和时钟定时信息的技术细节对于参照图7、图8、图9、图10、图11a、图11b、图12和图13所示和所述的示例相同或至少基本相同。

a.音频内容

音频内容可以是现在已知或以后开发的任何类型的音频内容。例如,在一些实施例中,音频内容包括以下各项中的任一项或多项:(i)从流媒体服务(例如,spotify、pandora或其他流媒体服务)获得的流传输音乐或其他音频;(ii)来自本地音乐库(例如,存储在用户的便携式计算机、台式计算机、智能手机、平板电脑、家庭服务器或现在已知或以后开发的其他计算没备上的音乐库)的流传输音乐或其他音频;(iii)与视频内容相关联的音频内容,例如,与从电视、机顶盒、数字视频录像机、数字视频光盘播放器、流传输视频服务或现在已知或以后开发的视听媒体内容的任何其他源接收到的电视节目或电影相关联的音频;(iv)来自语音助手服务(vas)(例如,amazonalexa或现在已知或以后开发的其他vas服务)的文本到话音或其他可听内容;(v)来自门铃或对讲系统(例如,nest、ring或现在已知或以后开发的其他门铃或对讲系统)的音频内容;和/或(vi)来自电话、视频电话、视频/电话会议系统或被配置为允许用户经由音频和/或视频彼此通信的其他应用的音频内容。

在操作中,“源”回放设备经由回放设备上的接口(例如,源回放设备的网络接口之一、“线路输入”模拟接口、数字音频接口、或任何其他适合于以现在已知或以后开发的数字或模拟格式接收音频内容的接口)从音频源获得任何上述类型的音频内容。

音频源是生成、提供或以其他方式使任何前述音频内容对回放设备可用的任何系统、设备或应用。例如,在一些实施例中,音频源包括流媒体(音频、视频)服务、数字媒体服务器或其他计算系统、vas服务、电视、有线机顶盒、流媒体播放器(例如,appletv、roku、游戏机)、cd/dvd播放器、门铃、对讲机、电话、平板电脑或任何其他数字音频内容源中的任何一个或多个。

从音频源接收音频内容或以其他方式从音频源获得音频内容以进行回放和/或分发到其他回放设备的回放设备在本文中有时被称为“源”回放设备。“源”回放设备的一个功能是处理所接收到的音频内容以进行回放和/或分发到其他回放设备。在一些实施例中,源回放设备向被配置为播放音频内容的所有回放设备发送处理后的音频内容。在一些实施例中,源回放设备向多播网络地址发送处理后的音频内容,并且被配置为播放音频内容的所有其他回放设备经由该多播地址接收音频内容。在一些实施例中,源回放设备备选地向被配置为播放音频内容的每个其他回放设备的每个单播网络地址发送处理后的音频内容,并且被配置为播放音频内容的每个其他回放设备经由其单播地址接收音频内容。

在一些实施例中,“源”回放设备以数字形式(例如,作为分组的流)从音频源接收音频内容。在一些实施例中,分组的流中的各个分组具有指定分组顺序的序列号或其他标识符。通过数据分组网络(例如,以太网、wifi或其他分组网络)发送的分组可能会无序到达,因此源回放设备在执行进一步分组处理之前,使用序列号或其他标识符以正确的顺序重新组装分组的流。在一些实施例中,指定分组顺序的序列号或其他标识符是或至少包括指示创建分组的时间的时间戳。可以基于以下假设来将分组创建时间用作序列号:分组是按照随后它们应被播放出的顺序创建的。

在一些实施例中,源回放设备在分组处理期间不改变所接收到的分组的序列号或标识符。在一些实施例中,源回放设备基于每个分组的序列标识符对分组流中的至少第一分组集合进行重新排序,从所接收到的分组中提取音频内容,从所接收到的分组中重新组装音频内容的比特流,然后将重新组装后的比特流重新进行分组(repacketize)为第二分组集合,其中,第二分组集合中的分组具有与第一分组集合中的分组的序列号不同的序列号。在一些实施例中,第二分组集合中的各个分组具有与第一分组集合中的各个分组不同的长度(即,较短或更长)。在一些实施例中,从传入的分组重新组装比特流,然后随后将重新组装后的比特流重新进行分组为不同的分组集合,这促进了源回放设备和从源回放设备接收音频内容的其他回放设备对音频内容的统一处理和/或传输。然而,对于一些对延迟敏感的音频内容,重新组装和重新进行分组可能是不期望的,并且因此,在一些实施例中,源回放设备可能不会在播放音频内容和/或向其他回放设备发送音频内容之前对其接收到的一些(或全部)音频内容执行重新组装和重新进行分组。

在一些实施例中,音频源例如经由数字线输入接口向源回放设备提供数字形式的音频内容。在这样的实施例中,源回放设备在向其他回放设备发送音频内容之前将数字音频进行分组为音频内容的分组。在一些实施例中,音频内容的各个分组包括序列号或其他标识符,使得当其他回放没备接收到音频内容时,那些其他回放设备将能够在执行进一步的分组处理之前以正确的顺序可靠地布置所接收到的分组。

在一些实施例中,音频源例如经由模拟线输入接口向源回放设备提供模拟形式的音频内容。在这样的实施例中,源回放设备在向其他回放设备发送音频内容之前,将所接收到的模拟音频转换为数字音频,并将数字音频进行分组为音频内容的分组。在一些实施例中,音频内容的各个分组包括序列号或其他标识符,使得当其他回放设备接收到音频内容时,那些其他回放设备将能够在执行进一步的分组处理之前以正确的顺序可靠地布置所接收到的分组。

在从音频源或另一个回放设备获得音频内容之后,在一些实施例中,回放设备执行以下各项中的一项或多项:(i)分别播放音频内容,(ii)与一个或多个附加的回放设备同步地播放内容,和/或(iii)向一个或多个其他回放设备发送音频内容。

b.回放定时

本文公开和描述的回放设备使用回放定时来彼此同步地播放音频内容。个别回放设备可以基于媒体播放网络中回放设备的配置,生成回放定时和/或根据回放定时回放音频内容。生成音频内容的回放定时的源回放设备还向被配置为播放音频内容的所有回放设备发送所生成的回放定时。在一些实施例中,源回放设备向多播网络地址发送回放定时,并且被配置为播放音频内容的所有其他回放设备经由该多播地址接收回放定时。在一些实施例中,源回放设备备选地向被配置为播放音频内容的每个其他回放设备的每个单播网络地址发送回放定时,并且被配置为播放音频内容的每个其他回放设备经由其单播地址接收回放定时。

在操作中,回放设备(或与回放设备相关联的计算设备)基于时钟定时(如下所述)生成音频内容的回放定时,该时钟定时可以是“本地”时钟定时(即,由源回放设备生产的时钟定时)或从不同的回放设备(或不同的计算设备)接收的“远程”时钟定时。

在一些实施例中,针对音频内容的各个帧(或分组)生成回放定时。如上所述,在一些实施例中,音频内容被封装在一系列帧(或分组)中,其中,各个帧(或分组)包括音频内容的一部分。在一些实施例中,音频内容的回放定时包括音频内容的每个帧(或分组)的回放时间。在一些实施例中,个别帧(或分组)的回放定时被包括在帧(或分组)内,例如,在帧(或分组)的报头中、在帧(或分组)的扩展报头中、和/或在帧(或分组)的有效负载部分中。

在一些实施例中,在时间戳或其他指示内识别个别帧(或分组)的回放时间。在这样的实施例中,时间戳(或其他指示)表示在该个别帧(或分组)内播放音频内容的时间。在操作中,当生成个别帧(或分组)的回放定时时,该个别帧(或分组)的回放定时是在生成该个别帧(或分组)的回放定时时相对于参考时钟的当前时钟时间的将来时间。如下面更详细描述的,参考时钟可以是回放设备处的“本地”时钟,或者分离网络设备(例如,另一个回放设备、计算设备或被配置为提供时钟定时以由回放设备用于生成回放定时和/或回放音频内容的另一个网络设备)处的“远程”时钟。

在操作中,负责播放特定音频内容的回放设备将在针对个别帧(或分组)由回放定时指定的回放时间播放个别帧(或分组)内的特定音频内容的一部分,该特定音频内容的一部分被调整为适应源回放设备、时钟定时和负责播放音频内容的回放设备之间的时钟差,如下面更详细描述的。

c.时钟定时

本文公开和描述的回放设备使用时钟定时来生成音频内容的回放定时,并基于所生成的回放定时来播放音频内容。在一些实施例中,源回放设备使用来自参考时钟的时钟定时(例如,设备时钟、数字音频转换器时钟、回放时间参考时钟或任何其他时钟)来生成音频内容的回放定时,源回放设备从音频源接收该音频内容。对于个别回放设备,参考时钟可以是回放设备处的“本地”时钟,或者分离网络设备(例如,另一个回放设备、计算设备或被配置为提供时钟定时以由回放设备用于生成回放定时和/或回放音频内容的另一个网络设备)处的“远程”时钟。

在一些实施例中,负责同步播放特定音频内容的所有回放设备使用与参考时钟相同的时钟定时来回放该特定音频内容。在一些实施例中,回放设备使用相同的时钟定时来播放音频内容,该时钟定时用于生成音频内容的回放定时。

在操作中,生成时钟定时的网络设备还向网络中需要使用时钟定时来生成回放定时和/或回放音频内容的所有回放设备发送时钟定时。在一些实施例中,生成时钟定时的网络设备向多播网络地址发送时钟定时,并且被配置为生成回放定时和/或播放音频内容的所有其他回放设备经由该多播地址接收时钟定时。在一些实施例中,网络设备备选地向被配置为播放音频内容的每个其他回放设备的每个单播网络地址发送时钟定时,并且被配置为播放音频内容的每个其他回放设备经由其单播地址接收时钟定时。

d.使用来自本地时钟的时钟定时生成回放定时

在一些实施例中,源回放设备(i)基于来自源回放设备处的本地时钟的时钟定时来生成音频内容的回放定时,并且(ii)向被配置为播放音频内容的所有其他回放设备发送所生成的回放定时。在操作中,当生成个别帧(或分组)的回放定时时,“源”回放设备将“定时提前”添加到源回放设备的本地时钟的当前时钟时间,源回放设备正在使用该当前时钟时间来生成回放定时。

在一些实施例中,“定时提前”基于大于或等于以下各种之和的时间量:(i)从源回放设备发送的包括音频内容的帧和/或分组到达被配置为使用回放定时同步播放音频内容的所有其他回放设备所需的网络传输时间,以及(ii)被配置为使用该回放定时进行同步回放的所有其他回放设备处理从源回放设备接收到的帧/分组以进行回放所需的时间量。

在一些实施例中,源回放设备通过以下来来确定定时提前:向被配置为播放源设备正在发送的音频内容的一个或多个(或可能是所有)其他回放设备发送一个或多个测试分组,然后接收从其他回放设备中的那一个或多个返回的测试响应分组。在一些实施例中,源回放没备和一个或多个其他回放设备经由多个测试和响应消息来协商定时提前。在具有多于两个的附加回放设备的一些实施例中,源回放设备通过以下来确定定时提前:与所有回放设备交换测试和响应消息,然后设置足以使回放设备具有最长的总的网络传输时间和分组处理时间的定时提前。

在一些实施例中,定时提前小于约50毫秒。在一些实施例中,定时提前小于约20-30毫秒。并且在其他实施例中,定时提前小于约10毫秒。在一些实施例中,定时提前在被确定之后保持恒定。在其他实施例中,生成回放定时的回放设备可以响应于来自接收设备的指示需要更大的定时提前的请求(例如,因为接收设备直到其他设备已经播放了音频内容的部分之后都没有接收到包括音频内容的该部分的分组)或较短的时间提前就足够了的请求(例如,因为接收设备正在缓冲包括音频内容的部分比提供一致、可靠的回放所必需的分组更多的分组)来改变定时提前。

如下面更详细地描述的,被配置为同步地播放音频内容的所有回放设备将使用回放定时和时钟定时来彼此同步地播放音频内容。

e.使用来自远程时钟的时钟定时生成回放定时

在一些实施例中,源回放设备基于来自另一个网络设备(例如,另一个回放设备、另一个计算设备(例如,智能手机、膝上型计算机、媒体服务器或可配置为提供足以由回放设备使用的时钟定时以生成回放定时和/或回放音频内容的其他计算设备)处的远程时钟的时钟定时生成音频内容的回放定时。基于来自另一个网络设备处的远程时钟的时钟定时生成回放定时比基于来自实施例中的本地时钟的时钟定时生成回放定时更复杂,其中,相同的时钟定时用于以下两者:(i)生成回放定时,以及(ii)基于回放定时播放音频内容。

在源回放设备基于来自远程时钟的时钟定时生成音频内容的回放定时的实施例中,个别帧(或分组)的回放定时基于以下各项:(i)以下两者之间的“定时偏移”:(a)源回放设备用来生成回放定时的源回放没备处的本地时钟,以及(b)来自远程参考时钟的时钟定时信息,以及(ii)基于大于或等于以下两者之和的时间量的“定时提前”:(a)从源回放设备发送的分组到达负责播放音频内容的所有其他回放设备所需的网络传输时间,以及(b)所有那些其他回放设备处理包括从源回放设备接收到的用于回放的音频内容的帧和/或分组所需的时间量。

对于包含音频内容的部分的个别帧(或分组),源回放设备通过以下来生成该个别帧(或分组)的回放定时:将“定时偏移”和“定时提前”之和添加到源回放设备用来生成音频内容的回放定时的源回放设备处的本地时钟的当前时间。在操作中,“定时偏移”可以是正偏移或负偏移,这取决于源回放设备处的本地时钟是在提供时钟定时的远程时钟之前还是之后。“定时提前”是正数,因为它表示相对于本地时钟时间的将来时间,其由“定时偏移”进行调整。

通过将“定时提前”和“定时偏移”之和添加到源回放设备用来生成音频内容的回放定时的源回放设备处的本地时钟的当前时间,源回放设备实际上相对于远程时钟生成回放定时。

在一些实施例中,并且如上所述,“定时提前”基于大于或等于以下各项之和的时间量:(i)从源回放设备发送的包括音频内容的帧和/或分组到达被配置为使用回放定时同步播放音频内容的所有其他回放设备所需的网络传输时间,以及(ii)被配置为使用该回放定时进行同步回放的所有其他回放设备处理从源回放设备接收到的帧/分组以进行回放所需的时间量。

在一些实施例中,源回放设备经由源回放设备和网络中的一个或多个其他回放设备之间的信令来确定定时提前,如前所述。此外,在一些实施例中,定时提前小于约50毫秒、小于约20-30毫秒或小于约10毫秒,这取决于音频内容回放时延要求。不同的音频内容可以具有不同的时延要求。在一些实施例中,定时提前在被确定之后保持恒定。并且在一些实施例中,生成回放定时的回放设备可以基于源回放设备(生成回放定时)和网络中的一个或多个其他回放设备(正在使用回放定时播放音频内容)之间的另外的信令来改变定时提前。

如下面更详细地描述的,被配置为同步地播放音频内容的所有回放设备将使用回放定时和时钟定时来彼此同步地播放音频内容。

f.使用本地回放定时和本地时钟定时播放音频内容

在一些实施例中,源回放设备被配置为与一个或多个其他回放设备同步地播放音频内容。并且,如果源回放设备正在使用来自源回放设备处的本地时钟的时钟定时来生成回放定时,则源回放设备将使用本地生成的回放定时和本地生成的时钟定时来播放音频内容。在操作中,当源回放设备用来生成回放定时的本地时钟达到个别帧(或分组)的回放定时中指定的时间时,源回放设备播放包括音频内容的部分的该个别帧(或分组)。

例如,回想一下,当生成个别帧(或分组)的回放定时时,源回放设备将“定时提前”添加到用于生成回放定时的参考时钟的当前时钟时间。在这种情况下,用于生成回放定时的参考时钟是源回放设备处的本地时钟。因此,如果个别帧的定时提前为例如30毫秒,则源回放设备在创建该个别帧(或分组)的回放定时30毫秒之后播放个别帧(或分组)中的音频内容的部分(例如,样本或样本集)。

以这种方式,源回放设备使用本地生成的回放定时和来自本地参考时钟的时钟定时来播放音频内容。如下进一步所述,当本地参考时钟的时钟时间达到该个别帧或分组的回放定时时,通过播放个别帧和/或分组的音频内容的部分,源回放设备播放与其他回放设备同步地播放该个别帧和/或分组中的音频内容的部分。

g.使用本地回放定时和远程时钟定时播放音频内容

如前所述,在一些实施例中,源回放设备基于来自远程时钟(即,另一个网络设备(例如,另一个回放设备或另一个计算设备(例如,智能手机、膝上型计算机、媒体服务器或可配置为提供足以由回放设备使用的时钟定时以生成回放定时和/或回放音频内容的其他计算设备))处的时钟)的时钟定时生成音频内容的回放定时。因为源设备使用来自远程时钟的时钟定时来生成音频内容的回放定时,所以源回放设备也使用来自远程时钟的时钟定时来播放音频内容。以这种方式,源回放设备使用本地生成的回放定时和来自远程时钟的时钟定时来播放音频内容。

回想一下,在源回放设备基于来自远程时钟的时钟定时生成音频内容的回放定时的实施例中,源回放设备基于以下各项生成个别帧(或分组)的回放定时:(i)基于以下两者之间的差的“定时偏移”:(a)源回放设备处的本地时钟,以及(b)来自远程时钟的时钟定时信息,以及(ii)包括大于或等于以下两者之和的时间量的“定时提前”:(a)从源回放设备发送的帧/分组到达负责播放音频内容的所有其他回放设备所需的网络传输时间,以及(b)所有那些其他回放设备处理包括从源回放设备接收到的用于回放的音频内容的帧和/或分组所需的时间量。并且进一步回想,源回放设备向负责同步播放音频内容的所有其他那些回放设备发送所生成的回放定时。

在这种场景中,为了与一个或多个其他回放设备同步地播放音频内容的个别帧(或分组),源回放设备从该个别帧(或分组)的回放定时中减去“定时偏移”,以生成用于播放该个别帧(或分组)内的音频内容的“本地”回放时间。在生成用于播放个别帧(或分组)内的音频内容的部分的“本地”回放时间之后,当源回放设备正在用来播放音频内容的(在源回放设备处的)本地时钟(它与源回放设备用来生成回放定时的本地时钟相同)达到个别帧(或分组)的“本地”回放时间时,源回放设备播放该个别帧(或分组)中的音频内容的部分。通过从回放定时中减去“定时偏移”以生成个别帧的“本地”回放时间,源回放设备参考来自远程时钟的时钟定时有效地播放该帧/分组中的音频内容的部分。

h.使用远程回放定时和本地时钟定时播放音频内容

回想一下,在一些实施例中,源回放设备向一个或多个其他回放设备发送音频内容和音频内容的回放定时。如果从源回放设备接收音频内容和回放定时的回放设备(接收回放设备)与向用于生成回放定时的源回放设备提供时钟定时信息的回放设备相同,则在该实例中,接收回放设备使用从源回放设备接收到的回放定时(即,远程回放定时)和来自接收回放设备处的时钟的时钟定时(即,本地时钟定时)来播放音频内容。因为源设备使用来自接收回放设备处的时钟的时钟定时来生成音频内容的回放定时,所以接收回放设备还使用来自其本地时钟的时钟定时来播放音频内容。以这种方式,接收回放设备使用远程回放定时和来自其本地时钟的时钟定时来播放音频内容。

为了与源回放设备(以及接收来自源回放设备的回放定时和来自接收回放设备的时钟定时的每个其他回放设备)同步地播放音频内容的个别帧(或分组),接收回放设备(i)从源回放设备接收包括音频内容的部分的帧(或分组),(ii)从源回放设备接收音频内容的回放定时(例如,在包括音频内容的部分的帧和/或分组的帧和/或分组报头中,或者可能与包括音频内容的部分的帧和/或分组分开),并且(iii)当接收回放设备用来生成时钟定时的本地时钟达到从源回放设备接收到的个别帧(或分组)的回放定时中指定的回放时间时,播放该个别帧(或分组)中的音频内容的部分。因为源回放设备在生成回放定时时使用“定时偏移”(在这种场景中,其是接收设备处的时钟定时和源回放设备处的时钟定时之间的差),并且因为该“定时偏移”定时已经计及源回放设备处的定时和接收回放设备处的定时之间的差,在这种场景中,当接收回放设备的本地时钟(其用于生成时钟定时)达到在个别帧(或分组)的回放定时中指定的该个别帧(或分组)的回放时间时,接收设备播放包括音频内容的部分的各个帧(或分组)。

因为接收回放设备根据回放定时播放包括音频内容的部分的帧(或分组),并且因为源回放设备根据回放定时和所确定的“定时偏移”播放包括音频内容的部分的相同帧(或分组),接收回放设备和源回放设备同步地(即,在相同时间或基本上在相同时间)播放包括音频内容的相同部分的相同帧(或分组)。

i.使用远程回放定时和远程时钟定时播放音频内容

回想一下,在一些实施例中,源回放设备向一个或多个其他回放设备发送音频内容和音频内容的回放定时。并且进一步回想,在一些实施例中,提供时钟定时的网络设备可以是与源回放设备不同的设备。从另一个回放没备接收音频内容、回放定时和时钟定时的回放设备被配置为使用来自源回放设备的回放定时(即,远程回放定时)和来自另一个回放设备处的时钟的时钟定时(即,远程时钟定时)来回放音频内容。以这种方式,在该实例中,接收回放设备使用远程回放定时和远程时钟定时来播放音频内容。

为了与负责播放音频内容的每个其他回放设备同步播放音频内容的个别帧(或分组),接收回放设备(i)从源回放设备接收包括音频内容的部分的帧(或分组),(ii)从源回放设备接收音频内容的回放定时(例如,在包括音频内容的部分的帧和/或分组的帧和/或分组报头中,或者可能与包括音频内容的部分的帧和/或分组分开),(iii)从另一个网络设备(例如,另一个回放设备、计算设备或被配置为提供时钟定时以由回放设备用于生成回放定时和/或回放音频内容的另一个网络设备)接收时钟定时,并且(iv)当接收回放设备用来音频内容回放的本地时钟达到从源回放设备接收到的个别帧(或分组)的回放定时中指定的回放时间(如通过“定时偏移”进行调整)时,播放该个别帧(或分组)中的音频内容的部分。

在操作中,在接收回放设备从另一个网络设备接收时钟定时之后,接收设备确定接收回放设备的“定时偏移”。该“定时偏移”包括(或至少对应于)网络设备用来生成时钟定时的网络设备处的“参考”时钟和接收回放设备用来播放音频内容的接收回放设备处的“本地”时钟之间的差。在操作中,从另一个网络设备接收时钟定时的每个回放设备基于其本地时钟和时钟定时之间的差来计算其自身的“定时偏移”,并且因此,每个回放所确定的“定时偏移”特定于该特定回放设备。

在一些实施例中,当回放音频内容时,接收回放设备通过将先前确定的“定时偏移”添加到从源回放设备接收到的每个帧(或分组)的回放定时来生成音频内容的各个帧(或分组)的新回放定时(特定于接收回放设备)。通过这种方法,接收回放设备将从源回放设备接收到的音频内容的回放定时转换为接收回放设备的“本地”回放定时。因为每个接收回放设备都计算其自身的“定时偏移”,所以每个接收回放设备所确定的个别帧的“本地”回放定时特定于该特定回放设备。

并且当接收回放设备用来回放音频内容的“本地”时钟达到个别帧(或分组)的“本地”回放时间时,接收回放设备播放与该个别帧(或分组)相关联的音频内容(或其部分)。如上所述,在一些实施例中,特定帧(或分组)的回放定时在该帧(或分组)的报头中。在其他实施例中,各个帧(或分组)的回放定时与包括音频内容的帧(或分组)分开发送。

因为接收回放设备根据如由相对于时钟定时的“定时偏移”调整的回放定时来播放包括音频内容的部分的帧(或分组),并且因为源回放设备相对于时钟定时生成了那些帧(或分组)的回放定时,并根据回放定时及其所确定的“定时偏移”播放包括音频内容的部分的相同帧(或分组),接收回放设备和源回放设备同步地(即,在相同时间或基本上在相同时间)播放包括音频内容的相同部分的相同帧(或分组)。

vii.示例实施例

下面描述的示例实施例示出了在各种联网场景中的回放设备如何基于本地和/或远程时钟定时来生成回放定时,以及如何在多个回放设备从多个音频源获取和回放音频内容的场景中基于本地和/或远程回放定时以及本地和/或远程时钟定时来回放音频。

a.两个回放设备播放由一个回放设备从两个不同的音频源获取的内容

图7示出了根据一些实施例的播放来自多个源的音频内容的两个回放设备的示例配置700。

图7中的配置700包括第一回放设备702、第二回放设备704、第一音频源740和第二音频源750。配置700中所示的箭头指示定时信息和媒体内容的信号流。

回放设备702和704与本文示出和描述的回放设备相同或相似。在一些实施例中,回放设备702和704中的一个或两者是联网的麦克风设备或包括联网的麦克风设备。

在一些实施例中,第一回放没备702和第二回放设备704被配置为同步组,其中,第一回放设备702和第二回放设备704彼此同步地播放相同的音频内容,如前所述。在一些实施例中,第一回放设备702和第二回放设备704被配置为立体声对,其中,第一回放设备702被配置为播放立体声音频内容的左声道,并且第二回放设备704被配置为播放立体声音频内容的右声道(反之亦然),如前所述。并且在其他实施例中,第一回放设备702和第二回放设备704被配置为绑定对,其中,第一回放设备702播放音频内容的第一频率分量集,而第二回放设备704播放音频内容的第二频率分量集。并且在其他实施例中,第一回放设备702和第二回放设备704被配置在现在已知或以后开发的其他分组布置中,其中,第一回放设备702和第二回放706同步地播放不同的声道和/或相同音频内容的频率分量集。在一些实施例中,第一回放设备702和第二回放设备704不需要以任何特定方式分在一组(例如,同步组、立体声对、绑定对、合并设备等)以彼此同步地播放音频内容。相反,在一些实施例中,即使第一回放设备702和第二回放设备704不在分组配置中,而是仅经由网络(例如,在同一家庭中)彼此通信地耦合,第一回放设备702和第二回放设备704如本文所述可以根据共享的回放定时和时钟定时彼此同步地播放音频内容。

第一音频源740和第二音频源750与本文公开和描述的任何一个音频源相同或相似。示例配置700示出了第一回放设备702经由lan和/或wan中的一个或两者从第一音频源740获得第一音频内容742。

在示例配置700中,第一回放设备702是第一音频内容742的“源”回放设备。在操作中,第一回放设备702从第一音频源740接收第一音频内容742,并生成第一音频内容742的第一回放定时744。

在示例配置700中,第一回放设备702使用其自身的时钟定时710(即,第一回放设备702的时钟的时钟定时)来生成第一音频内容742的第一回放定时744。因此,对于第一音频内容742,第一回放设备702基于本地时钟定时710生成回放定时。

在一些实施例中,第一回放设备702通过将“定时提前”添加到第一回放设备702用来生成第一音频内容742的第一回放定时744的本地参考时钟的当前时钟时间来生成第一音频内容742的第一回放定时744。如上所述,相对于参考时钟时间,帧或分组的回放定时对应于要播放帧(或分组)中的音频内容的将来时间。

在一些实施例中,第一回放设备702添加到其自身的时钟定时710以生成第一回放定时744的将来时间的定时提前基于大于或等于以下两者之和的时间量:(i)从第一回放设备702发送的分组到达第二回放设备704所需的网络传输时间,以及(ii)第二回放设备704处理所接收到的用于回放的分组所需的时间量。

在一些实施例中,第一回放设备702通过以下来确定定时提前:向第二回放设备704发送一个或多个测试分组并响应于该测试分组接收从第二回放设备704返回的测试响应分组。在一些实施例中,第一回放设备702和第二回放设备704可以经由一个或多个测试和响应消息来协商定时提前。在具有多于两个的回放设备的一些实施例中,第一回放设备702通过以下来确定定时提前:与一个或多个(或所有)回放设备交换测试和响应消息,然后设置足以使回放设备具有最长的总的网络传输时间和分组处理时间的定时提前。

在一些实施例中,定时提前小于约50毫秒。在一些实施例中,定时提前小于约20-30毫秒。并且在其他实施例中,定时提前小于约10毫秒。在一些实施例中,定时提前在被确定之后保持恒定。在其他实施例中,生成回放定时的回放设备可以响应于来自接收回放设备的指示需要更大的定时提前的请求(例如,因为接收回放设备直到其他设备已经播放了音频内容的部分之后都没有接收到包括音频内容的该部分的分组)或较短的时间提前就足够了(例如,因为接收设备正在缓冲包括音频内容的部分的比提供一致、可靠的回放所必需的分组更多的分组)来改变定时提前。

在确定了第一音频内容742的分组、帧和/或样本的第一回放定时744之后,第一回放设备702经由lan和/或wan向第二回放设备704发送第一音频内容742和第一音频内容742的第一回放定时744。因为在示例配置700中,第一回放设备702使用其自身的本地时钟定时来生成第一音频内容742的第一回放定时744,所以第一回放设备702还向第二回放设备704发送其时钟定时710。

第二回放设备704使用第一回放设备702的时钟定时710和第二回放设备704自身的时钟定时来生成“定时偏移”。因为对于第一音频内容742,第二回放设备704使用来自第一回放设备702的第一回放定时744和时钟定时710来播放第一音频内容742,所以在该实例中,第二回放设备704使用远程回放定时和远程时钟定时来播放第一音频内容742。

在一些实施例中,以下的一个或多个(或全部)步骤与第二回放设备704基于第一回放设备702的时钟定时710和第二回放设备704自身的时钟定时生成“定时偏移”结合地发生。

首先,第一回放设备702在时间t处生成指示(例如,时间戳),并向第二回放设备704发送该时钟定时710。接下来,当第二回放设备704从第一回放设备702接收到时钟定时710时,第二回放设备704确定第二回放设备704处的本地时钟和在时钟定时710中指示的时间t之间的差。

第二回放设备704使用该确定的“定时偏移”来与第一回放设备702同步地回放音频内容。并且如参照图8更详细地描述的,第二回放设备704还可以使用该确定的“定时偏移”来生成第二回放设备704获取以用于与第一回放设备702同步地回放的音频的回放定时。

在一些实施例中,在同步回放会话开始时,第一回放设备702向第二回放设备704至少发送一次时钟定时710。在一些实施例中,因为第一回放设备702和第二回放设备704处的时钟易受时钟漂移(例如,频率和/或相位漂移)的影响,所以第一回放设备702在同步回放会话期间周期地或至少多于几次地向第二回放设备704发送时钟定时710。例如,第一回放设备702可以每几毫秒、每几十毫秒、每几百毫秒、每几秒等等向第二回放设备704发送时钟定时710。

在向第二回放设备704发送包括第一音频内容742、第一回放定时744和时钟定时710的至少一部分的至少一些帧(或分组)之后,第一回放设备702和第二回放设备704执行以下功能以彼此同步地回放第一音频内容742。

当用于生成第一回放定时744的第一回放设备702处的本地时钟达到在个别帧(或分组)的第一回放定时744中指定的时间时,第一回放设备702播放包括第一音频内容742的部分的个别帧(或分组)。例如,回想一下,当生成个别帧(或分组)的回放定时时,“源”回放设备(即,图7中的第一回放设备702)将“定时提前”添加到用于生成回放定时的本地参考时钟的当前时钟时间。因此,如果个别帧的时间提前为例如30毫秒,则第一回放设备702在创建该个别帧(或分组)的回放定时30毫秒之后最终播放个别帧(或分组)中的音频内容的部分(例如,样本或样本集)。

并且,考虑到先前确定的“定时偏移”,当第二回放设备704正在用来播放第一音频内容742的本地时钟的当前时间(在第二回放设备704处)到达每个帧(或分组)的第一回放定时744时,第二回放设备704播放该帧(或分组)中的音频内容。

回想一下,第二回放设备704计算(或以其他方式确定)与第一回放设备702用来生成时钟定时710(和第一回放定时744)的第一回放设备702处的“参考”时钟和第二回放设备704用来播放第一音频内容742的第二回放设备704处的“本地”时钟之间的差相对应的“定时偏移”。当回放第一音频内容742时,第二回放设备704使用该定时偏移。

具体地,第二回放设备704通过将先前确定的“定时偏移”添加到从第一回放设备702接收到的每个帧(或分组)的回放时间,来生成音频内容的各个帧(或分组)的新回放定时(特定于第二回放设备704)。通过这种方法,第二回放设备704将从第一回放设备702接收到的第一音频内容742的第一回放定时744转换为第二回放设备704的“本地”回放定时。并且当第二回放设备704用来回放第一音频内容742的“本地”时钟达到所确定的个别帧(或分组)的“本地”回放时间时,第二回放设备704播放与该个别帧(或分组)相关联的音频内容(或其部分)。如上所述,在一些实施例中,特定帧(或分组)的回放定时在该帧(或分组)的报头中。在其他实施例中,各个帧(或分组)的回放定时与包括音频内容的帧(或分组)分开发送。

因为第一回放设备702根据第一回放定时744播放包括第一音频内容742的部分的帧(或分组),并且因为第二回放设备704根据第一回放定时744和定时偏移也播放包括第一音频内容742的部分的相同帧(或分组),第一回放设备702和第二回放设备704同步地或者同时或至少基本上同时地播放包括第一音频内容742的相同部分的相同帧(或分组)。

在彼此同步地播放第一音频内容742时,第一回放设备702和第二回放设备704还可以彼此同步地播放来自第二音频源750的第二音频内容752。

在示例配置700中,第一回放设备702分别从第一音频源740和第二音频源750“获取”第一音频内容742和第二音频内容752两者。在向第二回放设备704发送第一音频内容742、第一回放定时744和时钟定时710时,第一回放设备702还(i)从第二音频内容源750接收第二音频内容752,(ii)以与第一回放设备702处理第一音频内容742相同的方式处理所接收到的第二音频内容752,(iii)以与第一回放设备702使用时钟定时710生成第一音频内容742的第一回放定时744相同的方式,使用时钟定时710来生成第二音频内容752的第二回放定时754,并且(iv)以与第一回放设备702向第二回放设备704发送第一音频内容742和第一回放定时744相同的方式,向第二回放设备704发送第二音频内容752和第二音频内容752的第二回放定时754。

在向第二回放设备704发送包括第二音频内容752、第二回放定时754和时钟定时710的至少一部分的至少一些帧(或分组)之后,第一回放设备702和第二回放设备704执行以下功能以彼此同步地回放第二音频内容752。

当用来生成第二回放定时754的第一回放设备702处的本地时钟达到在个别帧(或分组)的第二回放定时754中指定的时间时,第一回放设备702播放包括第二音频内容752的部分的个别帧(或分组)。例如,回想一下,当生成个别帧(或分组)的回放定时时,“源”回放设备(即,图7中的第一回放设备702)将“定时提前”添加到用来生成回放定时的本地参考时钟的当前时钟时间。因此,如果个别帧的时间提前为例如30毫秒,则第一回放设备702在创建该个别帧(或分组)的回放定时30毫秒之后最终播放个别帧(或分组)中的音频内容的部分(例如,样本或样本集)。在一些实施例中,第一回放设备702使用相同的“定时提前”来生成第一回放设备702用来生成第一回放定时744的第二回放定时754。但是在其他实施例中,例如,如果第一音频内容742具有与第二音频内容752不同的时延要求,则用于第二回放定时754的“定时提前”可以大于或小于用于第一回放定时744的“定时提前”。例如,在第一音频内容742包括具有低时延要求以便与视频内容保持同步的与视频内容相关联的音频内容(例如,环绕声内容)而第二音频内容752包括来自语音助手服务(vas)的语音响应音频的场景中,可能会发生这种情况,该语音响应音频的时延要求可以比与视频内容相关联的第一音频内容742的时延要求较小严格。

并且,考虑到先前确定的“定时偏移”,当第二回放设备704正在用来播放第二音频内容752的本地时钟的当前时间(在第二回放设备704处)到达该帧(或分组)的第二回放定时754时,第二回放设备704播放每个帧(或分组)中的第二音频内容。

回想一下,第二回放设备704计算(或以其他方式确定)与第一回放设备702用来生成时钟定时710(和第一回放定时744)的第一回放设备702处的“参考”时钟和第二回放设备704用来播放第一音频内容742的第二回放设备704处的“本地”时钟之间的差相对应的“定时偏移”。当回放第二音频内容752时,第二回放设备704使用该相同的定时偏移。

具体地,第二回放设备704通过将先前确定的“定时偏移”添加到从第一回放设备702接收到的每个帧(或分组)的回放时间,来生成音频内容的各个帧(或分组)的新回放定时(特定于第二回放设备704)。通过这种方法,第二回放设备704将从第一回放设备702接收到的第二音频内容752的第二回放定时754转换为第二回放设备704的(第二音频内容752的)“本地”回放定时。并且当第二回放设备704用来回放第二音频内容752的“本地”时钟(其与第二回放设备704用来播放第一音频内容742的本地时钟相同)达到所确定的个别帧(或分组)的“本地”回放时间时,第二回放设备704播放与该个别帧(或分组)相关联的音频内容(或其部分)。如上所述,在一些实施例中,特定帧(或分组)的回放定时在该帧(或分组)的报头中。在其他实施例中,各个帧(或分组)的回放定时与包括音频内容的帧(或分组)分开发送。

因为第一回放设备702根据第二回放定时754播放包括第二音频内容752的部分的帧(或分组),并且因为第二回放设备704根据第二回放定时754和定时偏移也播放包括第二音频内容752的部分的相同帧(或分组),第一回放设备702和第二回放设备704同步地或者同时或至少基本上同时地播放包括第二音频内容752的相同部分的相同帧(或分组)。

在一些实施例中,第一回放设备702包括第一回放设备702用来同时播放第一音频内容742和第二音频内容752的音频混合器组件(在软件、硬件、固件或者软件、硬件或固件中的一个或多个的某种组合中)。第二回放设备704还包括第二回放设备704用来同时播放第一音频内容742和第二音频内容752的音频混合器组件(在软件、硬件、固件或者软件、硬件或固件中的一个或多个的某种组合中)。

b.两个回放设备均播放由另一个回放设备从两个不同的音频源获取的内容

图8示出了根据一些实施例的播放来自两个不同音频源的音频内容的两个回放设备的示例配置800。

图8中的配置800包括第一回放设备802、第二回放设备804、第一音频源840和第二源850。配置800中所示的箭头指示定时信息和媒体内容的信号流。

回放设备802和804与本文示出和描述的回放设备相同或相似。在一些实施例中,回放设备802和804中的一个或两者是联网的麦克风设备或包括联网的麦克风设备。

除了在配置800中第一音频内容和第二音频内容由不同的回放设备获取,而在配置700中第一音频内容和第二音频内容由相同的回放设备获取之外,配置800在所有实质性方面与配置700(图7)相同。

具体地,关于第一回放设备802和第一音频内容842,第一回放设备802(i)以在示例700(图7)中第一回放设备702从第一音频源740接收(或以其他方式获得)第一音频内容742的方式中的任何一种方式从第一音频源840接收(或以其他方式获得)第一音频内容842,(ii)以与在示例700(图7)中第一回放设备702处理第一音频内容742以生成包括第一音频内容742的部分的一系列帧和/或分组相同的方式处理所接收到的第一音频内容842,以生成包括第一音频内容842的部分的一系列帧和/或分组,(iii)以与在示例700(图7)中第一回放设备702生成第一音频内容742的第一回放定时744相同的方式生成第一音频内容842的第一回放定时844,(iv)以与在示例700(图7)中第一回放设备702向第二回放设备704发送处理后的第一音频内容742、所生成的第一回放定时744和时钟定时710相同的方式,向第二回放设备804发送处理后的第一音频内容842、所生成的第一回放定时844和时钟定时810,并且(v)以与在示例700(图7)中第一回放设备702使用第一回放定时744和时钟定时710与第二回放设备704同步地播放第一音频内容742相同的方式,使用第一回放定时844和时钟定时810与第二回放设备804同步地播放第一音频内容842。

类似地,关于第二回放设备804和第一音频内容842,第二回放设备804(i)以与示例700(图7)中第二回放设备704以包括第一音频内容742的一系列帧和/分组的形式从第一回放设备702接收(或以其他方式获得)处理后的第一音频内容742相同的方式,以包括第一音频内容842的一系列帧和/或分组的形式从第一回放设备802接收(或以其他方式获得)处理后的第一音频内容842,(ii)以与示例700(图7)中第二回放设备704从第一回放设备702接收(或以其他方式获得)第一回放定时744相同的方式,从第一回放设备802接收(或以其他方式获得)第一回放定时844,并且(iii)以与示例700(图7)中第二回放设备704使用第一回放定时744和时钟定时710与第一回放设备702同步地播放第一音频内容742相同的方式,使用第一回放定时844和时钟定时810与第一回放设备802同步地播放第一音频内容842。

因为第一回放设备802根据第一回放定时844播放包括第一音频内容842的部分的帧(或分组),并且因为第二回放设备804根据(针对“定时偏移”调整的)第一回放定时844播放包括第一音频内容842的相同部分的相同帧(或分组),第一回放设备802和第二回放设备804同步地(即,同时或基本上同时)播放包括第一音频内容842的相同部分的相同帧(或分组)。

与第一回放设备702获取第二音频内容742的示例700相反,在示例800中,第二回放设备804获取第二音频内容852。在一些实施例中,第二回放设备804还根据本文公开和描述的任何音频处理方法,处理所接收到的第二音频内容852,以生成包括第二音频内容852的部分的一系列帧和/或分组。

第二回放设备804还(i)基于从第一回放设备802接收到的时钟定时810生成第二音频内容852的第二回放定时854,并且(ii)向第一回放设备802发送所生成的第二回放定时854。以这种方式,在这种场景中,第二回放设备804利用来自远程时钟的时钟定时(即,来自第一回放设备802处的“远程”时钟而不是第二回放设备804处的“本地”时钟的时钟定时810)生成回放定时。

在操作中,第二回放设备804基于以下各项生成第二回放定时854:(i)以下两者之间的“定时偏移”:(a)第二回放设备804用来生成第二音频内容852的第二回放定时854的第二回放设备804处的本地时钟,以及(b)第二回放设备804从第一回放设备802接收到的时钟定时810;以及(ii)基于大于或等于以下两者之和的时间量的“定时提前”:(a)从第二回放设备804发送的分组到达第一回放设备802所需的网络传输时间,以及(b)第一回放设备802处理从第二回放设备804接收到的用于回放的分组所需的时间量。如上所述,相对于参考时钟时间,帧或分组的回放定时对应于要播放帧(或分组)中的音频内容的将来时间。在这种情况下,参考时钟时间是第一回放设备802用来生成时钟定时810的第一回放设备802处的“远程”时钟的时钟时间,并且第一回放设备802向第二回放设备804发送该时钟时间。

在一些实施例中,第二回放设备804用来生成第二音频内容852的第二回放定时854的“定时偏移”与第二回放设备804用来从第一音频内容842的第一回放定时844创建“本地”回放定时的“定时偏移”相同,第二回放设备804从第一回放设备802接收该第一音频内容842的第一回放定时844。如上所述,“定时偏移”对应于第一回放设备802用来生成时钟定时810(和第一回放定时844)的第一回放设备802的“远程”参考时钟和第二回放设备804用来播放第一音频内容842的第二回放设备804的本地时钟之间的差。

在一些实施例中,第二回放设备804用来生成第二音频内容852的第二回放定时854的“定时提前”与第一回放设备802用来生成第一音频内容842的第一回放定时844的“定时提前”相同。从前面回想,与示例700中的第一回放设备702一样,示例800中的第一回放设备802基于以下两者之和确定“定时提前”:(i)分组通过网络从第一回放设备802到第二回放设备804所需的时间量,以及(ii)第二回放设备804处理从第一回放设备802接收到的分组所需的时间量。在许多情况下,预先确定的用来生成第一音频内容842的第一回放定时844的第一回放设备802的“定时提前”足以供第二回放设备804在生成第二音频内容852的第二回放定时854时使用。在这种情况下,第一回放设备802向第二回放设备804提供“定时提前”信息。

但是在一些实施例中,第二回放设备804用来生成第二回放定时854的“定时提前”与第一回放设备802用来生成第一回放定时844的“定时提前”不同。例如,在一些实施例中,第二回放设备804分别确定从第二回放设备804发送的分组到达第一回放设备802所需的网络传输时间和/或由第一回放设备802进行后续处理的时间。在一些实施例中,第二回放设备804经由第二回放设备804和第一回放设备802之间的信令来确定“定时提前”。在一些实施例中,第一回放设备802和第二回放设备804中的一个或两者所使用的“定时提前”是预定的并且是固定的。

如上所述,第二回放设备804使用“定时偏移”和“定时提前”两者来生成第二音频内容852的第二回放定时854。对于包含第二音频内容852的部分的个别帧(或分组),第二回放设备804通过将“定时偏移”和“定时提前”之和添加到第二回放设备804用来生成第二回放定时854的第二回放设备804处的本地时钟的当前时间来生成该个别帧(或分组)的第二回放定时854。在操作中,“定时偏移”可以是正偏移或负偏移,这取决于第二回放设备804处的本地时钟是在用来生成时钟定时810的第一回放设备802处的“远程”参考时钟之前还是之后。并且,“定时提前”是正数,因为它对应于回放设备要播放音频内容的将来时间。

通过将“定时提前”和“定时偏移”之和添加到第二回放设备804用来生成第二回放定时854的第二回放设备804处的本地时钟的当前时间,第二回放设备804实际上相对于第一回放设备802的参考时钟生成第二回放定时854,第一回放设备802使用该参考时钟来生成时钟定时810,第一回放设备802向第二回放设备804发送该时钟定时810。并且,在生成第二回放定时854之后,第二回放设备804向第一回放设备802发送第二回放定时854。

为了彼此同步地回放第二音频内容852,第一回放设备802使用“远程”回放定时(即,由第二回放设备804生成的第二回放定时854)和“本地”时钟定时810(即,由第一回放设备802生成)来播放第二音频内容852,而第二回放设备804使用“本地”回放定时(即,由第二回放设备804生成的第二回放定时854)和“远程”时钟定时810(即,由第一回放设备802生成)来播放第二音频内容852。

为了与第一回放设备802同步地播放第二音频内容852的个别帧(或分组),第二回放设备804从该个别帧(或分组)的第二回放定时854(其包括“定时偏移”和“定时提前”之和)减去“定时偏移”,以生成用于播放该个别帧(或分组)内的第二音频内容852的部分的“本地”回放时间。这类似于第二回放设备804如何通过将“定时偏移”添加到第一回放定时844以生成第一音频内容742的“本地”回放定时来生成用于与第一回放设备802同步地播放第一音频内容842的“本地”回放定时,如上所述。

在生成用于播放个别帧(或分组)内的第二音频内容852的部分的“本地”回放时间之后,当第二回放设备804正用来播放第二音频内容852的第二回放设备804处的本地时钟(其与第二回放设备804用来生成第二回放定时854的本地时钟相同)达到该个别帧(或分组)的“本地”回放时间时,第二回放设备804播放该个别帧(或分组)中的第二音频内容852的部分。

并且,为了与第二回放设备804同步地播放第二音频内容852的个别帧(或分组),第一回放设备802(i)从第二回放设备804接收包括第二音频内容852的部分的帧(或分组),(ii)从第二回放设备804接收第二音频内容852的第二回放定时854(例如,在包括第二音频内容852的部分的帧和/或分组的帧和/或分组报头中,或者可能与包括第二音频内容852的部分的帧和/或分组分开),并且(iii)当第一回放设备802用来生成时钟定时810的时钟达到个别帧(或分组)的第二回放定时854中指定的回放时间时,播放该个别帧(或分组)中的第二音频内容852的部分。因为第二回放设备804在生成第二回放定时854时使用了“定时偏移”,所以第二回放定时854已经计及第二回放设备804处的定时和第一回放设备802处的定时之间的差。

因为第一回放设备802根据第二回放定时854播放包括第二音频内容852的部分的帧(或分组),并且因为第二回放设备804根据由所确定的“定时偏移”调整的第二回放定时854播放包括第二音频内容852的部分的相同帧(或分组),第一回放设备802和第二回放设备804同步地(即,同时或基本上同时)播放包括第二音频内容852的相同部分的相同帧(或分组)。

该方法的一个优点是,对于第二音频内容852,第一回放设备802和第二回放设备804使用相同的回放定时854来播放第二音频内容852,在生成回放定时时,这对于第二回放设备804的计算效率可能更高,因为第二回放设备804仅需要生成第二音频内容852的回放定时(即,第二回放定时854)。然而,该方法的一个潜在缺点是,当播放第二音频内容852时,第二回放没备804必须从该个别帧(或分组)的第二回放定时854(其包括“定时偏移”和“定时提前”之和)中减去“定时偏移”,以生成用于播放该个别帧(或分组)内的第二音频内容852的部分的“本地”回放时间,因此第二回放设备804必须将“定时偏移”添加到“定时提前”及其本地时钟以生成第二回放定时854,然后从第二回放定时854中减去“定时偏移”以播放第二音频内容852,当播放音频内容时,第二回放设备804的计算效率可能较低。

备选地,在一些实施例中,不是第一回放设备802和第二回放设备804使用相同的第二回放定时854来彼此同步地播放第二音频内容852,而是(i)第二回放设备804如上所述生成并向第一回放设备802发送第二回放定时854和第二音频内容852,并且第一回放设备802如上所述根据第二回放定时854播放第二音频内容852,以及(ii)第二回放设备804生成其“特定于设备”的回放定时(与第二回放定时854不同),并根据其“特定于设备”的回放定时播放第二音频内容852。

在这样的实施例中,为了生成包含第二音频内容852的部分的个别帧(或分组)的“特定于设备”的回放时间,第二回放设备804通过将“定时提前”添加到第二回放设备804用来生成“特定于设备的”回放定时(和第二回放定时854)的第二回放设备804处的本地时钟的当前时间来生成该个别帧(或分组)的“特定于设备”的回放时间。在操作中,第二回放设备804使用相同的“定时提前”来生成“特定于设备”的回放定时(第二回放设备804将用来播放第二音频内容852)和第二回放定时854(第一回放设备802将用来播放第二音频内容852)。回想一下,“定时提前”是正数,因为它对应于回放设备要播放音频内容的将来时间。

在生成用于播放个别帧(或分组)内的第二音频内容852的部分的“特定于设备”的回放时间之后,当第二回放设备804正在用来播放第二音频内容852的第二回放设备804处的本地时钟(其与第二回放设备804用来生成“特定于设备”的回放定时和第二回放定时854的本地时钟相同)达到该个别帧(或分组)的“特定于设备”的回放时间时,第二回放设备804播放个别帧(或分组)中的第二音频内容852的部分。

因为第一回放设备802根据第二回放定时854播放包括第二音频内容852的部分的帧(或分组),并且因为第二回放设备804根据其“特定于设备”的回放定时播放包括第二音频内容852的部分的相同帧(或分组),并且因为第二回放设备804在第二回放设备804处使用相同的本地时钟生成第二回放定时854(基于“定时偏移”)和“特定于设备”的回放定时两者,第一回放设备802和第二回放设备804同步地(即,同时或基本上同时)播放包括第二音频内容842的相同部分的相同帧(或分组)。

该方法的一个优点是,当播放第二音频内容852时,第二回放设备804不需要从该个别帧(或分组)的第二回放定时854(其包括“定时偏移”和“定时提前”之和)中减去“定时偏移”,以生成用于播放该个别帧(或分组)内的第二音频内容852的部分的“本地”回放时间,当播放音频内容时,这对于第二播放设备804的计算效率可以较高。然而,该方法的一个潜在缺点是第二回放设备804必须同时(或基本上同时)生成并存储两个回放定时集合(即,第一回放设备802的第二回放定时854和第二回放设备804的“特定于设备”的回放定时),当生成回放定时时,这对于第二回放设备804的计算效率可能较低。

在一些实施例中,第一回放设备802和第二回放设备804均包括使第一回放设备802和第二回放设备804能够在第一回放设备802和第二回放设备804彼此同步地播放第二音频内容852的同时彼此同步地播放第一音频内容842的音频混合器组件(在软件、硬件、固件或者软件、硬件或固件中的一个或多个的某种组合中)。

c.三个回放设备播放由两个不同的回放设备从两个不同的音频源获取的内容

图9示出了根据一些实施例的播放来自多个源的音频内容的三个回放设备的示例配置900。

图9中的配置900包括第一回放设备902、第二回放设备904、第三回放设备906、第一源940和第二音频源960。配置900中所示的箭头指示定时信息和媒体内容的信号流。

回放设备902、904和906与本文示出和描述的回放设备相同或相似。在一些实施例中,一个或多个回放设备902、904和906是联网的麦克风设备或包括联网的麦克风设备。

配置900在大多数实质性方面与示例800(图8)相同,除了示例900包括第三回放设备906,该第三回放设备906被配置为(i)与第一回放设备902和第二回放设备904中的一个或两者同步地播放第一音频内容942,和/或(ii)与第一回放设备902和第二回放设备904中的一个或两者同步地回放第二音频内容962。

关于第一音频内容942,第一回放设备902(i)利用来自第一回放设备902处的“本地”时钟的时钟定时910生成第一回放定时944,并且(ii)使用本地生成的第一回放定时944和本地时钟定时910播放第一音频内容942。

具体地,关于第一回放设备902和第一音频内容942,第一回放设备902(i)以在示例800(图8)中第一回放设备802从第一音频源840接收(或以其他方式获得)第一音频内容842的方式中的任何一种方式从第一音频源940接收(或以其他方式获得)第一音频内容942,(ii)以与在示例800(图8)中第一回放设备802处理第一音频内容842以生成包括第一音频内容842的部分的一系列帧和/或分组相同的方式处理所接收到的第一音频内容942,以生成包括第一音频内容942的部分的一系列帧和/或分组,(iii)以与在示例800(图8)中第一回放设备802生成第一音频内容842的第一回放定时844相同的方式生成第一音频内容942的第一回放定时944,(iv)以与在示例800(图8)中第一回放设备802向第二回放设备804发送处理后的第一音频内容842、所生成的第一回放定时844和时钟定时810相同的方式,向第二回放设备904发送处理后的第一音频内容942、所生成的第一回放定时944和时钟定时910。但是,与配置800(图8)不同,第一回放设备902附加地(i)向第三回放设备906发送处理后的第一音频内容942、所生成的第一回放定时944和时钟定时910,并且(ii)使用第一回放定时944和时钟定时910,以与第二回放设备904和第三回放设备两者同步地播放第一音频内容942。

关于第一回放定时944,第一回放设备902通过将“定时提前”添加到第一回放设备902用来生成第一音频内容942的第一回放定时944和时钟定时910的本地参考时钟的当前时钟时间来生成第一音频内容942的第一回放定时944。如上所述,相对于参考时钟时间,帧或分组的回放定时对应于要播放帧(或分组)中的音频内容的将来时间。在一些实施例中,第一回放设备902添加到其自身的时钟定时910以生成第一回放定时944的将来时间的定时提前基于大于或等于以下两者之和的时间量:(i)从第一回放设备902发送的分组到达第二回放设备904和第三回放设备906中的一个或两者所需的网络传输时间,以及(ii)第二回放设备904和第三回放设备906中的一个或两者处理所接收到的用于回放的分组所需的时间量。

在一些实施例中,第一回放设备902通过以下来确定定时提前:(i)向第二回放设备904和第三回放设备906中的一个或两者发送一个或多个测试分组,以及(ii)响应于该测试分组接收从第二回放设备904和第三回放设备906中的一个或两者返回的测试响应分组。在一些实施例中,第一回放设备902、第二回放设备904和第三回放设备906可以经由一个或多个测试和响应消息来协商定时提前。

在从第一回放设备902接收到第一音频内容942、第一回放定时944和时钟定时910之后,第二回放设备904和第三回放设备906均关于第一音频内容942执行相同的功能。在操作中,第二回放设备904和第三回放设备906两者使用“远程”回放定时(即,由第一回放设备902生成的第一回放定时944)和“远程”时钟定时(即,由第一回放设备902生成的时钟定时910)播放第一音频内容942。

具体地,第二回放设备904和第三回放设备906均(i)以与示例800(图8)中第二回放设备804以包括第一音频内容842的一系列帧和/分组的形式从第一回放设备802接收(或以其他方式获得)处理后的第一音频内容842相同的方式,以包括第一音频内容942的一系列帧和/或分组的形式从第一回放设备902接收(或以其他方式获得)处理后的第一音频内容942,(ii)以与示例800(图8)中第二回放设备804从第一回放设备802接收(或以其他方式获得)第一回放定时844相同的方式,从第一回放设备902接收(或以其他方式获得)第一回放定时944,(iii)从第一回放设备902接收(或以其他方式获得)时钟定时910,以及(iv)使用时钟定时910和第一回放定时944与第一回放设备902彼此同步地播放第一音频内容942。

在播放包括第一音频内容942的部分的个别帧(或分组)之前,第二回放设备904和第三回放设备906均相对于从第一回放设备902接收到的时钟定时910计算其自身的“定时偏移”值。具体地,第二回放设备904计算(或以其他方式确定)与(a)第一回放设备902用来生成时钟定时910和第一回放定时944的第一回放设备902处的“参考”时钟和(b)第二回放设备904用来播放第一音频内容942的第二回放设备904处的“本地”时钟之间的差相对应的“定时偏移”。并且,第三回放设备906计算(或以其他方式确定)与(a)第一回放设备902用于生成时钟定时910和第一回放定时944的第一回放设备902处的“参考”时钟和(b)第三回放设备906用于播放第一音频内容942的第三回放设备906处的“本地”时钟之间的差相对应的“定时偏移”。

因为第二回放设备904和第三回放设备906处的本地时钟可以具有不同的时间和/或以略微不同的时钟速率进行操作,所以第二回放设备904确定并用来播放第一音频内容942的“定时偏移”可以与第三回放设备906确定和用来播放第一音频内容942的“定时偏移”不同。然而,第二回放设备904和第三回放设备906所使用的“定时偏移”不必须不同;如果第二回放设备904和第三回放设备906处的本地时钟恰好具有相同(或基本上相同)的时间和/或以相同(或基本上相同)的时钟速率操作,则“定时偏移”可以相同。在回放设备在回放过程期间计算和重新计算“定时偏移”的实施例中,可以存在时间帧,在该时间帧期间,第二回放设备904和第三回放设备906两者独立地确定和使用其“定时偏移”的相同值,但是在其他时间帧期间,第二回放设备904和第三回放没备906独立地确定和使用其“定时偏移”的不同值。

第二回放设备904和第三回放设备906均使用其确定的“定时偏移”值和第一回放定时944来播放第一音频内容942。

在操作中,第二回放设备904通过将其确定的“定时偏移”添加到从第一回放设备902接收到的每个帧(或分组)的回放时间,来生成包括第一音频内容942的个别帧(或分组)的新回放定时(特定于第二回放设备904)。通过这种方法,第二回放设备904将从第一回放设备902接收到的第一音频内容942的第一回放定时944转换为第二回放设备904的“本地”回放定时。并且当第二回放设备904用来回放第一音频内容942的“本地”时钟达到所确定的个别帧(或分组)的“本地”回放时间时,第二回放设备904播放与该个别帧(或分组)相关联的音频内容(或其部分)。

类似地,第三回放设备906通过将其确定的“定时偏移”添加到从第一回放设备902接收到的每个帧(或分组)的回放时间,来生成包括第一音频内容942的个别帧(或分组)的新回放定时(特定于第三回放设备906)。通过这种方法,第三回放设备906将从第一回放设备902接收到的第一音频内容942的第一回放定时944转换为第三回放设备906的“本地”回放定时。并且当第三回放设备906正用来回放第一音频内容942的“本地”时钟达到所确定的个别帧(或分组)的“本地”回放时间时,第三回放设备906播放与该个别帧(或分组)相关联的音频内容(或其部分)。

因为第一回放设备902根据第一回放定时944播放包括第一音频内容942的部分的帧(或分组),并且因为第二回放设备904和第三回放设备906均根据(由它们各自的“定时偏移”值调整的)第一回放定时944播放包括第一音频内容942的相同部分的那些相同帧(或分组),第一回放设备902、第二回放设备904和第三回放设备906都同步地(即,同时或基本上同时)播放包括第一音频内容942的相同部分的相同帧(或分组)。

当第一回放设备902、第二回放设备904和第三回放设备906正在同步播放第一音频内容942时,第二回放没备904从第二音频源960接收(或以其他方式获得)第二音频内容962,以在回放设备902、904和906正在同步地回放第一音频内容942的同时,由回放设备902、904和906同步地回放。

第二回放设备904根据本文公开和描述的任何音频处理方法,处理所接收到的第二音频内容962,以生成包括第二音频内容962的部分的一系列帧和/或分组。第二回放设备904还(i)基于从第一回放设备902接收到的时钟定时910生成第二音频内容962的第二回放定时964,并且(ii)向第一回放设备902和第三回放设备906发送所生成的第二回放定时964。因此,在这种场景中,第二回放设备904利用来自远程时钟的时钟定时(即,来自第一回放设备902处的“远程”时钟而不是第二回放设备904处的“本地”时钟的时钟定时910)生成回放定时。

在操作中,第二回放设备904基于以下各项生成第二音频内容962的第二回放定时964:(i)以下两者之间的“定时偏移”:(a)第二回放设备904用来生成第二音频内容962的第二回放定时964的第二回放设备904处的本地时钟,以及(b)第二回放设备904从第一回放设备902接收到的时钟定时910;以及(ii)基于大于或等于以下两者之和的时间量的“定时提前”:(a)从第二回放设备904发送的分组到达第一回放设备902所需的网络传输时间,以及(b)第一回放设备902处理从第二回放设备904接收到的用于回放的分组所需的时间量。如上所述,相对于参考时钟时间,帧或分组的回放定时对应于要播放帧(或分组)中的音频内容的将来时间。在这种情况下,参考时钟时间是第一回放设备902用来生成时钟定时910的第一回放设备902处的“远程”时钟的时钟时间,并且第一回放设备902向第二回放设备904和第三回放设备906发送该时钟时间。

在一些实施例中,第二回放设备904使用与第二回放设备904用来基于第一音频内容942的第一回放定时944创建“本地”回放定时相同的“定时偏移”来生成第二音频内容962的第二回放定时964。如上所述,“定时偏移”对应于(a)第一回放设备902用来生成第一回放定时944和时钟定时910的第一回放没备902的“远程”参考时钟和(b)第二回放设备904用来播放第一音频内容942的第二回放设备904的第二回放设备904的本地时钟之间的差。

在一些实施例中,第二回放设备904用来生成第二音频内容962的第二回放定时964的“定时提前”与第一回放设备902用来生成第一音频内容942的第一回放定时944的“定时提前”相同。在许多情况下,预先确定的用来生成第一音频内容942的第一回放定时944的第一回放设备902的“定时提前”足以供第二回放设备904在生成第二音频内容962的第二回放定时964时使用。在这种情况下,第一回放设备902向第二回放设备904提供“定时提前”信息。

但是在一些实施例中,第二回放设备904用来生成第二回放定时964的“定时提前”与第一回放设备902用来生成第一回放定时944的“定时提前”不同。例如,在一些实施例中,第二回放设备904分别确定以下中的一个或两者:(i)从第二回放设备904发送的分组到达第一回放设备902和/或第三回放设备906所需的网络传输时间,和/或(ii)第一回放设备902和/或第三回放设备906进行后续处理的时间。在一些实施例中,第二回放设备904经由第二回放设备804与第一回放设备902和/或第三回放设备906中的一个或两者之间的信令来确定其用来生成第二回放定时964的“定时提前”。在一些实施例中,第一回放设备904和第二回放设备906中的一个或两者所使用的“定时提前”是预定的并且是固定的。

如上所述,第二回放设备904使用“定时偏移”和“定时提前”两者来生成第二音频内容962的第二回放定时964。对于包含第二音频内容962的部分的个别帧(或分组),第二回放设备904通过将“定时偏移”和“定时提前”之和添加到第二回放设备904用来生成第二回放定时964的第二回放设备904处的本地时钟的当前时间来生成该个别帧(或分组)的第二回放定时964。在操作中,“定时偏移”可以是正偏移或负偏移,这取决于第二回放设备904处的本地时钟是在用来生成时钟定时910的第一回放设备902处的“远程”参考时钟之前还是之后。并且,“定时提前”是正数,因为它对应于回放设备要播放音频内容的将来时间。

通过将“定时提前”和“定时偏移”之和添加到第二回放设备904用来生成第二回放定时964的第二回放设备904处的本地时钟的当前时间,第二回放设备904实际上相对于第一回放设备902的参考时钟生成第二回放定时964,第一回放设备902使用该参考时钟生成时钟定时910,第一回放设备902向第二回放设备904和第三回放设备906两者发送该时钟定时910。并且,在生成第二回放定时964之后,第二回放设备904向第一回放设备902和第三回放设备906两者发送第二回放定时964。

在这种场景中,第一回放设备902使用“远程”回放定时(即,由第二回放设备904生成的第二回放定时964)和“本地”时钟定时910(即,由第一回放设备902生成)与第二回放设备904和第三回放设备906同步地播放第二音频内容962。在操作中,第一回放设备902以与在示例800中第一回放设备802基于第二回放定时854和时钟定时810播放第二音频内容852相同的方式,基于第二回放定时964和时钟定时910播放第二音频内容962。

第二回放设备904使用“本地”回放定时(即,由第二回放设备904生成的第二回放定时964)和“远程”时钟定时910(即,由第一回放设备902生成)与第一回放设备902和第三回放设备906同步地播放第二音频内容962。在操作中,第二回放设备904以与在示例800中第二回放设备804基于第二回放定时854和时钟定时810播放第二音频内容852相同的方式,基于第二回放定时964和时钟定时910播放第二音频内容962。备选地,在一些实施例中,代替使用第二回放定时964播放第二音频内容962,第二回放设备904可以替代地以与在示例800的备选实施例中第二回放设备804生成并使用“特定于设备”的回放定时来播放第二音频内容852相同的方式,生成并使用“特定于设备”的回放定时来播放第二音频内容962。

并且,第三回放设备906使用“远程”回放定时(即,由第二回放设备904生成的第二回放定时964)和“远程”时钟定时910(即,由第一回放设备902生成)与第一回放设备902和第二回放设备904同步地播放第二音频内容962。在操作中,为了与第一回放没备902和第二回放设备904同步地播放第二音频内容962的个别帧(或分组),第三回放设备906将其先前确定的“定时偏移”添加到该个别帧(或分组)的第二回放定时964,以生成用于播放该个别帧(或分组)内的第二音频内容852的部分的“本地”回放时间。回想一下,基于第三回放设备906处的“本地”时钟是在回放设备902用来生成时钟定时910的第一回放设备902处的“参考”时钟之前还是之后,第三回放设备906的“定时偏移”可以为正或负。

在生成用于播放个别帧(或分组)内的第二音频内容962的部分的“本地”回放时间之后,当第三回放设备906用来播放第二音频内容962的第三回放设备906处的本地时钟达到该个别帧(或分组)的“本地”回放时间时,第三回放设备906播放个别帧(或分组)中的第二音频内容962的部分。

因为第一回放设备902根据第二回放定时964(其基于第二回放设备的“定时偏移”,该“定时偏移”基于时钟定时910,该时钟定时910基于第一回放设备902处的“参考”时钟)播放包括第二音频内容962的部分的帧(或分组),并且因为第二回放设备804和第三回放设备906均根据由其各自的“定时偏移”值(其也基于时钟定时910)调整的第二回放定时964来播放包括第二音频内容962的部分的相同帧(或分组),第一回放设备902、第二回放设备904和第三回放设备906都同步地(即,同时或基本上同时)播放包括第二音频内容962的相同部分的相同帧(或分组)。

d.第一回放设备单独地播放来自第一源的第一内容,同时与第二回放设备同步地播放由第二回放设备从第二源获取的第二内容

图10示出了根据一些实施例的播放来自多个源的音频内容的两个回放设备的示例配置1000。

图10中的配置1000包括第一回放设备1002、第二回放设备1004、第一音频源1040和第二音频源1060。配置1000中所示的箭头指示定时信息和媒体内容的信号流。

回放设备1002和1004与本文示出和描述的其他回放设备相同或相似。在一些实施例中,一个或多个回放设备1002和1004是联网的麦克风设备或包括联网的麦克风设备。

配置1000在大多数实质性方面与前述示例相似,除了第一回放设备1002被配置为单独地而不是与另一个回放设备(例如,回放设备1004)同步地播放来自第一音频源1040的第一音频内容1042。但是第一回放设备1002和第二回放设备1004被配置为彼此同步地播放来自第二音频源1060的第二音频内容1062。

对于第一音频内容1042,第一回放设备1002从第一音频源1040接收(或以其他方式获得)第一音频内容1042。第一回放设备1002可以执行本文所述的一些或全部音频内容处理,包括但不一定限于(i)生成包括第一音频内容1042的一系列帧和/或分组,(ii)生成第一音频内容1042的回放定时,以及(iii)基于第一回放设备1002处的本地时钟和回放定时来播放第一音频内容1042。但是,因为第一回放设备1002单独地(而不是与一个或多个其他回放设备同步地)播放第一音频内容1042,所以第一回放设备1002不需要执行本文描述的音频内容处理以用于同步回放。第一回放设备1002还向第二回放设备1004发送其时钟定时1010。

在一些实施例中,第二回放设备1004使用第一回放设备1002的时钟定时1010来生成第二回放设备1004获取的音频内容的回放定时,类似于在示例800中第二回放设备804如何使用第一回放设备802的时钟定时810来生成第二音频内容852的第二回放定时854。

但是在一些实施例中,并且在图10的示例1000中,第二回放设备1004使用第一回放设备1002的时钟定时1010作为参考来生成其自身的时钟定时1012,第二回放设备1004将(i)向其他回放设备发送该时钟定时1012,以及(ii)将该时钟定时1012用于生成回放定时。

在操作中,第二回放设备1004从第一回放设备1002接收时钟定时1010。然后,第二回放设备1004以与先前示例中所述相同的方式,基于来自第一回放设备1002的时钟定时1010所指示的时钟时间之间的差来计算“定时偏移”。

第二回放设备1004使用所确定的“定时偏移”来生成其自身的时钟定时1012。在操作中,第二回放设备1004将“定时偏移”(其可以为正或负)添加到第二回放设备1004处的本地时钟,第二回放设备1004将使用该本地时钟来生成其自身的时钟定时1012。以这种方式,第二回放设备1004生成的时钟定时1012至少部分地基于从第一回放设备1002接收的时钟定时1010。

当第一回放设备1002正在单独地播放第一音频内容1042时,第二回放设备1004从第二音频源1060接收(或以其他方式获得)第二音频内容1062。第二回放设备1004处理所接收到的第二音频内容1062,以生成包括第二音频内容1060的部分的一系列帧和/或分组。

在示例配置1000中,第一回放设备1002使用时钟定时1012(从时钟定时1010派生)来生成第二音频内容1062的第二回放定时1064。在一些实施例中,第二回放设备1004通过将“定时提前”添加到以下两者之和来生成第二音频内容1062的第二回放定时1064:(i)第二回放设备1004用来生成时钟定时1012的第二回放设备1004处的本地时钟的当前时间,以及(ii)先前确定的“定时偏移”。如上所述,相对于参考时钟时间,帧或分组的回放定时对应于要播放帧(或分组)中的音频内容的将来时间。在操作中,可以根据本文所述的用于确定“定时提前”的任何方法来确定“定时提前”。

第二回放设备1004(i)向第一回放设备1002发送第二音频内容1062、第二回放定时1064和时钟定时1012,并且(ii)与第一回放设备1002同步地播放第二音频内容1062。

为了彼此同步地回放第二音频内容1062,第一回放设备1002使用“远程”回放定时(即,由第二回放设备1004生成的第二回放定时1064)和“远程”时钟定时1012(即,由第二回放设备1004生成)来播放第二音频内容1062,而第二回放设备1004使用“本地”回放定时(即,由第二回放设备1004生成的第二回放定时1064)和“本地”时钟定时1012(即,由第二回放设备1004生成)来播放第二音频内容1062。

考虑到“定时偏移”,当第一回放设备1002用来播放第二音频内容1062的本地时钟的当前时间(在第一回放设备1002处)到达该帧(或分组)的第二回放定时1064时,第一回放设备1002播放每个帧(或分组)中的第二音频内容1062。该“定时偏移”对应于以下两者之间的差:(a)第一回放设备1002从第二回放设备1004接收的第二回放设备1004的时钟定时1012,以及(b)第一回放设备1002的时钟定时1010。

具体地,第一回放设备1002通过将“定时偏移”添加到从第二回放设备1004接收到的每个帧(或分组)的回放时间来生成第二音频内容1062的各个帧(或分组)的新回放定时(特定于第一回放设备1002)。通过这种方法,第一回放设备1002将从第二回放设备1004接收到的第二音频内容1062的第二回放定时1064转换为第一回放设备1002的“本地”回放定时。并且当第一回放设备1002用来回放第二音频内容1062的“本地”时钟达到所确定的个别帧(或分组)的“本地”回放时间时,第一回放设备1002播放与该个别帧(或分组)相关联的音频内容(或其部分)。在一些实施例中,生成“本地”回放定时有效地移除了第二回放设备1004添加到第二回放设备1004的本地时钟的“定时偏移”,以生成第二回放设备1004的时钟定时1012。

当第二回放设备1004用来生成第二回放定时1064的第二回放设备1004处的本地时钟达到该个别帧(或分组)的回放定时1064中指定的时间时,第二回放设备1004播放包括第二音频内容1062的部分的个别帧(或分组)。因此,与在回放设备基于本地生成的时钟定时和回放定时播放音频内容的其他场景中一样,如果个别帧的定时提前为例如30毫秒,则第二回放设备1004在创建该个别帧(或分组)的回放定时1064之后30毫秒时最终播放个别帧(或分组)中的第二音频内容1062的部分(例如,样本或样本集)。

因为第一回放设备1002根据第二回放定时1064和定时偏移播放包括第二音频内容1062的部分的帧(或分组),并且因为第二回放设备1004根据第二回放定时1064播放包括第二音频内容1062的部分的相同帧(或分组),第一回放设备1002和第二回放设备1004同步地或者同时或至少基本上同时地播放包括第二音频内容1062的相同部分的相同帧(或分组)。

e.多个回放设备播放来源于多个音频源的音频内容

图11a示出了根据一些实施例的播放来自多个源的音频内容的四个回放设备的示例配置1100。

图11a包括第一回放设备1102、第二回放设备1104、第三回放设备1106和第四回放设备1108。配置1100中所示的箭头指示定时信息和媒体内容的信号流。

回放设备1102、1104、1106和1108与本文示出和描述的回放设备相同或相似。在一些实施例中,一个或多个(或全部)回放设备1102、1104、1106和1108是联网的麦克风设备或包括联网的麦克风设备。在一些实施例中,回放设备1102、1104、1106和1108中的一个或多个(或全部)包括音频混合器组件(在软件、硬件、固件或者软件、硬件或固件中的一个或多个的某种组合中),该音频混合器组件允许回放设备同时播放多个音频内容流。

在初始状态下,在示例1100中,第一回放设备1102(i)从第一音频源1140接收(或以其他方式获得)第一音频内容1142;并且(ii)单独地播放第一音频内容1142,即,与示例1100中的任何其他回放设备不同步。并且,第二回放设备1104从第二音频源1160接收(或以其他方式获得)第二音频内容1162;并且(ii)单独地播放第二音频内容1162,即,与示例1100中的任何其他回放设备不同步。至少在该初始状态下,第三回放设备1106和第四回放设备1108均不接收或播放任何音频内容。

之后,并且在初始状态时(其中,第三回放设备1106和第四回放设备1108没有播放任何内容,并且第一回放设备1102和第二回放设备1104分别单独地播放第一音频内容1142和第二音频内容1164),第二回放设备1104从第三音频源1170接收(或以其他方式获得)第三音频内容1172。回放设备1102、1104、1106和1108被配置为同步地播放该第三音频内容1172。

在接收到第三音频内容1172的至少一部分之后,第二回放设备1104以与本文描述的回放设备接收和处理音频内容的任何方式相同或相似的方式处理第三音频内容1172并生成一系列帧(或分组),其中,各个帧(或分组)包括第三音频内容1172的一个或多个部分。

第二回放设备1104还利用来自本地时钟的时钟定时1110生成回放定时。在一些实施例中,与此处的初始状态一样,当回放设备的集合当前不在一起同步播放音频内容的过程中时,一个或多个回放设备确定哪个回放设备将提供用于同步回放的时钟定时。在一些实施例中,网络中具有最低mac地址的回放设备可以是用于提供时钟定时的默认回放设备,该回放设备可以保持时钟定时源,除非并且直到出于某种原因将时钟定时源角色更改为另一个回放设备。在其他实施例中,在网络中没有回放设备当前正在同步播放音频内容的情况下,当源回放设备接收到用于同步回放的新音频内容时,该源回放设备成为网络的时钟定时源。在一些实施例中,该源设备可以保持时钟定时源,除非并且直到另一个回放设备接管网络中的时钟定时源角色。例如,如果(或当)执行时钟定时源角色的回放设备变得无法提供可靠的时钟定时,则可能会发生这种情况。如果(或当)执行时钟定时源角色的回放设备正用来提供时钟定时的时钟变得不稳定(例如,漂移太远+/-某个阈值),或者如果网络拓扑以将该回放设备置于网络拓扑的边缘的方式发生了变化,从而导致其他回放设备具有与如果不同的更多位于中央位置的回放设备用作时钟定时源的情况相比的不受欢迎的大“定时偏移”,则可能出现这样的情况。

在一些实施例中,网络中的一个或多个回放设备可以确定哪个回放设备(也许还有其他计算设备)应该执行向网络提供时钟定时的角色。在操作中,一个或多个回放设备,单独地或与另一个计算设备或系统(例如,先前描述的云计算系统)结合地,可以确定在每个回放设备和每个其他回放设备之间的网络传输时间(例如,经由源-目的地ping或其他互联网控制消息传输协议(icmp)或类似的消息传输),然后指定具有最佳传输时间性能的回放设备(即,到每一个其他回放没备的具有最短传输时间的回放没备)。并且,由于回放没备中的任何一个(和至少一些其他计算设备)都可以为网络提供时钟定时,因此回放设备,单独地或与另一个计算设备或系统(例如,先前描述的云计算系统)结合地,可以取消将一个回放设备指定为时钟定时源,并指定不同的回放设备作为时钟定时源。在操作中,这可能会随着网络拓扑、回放设备性能和/或网络负载的变化而持续发生。

在此,第二回放设备1104为网络提供时钟定时1110。第二回放设备1104通过将“定时提前”添加到第二回放设备1104用来生成第三音频内容1172的回放定时1174的本地参考时钟(其与第二回放设备1104用来生成时钟定时1110的本地时钟相同)的当前时钟时间来生成第三音频内容1172的回放定时1174。如上所述,相对于参考时钟时间,帧或分组的回放定时对应于要播放帧(或分组)中的音频内容的将来时间。

在操作中,第二回放设备1104根据本文公开的用于生成定时提前的任何方法确定“定时提前”以用于生成回放定时1174。在一些实施例中,第二回放设备1104添加到其本地时钟定时1110以生成回放定时1174的将来时间的定时提前基于大于或等于以下两者之和的时间量:(i)从第二回放设备1104发送的分组到达第一回放设备1102、第三回放设备1106和/或第四回放设备1108中的一个或多个所需的网络传输时间,以及(ii)第一回放设备1102、第三回放设备1106和/或第四回放设备1108中的一个或多个处理所接收到的用于回放的分组所需的时间量。

然后,第二回放设备1104(i)向第一回放设备1102、第三回放设备1106和第四回放设备1108发送第三音频内容1172、回放定时1174和时钟定时1110,并且(ii)与第一回放设备1102、第三回放设备1106和第四回放设备1108同步地播放第三音频内容1172,同时还单独地播放第二音频内容1162。

第二回放设备1104使用本地生成的回放定时(即,回放定时1174)和本地生成的时钟定时(即,时钟定时1110)来播放第三音频内容1172。在操作中,当用来生成回放定时1174的第二回放设备1104处的本地时钟达到个别帧(或分组)的回放定时1174指定的时间时,第二回放设备1104(在单独地播放第二音频内容1162的至少一部分的同时)播放包括第三音频内容1172的部分的个别帧(或分组)。

在从第二回放设备1104接收到第三音频内容1172、回放定时1174和时钟定时1110之后,其他回放设备1102、1106和1108均相对于第三音频内容1172执行相同的功能。在操作中,回放设备1102、1106和1108均使用远程回放定时(即,由第二回放设备1104生成的回放定时1174)和远程时钟定时(即,由第二回放设备1104生成的时钟定时1110)来播放第三音频内容1172。

具体地,回放设备1102、1106和1108均(i)以包括第三音频内容1172的一系列帧和/或分组的形式,从第二回放设备1104接收(或以其他方式获得)处理后的第三音频内容1172,(ii)从第二回放设备1104接收(或以其他方式获得)回放定时1174,(iii)从第二回放设备1104接收(或以其他方式获得)时钟定时1110,并且(iv)使用时钟定时1110和回放定时1174来彼此同步地并且与第二回放设备1104同步地播放第三音频内容1172。

在播放包括第三音频内容1172的部分的个别帧(或分组)之前,回放设备1102、1106和1108均相对于从第二回放设备1104接收到的时钟定时1110计算其自身的“定时偏移”值。具体地,第一回放设备1102计算(或以其他方式确定)与(a)第二回放设备1104用来生成时钟定时1110和回放定时1174的第二回放设备1104处的“参考”时钟和(b)第一回放设备1102用来播放第三音频内容1172的第一回放设备1002处的“本地”时钟之间的差相对应的“定时偏移”。第三回放设备1106计算(或以其他方式确定)与(a)第二回放设备1104用来生成时钟定时1110和回放定时1174的第二回放设备1104处的“参考”时钟和(b)第三回放设备1106用来播放第三音频内容1172的第三回放设备1106处的“本地”时钟之间的差相对应的“定时偏移”。并且,第四回放设备1108计算(或以其他方式确定)与(a)第二回放设备1104用来生成时钟定时1110和回放定时1174的第二回放设备1104处的“参考”时钟和(b)第四回放设备1108用来播放第三音频内容1172的第四回放设备1108处的“本地”时钟之间的差相对应的“定时偏移”。

因为回放设备1102、1106和1108处的本地时钟可以具有不同的时间和/或以略微不同的时钟速率进行操作,所以回放设备1102、1106和1108中的每一个确定和用来播放第三音频内容1172的的个别“定时偏移”值可以彼此不同。然而,回放设备1102、1106和1108所使用的“定时偏移”不必须不同。如果回放设备1102、1106和1108处的本地时钟恰好具有相同(或基本上相同)的时间和/或以相同(或基本上相同)的时钟速率操作,则“定时偏移”可以相同。在回放设备在回放过程期间计算和重新计算“定时偏移”的实施例中,可以存在时间帧,在该时间帧期间,回放设备1102、1106和1108均独立地确定和使用其“定时偏移”的相同值,但是在其他时间帧期间,回放设备1102、1106和1108均独立地确定和使用其“定时偏移”的不同值。

回放设备1102、1106和1108均使用其确定的“定时偏移”值和回放定时1174来播放第三音频内容1172。

第一回放设备1102(在单独地播放第一音频内容1142的至少一部分的同时)通过将其确定的“定时偏移”添加到从第二回放设备1104接收到的每个帧(或分组)的回放时间,来生成包括第三音频内容1172的个别帧(或分组)的新回放定时(特定于第一回放设备1102)。通过这种方法,第一回放设备1102将从第二回放设备1104接收到的第三音频内容1172的回放定时1174转换为第一回放设备1102的“本地”回放定时。并且当第一回放设备1102用来回放第三音频内容1172的“本地”时钟达到所确定的个别帧(或分组)的“本地”回放时间时,第一回放设备1102播放与该个别帧(或分组)相关联的音频内容(或其部分)。

类似地,第三回放设备1106通过将其确定的“定时偏移”添加到从第二回放设备1104接收到的每个帧(或分组)的回放时间,来生成包括第三音频内容1172的个别帧(或分组)的新回放定时(特定于第三回放设备1106)。通过这种方法,第三回放设备1106将从第二回放设备1104接收到的第三音频内容1172的回放定时1174转换为第三回放没备1106的“本地”回放定时。并且当第三回放设备1106用来回放第三音频内容1172的“本地”时钟达到所确定的个别帧(或分组)的“本地”回放时间时,第三回放设备1106播放与该个别帧(或分组)相关联的音频内容(或其部分)。

并且,第四回放设备1108通过将其确定的“定时偏移”添加到从第二回放设备1104接收到的每个帧(或分组)的回放时间,来生成包括第三音频内容1172的个别帧(或分组)的新回放定时(特定于第四回放设备1108)。通过这种方法,第四回放设备1108将从第二回放设备1104接收到的第三音频内容1172的回放定时1174转换为第四回放设备1108的“本地”回放定时。并且当第四回放设备1108用来回放第三音频内容1172的“本地”时钟达到所确定的个别帧(或分组)的“本地”回放时间时,第四回放设备1108播放与该个别帧(或分组)相关联的音频内容(或其部分)。

因为第二回放设备1104根据回放定时1174播放包括第三音频内容1172的部分的帧(或分组),并且因为其他回放设备1102、1106和1108中的每一个根据(由它们各自的“定时偏移”值调整的)回放定时1174播放包括第三音频内容1172的相同部分的那些相同帧(或分组),第一回放设备1102、第二回放设备1104、第三回放设备1106和第四回放设备1108都同步地(即,同时或基本上同时)播放包括第三音频内容1172的相同部分的相同帧(或分组)。

图11b示出了根据一些实施例的播放来自多个源的音频内容的四个回放设备的备选示例配置1150。

除了第四回放设备1108生成并提供所有回放设备1102、1104、1106和1108的时钟定时1112,而不是第二回放设备1104提供所有回放设备1102、1104、1106和1108的时钟定时1110之外,示例配置1150在大多数实质性方面与示例配置1100相同。

在初始状态下,在示例1150中,第一回放设备1102(i)从第一音频源1140接收(或以其他方式获得)第一音频内容1142;并且(ii)单独地播放第一音频内容1142,即,与任何其他回放设备不同步。并且,第二回放设备1104从第二音频源1160接收(或以其他方式获得)第二音频内容1162;并且(ii)单独地播放第二音频内容1162,即,与示例1100中的任何其他回放设备不同步。至少在该初始状态下,第三回放设备1106和第四回放设备1108均不接收或播放任何音频内容。

之后,并且在初始状态时(其中,第三回放设备1106和第四回放设备1108没有播放任何内容,并且第一回放设备1102和第二回放设备1104分别单独地播放第一音频内容1142和第二音频内容1164),第二回放设备1104从第三音频源1170接收(或以其他方式获得)第三音频内容1172。回放设备1102、1104、1106和1108被配置为同步地播放该第三音频内容1172。

在接收到第三音频内容1172的至少一部分之后,第二回放设备1104处理第三音频内容1172并生成一系列帧(或分组),其中,各个帧(或分组)包括第三音频内容1172的一个或多个部分。

第二回放设备1104还利用来自远程时钟(而不是如示例1100中的本地时钟)的时钟定时1112来生成第三音频内容1172的回放定时。在操作中,第二回放设备1104基于以下各项生成回放定时1174:(i)以下两者之间的“定时偏移”:(a)第二回放设备1104用来生成第三音频内容1172的回放定时1174的第二回放设备1104处的本地时钟,以及(b)第二回放设备1104从第四回放设备1108接收到的时钟定时1112;以及(ii)基于大于或等于以下两者之和的时间量的“定时提前”:(a)从第二回放设备1104发送的分组到达其他回放设备1102、1106和1108中的一个或多个所需的网络传输时间,以及(b)其他回放设备1102、1106和1108中的一个或多个处理从第二回放设备1104接收到的用于回放的分组所需的时间量。如上所述,相对于参考时钟时间,帧或分组的回放定时对应于要播放帧(或分组)中的音频内容的将来时间。在这种情况下,参考时钟时间是第四回放设备1108用来生成时钟定时1112的第四回放设备1108处的“远程”时钟的时钟时间。第四回放设备1108向其他回放设备1102、1106和1108发送该时钟定时1112。

如上所述,第二回放设备1104使用“定时偏移”和“定时提前”两者来生成第三音频内容1172的回放定时1174。对于包含第三音频内容1172的部分的个别帧(或分组),第二回放设备1104通过将“定时偏移”和“定时提前”之和添加到第二回放设备1104用来生成回放定时1174的第二回放设备1104处的本地时钟的当前时间来生成该个别帧(或分组)的回放定时。在操作中,“定时偏移”可以是正偏移或负偏移,这取决于第二回放设备1104处的本地时钟是在用来生成时钟定时1112的第四回放设备1108处的“远程”参考时钟之前还是之后。并且,“定时提前”是正数,因为它对应于回放设备要播放音频内容的将来时间。

通过将“定时提前”和“定时偏移”之和添加到第二回放设备1104用来生成回放定时1174的第二回放设备1104处的本地时钟的当前时间,第二回放设备1104实际上相对于第四回放设备1108的参考时钟生成回放定时1174,第四回放设备1108使用该参考时钟来生成时钟定时1112,第四回放设备1108向第二回放设备1104发送该时钟定时1112。

在生成回放定时1174之后,并且在播放第二音频内容1162的至少一部分的同时,第二回放设备1104(i)向第一回放设备1102、第三回放设备1106和第四回放设备1108发送第三音频内容1172和回放定时1174,并且(ii)与第一回放设备1102、第三回放设备1106和第四回放设备1108同步地播放第三音频内容1172,同时还单独地播放第二音频内容1162。

第二回放设备1104使用本地生成的回放定时(即,回放定时1174)和远程时钟定时(即,时钟定时1112)来播放第三音频内容1172。

为了与其他回放设备1102、1106和1108同步地播放第三音频内容1172的个别帧(或分组),第二回放设备1104从该个别帧(或分组)的回放定时1174(其包括“定时偏移”和“定时提前”之和)减去“定时偏移”,以生成用于播放该个别帧(或分组)内的第三音频内容1172的部分的“本地”回放时间。

在生成用于播放个别帧(或分组)内的第三音频内容1172的部分的“本地”回放时间之后,当第二回放设备1104正在用来播放第三音频内容1172的第二回放设备1104处的本地时钟(其与第二回放设备1104用来生成回放定时1174的本地时钟相同)达到该个别帧(或分组)的“本地”回放时间时,第二回放设备1104播放个别帧(或分组)中的第三音频内容1172的部分。

备选地,在一些实施例中,代替使用回放定时1174播放第三音频内容1172,第二回放设备1104可以替代地以与在示例800的备选实施例中第二回放设备804生成并使用“特定于设备”的回放定时来播放第二音频内容852相同的方式,生成并使用“特定于设备”的回放定时来播放第三音频内容1172。

第一回放设备1102和第三回放设备1106均基于远程回放定时(即,由第二回放设备1104生成的回放定时1174)和远程时钟定时(即,从第四回放设备1108接收到的时钟定时1112)来播放第三音频内容1172。

具体地,第一回放设备1102和第三回放设备1106均(i)以包括第三音频内容1172的一系列帧和/或分组的形式,从第二回放设备1104接收(或以其他方式获得)处理后的第三音频内容1172,(ii)从第二回放设备1104接收(或以其他方式获得)回放定时1174,(iii)从第四回放设备1108接收(或以其他方式获得)时钟定时1112,并且(iv)使用时钟定时1112和回放定时1174来彼此同步地并且与第二回放设备和第四回放设备同步地播放第三音频内容1172。

在播放包括第三音频内容1172的部分的个别帧(或分组)之前,第一回放设备1102和第三回放设备1106均相对于从第四回放设备1108接收到的时钟定时1112计算其自身的“定时偏移”。具体地,第一回放设备1102计算(或以其他方式确定)与(a)第四回放设备1108用来生成时钟定时1112的第四回放设备1108处的“参考”时钟和(b)第一回放设备1102用来播放第三音频内容1172的第一回放设备1002处的“本地”时钟之间的差相对应的“定时偏移”。并且,第三回放设备1106计算(或以其他方式确定)与(a)第四回放设备1108用来生成时钟定时1112的第四回放设备1108处的“参考”时钟和(b)第三回放设备1106用来播放第三音频内容1172的第三回放设备1106处的“本地”时钟之间的差相对应的“定时偏移”。

因为第一回放设备1102和第三回放设备1106处的本地时钟可以具有不同的时间和/或以略微不同的时钟速率进行操作,所以第一回放设备1102和第三回放设备1106中的每一个确定和用来播放第三音频内容1172的个别“定时偏移”值可以彼此不同。然而,第一回放设备1102和第三回放设备1106所使用的“定时偏移”不必须不同;如果第一回放设备1102和第三回放设备1106处的本地时钟恰好具有相同(或基本上相同)的时间和/或以相同(或基本上相同)的时钟速率操作,则“定时偏移”可以相同。在回放设备在回放过程期间计算和重新计算“定时偏移”的实施例中,可以存在时间帧,在该时间帧期间,第一回放设备1102和第三回放设备1106均独立地确定和使用其“定时偏移”的相同值,但是在其他时间帧期间,第一回放设备1102和第三回放设备1106独立地确定和使用其“定时偏移”的不同值。

第一回放设备1102和第三回放设备1106均使用其确定的“定时偏移”值和回放定时1174来播放第三音频内容1172。

在操作中,第一回放设备1102(在播放第一音频内容1142的至少一部分的同时)通过将其确定的“定时偏移”添加到从第二回放设备1104接收到的每个帧(或分组)的回放时间,来生成包括第三音频内容1172的个别帧(或分组)的新回放定时(特定于第一回放设备1102)。通过这种方法,第一回放设备1102将从第二回放设备1104接收到的第三音频内容1172的回放定时1174转换为第一回放设备1102的“本地”回放定时。并且当第一回放设备1102用来回放第三音频内容1172的“本地”时钟达到所确定的个别帧(或分组)的“本地”回放时间时,第一回放设备1102播放与该个别帧(或分组)相关联的音频内容(或其部分)。

类似地,第三回放设备1106通过将其确定的“定时偏移”添加到从第二回放设备1104接收到的每个帧(或分组)的回放时间,来生成包括第三音频内容1172的个别帧(或分组)的新回放定时(特定于第三回放设备1106)。通过这种方法,第三回放设备1106将从第二回放设备1104接收到的第三音频内容1172的回放定时1174转换为第三回放设备1106的“本地”回放定时。并且当第三回放设备1106用来回放第三音频内容1172的“本地”时钟达到所确定的个别帧(或分组)的“本地”回放时间时,第三回放设备1106播放与该个别帧(或分组)相关联的音频内容(或其部分)。

第四回放设备1108基于远程回放定时(即,由第二回放设备1104生成的回放定时1174)和本地时钟定时(即,时钟定时1112)来播放第三音频内容1172。在操作中,第四回放设备1108(i)从第二回放设备1104接收包括第三音频内容1172的部分的帧(或分组),(ii)从第二回放设备1104接收第三音频内容1172的回放定时1174(例如,在包括第三音频内容1172的部分的帧和/或分组的帧和/或分组报头中,或者可能与包括第三音频内容1172的部分的帧和/或分组分开),并且(iii)当第四回放设备1108用于生成时钟定时1112的时钟达到个别帧(或分组)的回放定时1174中指定的回放时间时,播放该个别帧(或分组)中的第三音频内容1172的部分。因为第二回放设备1104在生成回放定时1174时使用了“定时偏移”(来自第四回放设备1108的时钟定时1112和第二回放设备1104的本地时钟之间的时间差),所以回放定时1174已经计及了第二回放设备1104处的定时和第四回放设备1108处的定时之间的差。

因为回放设备1102、1104、1106和1108中的每一个根据回放定时1174(在适当情况下通过其各自的“定时偏移”值进行调整,该“定时偏移”值从时钟定时1112派生)来播放包括第三音频内容1172的部分的帧(或分组),回放设备1102、1104、1106和1108都同步地(即,同时或基本上同时)播放包括第三音频内容1172的相同部分的相同帧(或分组)。

v.示例方法

图12示出了根据一些实施例的由回放设备执行的用于播放来自多个源的音频内容的示例方法1200。

方法1200开始于框1202,其包括:生成第一回放设备的第一时钟定时信息,其中,第一时钟定时信息包括第一回放设备的第一时钟时间。

接下来,方法1200前进到框1204,其包括:接收包括第二时钟时间的第二时钟定时信息。在一些实施例中,在框1204处接收包括第二时钟时间的第二时钟定时信息包括:从第二回放设备接收第二时钟定时信息。

接下来,方法1200前进到框1206,其包括:确定第一时钟时间和第二时钟时间之间的差。

在一些实施例中,在框1206处确定第一时钟时间和第二时钟时间之间的差包括:在现有基础上确定该差。

接下来,方法1200前进到框1208,其包括:从第一音频信息源接收第一音频信息。在一些实施例中,在框1208处从第一音频信息源接收第一音频信息包括:经由第二回放设备接收第一音频信息。

接下来,方法1200前进到框1210,其包括:接收指示何时播放第一音频信息的至少一部分的第一回放定时信息。在一些实施例中,在框1210处接收指示何时播放第一音频信息的至少一部分的第一回放定时信息包括:接收第一多个帧,其中,第一帧包括:(i)第一音频信息的一个或多个样本,以及(ii)用于播放第一帧的一个或多个样本的第一时间。

接下来,方法1200前进到框1212,其包括:基于(i)第一回放定时信息,(ii)第一时钟定时信息,以及(iii)第一时钟时间和第二时钟时间之间的差,与第二回放设备同步地播放第一音频信息。

在一些实施例中,对于音频信息的第一帧和/或分组,在框1212中基于(i)第一回放定时信息,(ii)第一时钟定时信息,以及(iii)第一时钟时间和第二回放时间之间的差,与第二回放设备同步地播放第一音频信息包括:(a)生成第一帧和/或分组的第一回放时间;以及(b)当第一回放设备的当前时钟时间等于第一回放时间时,播放第一帧和/或分组的一个或多个样本。

在一些实施例中,生成第一帧和/或分组的第一回放时间包括:将(i)用于播放第一音频信息的一个或多个样本的时间添加到(ii)第一时钟时间和第二时钟时间之间的差。

接下来,方法1200前进到框1214,其包括:与第二回放设备同步地播放第一音频信息时,接收第二音频信息,并响应于接收到第二音频信息,(i)基于第一时钟时间和第二时钟时间之间的差,生成第二回放定时信息,(ii)向第二回放设备发送第二音频信息和第二回放定时信息,并且(iii)基于第二回放定时信息和第一时钟定时信息,与第二回放设备同步地播放第二音频信息。

在一些实施例中,在框1214处与第二回放设备同步地播放第一音频信息包括:第一回放设备播放第一音频信息的第一声道,同时第二回放设备播放第一音频信息的第二声道。

在一些实施例中,在框1214处生成第二回放定时信息包括:生成第二多个帧和/或分组,其中,第二多个帧和/或分组中的第二帧和/或分组包括:(i)第二音频信息的一个或多个样本,以及(ii)用于播放第二帧和/或分组的一个或多个样本的第二时间,其中,第二时间基于第一时钟时间和第二时钟时间之间的差。

在一些实施例中,在框1214处与第二回放设备同步地播放第二音频信息,同时与第二回放设备同步地播放第一音频信息,包括:(i)基于以下各项与第二回放设备同步地播放第一音频信息:(a)第一回放定时信息,(b)第一时钟定时信息,以及(c)第一时钟时间和第二时钟时间之间的差;以及(ii)基于(a)第二回放定时信息和(b)第一时钟定时信息,与第二回放设备同步地播放第二音频信息。

在一些实施例中,在框1214处与第二回放设备同步地播放第一音频信息包括:基于(i)第一回放定时信息,(ii)第一时钟定时信息,以及(iii)第一时钟时间和第二时钟时间之间的差,与第二回放设备和第三回放设备同步地播放第一音频信息。

在一些实施例中,响应于接收到第二音频信息,第一回放设备附加地被配置为:(i)向第三回放设备发送第二音频信息和第二回放定时信息,并且(ii)基于第二回放定时信息和第一时钟定时信息,与第二回放设备和第三回放设备同步地播放第二音频信息。

并且在一些实施例中,响应于接收到第二音频信息,第一回放设备附加地被配置为:(i)向第三回放设备发送第二音频信息和第二回放定时信息,并且(ii)基于第二回放定时信息和第一时钟定时信息,与第二回放设备和第三回放没备同步地播放第二音频信息。

图13示出了根据一些实施例的由回放设备执行的用于播放来自多个源的音频内容的示例方法1300。

方法1300开始于框1302,其包括:生成第一回放设备的第一时钟定时信息,其中,第一时钟定时信息包括第一回放设备的第一时钟时间。

接下来,方法1300前进到框1304,其包括:从第一音频信息源接收第一音频信息。

接下来,方法1300前进到框1306,其包括:生成第一音频信息的第一回放定时信息,其中,第一回放定时信息指示何时播放第一音频信息的至少一部分。

在一些实施例中,在框1306处,生成第一音频信息的第一回放定时信息包括生成第一多个帧和/或分组,其中,第一多个帧和/或分组中的个别帧和/或分组包括:(i)第一音频信息的一个或多个样本,以及(ii)用于播放第一多个帧中的个别帧和/或分组的一个或多个样本的回放时间,其中,回放时间基于第一时钟定时信息。

接下来,方法1300前进到框1308,其包括:向第二回放设备发送第一音频信息、第一回放定时信息和第一时钟定时信息。

接下来,方法1300前进到框1310,其包括:基于(i)第一回放定时信息和(ii)第一时钟定时信息,与第二回放设备同步地播放第一音频信息。

接下来,方法1300前进到框1312,其包括:在与第二回放设备同步地播放第一音频信息的同时,(i)接收第二音频信息和第二音频信息的第二回放定时信息,其中,第二回放定时信息指示何时播放第二音频信息的至少一部分,以及(ii)基于第二回放定时信息和第一时钟定时信息,与第二回放设备同步地播放第二音频信息,其中,第二回放定时信息基于第一回放设备的第一时钟时间和第二回放设备的第二时钟时间之间的差。

在一些实施例中,在框1312处接收第二音频信息包括:经由第二回放设备接收第二音频信息。并且在一些实施例中,在框1312处接收第二音频信息的第二回放定时信息包括:从第二回放没备接收第二回放定时信息。

在一些实施例中,在框1312处接收第二音频信息的第二回放定时信息包括:接收第二多个帧和/或分组,其中,第二多个帧和/或分组中的个别帧和/或分组包括:(i)第二音频信息的一个或多个样本,以及(ii)用于播放第二多个帧和/或分组中的个别帧和/或分组的一个或多个样本的回放时间。

在一些实施例中,与第二回放设备同步地播放第一音频信息包括:第一回放设备播放第一音频信息的第一声道,而第二回放设备播放第一音频信息的第二声道。

在一些实施例中,在框1312处与第二回放设备同步地播放第二音频信息,同时与第二回放设备同步地播放第一音频信息,包括:(i)基于(a)第一回放定时信息和(b)第一时钟定时信息,与第二回放设备同步地播放第一音频信息;以及(ii)基于(a)第二回放定时信息和(b)第一时钟定时信息,与第二回放设备同步地播放第二音频信息。

在一些实施例中,在框1312处与第二回放设备同步地播放第二音频信息,同时与第二回放设备同步地播放第一音频信息,包括:(i)基于(a)第一回放定时信息和(b)第一时钟定时信息,与第二回放设备和第三回放设备同步地播放第一音频信息;以及(ii)基于(a)第二回放定时信息和(b)第一时钟定时信息,与第二回放设备和第三回放设备同步地播放第二音频信息。

vi.结论

以上关于回放设备、控制器设备、回放地区配置和媒体/音频内容源的讨论仅提供了操作环境的一些示例,在该操作环境中可以实现下面描述的功能和方法。本文未明确描述的媒体回放系统、回放设备和网络设备的配置和其他操作环境也可以适用且适于功能和方法的实现。

(特征1)一种第一回放设备,包括:(i)一个或多个处理器;以及(ii)有形的、非暂时性的计算机可读介质,其包括指令,所述指令当被执行时,使所述第一回放设备执行功能,所述功能包括:(i)生成所述第一回放设备的第一时钟定时信息,所述第一时钟定时信息包括所述第一回放设备的第一时钟时间;(ii)接收包括第二时钟时间的第二时钟定时信息;(iii)确定所述第一时钟时间和所述第二时钟时间之间的差;(iv)从第一音频信息源接收第一音频信息;(v)接收指示何时播放所述第一音频信息的至少一部分的第一回放定时信息;(vi)基于以下各项与第二回放设备同步地播放所述第一音频信息:(a)所述第一回放定时信息,(b)所述第一时钟定时信息,以及(c)所述第一时钟时间和所述第二时钟时间之间的差;以及(vii)在与所述第二回放设备同步地播放所述第一音频信息的同时,接收第二音频信息,并响应于接收到所述第二音频信息,(a)基于所述第一时钟时间和所述第二时钟时间之间的差,生成第二回放定时信息,(b)向所述第二回放设备发送所述第二音频信息和所述第二回放定时信息,并且(c)基于所述第二回放定时信息和所述第一时钟定时信息,与所述第二回放设备同步地播放所述第二音频信息。

(特征2)根据特征1所述的第一回放设备,其中,与所述第二回放设备同步地播放所述第一音频信息包括:所述第一回放设备播放所述第一音频信息的第一声道,而所述第二回放设备播放所述第一音频信息的第二声道。

(特征3)根据特征1所述的第一回放设备,其中,接收包括所述第二时钟时间的所述第二时钟定时信息包括:从所述第二回放设备接收所述第二时钟定时信息。

(特征4)根据特征1所述的第一回放设备,其中,从所述第一音频信息源接收所述第一音频信息包括:经由所述第二回放设备接收所述第一音频信息。

(特征5)根据特征1所述的第一回放设备,其中,接收指示何时播放所述第一音频信息的至少一部分的所述第一回放定时信息包括:接收第一多个帧,其中,第一帧包括:(i)所述第一音频信息的一个或多个样本,以及(ii)用于播放所述第一帧的所述一个或多个样本的第一时间。

(特征6)根据特征5所述的第一回放没备,其中,基于(i)所述第一回放定时信息,(ii)所述第一时钟定时信息,以及(iii)所述第一时钟时间和所述第二时钟时间之间的所述差,与所述第二回放设备同步地播放所述第一音频信息,包括:针对所述第一帧:(i)生成所述第一帧的第一回放时间;以及(ii)当所述第一回放设备的当前时钟时间等于所述第一回放时间时,播放所述第一帧的所述一个或多个样本。

(特征7)根据特征6所述的第一回放设备,其中,生成所述第一帧的所述第一回放时间包括:将(i)用于播放所述第一音频信息的所述一个或多个样本的时间添加到(ii)所述第一时钟时间和所述第二时钟时间之间的所述差。

(特征8)根据特征1所述的第一回放设备,其中,生成所述第二回放定时信息包括:生成第二多个帧,其中,所述第二多个帧中的第二帧包括:(i)所述第二音频信息的一个或多个样本,以及(ii)用于播放所述第二帧的所述一个或多个样本的第二时间,其中,所述第二时间基于所述第一时钟时间和所述第二时钟时间之间的差。

(特征9)根据特征8所述的第一回放设备,其中,与所述第二回放设备同步地播放所述第二音频信息,同时与所述第二回放设备同步地播放所述第一音频信息,包括:(i)基于以下各项与第二回放设备同步地播放第一音频信息:(a)第一回放定时信息,(b)第一时钟定时信息,以及(c)第一时钟时间和第二时钟时间之间的差;以及(ii)基于(a)所述第二回放定时信息和(b)所述第一时钟定时信息,与所述第二回放设备同步地播放所述第二音频信息。

(特征10)根据特征1所述的第一回放设备,其中,确定所述第一时钟时间和所述第二时钟时间之间的差包括:在现有基础上确定所述差。

(特征11)根据特征1所述的第一回放设备,其中,与所述第二回放设备同步地播放所述第一音频信息包括:基于(i)所述第一回放定时信息,(ii)所述第一时钟定时信息,以及(iii)所述第一时钟时间和所述第二时钟时间之间的差,与所述第二回放设备和第三回放设备同步地播放所述第一音频信息;并且其中,响应于接收到所述第二音频信息,所述第一回放设备附加地被配置为:(i)向所述第三回放设备发送所述第二音频信息和所述第二回放定时信息,并且(ii)基于所述第二回放定时信息和所述第一时钟定时信息,与所述第二回放设备和所述第三回放设备同步地播放所述第二音频信息。

(特征12)根据特征1所述的第一回放设备,其中,响应于接收到所述第二音频信息,所述第一回放设备附加地被配置为:(i)向第三回放设备发送所述第二音频信息和所述第二回放定时信息,并且(ii)基于所述第二回放定时信息和所述第一时钟定时信息,与所述第二回放设备和所述第三回放设备同步地播放所述第二音频信息。

(特征13)一种第一回放设备,包括:(i)一个或多个处理器;以及(ii)有形的、非暂时性的计算机可读介质,其包括指令,所述指令当被执行时,使所述第一回放设备执行功能,所述功能包括:(a)生成所述第一回放设备的第一时钟定时信息,所述第一时钟定时信息包括所述第一回放设备的第一时钟时间;(b)从第一音频信息源接收第一音频信息;(c)生成所述第一音频信息的第一回放定时信息,其中,所述第一回放定时信息指示何时播放所述第一音频信息的至少一部分;(d)向第二回放设备发送所述第一音频信息、所述第一回放定时信息和所述第一时钟定时信息;(e)基于(i)所述第一回放定时信息和(ii)所述第一时钟定时信息,与所述第二回放设备同步地播放所述第一音频信息;以及(f)在与所述第二回放设备同步地播放所述第一音频信息的同时,(i)接收第二音频信息和所述第二音频信息的第二回放定时信息,其中,所述第二回放定时信息指示何时播放所述第二音频信息的至少一部分,以及(ii)基于所述第二回放定时信息和所述第一时钟定时信息,与所述第二回放设备同步地播放所述第二音频信息,其中,所述第二回放定时信息基于所述第一回放设备的第一时钟时间和所述第二回放设备的第二时钟时间之间的差。

(特征14)根据特征13所述的第一回放设备,其中,与所述第二回放设备同步地播放所述第一音频信息包括:所述第一回放设备播放所述第一音频信息的第一声道,而所述第二回放设备播放所述第一音频信息的第二声道。

(特征15)根据特征13所述的第一回放设备,其中,接收所述第二音频信息包括:经由所述第二回放设备接收所述第二音频信息。

(特征16)根据特征13所述的第一回放设备,其中,接收所述第二音频信息的所述第二回放定时信息包括:从所述第二回放设备接收所述第二回放定时信息。

(特征17)根据特征13所述的第一回放设备,其中,生成所述第一音频信息的所述第一回放定时信息包括:生成第一多个帧,其中,所述第一多个帧中的个别帧包括(i)所述第一音频信息的一个或多个样本,以及(ii)用于播放所述第一多个帧的个别帧的所述一个或多个样本的回放时间,其中,所述回放时间基于所述第一时钟定时信息。

(特征18)根据特征1所述的第一回放设备,其中,接收所述第二音频信息的所述第二回放定时信息包括:接收第二多个帧,其中,所述第二多个帧中的个别帧包括(i)所述第二音频信息的一个或多个样本,以及(ii)用于播放所述第二多个帧的个别帧的所述一个或多个样本的回放时间。

(特征19)根据特征13所述的第一回放设备,其中,与所述第二回放设备同步地播放所述第二音频信息,同时与所述第二回放设备同步地播放所述第一音频信息,包括:(i)基于(a)第一回放定时信息和(b)第一时钟定时信息,与第二回放设备同步地播放第一音频信息;以及(ii)基于(a)所述第二回放定时信息和(b)所述第一时钟定时信息,与所述第二回放设备同步地播放所述第二音频信息。

(特征20)根据特征13所述的第一回放设备,其中,与所述第二回放设备同步地播放所述第二音频信息,同时与所述第二回放设备同步地播放所述第一音频信息,包括:(i)基于(a)所述第一回放定时信息和(b)所述第一时钟定时信息,与所述第二回放设备和第三回放设备同步地播放所述第一音频信息;以及(ii)基于(a)所述第二回放定时信息和(b)所述第一时钟定时信息,与所述第二回放设备和所述第三回放设备同步地播放所述第二音频信息。

以上描述尤其公开了各种示例系统、方法、装置和尤其包括在硬件上执行的固件和/或软件的制品。应当理解的是,这些示例仅是示意性的,而不应当被认为是限制性的。例如,可以想到,这些固件、硬件和/或软件方面或组件中的任意一个或全部可以专门在硬件中实现、专门在软件中实现、专门在固件中实现、或在硬件、软件和/或固件的任意组合中实现。因此,所提供的示例不是实现这些系统、方法、装置和/或制品的唯一方式。

此外,本文对“实施例”的提及意味着结合实施例描述的特定特征、结构或特性可以包括在本发明的至少一个示例性实施例中。在说明书中各处出现该短语不一定都指代相同的实施例,也不是与其他实施例互斥的分离的或备选的实施例。因此,本领域技术人员应当显式地和隐式地理解的是,本文所描述的实施例可以与其他实施例组合。

主要在说明性的环境、系统、过程、步骤、逻辑块、处理以及直接或间接地与耦合到网络的数据处理设备的操作相类似的其他象征性表示的方面上,提出本说明书。本领域技术人员通常使用这些处理描述和表示,以向本领域技术人员的其他技术人员传播他们的工作内容。阐述了各种具体细节,以提供本公开的透彻理解。然而,本领域技术人员应理解,不需要特定、具体细节就可以实施本公开。在其他实例中,没有描述熟知的方法、过程、组件和电路,以避免不必要地使实施例的方面模糊不清。因此,本公开的范围由所附权利要求而不是前述实施例的描述来界定。

当所附权利要求中的任一项权利要求被理解成涵盖纯软件和/或固件实现时,在此明确限定至少一个示例中的至少一个元素以包括存储软件和/或固件的非暂时性有形介质,如存储器、dvd、cd、蓝光等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1