提供节拍匹配的制作方法

文档序号:17923383发布日期:2019-06-15 00:15阅读:281来源:国知局
提供节拍匹配的制作方法

本申请是2013年10月10日提交的美国临时专利申请序列号61/914,326的非临时申请案并且要求该案的优先权权益。



背景技术:

社交网络系统通常使用户能够上传诸如照片、视频、音乐等媒体内容。社交网络系统还使用户能够彼此分享诸如视频等多种媒体内容。一些系统使用户能够将音乐曲目与视频一起播放。例如,在播放视频的同时,可以在后台播放音乐。



技术实现要素:

实施方式大体上涉及提供节拍匹配。在一些实施方式中,一种方法包括:确定至少一个声轨的节拍特征。该方法进一步包括:基于一个或多个选择标准来选择视频剪辑。该方法进一步包括:基于一个或多个节拍匹配策略来调节一个或者多个视频剪辑的长度。该方法进一步包括:将待播放的视频剪辑与至少一个声轨组合。

进一步关于该方法,在一些实施方式中,至少一个节拍特征包括:哪些节拍是音乐小节的第一节拍。在一些实施方式中,至少一个节拍特征包括节拍时间。在一些实施方式中,至少一个节拍特征包括拍号。在一些实施方式中,至少一个选择标准包括每个视频剪辑的持续时间。在一些实施方式中,该方法进一步包括:确定每个视频剪辑的长度。在一些实施方式中,至少一个节拍匹配策略包括:使在音乐小节的第一节拍上结束的视频剪辑的数量最大化。在一些实施方式中,如果视频剪辑在第一节拍上结束,则下一个视频始于音乐小节的第一节拍。

在一些实施方式中,一种非暂时性计算机可读存储介质,其上携带了程序指令,其中,当该指令由一个或者多个处理器执行时,该指令使一个或者多个处理器执行操作,所述操作包括:确定至少一个声轨的节拍特征;基于一个或多个选择标准来选择视频剪辑;基于一个或多个节拍匹配策略来调节一个或者多个视频剪辑的长度;以及将待播放的视频剪辑与至少一个声轨组合。

进一步关于该计算机可读存储介质,在一些实施方式中,至少一个节拍特征包括:哪些节拍是音乐小节的第一节拍。在一些实施方式中,至少一个节拍特征包括节拍时间。在一些实施方式中,至少一个节拍特征包括拍号。在一些实施方式中,至少一个选择标准包括每个视频剪辑的持续时间。在一些实施方式中,指令进一步使一个或者多个处理器执行操作,该操作包括:确定每个视频剪辑的长度。在一些实施方式中,至少一个策略包括:使在音乐小节的第一节拍上结束的视频剪辑的数量最大化。

在一些实施方式中,一种系统包括:一个或者多个处理器、以及编码在一个或者多个有形介质中以便由一个或者多个处理器执行的逻辑。当该逻辑被执行时,该逻辑可操作为执行操作,该操作包括:确定至少一个声轨的节拍特征;基于一个或多个选择标准来选择视频剪辑;基于一个或多个节拍匹配策略来调节一个或者多个视频剪辑的长度;以及将待播放的视频剪辑与至少一个声轨组合。

进一步关于该系统,在一些实施方式中,至少一个节拍特征包括:哪些节拍是音乐小节的第一节拍。在一些实施方式中,至少一个节拍特征包括节拍时间。在一些实施方式中,至少一个节拍特征包括拍号。在一些实施方式中,至少一个选择标准包括每个视频剪辑的持续时间。在一些实施方式中,逻辑在被执行时进一步可操作为执行操作,该操作包括:确定每个视频剪辑的长度。

附图说明

图1图示了示例网络环境的框图,该示例网络环境可用于实施本文描述的实施方式。

图2图示了根据一些实施方式的用于提供节拍匹配的示例简化流程图。

图3图示了根据一些实施方式的示例节拍匹配器。

图4图示了根据一些实施方式的示例定时图。

图5图示了根据一些实施方式的示例视频剪辑选择树。

图6图示了根据一些实施方式的示例视频剪辑选择树。

图7图示了示例服务器装置的框图,该示例服务器装置可用于实施本文描述的实施方式。

具体实施方式

实施方式大体上涉及提供节拍匹配。在一些实施方式中,一种系统确定至少一个声轨的节拍特征。声轨可以是任何录音或者音轨,系统将该录音或者音轨与电影一起播放。如在下文更加详细地描述的,电影是由一系列视频剪辑制成的。在多种实施方式中,系统基于一个或多个选择标准选择用于电影的视频剪辑。该系统基于一个或多个节拍匹配策略调节一个或者多个视频剪辑的长度。该系统然后将视频剪辑组合为待与声轨一起播放的电影。本文描述的实施方式提供满足多种标准的、在美学上赏心悦目的视频。

图1图示了示例网络环境100的框图,该示例网络环境100可用于实施本文描述的实施方式。在一些实施方式中,网络环境100包括系统102,系统102包括服务器装置104和社交网络数据库106。在多种实施方式中,术语“系统102”和短语“社交网络系统”可以互换地使用。网络环境100还包括客户端装置110、120、130和140,客户端装置110、120、130和140可以经由系统102彼此通信。网络环境100还包括网络150。

为了便于图示,图1为系统102、服务器装置104和社交网络数据库106中的每一个示出了一个框,并且为客户端装置110、120、130和140示出了四个框。框102、104和106可以表示多个系统、服务器装置和社交网络数据库。同样,可以存在任何数量的客户端装置。在其它实施方式中,网络环境100可以不具有所示出的所有部件和/或可以具有其它元件,该其它元件包括:代替本文示出的元件或者除了本文示出的元件之外的其它类型的元件。

在多种实施方式中,用户U1、U2、U3和U4可以通过使用各自的客户端装置110、120、130和140彼此通信。例如,用户U1、U2、U3和U4可以使用各自的客户端装置110、120、130和140将视频上传至系统102、观看视频/电影、以及彼此分享视频。

在本文描述的多种实施方式中,系统102的处理器使得将在一个或者多个用户装置上的用户界面中播放本文描述的元素(例如,电影/视频和伴随声轨等)。

虽然在本文中以在社交网络系统的背景下描述了一些实施方式,但是这些实施方式可以应用在除了社交网络之外的背景中。例如,实施方式可以为单个用户在本地应用。例如,系统102可以在独立计算机、平板计算机、智能电话等上执行本文描述的实施方式。实施方式可以在移动应用中、在硬件和/或者软件中、或者作为服务器侧服务来实施。

图2图示了根据一些实施方式的用于提供节拍匹配的示例简化流程图。参照图1和图2,一种方法始于框202,在该框202中,系统102确定至少一个声轨的节拍特征。例如,在一些实施方式中,节拍特征可以包括:哪些节拍是音乐小节的第一节拍。音乐小节也可以称为小节或者拍子。在一些实施方式中,节拍特征可以包括节拍时间(例如,每分钟节拍数等)。在一些实施方式中,节拍特征可以包括拍号(例如,4/4拍、2/4拍、3/4拍等)。

图3图示了根据一些实施方式的系统102的示例节拍匹配器300。在多种实施方式中,节拍匹配器300可以至少部分地通过节拍匹配算法来实施。下文将更加详细地描述节拍匹配算法的示例实施方式。

在多种实施方式中,将声轨和剪辑长度限制输入到节拍匹配器300中。如图所示,系统102的节拍匹配器300输出每个视频的剪辑长度。

在一些实施方式中,系统102存储声轨列表。系统102可以自动地选择声轨、为用户选择推荐声轨、或者接收用户偏好或者接收对声轨的选择。在一些实施方式中,系统102可以使用户能够从声轨库中选择声轨、或者使用户能够向系统102提供声轨。在一些实施方式中,系统102使用户能够选择音乐偏好(例如,音乐风格)。这样,系统102可以基于音乐风格来选择或者推荐特定声轨。

在一些实施方式中,系统102的节拍匹配器300确定声轨的节拍的节拍特征。在一些实施方式中,声轨的节拍特征(例如,节拍、节拍时间、小节时间、拍号等)是系统102的输入。节拍特征不需要由系统102计算,但若需要,系统102能够计算一个或者多个节拍特征。节拍特征可以由独立系统产生、或者以别的方式由人际交互来标注。在一些实施方式中,声轨包括节拍的时间戳列表。在一些实施方式中,时间戳的单位是微秒。实际单位可以取决于特定实施方式。

在一些实施方式中,作为确定节拍特征的一部分,节拍匹配器300确定声轨中作为音乐小节的第一节拍(例如,拍子的第一节拍)的每个节拍,并且节拍匹配器300特别标记出这些节拍。节拍匹配器300还确定声轨中落在半个小节上的每个节拍(例如,在具有4/4拍记号的小节中的第三个节拍)。

如上文所指出的,节拍特征可以包括节拍信息。例如,给定声轨可以按照特定速度(例如,每分钟60个节拍)并且以特定拍记号(例如,4/4拍记号)来播放。在该示例中,第一节拍在1秒处产生节拍时间:1,000,000us、2,000,000us和3,000,000us。同样,小节的第一节拍在1,000,000us、5,000,000us和9,000,000us处。

在多种实施方式中,还将视频剪辑长度限制输入到节拍匹配器300中。这种视频剪辑长度限制可以包括对于每个视频剪辑的默认视频剪辑长度、最小视频剪辑长度、和最大视频剪辑长度。同样,这样视频剪辑限制可以是毫秒或者任何其它单位,这取决于特定实施方式。下文将更加详细地描述视频剪辑长度限制的示例实施方式。

图4图示了根据一些实施方式的示例定时图400。在多种实施方式中,系统102确定一个或者多个长度,该长度可以称为视频剪辑长度限制。这种视频剪辑长度限制可以包括视频剪辑的最小长度和最大长度。

例如,参照图4,如果存在从3秒视频的正中间截取的2秒视频剪辑,那么Lengthdefault为2。在一些实施方式中,系统102通过移动端点来调节视频剪辑。这样,视频剪辑可以最大延伸到0.5秒。在该示例中,Lengthmaximum为2.5。在一些情景中,由于视频回放上的硬件限制,所以电话硬件可能不会回放小于特定长度(例如,1秒)的视频剪辑。这样,Lengthminimum为1。相应地,在多种实施方式中,每个视频剪辑具有:最小长度(例如,在该示例中为1秒)、默认长度(例如,2秒)、以及最大长度(例如,2.5秒)。

再次参照图2,在框204中,系统102基于一个或多个选择标准选择视频剪辑。在一些实施方式中,系统102存储了从较大视频和声轨截取的视频剪辑列表。系统102可以自动地选择这种视频、推荐视频、以及接收用户偏好或者接收对视频剪辑的选择。

在多种实施方式中,系统102通过搜索用户在一天中已经截取的所有视频来选择用于与声轨一起回放的候选视频剪辑。如上文所指出的,系统102可以基于一个或多个选择标准选择视频剪辑。例如,这种标准可以包括来自以下的视频剪辑:色彩最艳丽的视频、最清晰的视频、包含最佳面部表情的视频等。

在一些实施方式中,系统102可以从在预定时间段期间(例如,在一天中,在过去2天中、过去一周中等)截取的视频中选择视频剪辑。

在一些实施方式中,系统102可以使用户能够提供一个或者多个视频剪辑、或者将一个或者多个系统选择或者系统推荐的视频剪辑与一个或者多个用户选择的视频剪辑互换、或者添加或者移除一个或者多个视频剪辑。

在一些实施方式中,至少一个选择标准包括每个视频剪辑的长度因素。例如,系统102可以选择满足上述视频剪辑长度限制的视频剪辑。

在框206中,系统102基于一个或多个节拍匹配策略来调节一个或者多个视频剪辑的长度。在一些实施方式中,系统102首先确定每个视频剪辑的长度。系统102然后应用一个或多个节拍匹配策略以确定每个视频剪辑的调节程度,如果需要进行调节的话。

在多种实施方式中,系统102根据一个或多个美学目的或者策略来调节视频剪辑的长度。例如,在多种实施方式中,策略可以是使在音乐小节的第一节拍上结束的视频剪辑的数量最大化。在半小节上结束是可选的,但这不如在一个小节上结束好。

在一些实施方式中,策略可以是使最接近其原始长度的视频剪辑的数量最大化。换言之,策略可以是使每个视频剪辑长度的更改(削减或者延伸)程度最小化,从而不会使对输入镜头的更改大于需要的更改。例如,如果存在长度为3秒的三个视频剪辑,则在节拍匹配后可以大概在3秒的范围内的视频剪辑是优选的,例如,2-4秒的范围内,而不是更长或者更短。

在一些实施方式中,策略可以是使视频剪辑的总长度保持为尽可能接近原始总长度。换言之,策略可以是使所有视频剪辑的总长度的改变最小化。因此,总长度与其在执行节拍匹配前的长度差不多相同。在一些情景中,用户可以请求产生特定电影长度(例如,40秒等)。系统102可以使用户能够浏览声轨以选择其喜欢的。

系统102通过如下方式来调节一个或者多个视频的长度:缩短视频剪辑或者在剪辑的末端添加更多素材(来自原始视频)。

在一些实施方式中,系统102可以包括将与视频剪辑的组合在一起的静态图像或者照片。例如,系统102可以显示特定时间长度(例如,2.5秒、3秒等)的给定图像。

在一些实施方式中,调节一个或者多个视频剪辑中的每一个的长度是基于记分函数。例如,系统102的节拍匹配算法使用记分函数来对给定的视频剪辑长度的分配方式满足一个或多个美学目的或者策略的程度进行定量。

系统102评估了哪种视频剪辑的组合对于特定声轨而言在节拍匹配方面是最佳的。在本文描述的多个实施方式中,视频剪辑的候选组合也可以称为配置。在一些实施方式中,给定组合可以是:使节拍匹配算法为在小节的第一节拍上结束的每个剪辑给出特定量的点。与常规算法相比,记分函数更容易产生在小节边界(例如,小节的第一节拍)上结束的视频剪辑。这是因为动态编程算法得到的结果比(非最佳)贪婪算法的结果更好。

在多种实施方式中,节拍匹配算法包括记分函数,该记分函数包括扣分处罚,扣分处罚是基于电影的总长度从原始长度的变化程度。因此,电影的总长度的变化比常规算法下的变化更小。

在一些实施方式中,可以使用如下表达式来确定与特定视频剪辑的组合相关联的长度的分值。

分值=A*b+B*b1/2

-D*|Total Lengthnew-Total Lengthdefault|

变量b是在小节上结束(例如,在小节的第一节拍上结束)的剪辑的数量。变量b1/2是半小节(例如,4/4拍记号中的第三个节拍)的数量。

该等式的包括常数C的第二个项式表示:对每个视频剪辑与其原始长度的差别程度的处罚。对于每个视频剪辑,节拍匹配算法采用在节拍匹配之前的视频剪辑长度Lengthdefault与节拍匹配之后的视频剪辑长度Lengthnew之间的差异,并且然后将该差异除以所工作的范围(例如,Lengthmax—Lengthmin)。

等式的包括常数D的第三个/最后一个项式表示:对视频的总长度从其原始总长度的变化程度(例如,Total Lengthnew-Total Lengthdefault)的处罚。

A、B、C、D是可配置的常数,这些常数可以用于调节节拍匹配算法的优先级(权重)(例如,A=3、B=1、C=1、D=1)。

在多种实施方式中,节拍匹配算法发现一种使该分值最大化的视频剪辑长度的分配方式。其按照顺序逐步分配视频剪辑。

分值是对于剪辑的组合而言,对长度的特定组合或者配置所产生的分值。节拍匹配算法选择具有最高分值的配置,这会产生具有最多在小节上结束的视频剪辑的配置。

图5图示了根据一些实施方式的示例视频剪辑选择树500。如所示,在树的每一级中(从左侧至右侧前进),节拍匹配算法考虑多个长度以使树的尺寸随视频剪辑的数量呈指数方式增长。例如,在初始状态中,存在一个视频剪辑。向右移动,对视频剪辑可以存在3种长度选择。继续向右,2个视频剪辑的长度选择的数量以指数方式增加。进一步继续,对15个视频剪辑,将会存在315≈14百万种可能的配置。对所有可能的配置均进行检查从计算上讲是不可行的。如下文更加详细地描述的,系统102的节拍匹配算法高效地选择配置。

在多种实施方式中,系统102使用动态编程算法来选择剪辑的长度。在多种实施方式中,动态编程算法将问题分解为更简单的子问题并且对每个子问题仅执行一次,从而减小了或者最小化了计算的数量。在多种实施方式中,节拍匹配在小于100ms内发生。在另一个示例中,两分钟的电影将会使用小于0.5秒来进行节拍匹配。因此,对于用户而言,延迟并不明显。

在一些实施方式中,系统102可以使用记分函数的有用特性来减小需要的工作量。在一些实施方式中,可以使用如下表达式来确定最佳配置。

分值1…n=f(分值1…n-1、总长度1…n-1、在n处的长度选择)

图6图示了根据一些实施方式的示例视频剪辑选择树600。在一些实施方式中,保留这些记分中的最高记分,丢弃其它记分。如所示,在每个节点处的数字是总秒数。在每条线处的数字是添加的秒数,以便在下一个节点处得到新秒数(例如,参见顶部的数字:0+5=5;5+5=10)。例如,如果存在10种方式来使用剪辑1、…、n-1制造30秒的总长度,那么系统102可以丢弃其中9种方式并且仅继续检查最高记分配置。该“最佳子结构”允许系统102将动态编程应用至该问题。

在一些实施方式中,系统102还可以在算法的每次迭代时剔除部分解决方案,仅保留100个最有前景的配置。虽然这样可能导致节拍匹配算法可能找不到最佳配置,但这却改进了性能。

在一些实施方式中,系统102还能够剔除非常接近的解决方案。例如,如果存在15.0秒、15.1秒和15.2秒总长度的部分解决方案,那么除非15.1解决方案是这三个解决方案中最佳的一个,否则系统102可以将其丢弃。这有助于算法追求范围更加多元化的潜在解决方案。

在一些实施方式中,系统102可以结合剔除部分解决方案来使用动态编程算法,以便提供良好的性能,同时仍找出近似最佳的解决方案。在一些实施方式中,系统102可以按照其它方式剔除部分解决方案以便改进性能或者避免较早地剔除了良好的解决方案。

再次参照图2,在框208中,系统102将待播放的视频剪辑与电影中的至少一个声轨组合。在多种实施方式中,电影包括所选择的视频剪辑(可能与静态图像组合),并且与声轨一起播放该视觉内容。如上文所描述的,视频(以及可能的静态图像)在声轨的小节变化上(例如,在拍子的第一节拍上)发生变化。在一些实施方式中,系统102可以通知用户系统102已经为用户制作了电影。

本文描述的实施方式提供了多种益处。例如,本文描述的实施方式提供了满足多种标准的在美学上赏心悦目的视频。实施方式还提供了高速的节拍匹配。

虽然步骤、操作、或者计算可以按照特定顺序存在,但在特定实施方式中可以改变该顺序。步骤的其它排序也是可能的,这取决于特定实施方式。在一些特定实施方式中,可以同时执行在本说明书中按照顺序示出的多个步骤。同样,一些实施方式可以不具有所示出的所有步骤和/或者可以具有代替本文示出的步骤的或者除了本文示出的步骤之外的其它步骤。

虽然将系统102描述为执行本文实施方案中所描述的步骤,但系统102的任何适合的部件或者部件的组合、或者与系统102相关联的任何适合的处理器或者多个处理器都可以执行所描述的步骤。

图7图示了示例服务器装置700的框图,该示例服务器装置700可用于实施本文描述的实施方式。例如,服务器装置700可以用于实施图1的服务器装置104、以及用于执行本文描述的方法实施方式。在一些实施方式中,服务器装置700包括处理器702、操作系统704、存储器706、和输入/输出(I/O)接口708。服务器装置700还包括社交网络引擎710和媒体应用712,该设计网络引擎710和媒体应用712可以存储在存储器706中或者任何其它适合的存储位置或者计算机可读介质中。媒体应用712提供指令,该指令使处理器702能够执行本文描述的功能和其它功能。

为了便于图示,图7为处理器702、操作系统704、存储器706、I/O接口708、社交网络引擎710、和媒体应用712中的每一个示出了一个框。这些框702、704、706、708、710和712可以表示多个处理器、操作系统、存储器、I/O接口、社交网络引擎和媒体应用。在其它实施方式中,服务器装置700可以不具有所示出的所有部件和/或者可以具有其它元件,该其它元件包括:代替本文示出的元件的或者除了本文示出的元件之外的其它类型的元件。

虽然已经参照本说明书的特定实施例描述了本说明书,但这些特定实施例仅仅是说明性的而不是限制性的。在示例中图示的构思可以应用至其它示例和实施方式。例如,在本文中,在社交网络系统的背景下描述了一些实施方式。然而,本文描述的实施方式可以应用在除了社交网络之外的背景中。例如,实施方式可以为单个用户在本地应用。

注意,如本领域中的技术人员已知的,本公开中描述的功能框、方法、装置和系统可以集成至或者划分为系统、装置和功能框的不同组合。

可以使用任何适合的编程语言和编程技术来实施特定实施例的例程。可以采用不同的编程技术,诸如程序化编程技术或者面向对象的编程技术。例程可以在单个处理装置上或者在多个处理器上执行。虽然步骤、操作、或者计算可以按照特定顺序存在,但在不同特定实施例中可以改变该顺序。在一些特定实施例中,可以同时执行在本说明书中按照顺序示出的多个步骤。

“处理器”包括处理数据、信号或者其它信息的任何适合的硬件和/或者软件系统、机制或者部件。处理器可以包括具有通用中央处理单元、多个处理单元、用于实现功能的专用电路的系统、或者其它系统。处理不需受限于地理位置或者不必具有时间限制。例如,处理器可以“实时地”、“离线地”、“在批处理模式下”等执行其功能。部分处理可以由不同的(或者相同的)处理系统在不同时间和不同地点处执行。计算机可以是与存储器进行通信的任何处理器。存储器可以是任何适合的数据存储、存储器和/或者非暂时性计算机可读存储介质,包括:电子存储装置,诸如随机存取存储器(RAM)、只读存储器(ROM)、磁存储装置(硬盘驱动器等)、闪存、光学存储装置(CD、DVD等)、磁盘或者光盘、或者其它适合用于存储由处理器执行的指令的有形介质。软件指令还能够按照如下形式包含在电子信号中并且提供作为电子信号:例如,从服务器(例如,分布式系统和/或者云计算系统)递送的软件即服务(SaaS)形式。

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