CN108028054B - 对自动生成的音频/视频展示的音频和视频分量进行同步 - Google Patents

对自动生成的音频/视频展示的音频和视频分量进行同步 Download PDF

Info

Publication number
CN108028054B
CN108028054B CN201680054739.8A CN201680054739A CN108028054B CN 108028054 B CN108028054 B CN 108028054B CN 201680054739 A CN201680054739 A CN 201680054739A CN 108028054 B CN108028054 B CN 108028054B
Authority
CN
China
Prior art keywords
video
mcp
audio
segment
presentation
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.)
Active
Application number
CN201680054739.8A
Other languages
English (en)
Other versions
CN108028054A (zh
Inventor
A·M·埃坡里托
C·S·理查德森
W·L·迪沃尔
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.)
Apple Inc
Original Assignee
Apple 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 Apple Inc filed Critical Apple Inc
Publication of CN108028054A publication Critical patent/CN108028054A/zh
Application granted granted Critical
Publication of CN108028054B publication Critical patent/CN108028054B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47205End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for manipulating displayed content, e.g. interacting with MPEG-4 objects, editing locally
    • 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/47End-user applications
    • H04N21/485End-user interface for client configuration
    • H04N21/4854End-user interface for client configuration for modifying image parameters, e.g. image brightness, contrast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Processing Or Creating Images (AREA)
  • Television Signal Processing For Recording (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一些实施方案提供能够由存储在设备上或设备可访问的媒体剪辑集合而自动生成电影的应用程序。一些实施方案的电影创建过程使用动态合成电影的视频分量和音频分量的新颖的视频和音频合成器。视频合成器过程探索媒体剪辑和媒体剪辑布置的不同组合以生成令人感兴趣的视频展示。音频合成器接收视频展示的持续时间,并基于这个持续时间动态地生成用于视频展示的歌曲。另一新颖的交互是,在一些实施方案中,音频合成器将其最后的片段的起始位置提供给视频合成器,使得视频合成器可将最后的视频片段的开头与这个结束片段对准。在一些实施方案中,视频和音频合成器还将其对其各自的展示应用的渐隐效果彼此同步。另外,在一些实施方案中,视频合成器可向音频合成器询问在展示中特定时间附近的一个或多个音频起音点。在这些实施方案中的一些中,音频合成器返回(1)视频合成器指定的时间附近的起音点的列表、和(2)这些起音点中每一者的优先级。视频合成器然后使用这个起音点列表来基于所指定的优先级值和起音点位置处视频编辑的希求来将合成视频的定义中的编辑点对准到这些起音点之一的位置。

Description

对自动生成的音频/视频展示的音频和视频分量进行同步
背景技术
随着数字相机及具有数字相机的移动设备的激增,人们如今具有比以往更多的数字内容。同样地,对用于展示和查看这个数字内容的工具的需求从未更大。遗憾的是,如今所述工具中很多都需要用户手动地组织其内容。另外,这些编辑工具中的很多都需要用户手动选择其编辑内容以及手动编辑其内容。因为这个手动方法,大多数数字内容只是驻留在大量数字媒体库中等待少有的能被手动发现的时机,并且在甚至更少有的时机中,被精心编辑为合成展示的部分。
发明内容
一些实施方案提供一种具有若干新颖特征的媒体合成方法。在一些实施方案中,这个方法由在存储媒体内容片块(例如视频、静态图像等)的、和/或通过网络具有对存储在其他计算设备上的媒体内容片块(MCP)的访问权限的计算设备上执行的应用程序来执行。一些实施方案的所述方法执行自动化过程,该自动化过程(1)分析MCP(例如分析MCP的内容和/或元数据)以定义一个或多个MCP分组,以及(2)生成将所定义的MCP分组标识为该方法可为其显示合成展示(例如视频展示)的分组的用户界面(UI)布局。
为了定义MCP分组,一些实施方案的方法使用一个或多个媒体分组模板(模板)。模板在一些实施方案中是参考一组媒体匹配属性来定义的。该方法将模板的属性组与MCP的内容和/或元数据进行比较,以便标识匹配模板属性的MCP。当足够数量的MCP匹配模板的属性组时,一些实施方案的所述方法参考匹配的MCP来定义模板实例。
在一些实施方案中,该方法可为模板定义多个模板实例。例如在一些实施方案中,模板包括(1)位置相关模板(例如在具有特定半径的区域内捕获的视频和/或照片)、(2)时间相关模板(例如在特定时间范围和/或日期范围内捕获的视频和/或照片)、(3)时间相关且位置相关模板(例如早晨在海滩上)、(4)内容定义模板(例如包含笑脸的视频和/或照片)、和(5)基于用户元数据的模板(例如用户创建的相册中的MCP、用户与他人分享的MCP、具有特定用户定义元数据标签的MCP等等)。
在这些实施方案中,这些模板中的一者或多者可导致多个模板实例。例如,时间和位置相关模板可按(1)指定12pm到4pm的时间范围元组、(2)指定星期天的日范围元组、和(3)指定不与执行应用程序的设备的用户的家庭位置或工作位置相关联的区域的位置元组来定义。对于这个模板,该方法可标识包括在星期天下午在不同位置捕获的不同组MCP的多个模板实例,其中不同模板实例对应于不同区域。在一些实施方案中,时间相关属性要求MCP彼此在特定时间范围内被捕获(例如所有MCP都是在星期天12pm-4pm被捕获)。
在定义多个模板实例之后,该方法在一些实施方案中生成包括用于所述模板实例中一些或全部的一组摘要窗格的布置的UI布局。在一些实施方案中,UI布局同时显示仅一个子组的所定义模板实例的摘要窗格。例如,在一些实施方案中,该方法计算每个所定义模板实例的得分,基于所生成的得分来对所定义的模板实例进行排名,然后基于所述排名来生成UI布局。在一些实施方案中,UI布局同时显示仅特定数量的最高排名模板实例的摘要窗格。在其它实施方案中,UI布局只同时显示所生成得分超过特定最小阈值的模板实例的摘要窗格。该方法在这些实施方案中的一些实施方案中提供允许用户查看该方法初始在所生成的UI布局中未与其他摘要窗格一起显示的其他所定义模板实例的摘要窗格的控件。
在不同实施方案中,该方法不同地生成模板实例的得分。在一些实施方案中,模板实例的得分是基于(1)与UI布局被生成和/或显示的时间有关的背景属性、和(2)与模板实例的MCP的质量和/或数量有关的质量和/或数量属性。在不同实施方案中可使用不同背景属性。背景属性的示例包括(1)时间、(2)设备位置、(3)存储在设备上的或设备能访问的未来日历事件的位置、(4)由存储在设备上的电子票签导出的位置等等。
在一些实施方案中,背景属性被用于推导模板实例得分,以便标识(例如在所生成的UI布局将被显示时)会对于用户重要(用户会感兴趣)的模板实例。例如在一些实施方案中,该方法可根据在设备上执行的日历应用程序中安排的、或者由电子票签应用程序指定的事件的时间和位置来标识设备用户的未来位置。随着时间接近日历或票签事件的时间,该方法基于假设用户会希望看到先前在该事件的位置捕获的MCP而提高与该位置相关联的模板实例的得分。
如上所述,每个模板实例的得分在一些实施方案中也取决于实例的MCP的质量和/或数量属性。一些实施方案基于假设数量越大就意味着模板实例的感兴趣水平越高来考虑实例中MCP的数量。例如,具有大量在特定一天在一个位置的相片的模板实例通常会表明令人感兴趣的事件是在那个特定一天在那个位置处发生,并且用户因此会更有兴趣看到形成那个事件的照片。
然而在一些实施方案中,该方法从模板实例中丢弃重复的或几乎重复的MCP(例如当存在多个相同或几乎相同的照片时只保留一张照片)或者在其被包括在模板实例中之前将其丢弃,因为具有多个此类照片常常并不导致令人感兴趣的合成展示。另一方面,该方法在一些情况下保持突发模式序列中的多张照片,使得合成展示能提供令人感兴趣的突发模式照片处理。在一些实施方案中,该方法还丢弃被认为不令人感兴趣的(例如接收方图片、屏幕截图照片等)或并非有用的(例如非常模糊的照片等等)特定MCP。这些MCP在一些实施方案中在模板实例创建之前被滤除。换句话讲,这些MCP在一些实施方案中从不与模板实例相关联。
在一些实施方案中,基于假设具有更好内容的模板实例将导致更好生成的合成展示、并由此导致查看者更感兴趣的合成展示,每个模板实例的得分考虑实例的MCP的质量。不同实施方案基于不同标准对MCP打分。例如,一些实施方案基于以下MCP属性和/或元数据中一者或多者来生成MCP的本征得分:聚焦、模糊、曝光、相机运动、语音内容、面部内容、用户输入和/或行为(例如用户标签、用户包括在相册中、用户与他人分享等等)。一些实施方案还对特种MCP类型(例如突发模式照片、慢动作视频、延时视频等)打分比其他MCP类型(例如静态相片)更高。一些实施方案还对在不与设备用户家或工作相关联的位置处捕获的MCP打分比在家或工作场所捕获的MCP更高。
在一些实施方案中,该方法还为模板实例中的每个MCP计算对按展示次序两个连续MCP之间的时间和视觉距离定量的非本征得分,展示次序限定MCP在模板实例的合成展示中要如何展示。该方法然后使用这个得分来定义用于选择用于合成展示的MCP子组的次序。例如,一些实施方案使用所计算的非本征得分与所计算的MCP本征得分一起来选择最高打分MCP(即最佳质量MCP),其提供MCP的最视觉独特组合。非本征得分在一些实施方案中是展示次序中相邻MCP之间的时间和差异距离。在一些实施方案中,时间和差异距离是这两个MCP之间时间距离和差异距离的加权聚合(例如加和)。
如上所述,该方法在一些实施方案中基于为模板实例计算的得分来生成一些所生成模板实例的摘要窗格的布置。摘要窗格显示关于模板实例的信息。在一些实施方案中,模板实例的摘要窗格包括该实例的一个或多个MCP的一个或多个缩略图、以及标题。一些实施方案由实例的最高打分MCP生成缩略图。一些实施方案还从将MCP关联到一个模板实例中的MCP属性(例如MCP元数据诸如位置,或者MCP内容诸如笑脸等等)推导实例窗格的标题。
在用户选择模板实例的摘要窗格之后,该方法在一些实施方案中生成合成展示的定义,然后由该定义渲染合成展示。在一些实施方案中,展示定义包括展示中包括的实例MCP的身份、被包括MCP的展示次序、和为了由MCP生成合成展示而要执行的编辑操作(例如过渡操作、特殊效果等等)的列表。
在一些实施方案中,该方法由模板实例的MCP生成被包括在模板实例合成展示中的一些或全部MCP。例如,模板实例的多个MCP可以是静态照片。对于这些静态照片中的一些或全部,该方法通过为这些照片中每一者指定Ken Burns效果而生成合成展示中的视频剪辑。另外,该方法可从模板实例的视频剪辑MCP提取一个或多个视频剪辑来包括在合成展示中。类似地,该方法可从作为突发模式序列的MCP提取该序列的一个或多个静态照片和/或序列的静态照片中一者或多者的一个或多个Ken-Burns类型视频剪辑。存在很多其他的由模板实例的MCP推导合成展示MCP的示例。
不是在用户在UI布局中选择模板实例的摘要窗格之后定义该模板实例的合成展示,一些实施方案的该方法在UI布局生成之前定义合成展示。在这些实施方案中的一些中,该方法生成每个所定义合成展示的得分,然后使用所有所定义合成展示的所生成得分来定义和布置UI布局。例如,在一些实施方案中,该方法使用所生成的合成展示得分来标识初始应同时在UI布局上表示的合成展示的子组,以及标识UI布局上这些合成展示的摘要窗格的次序。
在这些实施方案中的一些中,合成展示在用户在UI布局上选择其相应摘要窗格之后被渲染。其他实施方案在生成UI布局之前渲染合成展示。普通技术人员将认识到,其他实施方案以不同序列执行这些操作。例如,一些实施方案在UI布局被生成之前定义一部分合成展示,然后在UI布局被生成之后生成合成展示的定义的其余部分。
一些实施方案的合成展示生成具有若干新颖特征。例如,一些实施方案的方法通过选择合成展示的蓝图来生成合成展示。在一些实施方案中,蓝图描述所期望的过渡、效果、编辑样式(包括编辑节奏)等等。蓝图也可指定所期望的展示类型,这于是可影响在合成展示中包括或强调的MCP类型。例如,一个蓝图可能将突显指定为所期望的展示类型,而另一蓝图可能将回顾指定为所期望的类型。对于突显,该方法的合成生成会选择代表模板实例的MCP的最佳MCP。对于回顾,该方法的合成生成会可能选择对于模板实例的整个那组MCP并非必需的MCP。
对于模板实例,蓝图在一些实施方案中与模板实例的模板相关联。另选地或结合地,蓝图在一些实施方案中与该方法为合成展示自动选取的情绪相关联。在一些实施方案中,情绪是描述合成展示类型的形容词。情绪的示例包括极端、俱乐部、宏大、令人振奋、快乐、温和、冷漠、伤感、梦幻等等。在一些实施方案中,该方法基于模板实例中媒体的类型和/或持续时间、对该媒体的内容分析(例如检测高运动视频)、和检测到的用户情绪偏好而自动为合成展示选取情绪。此外,在一些实施方案中,该方法允许为合成展示修改情绪。在这些实施方案中的一些中,该方法在用户为所生成的合成展示修改情绪之后重新生成模板实例的合成展示。一些实施方案允许用户查看所生成UI布局上摘要窗格所代表的模板实例的情绪。如果用户修改所代表模板实例的情绪,则该方法基于用户改变来生成该模板实例的合成展示。
一些实施方案的合成展示生成自动指定合成展示的持续时间。在这些实施方案中的一些中,该方法基于模板实例中高质量独特内容的量和蓝图来指定持续时间。例如,在基于时间和差异距离值定义上述选择次序之后,该方法选择模板实例中的MCP直到所述选择次序中的两个连续MCP彼此在特定距离内(例如彼此在0.25单位时间和差异距离内)的位置。蓝图的所指定参数(例如指定MCP的理想持续时间的参数)与所选MCP一起确定合成展示的所期望持续时间。在一些实施方案中,蓝图还可例如通过指定选择标准(诸如差异程度)、指定用于计算时间和差异距离值的方式等等来指定MCP是否应被选择。
一些实施方案的该方法允许用户修改该方法初始计算的展示持续时间。例如,在一些实施方案中,用户可在被展示以所渲染的合成展示之后修改展示持续时间。另选地或结合地,该方法允许用户在所生成的UI布局中查看和修改展示持续时间(例如作为模板实例的摘要窗格所提供的信息的一部分),而不必首先查看具有该持续时间的被渲染合成展示。
在一些实施方案中,合成展示生成具有新颖的媒体合成操作、新颖的歌曲合成操作、和媒体与歌曲合成操作之间新颖的相互作用。一些实施方案的该方法使用受约束解算器,其通过基于(1)一组限制解空间探索的约束和(2)指定内容特性(例如对于照片、或对于视频帧范围)的元数据标签探索用于组合模板实例MCP的不同方式来生成合成展示定义。约束的示例包括持续时间约束(例如每个MCP类型的理想持续时间、最小持续时间和最大持续时间)和位置约束(例如一个MCP类型不能放置在另一MCP类型旁边)。
在探索解空间寻找满足所述约束并符合一个或多个优化标准的最佳解中,受约束解算器在一些实施方案中优先估算使用在选择次序中高排名的MCP的解。另外,在寻找最优解中,受约束解算器在一些实施方案中(1)基于元数据标签范围标识模板实例MCP的不同部分(例如视频剪辑的不同片段等),以及(2)基于这些所标识部分来探索解。
在一些实施方案中,解算器从所标识解中丢弃比特定尺寸小的MCP片段。解算器在一些实施方案中还探索所标识解中的MCP片段是否应被分成更小片段以便删除片段中间的一个或多个范围。在这些实施方案中的一些中,解算器在删除较小结果片段和/或将MCP分成更小片段之后重新启动其对解的搜索。
在一些实施方案中,媒体合成器还为静态照片指定Ken-Burns效果以便定义静态照片的视频展示。媒体合成器在一些实施方案中为其他类型的图像内容(诸如突发模式序列、慢动作序列、延时序列等)指定导致生成该类型内容的视频序列的特殊处理。通过只使用所提取的MCP片段以及通过为照片和其他类型内容指定特殊处理,媒体合成器由模板实例的MCP生成合成展示的MCP。
如上所述,媒体合成器在一些实施方案中基于利用时间和差异距离值定义的选择次序来计算合成展示的理想持续时间。在这些实施方案中的一些中,媒体合成器将理想持续时间提供给歌曲合成器。歌曲合成器于是生成具有理想持续时间的合成歌曲展示(用于为合成媒体展示伴奏)。
在一些实施方案中,歌曲合成器通过标识音频片段的序列以及定义序列中每对音频片段之间的编辑和过渡,来生成合成歌曲展示。音频片段在一些实施方案中是一首歌曲的部分。在其它实施方案中,可以是两首或更多首歌曲的部分。这些音频片段被称为主体片段,以表明其是另一歌曲的部分。在一些实施方案中,主体片段被分配以优先级值和节段,并且在其每个相应节段内被分配以次序。这些值然后被用于将主体片段插入动态合成的歌曲中,如下文进一步所述。
在一些实施方案中,歌曲合成器还从用于合成歌曲展示的若干候选结束片段中选择结束片段。歌曲合成器在这些实施方案中的一些实施方案中还可从用于合成歌曲展示的若干起始片段中选择起始片段。编辑方通过使用一些实施方案的音频创作工具来由一首或多首歌曲定义主体片段、起始片段和结束片段。
为了确保片段在合成歌曲展示中正确地布置,一些实施方案的歌曲合成器使用(1)指定音频片段可如何被插入音频序列中的插入规则、和(2)确保被插入音频片段可与序列中的其他片段邻接的序列规则。在一些实施方案中,歌曲合成器通过基于所分配的优先级值逐个通过主体片段、并基于持续时间和插入规则将主体片段插入到候选音频序列中,来迭代地将主体片段插入到候选音频序列中。在一些实施方案中,插入规则指定(1)属于后面第二节段的主体片段不能插在属于先前第一节段的主体片段前面、以及(2)属于同一节段的主体片段可基于其在相应节段中的次序而被放置在彼此旁边。
一些实施方案的歌曲合成器于是使用序列规则来验证音频序列中的主体片段布置。这个验证涉及确保音频序列中没有任何两个相邻片段的放置违背序列规则。在一些实施方案中,当相邻片段对违背序列规则时,合成器移除优先级较低的片段以消除所述违背。
在一些实施方案中,这些序列规则被嵌入在具有多行和多列的跳转表中,每个音频片段与一行和一列相关联。在一些实施方案中,每个起始或结束片段也与至少一行和一列相关联。每个跳转表单元格于是指定被分配给该单元格的行和列的两个片段是否被允许按行和列分配所指定的次序彼此跟随。编辑方使用一些实施方案的创作工具来为编辑方定义的主体片段、起始片段和结束片段指定跳转表及其属性。在运行时,歌曲合成器于是使用该跳转表自动地定义媒体合成器所指定的持续时间的歌曲。
在一些实施方案中,每个跳转表单元格还指定在两个片段之间的转变处是否需要过渡。跳转表还指定(1)每个主体片段的优先级值和(2)用于指示主体片段在歌曲合成期间是否可被切割的标识符。在一些实施方案中,歌曲合成器基于片段优先级值并基于一组插入规则按展示次序插入主体片段,直到达到特定持续时间。这个持续时间在一些实施方案中是媒体合成器提供的理想持续时间减去最长结束片段的持续时间。在布置主体片段之后,歌曲合成器添加结束片段,并且当音频序列仍然比所期望持续时间短时,如果有一个不会使序列持续时间超过所期望持续时间的片段可用,则添加起始片段。
在一些实施方案中,媒体合成器和歌曲合成器具有若干新颖的交互。首先是媒体合成器自动生成所期望的展示持续时间,歌曲合成器基于该持续时间自动生成合成歌曲展示的定义,如上所述。另一新颖的交互是,在一些实施方案中,歌曲合成器将结束片段的位置、和/或结束片段中插播乐句的位置提供给媒体合成器,使得媒体合成器能将最后一个视频或图像片段的开头与结束片段或这个片段中的插播乐句对准。在一些实施方案中,视频和歌曲合成器还将其对其各自的展示应用的渐隐效果彼此同步。
另外,在一些实施方案中,媒体合成器执行后处理来将合成媒体中的编辑点对准到合成歌曲中特定的听觉上可分辨的过渡位置。这些位置在一些实施方案中包括合成定义中的节拍位置、起音点位置、片段边界位置、和结束片段插播乐句位置。音频起音点对应于幅值从零上升到峰值的音符的开头。节拍是歌曲播放的节律运动。
在一些实施方案中,媒体合成器指示歌曲合成器标识合成歌曲中在展示中特定时间附近的一个或多个听觉上可分辨的过渡位置。在这些实施方案中的一些中,歌曲合成器返回(1)所述特定时间附近的此类位置的列表、和(2)这些位置中每一者的优先级。媒体合成器于是使用这个过渡列表来基于所指定的优先级值和为了到达过渡位置,媒体编辑必须被移动的程度来将合成媒体的定义中的编辑点对准到过渡位置。
在一些实施方案中,实施上述方法的合成应用程序在移动设备上执行。该应用程序只要求移动设备的用户在不同事件捕获照片和视频。一旦用户已捕获照片和视频,应用程序就能自动地将所捕获的内容分组在一起,将分组内容与位置或事件关联,为用户展示每个所定义分组,以及在用户选择分组时显示该分组的合成展示。例如,当用户前往一个事件(例如棒球比赛)并在体育场拍摄图片和视频时,移动设备能自动分组这些图片和视频,由其创建合成展示,并在用户离开比赛之后将合成展示提供给用户。类似地,度假(例如夏威夷旅游)的照片和视频可被分组在一起,放在合成展示中,并在度假结束之后提供给用户。
附图说明
本发明的新颖特征在所附权利要求中阐述。然而,为了解释的目的,在以下附图中给出本发明的若干实施方案。
图1概念性地示出一些实施方案的媒体合成应用程序。
图2示出布局生成器生成的布局的一个示例。
图3示出一些实施方案中布置模板实例摘要窗格的一个示例。
图4示出图1的媒体合成应用程序执行的一种操作过程。
图5示出一些实施方案的媒体合成应用程序用户界面的一个示例。
图6示出允许用户改变用于合成展示的内容的一个示例。
图7示出一种将媒体内容片块(MCP)关联到一个或多个模板实例的过程。
图8示出通过添加对模板实例的标引将MCP关联到模板实例。
图9示出一种在位置和时间树中将MCP关联到若干群集中的过程。
图10示出一些实施方案的位置和时间树的一个示例。
图11示出一种用于周期性地由与位置和时间树的节点相关联的MCP群集生成模板实例的过程。
图12示出一种用于为模板实例计算得分的过程。
图13示出一种用于定义合成展示的过程。
图14示出一种用于为模板实例的MCP定义选择次序的过程。
图15-17展示解释图14的过程的若干示例。
图18示出一些实施方案的媒体合成器的一种受约束优化过程。
图19-21展示解释图18的过程的若干示例。
图22示出一种用于将歌曲分成多个主体片段、一个或多个起始片段、和一个或多个结束片段的创作过程。
图23示出一些实施方案的一种创作应用程序的用户界面的多个操作阶段。
图24示出一些实施方案的指示创作应用程序生成和显示跳转表。
图25更详细地示出图24的跳转表的一个示例。
图26示出一种定义创作应用程序的跳转表的过程。
图27示出一些实施方案的一种歌曲合成器的架构。
图28示出图27的歌曲合成器在一些实施方案中为了动态地合成歌曲展示而执行的一种过程。
图29示出一种用于迭代地将主体片段插入到展示序列中的过程。
图30示出图27的序列生成器和序列验证器的操作的一个示例。
图31是此类移动计算设备的架构的一个示例。
图32概念性地示出实现本发明一些实施方案的电子系统的另一示例。
具体实施方式
在本发明的以下具体实施方式中,提出并描述了本发明的许多细节、示例和实施方案。然而,对于本领域的技术人员来说将清楚和显而易见的是,本发明并不限于所陈述的实施方案,并且本发明可在没有使用所讨论的一些具体细节和示例的情况下被实施。
一些实施方案提供一种媒体合成应用程序,其将存储在设备上的和/或设备能访问的媒体内容片块(MCP)自动地组织到不同分组中,并生成将所定义的MCP分组标识为应用程序能为其显示合成展示(例如视频展示)的分组的用户界面(UI)布局。在一些实施方案中,应用程序通过执行不由用户请求触发的对MCP进行分组的自动化过程来对MCP分组。为了对MCP分组,应用程序的自动化过程使用多个分组模板(模板),其中每一者指定一组要与MCP内容进行比较的媒体属性和/或用于对MCP进行分组的属性。
在一些实施方案中,所生成的UI布局包括用于所定义的MCP分组中一些但并非全部的摘要窗格。例如,在一些实施方案中,任何给定时间的UI布局都包括在那个时间根据背景对设备用户而言最重要的MCP分组的摘要窗格。然而在一些实施方案中,应用程序提供允许用户查看应用程序初始在所生成的UI布局中未与其他摘要窗格一起显示的其他所定义MCP分组的摘要窗格的控件。当用户选择MCP分组的摘要窗格时,应用程序在没有接收任何其它用户输入的情况下显示其由该分组的MCP生成的合成展示。
图1示出一种此类媒体合成应用程序100。这个应用程序在存储MCP(例如视频、静态图像等)、和/或通过网络具有对存储在其它计算设备上的MCP的访问权限的设备上执行。这个设备是计算机(例如服务器、台式计算机或膝上型计算机)、或者移动设备(诸如智能电话或平板电脑)。如图所示,这个应用程序包括集合生成器105、布局生成器110、背景标识器115、打分引擎120、媒体合成器125、歌曲合成器130、和渲染引擎135。为了执行其操作,应用程序的这些模块访问媒体内容存储装置140、模板存储装置145、媒体集合存储装置150、音频存储装置155、合成视频存储装置160、合成音频存储装置165。
在一些实施方案中,集合生成器105和布局生成器110执行自动化过程,其(1)分析MCP(例如分析MCP的内容和/或元数据)以定义一个或多个MCP分组,及(2)生成将所定义的MCP分组标识为应用程序能为其显示合成展示(例如视频展示)的分组的用户界面(UI)布局。在执行其操作中,这些模块在一些实施方案中使用打分引擎120和背景标识器115。
更具体地,为了定义MCP分组,集合生成器105在一些实施方案中使用模板存储装置145中的一个或多个媒体分组模板(模板)来尝试将存储在媒体内容存储装置140中的每个MCP与一个或多个模板实例关联。在一些实施方案中,媒体内容存储装置140是执行应用程序的设备的数据存储装置(例如数据库)。在其它实施方案中,这个存储装置140的一部分或全部驻留在单独设备(例如另一计算机、服务器、移动设备等等)上。
在一些实施方案中,模板存储装置145中的模板是参考一组媒体匹配属性来定义的。集合生成器105将模板的属性组与MCP的内容和/或元数据进行比较,以便标识匹配模板属性的MCP。当足够数量的MCP匹配模板的属性组时,一些实施方案的应用程序参考匹配的MCP来定义模板实例,并将这个模板实例存储在媒体集合存储装置150中。在一些实施方案中,模板实例包括标识与实例的模板属性组匹配的MCP的MCP标识符的列表。
在一些实施方案中,集合生成器105可为模板定义多个模板实例。例如在一些实施方案中,模板包括(1)位置相关模板(例如在具有特定半径的区域内捕获的视频和/或照片)、(2)时间相关模板(例如在特定时间范围和/或日期范围内捕获的视频和/或照片)、(3)时间相关且位置相关模板(例如早晨在海滩上)、(4)内容定义模板(例如包含笑脸的视频和/或照片)、和(5)基于用户元数据的模板(例如用户创建的相册中的MCP、用户与他人分享的MCP、具有特定用户定义元数据标签的MCP等等)。
集合生成器105将其生成的模板实例的定义存储在媒体集合存储装置150中。在一些实施方案中,生成器重复其分组操作以便更新媒体集合存储装置150中的模板实例定义。例如在一些实施方案中,生成器周期性地(例如每小时、每六小时、每十二小时、每二十四小时等等)重复其分组操作。结合地或另选地,生成器150在一些实施方案中每当应用程序打开时就执行其分组操作和/或基于用户请求而执行其分组操作。
另外在一些实施方案中,集合生成器105每当新MCP被存储在媒体内容存储装置140中、或特定数量的MCP被存储在媒体内容存储装置140中时就执行其分组操作。例如在一些实施方案中,应用程序100在捕获多个图像内容数据(例如静态照片、突发模式照片、视频剪辑等)的移动设备上执行。每当移动设备捕获MCP(例如照片、视频剪辑等)时,集合生成器105在一些实施方案中就尝试将所捕获的MCP与一个或多个模板实例关联,前提是应用程序在那个时候正在前台或后台运行。
基于模板定义,布局生成器110在一些实施方案中生成将所定义的模板实例标识为应用程序能为其显示合成展示(例如视频展示)的MCP分组的UI布局。在任何给定时间,一些实施方案的布局生成器110都生成标识在那个时间根据背景对于设备的用户而言重要的所定义模板实例的子组的UI布局。如下文进一步所述,这是基于背景标识符115所提供的背景属性和打分引擎120所计算的模板实例得分。
图2示出布局生成器110生成的UI布局200的一个示例。在这个示例中,UI布局被显示在执行一些实施方案的应用程序的移动设备100的显示屏上。另外,这个示例是按显示这个UI布局展示的不同方面的四个阶段202-208来被示出。
如图所示,UI布局同时显示在特定时间定义的模板实例的子组的若干摘要窗格205。每个摘要窗格205显示关于其相关联模板实例的信息。在这个示例中,模板实例的摘要窗格包括标题以及该实例的一个或多个MCP的一个或多个缩略图。布局生成器110在一些实施方案中(1)由窗格实例的属性组(例如MCP元数据诸如位置、或MCP内容诸如笑脸等等)推导摘要窗格的标题,以及(2)由窗格实例的一个或多个质量较好MCP推导缩略图。在一些实施方案中,打分引擎120生成每个MCP的得分以对其质量定量。这个打分将在下文中进一步描述。
如进一步所示,UI布局200具有两个不同的显示区部210和215。第一显示区部210显示被认为在那个时候根据背景对于设备用户而言重要的模板实例的摘要窗格,而第二显示区部215显示不同类别的模板实例的摘要窗格。在这个示例中,两个或更多模板实例在源自于一个媒体分组模板时属于一个类别。另外在这个示例中,每个类别由该类别模板实例的摘要窗格顶部的类别题目来标识。在这个示例中,类别是假日、生日、度假、和公园。
图2的第一阶段202和第二阶段204示出用户可通过执行移动设备100的触敏显示屏幕支持的水平拖动(左或右)操作而滚动通过第一区部210中的摘要窗格。第二阶段204和第三阶段206示出用户可通过执行竖直触摸拖动(上或下)操作而滚动通过第二区部215中的摘要窗格。
第三阶段206和第四阶段208示出第二显示区部215初始只显示每个类别中较好质量模板实例的摘要窗格。特别地,第三阶段206示出用户可通过选择出现在假日类别的摘要窗格上方的“查看更多”控件230来查看为类别创建的所有模板实例。第四阶段208示出这个选择导致UI布局扩展用于假日类别的空间以显露用于附加假日模板实例的附加摘要窗格。
因此,在图2所示的示例中,UI布局不尽提供显示被认为在给定时间根据背景被认为比模板实例更重要的模板实例的摘要窗格的第一区部,而且将在第二区部中显示的摘要窗格限制到作为其相应类别中最佳的那些。普通技术人员将认识到,图2的UI布局仅仅是一个示例性UI布局设计。其他实施方案不同地显示、布置、和/或嵌套摘要窗格。另外,其他实施方案为每个摘要窗格提供不同类型的信息。
为了评估一个模板实例在特定时间根据背景是否比另一模板实例更重要和/或更好,布局生成器使打分引擎120生成每个模板实例的得分、基于所生成的得分对模板实例进行排名、然后基于排名来生成UI布局。在一些实施方案中,UI布局同时显示仅特定数量的排名最高的模板实例的摘要窗格。在其它实施方案中,UI布局只同时显示所生成得分超过特定最小阈值的模板实例的摘要窗格。
在不同实施方案中,打分引擎120不同地生成模板实例的得分。在一些实施方案中,模板实例的得分是基于(1)与UI布局被生成和/或显示的时间有关的背景属性、和(2)与模板实例的MCP的质量和/或数量有关的质量和/或数量属性。在不同实施方案中可使用不同背景属性。背景属性的示例包括(1)时间、(2)设备位置、(3)存储在设备上的或设备能访问的未来日历事件的位置、(4)由存储在设备上的电子票签导出的位置等等。
在一些实施方案中,背景标识器115周期性地从在设备上运行的一个或多个服务模块收集此类背景属性。这些服务模块的示例包括位置服务模块,诸如GPS模块,或由多个位置确定服务生成位置数据的其他位置模块(例如框架)。服务模块在一些实施方案中还包括一个或多个位置预测引擎,其(1)基于在设备上执行的日历应用程序中所安排的、或者电子票签应用程序所指定的事件,和/或(2)基于设备的过去位置(例如与设备先前在其中逗留超过阈值时间量的区域相关联的位置)来构想关于设备未来位置的预测。这些服务在一些实施方案中是框架级服务。
除了周期性收集此类背景属性之外或作为其的替代,背景标识器115在一些实施方案中基于来自布局生成器110的请求而按需收集这些属性。布局生成器110将其所接收的背景属性传递给打分引擎120,打分引擎然后利用这些属性来推导模板实例得分,以便标识(例如在所生成的UI布局将被显示时)会对于用户而言重要(用户会感兴趣)的模板实例。
例如在一些实施方案中,应用程序可根据在设备上执行的日历应用程序中安排的、或者电子票签应用程序所指定的事件的时间和位置来标识设备用户的未来位置。随着时间接近日历或票签事件的时间,应用程序基于假设用户会希望看到先前在该位置捕获的MCP而提高与事件位置相关联的模板实例的得分。
图3示出一个示例,该示例示出布局生成器在一些实施方案中如何基于背景重要性来布置模板实例摘要窗格。该示例以移动设备的三个操作阶段302至306示出。第一阶段302和第二阶段304示出用户滚动通过在第一显示区部210和第二显示区部215中具有多个摘要窗格的UI布局200。第二阶段304示出朝着第二显示区部210的底部的摘要窗格类别之一是度假类别,并且一个度假摘要窗格涉及2014年春天Maui。第一阶段302和第二阶段304还示出用户在2015年2月在这些阶段期间滚动通过UI布局200。
第三阶段306示出布局生成器在2015年4月生成的UI布局300。在这个UI布局300中,布局生成器已将2014年春天Maui模板实例移动到第一显示区部210,以便将这个集合展示为其可为之自动生成合成展示的特色集合之一。布局生成器110在一些实施方案中这样做是因为其检测到在设备上执行的电子票签应用程序具有在不久的将来去夏威夷的电子票签,于是确定先前已经定义了包括上次Maui旅游的媒体内容的模板实例。
在这个示例中,布局生成器传递给打分引擎、并且打分引擎在其打分计算中用来为Maui集合生成高分的背景属性包括票签的目的位置和旅游日期。在一些实施方案中,仅目的位置或者仅票签日期可能就足以将Maui集合在所生成的UI布局中向上移动。
另外,在图3的示例中,Maui集合从第二显示区部移动到第一显示区部。在一些实施方案中,布局生成器通过只是将摘要窗格在第二显示区部中向上移动或通过将其重新定位到第一显示区部中的另一位置来对其进行强调。此外,布局生成器可以比图3所示大得多的频率重新定义UI布局。例如在一些实施方案中,布局生成器在设备正向新目的地移动(例如在汽车中)时基于所预测的设备目的地来刷新UI布局。另选地或结合地,布局生成器在一些实施方案中在用户离开用户以执行一些实施方案的应用程序的移动设备的相机捕获了多个MCP的区域时刷新UI布局。
在一些实施方案中,每个模板实例的得分可取决于实例的MCP的质量和/或数量属性。在一些实施方案中,打分引擎120生成模板实例的得分,其基于假设数量越大就意味着对模板实例的感兴趣水平越高而考虑实例中MCP的数量。例如,具有大量在特定一天在一个位置的相片的模板实例通常会表明令人感兴趣的事件是在那个特定一天在那个位置处发生,并且用户因此会更有兴趣看到形成那个事件的照片。
然而在一些实施方案中,集合生成器105从模板实例中丢弃重复的或几乎重复的MCP(例如当存在多个相同或几乎相同的照片时只保留一个照片)或者在其被包括在模板实例中之前将其丢弃,因为具有多个此类照片常常并不导致令人感兴趣的合成展示。另一方面,集合生成器105在一些情况下保持突发模式序列中的多个照片,使得合成展示能提供令人感兴趣的突发模式照片处理。在一些实施方案中,集合生成器105还丢弃被认为不令人感兴趣的(例如接收方图片、屏幕截图照片等)或并非有用的(例如非常模糊的照片等等)特定MCP。这些MCP在一些实施方案中在模板实例创建之前被滤除。换句话讲,这些MCP在一些实施方案中从不与模板实例相关联。
在一些实施方案中,基于假设具有更好内容的模板实例将导致更好生成的合成展示、并由此导致查看者更感兴趣的合成展示,每个模板实例的得分考虑实例的MCP的质量。在不同实施方案中,打分引擎120基于不同标准对MCP打分。例如,在一些实施方案中,打分引擎基于以下MCP属性和/或元数据中一者或多者来生成MCP的本征得分:聚焦、模糊、曝光、相机运动、语音内容、面部内容、用户输入和/或行为(例如用户标签、用户包括在相册中、用户与他人分享等等)。一些实施方案还对特种MCP类型(例如突发模式照片、慢动作视频、延时视频等)打分比其他MCP类型(例如静态相片)更高。一些实施方案还对在不与设备用户家或工作相关联的位置处捕获的MCP打分比在家或工作场所捕获的MCP更高。
在一些实施方案中,集合生成器105使用MCP本征得分来在包括在模板实例中之前或之后滤除MCP中的一些。在这些实施方案中,集合生成器105使用打分引擎120来计算这些得分。打分引擎在一些实施方案中包括不同打分模块用于计算不同类型的得分,例如MCP得分、基于背景的实例得分、基于质量的实例得分、基于数量的实例得分等等。在一些实施方案中,这些得分中的一者或多者(例如MCP得分)由设备的一个或多个框架服务来提供。另选地或结合地,框架服务在一些实施方案中提供表征MCP不同特性的元数据标签,这些元数据标签用于计算这些得分中的一些或全部。
除了本征得分之外,打分引擎120在一些实施方案中计算非本征得分,其参考一个或多个其他MCP来表达一个MCP的质量。例如在一些实施方案中,打分引擎120计算非本征得分以便定义模板实例中MCP的选择次序。在这些实施方案中的一些中,所计算的非本征得分对选择次序中两个连续MCP之间的时间和视觉距离定量,如下文进一步所述。
当用户选择模板实例的摘要窗格时,布局生成器在一些实施方案中指示媒体合成器125和歌曲合成器130为所选模板实例生成媒体和歌曲展示的定义,渲染引擎135对其进行渲染以生成合成展示用于显示。媒体合成器125在一些实施方案中由模板实例的MCP生成合成媒体展示的定义。
在生成这个定义中,媒体合成器使用利用非本征得分所计算的选择次序来选择模板实例的仅一个子组的MCP。例如,在基于时间和差异距离值定义选择次序之后,一些实施方案的视频合成器选择模板实例中的MCP直到选择次序中的两个连续MCP彼此在特定距离内(例如彼此在0.25单位时间和差异距离内)的位置。
在一些实施方案中,这个选择于是允许媒体合成器在没有任何用户输入的情况下自动定义合成展示的持续时间。例如,一些实施方案将所述持续时间计算为所选MCP子组中每个MCP的理想持续时间之和。在一些实施方案中,每个MCP具有MCP类型,并且MCP的理想持续时间是其类型所定义的理想持续时间。理想展示持续时间的计算将在下文中进一步描述。
在其它实施方案中,媒体合成器选择合成展示的持续时间,然后使用选择次序来选择根据选择次序的N个最高排名的MCP。因此,这些实施方案使用持续时间来标识MCP以根据选择次序选择,而其他实施方案使用选择次序来定义展示持续时间。然而,考虑到这些方法二者在一些实施方案中都依赖于基于所计算的时间和差异距离得分的选择,其确保保留在模板实例中的MCP是提供MCP的视觉独特组合的最佳质量MCP。
在一些实施方案中,合成媒体展示的定义包括展示中包括的实例MCP的身份、所包括MCP的展示次序、和为了由MCP生成合成展示而要执行的编辑操作(例如过渡操作、特殊效果等等)的列表。在一些实施方案中,合成媒体展示的MCP可以与模板实例的MCP相同,或者它们可以是媒体合成器从实例的MCP推导的MCP。
例如,模板实例的多个MCP可以是静态照片。对于这些静态照片中的一些或全部,媒体合成器125通过为这些照片中每一者指定Ken Burns效果而生成合成展示中的视频剪辑。另外,应用程序可从模板实例的视频剪辑MCP提取一个或多个视频剪辑来包括在合成展示中。类似地,媒体合称器125可从作为突发模式序列的MCP提取该序列的一个或多个静态照片和/或序列的静态照片中一者或多者的一个或多个Ken-Burns类型视频剪辑。存在很多其他的由模板实例的MCP推导合成展示MCP的示例。
在一些实施方案中,媒体合成器通过选择合成展示的蓝图来生成合成媒体定义。在一些实施方案中,蓝图描述所期望的过渡、效果、编辑样式(包括编辑节奏)等等。蓝图也可指定所期望的展示类型,这于是可影响在合成展示中包括或强调的MCP类型。例如,一个蓝图可能将突显指定为所期望的展示类型,而另一蓝图可能将回顾指定为所期望的类型。对于突显,集合生成器105或媒体合成器125在一些实施方案中选择代表模板实例的MCP的最佳MCP。对于回顾,集合生成器105或媒体合成器125在一些实施方案中选择对于模板实例的整个MCP组并非必需的MCP。
在一些实施方案中,蓝图还确定媒体合成器125自动生成的合成展示的持续时间。在这些实施方案中的一些中,应用程序基于模板实例中高质量独特内容的量和蓝图指定持续时间。例如在一些实施方案中,蓝图的所指定参数(例如指定MCP的理想持续时间的参数)与基于选择次序选择的MCP一起确定合成展示的所期望持续时间。在一些实施方案中,蓝图还可指定其他参数,诸如非本征得分的计算方式等等。
对于模板实例,蓝图在一些实施方案中与模板实例的模板相关联。另选地或结合地,蓝图在一些实施方案中与应用程序(例如集合生成器105或媒体合成器125)为合成展示自动选取的情绪相关联。在一些实施方案中,情绪是描述合成展示类型的形容词。情绪的示例包括极端、俱乐部、宏大、令人振奋、快乐、温和、冷漠、伤感、梦幻等等。
在一些实施方案中,应用程序100(例如集合生成器105或媒体合成器125)基于模板实例中媒体的类型和/或持续时间、对该媒体的内容分析(例如检测高运动视频)、和检测到的用户情绪偏好而自动为合成展示选取情绪。此外,在一些实施方案中,应用程序允许为合成展示修改情绪。在这些实施方案中的一些中,视频合成器125和歌曲合成器130在用户为所生成的合成展示修改情绪之后重新生成模板实例的合成展示。一些实施方案允许用户查看所生成UI布局上摘要窗格所代表的模板实例的情绪。如果用户修改所表示的模板实例的情绪,则视频合成器125和歌曲合成器130基于用户改变来生成该模板实例的合成展示。
一些实施方案的应用程序还允许用户修改应用程序初始计算的展示持续时间。例如,在一些实施方案中,用户可在被展示以所渲染的合成展示之后修改展示持续时间。另选地或结合地,应用程序允许用户在所生成的UI布局中查看和修改展示持续时间(例如作为实例的摘要窗格所提供的信息的一部分),而不必首先查看具有该持续时间的被渲染合成展示。一些实施方案还允许用户修改集合生成器105为模板实例自动选择的MCP。在一些实施方案中,用户可在查看视频合成器125和歌曲合成器130为集合生成器105生成的模板实例生成的合成展示之前和/或之后修改MCP。
在一些实施方案中,媒体合成器125包括新颖的受约束解算器,其通过基于(1)一组限制解空间探索的约束和(2)指定内容特性(例如对于照片、或对于视频帧范围)的元数据标签探索用于组合模板实例MCP的不同方式来生成合成媒体定义。约束的示例包括持续时间约束(例如每个MCP类型的理想持续时间、最小持续时间和最大持续时间)和位置约束(例如一个MCP类型不能放置在另一MCP类型旁边)。
在探索解空间寻找满足所述约束并符合一个或多个优化标准的最佳解中,受约束解算器在一些实施方案中优先估算使用在选择次序中高排名的MCP的解。另外,在寻找最优解中,受约束解算器在一些实施方案中(1)基于元数据标签范围标识模板实例MCP的不同部分(例如视频剪辑的不同片段等),以及(2)基于这些所标识部分来探索解。
在一些实施方案中,解算器从所标识解中丢弃比特定尺寸小的MCP片段。解算器在一些实施方案中还探索所标识解中的MCP片段是否应被分成更小片段以便删除片段中间的一个或多个范围(例如,不期望内容的范围,诸如具有过度相机运动的范围等等,和/或不具有期望内容的范围,诸如不包含任何面部的范围)。在这些实施方案中的一些中,解算器在删除较小结果片段和/或将MCP分成更小片段之后重新启动其对解的搜索。
在一些实施方案中,媒体合成器还为静态照片指定Ken-Burns效果以便定义静态照片的视频展示。媒体合成器在一些实施方案中为其他类型的图像内容(诸如突发模式序列、慢动作序列、延时序列等)指定导致生成该类型内容的视频序列的特殊处理。通过只使用所提取的MCP片段以及通过为照片和其他类型内容指定特殊处理,媒体合成器由模板实例的MCP生成合成展示的MCP。
在一些实施方案中,媒体合成器将合成展示的期望持续时间提供给歌曲合成器,在该持续时间之后从选择次序和/或蓝图提供。基于所接收的期望持续时间,歌曲合成器于是动态地定义合成歌曲展示用于伴奏媒体合成器的合成媒体展示。这个歌曲合成器动态地定义用于在特定序列中包括若干音频片段的歌曲展示、以及序列中音频片段之间的一组编辑和过渡。在一些实施方案中,音频片段是一首歌曲的部分,而在其他实施方案中,它们可以是两首或更多首歌曲的部分。
这些音频片段被称为主体片段,以表明其是另一歌曲的部分。在一些实施方案中,歌曲合成器还从用于合成歌曲展示的若干候选结束片段中选择结束片段。歌曲合成器在这些实施方案中的一些实施方案中还可从用于合成歌曲展示的若干起始片段中选择起始片段。编辑方通过使用一些实施方案的音频创作工具来由一首或多首歌曲定义主体片段、起始片段和结束片段。
为了确保片段在合成歌曲展示中正确地布置,一些实施方案的歌曲合成器使用(1)指定音频片段可如何被插入音频序列中的插入规则、和(2)用于确保被插入音频片段可与序列中的其他片段邻接的序列规则。在一些实施方案中,插入规则是参照每个主体片段所属于的音频节段来定义。特别地,在一些实施方案中,音频片段编辑方将每个主体片段关联到一组顺序指定的节段中的一个节段,并指定每个节段中主体片段的特定次序排列。一些实施方案的插入规则指定属于后面第二节段的主体片段不能被插在属于先前第一节段的主体片段之前。插入规则还要求属于同一节段的主体片段基于其在其相应节段中的次序而放置在彼此旁边。
在一些实施方案中,这些序列规则被嵌入在具有多行多列的跳转表中,每个主体片段与一行和一列相关联。在一些实施方案中,每个起始或结束片段也与至少一行和一列相关联。每个跳转表单元格于是指定被分配给该单元格的行和列的两个片段是否被允许按行和列分配所指定的次序彼此跟随。编辑方使用一些实施方案的创作工具来为编辑方定义的主体片段、起始片段和结束片段指定跳转表及其属性。在运行时,歌曲合成器于是使用该跳转表自动地定义媒体合成器所指定的持续时间的歌曲。
在一些实施方案中,每个跳转表单元格还指定在两个片段之间的转变处是否需要过渡。跳转表在一些实施方案中还指定(1)每个主体片段的优先级值和(2)用于指示主体片段在歌曲合成期间是否可被切割的标识符。在一些实施方案中,歌曲合成器基于片段优先级值并基于一组插入规则按展示次序插入主体片段,直到达到特定持续时间。这个持续时间在一些实施方案中是媒体合成器提供的理想持续时间减去最长结束片段的持续时间。在布置主体片段之后,歌曲合成器添加结束片段,并且当音频序列仍然比所期望持续时间短时,如果有一个不会使序列持续时间超过所期望持续时间的片段可用,则添加起始片段。
在一些实施方案中,媒体合成器125和歌曲合成器130具有若干新颖的交互。首先是媒体合成器自动生成所期望的展示持续时间,歌曲合成器基于该持续时间自动生成合成歌曲展示的定义,如上所述。另一新颖的交互是,在一些实施方案中,歌曲合成器将结束片段的位置、和/或结束片段中插播乐句的位置提供给媒体合成器,使得媒体合成器能将最后一个视频或图像片段的开头与结束片段或这个片段中的插播乐句对准。在一些实施方案中,视频和歌曲合成器还将其对其各自的展示应用的渐隐效果彼此同步。
另外,在一些实施方案中,媒体合成器执行后处理来将合成媒体中的编辑点对准到合成歌曲中特定的听觉上可分辨的过渡位置。这些位置在一些实施方案中包括合成定义中的节拍位置、起音点位置、片段边界位置、和结束片段插播乐句位置。音频起音点对应于幅值从零上升到峰值的音符的开头。节拍是歌曲播放的节律运动。结束片段插播乐句是结束片段中表明结束片段末端开始的一段短音乐。
在一些实施方案中,媒体合成器指示歌曲合成器标识合成歌曲中在展示中特定时间附近的一个或多个听觉上可分辨的过渡位置。在这些实施方案中的一些中,歌曲合成器返回(1)所述特定时间附近此类位置的列表、和(2)这些位置中每一者的优先级。媒体合成器于是使用这个过渡列表来基于所指定的优先级值和为了到达过渡位置,媒体编辑必须被移动的程度来将合成媒体的定义中的编辑点对准到过渡位置。
在媒体合成器生成合成媒体展示的定义并且歌曲合成器生成合称歌曲展示的定义之后,这些模块将所生成的媒体展示定义和歌曲展示定义分别存储在媒体定义存储装置160和歌曲定义存储装置165中。一些实施方案使用一个存储装置(例如一个文件)来存储这些定义二者。从存储装置160和165,渲染引擎135检索媒体展示定义和歌曲展示定义,并由这些定义生成所渲染的合成展示。在一些实施方案中,渲染引擎135将所渲染的合成展示存储在其存储于设备上的文件中,或者将所渲染的合成展示输出给设备的帧缓冲器用于显示。
普通技术人员将认识到,应用程序100在其他实施方案中以与上述不同的方式操作。例如,不是在用户选择UI布局中模板实例的摘要窗格之后定义该模板实例的合成展示,一些实施方案的应用程序在UI布局生成之前定义合成展示。在这些实施方案的一些中,应用程序生成每个所定义合成展示的得分,然后使用所有所定义合成展示的所生成得分来定义和布置UI布局。例如在一些实施方案中,应用程序使用所生成的合成展示得分来标识应初始同时在UI布局上表示的合成展示的子组,以及标识UI布局上这些合成展示的摘要窗格的次序。另选地,一些实施方案在生成UI布局之前渲染合成展示。另外的实施方案在UI布局被生成之前定义一部分合成展示,然后在UI布局被生成之后生成合成展示的定义的其余部分。
应用程序100的操作现在将参考图4的过程400来描述。过程400的操作的序列只是展示该应用程序的模块在一些实施方案中操作的一种方式。普通技术人员将认识到,如上所述以及如下文进一步所述,其他实施方案使这些模块以不同序列执行这些操作,和/或使这些操作中的一些由其他模块来执行。因此,对过程400的描述意在只是提供用于实施本发明一些实施方案的一种示例性方式。
过程400开始于集合生成器105定义和/或更新基于类似属性对MCP进行分组的模板实例。如上所述,集合生成器105在一些实施方案中使用模板存储装置145中的一个或多个媒体分组模板(模板)来将存储在媒体内容存储装置140中的MCP与一个或多个模板实例关联。在一些实施方案中,生成器105还尝试将远程存储(例如存储在其他设备的远程存储装置上)的MCP与一个或多个模板实例关联。
如下文进一步所述,集合生成器105将模板的属性组与MCP的内容和/或元数据进行比较,以便标识匹配模板属性的MCP。在标识模板实例的MCP集合之后,集合生成器105从模板实例中丢弃不期望的MCP。不期望的MCP包括质量差的MCP(例如具有太多相机运动的MCP等等)、不感兴趣的MCP(例如接收方图片、屏幕截图照片等等)、和重复或几乎重复的MCP。重复的MCP(例如多个几乎相同或非常类似的照片)常常并不导致令人感兴趣的合成展示。然而在一些情况下,重复的MCP(例如来自突发模式序列的照片)不被过滤。另外在一些实施方案中,不期望的MCP(例如不感兴趣的MCP、或图像特性差的MCP)中的一些或全部在集合生成器105定义模板实例之后被滤除。
然后在410,过程400使打分引擎120生成在405定义或更新的每个模板实例的得分。在不同实施方案中,打分引擎120不同地生成模板实例的得分。在一些实施方案中,模板实例的得分是(1)基于与UI布局被生成和/或显示的时间有关的背景属性的背景得分、(2)对模板实例的MCP的质量定量的质量得分、和(3)对模板实例的MCP的数量定量的数量得分的加权组合(例如加权和)。这些得分的计算在上文进行了描述,并且在下文进一步描述。
在415处,过程400为每个所定义或更新的模板实例定义标题和选择一个或多个缩略图。一些实施方案将标题和缩略图用于所生成的UI布局中模板实例的摘要窗格。在一些实施方案中,布局生成器110从实例的属性组(例如MCP元数据诸如位置、或MCP内容诸如笑脸等)推导模板实例的标题。另外在一些实施方案中,布局生成器从实例的较好质量MCP中一者或多者推导实例的缩略图。一些实施方案计算对MCP的本征质量进行定量的得分,如下文进一步所述。
然后在420处,布局生成器110在一些实施方案中生成将所定义的模板实例标识为应用程序能为其显示合成展示(例如视频展示)的MCP分组的UI布局。在任何给定时间,一些实施方案的布局生成器110都生成标识在那个时间根据背景对于设备的用户而言重要的所定义模板实例的子组的UI布局。
为了以根据背景重要的方式布置UI布局中的模板实例摘要窗格,布局生成器110在一些实施方案中使用在410计算的模板实例得分。例如在一些实施方案中,布局生成器110使用所计算的模板实例得分来(1)分拣模板实例、(2)在UI布局的特色第一显示区部210中显示根据背景最重要的模板实例、和(3)在UI布局的第二显示区部215中标识在每个模板类别中要初始显示的模板实例。
在一些实施方案中,用于第一显示区部的根据背景最重要的模板实例是所计算的合成得分最高的模板实例(例如是由合成得分、质量得分和数量得分所计算的加权和最高的模板实例)。于是初始为每个模板类别显示的模板实例是不在第一显示区部中显示的在其类别中最高合成打分的模板实例的模板实例。
其他实施方案以不同方式使用所计算的得分,以定义UI布局中摘要窗格的布置。例如,在一些实施方案中,背景得分和质量得分用于标识第一显示区部210中摘要窗格的布置,而质量得分和数量得分用于标识第二显示区部215中初始显示的摘要窗格的布置。其他实施方案以其他方式使用这些或其他得分来定义UI布局。
在425处,用户选择模板实例的摘要窗格。作为响应,布局生成器在一些实施方案中(在425)指示媒体合成器125为所选模板实例生成合成展示的定义。在一些实施方案中,媒体合成器125由模板实例的MCP生成合成媒体展示的定义,同时指示歌曲合成器生成相关联的合成歌曲展示的定义。
为了生成媒体合成展示的定义,媒体合成器125(在425)基于模板实例中媒体的类型和/或持续时间、对该媒体的内容分析(例如检测高运动视频)、和检测到的用户情绪偏好而自动为合成展示选取情绪。在选取情绪之后,媒体合成器(在425)基于所选择的情绪为合成展示选取蓝图。如上所述,蓝图在一些实施方案中描述展示的所期望过渡、效果、编辑样式(包括编辑节奏)、所期望类型等等。
在425处,媒体合成器定义用于选择所选模板实例的MCP的选择次序。如上所述并且如下文进一步所述,媒体合成器通过使打分引擎计算对模板实例的MCP之间的时间和差异距离值定量的非本征得分来定义选择次序。
然后在430处,媒体合成器基于选择次序和蓝图为合成展示计算所期望的持续时间。例如,一些实施方案的视频合成器选择模板实例的MCP子组直到选择次序中的两个连续MCP彼此在特定时间和差异距离内(例如彼此在0.25单位时间和差异距离内)的位置。结合指定所期望编辑(例如快速过渡编辑或缓慢过渡编辑)的类型的蓝图,基于选择次序选择MCP子组就允许媒体合成器在没有任何用户输入的情况下自动地定义合成展示的持续时间。
例如,一些实施方案将所述持续时间计算为所选MCP子组中每个MCP的理想持续时间之和。在一些实施方案中,每个MCP具有MCP类型,MCP的理想持续时间是其类型所定义的理想持续时间。在这些实施方案中的一些中,MCP类型的理想持续时间基于所选择的蓝图而被调节。其他实施方案不同地自动定义合成展示的持续时间。例如在一些实施方案中,媒体合成器在计算所期望持续时间中不考虑蓝图,而只是基于其利用选择次序选取的MCP子组来计算合成展示的所期望持续时间。
当(在430处)计算合成展示的所期望持续时间之后,媒体合成器125在一些实施方案中(在435处)将该持续时间提供给歌曲合成器130并指示这个合成器动态地生成具有该持续时间的歌曲展示的定义。如上所述,并且如下文进一步所述,歌曲合成器通过探索来自一首或多首歌曲的主体片段、以及不同的可能的起始片段和结束片段的不同组合来生成这个定义。
然后在435处,媒体合成器动态地生成具有所期望持续时间的媒体展示的定义。如上所述并且如下文进一步所述,媒体合成器125使用受约束解算器,其通过基于(1)一组限制解空间探索的约束和(2)指定内容特性(例如对于照片、或对于视频帧范围)的元数据标签探索用于组合模板实例MCP的不同方式来生成合成媒体定义。
在探索解空间寻找满足所述约束并符合一个或多个优化标准的最优解中,受约束解算器在一些实施方案中(1)基于元数据标签范围标识模板实例MCP的不同部分(例如视频剪辑的不同片段等),以及(2)基于这些所标识部分来探索解。另外,媒体合成器指定静态照片和其他MCP的Ken-Burns效果和其他特殊处理,以便生成美观的媒体展示。
在435处,视频合成器125和歌曲合成器130具有若干交互以便同步所定义的媒体展示和歌曲展示。例如,如上所述,媒体合成器从歌曲合成器获取结束片段、和/或该结束片段中插播乐句的位置,以便将最后一个视频或图像片段的开头与这个结束片段或插播乐句对准。另外在一些实施方案中,媒体合成器从歌曲合成器获取歌曲合成器为歌曲展示的结尾定义的任何渐隐效果的位置,使得媒体合成器能将其视频渐隐效果与音频渐隐同步。在一些实施方案中,媒体合成器还可从歌曲合成器获取在展示中特定时间附近的一个或多个听觉上可分辨的过渡位置,使得媒体合成器能在这个时间运行视频编辑以与所获得的位置之一重合。这将在下文中进一步描述。
在视频合成器和歌曲合成器生成媒体展示和歌曲展示的定义之后,渲染引擎135(在440处)由这些定义生成所渲染的合成展示。在一些实施方案中,渲染引擎135将所渲染的合成展示输出给设备的帧缓冲器以用于显示。在其它实施方案中,渲染引擎可将所渲染的合成展示存储在其存储于设备上的文件中。
在查看合成展示之前或之后,应用程序允许用户修改合成展示。例如,在一些实施方案中,用户可修改合成展示的持续时间或情绪。一些实施方案还允许用户改变用于合成展示的歌曲。类似地,一些实施方案允许用户改变用于合成展示的MCP(例如添加或删除MCP)。
图5示出一些实施方案的应用程序的UI如何表示合成展示的机器选择的情绪和机器选择的持续时间、以及UI如何允许用户改变其展示和持续时间。该示例以移动设备100的四个操作阶段502至508示出。这些阶段中的每一者示出显示在其中可播放合成展示的查看器510的页面500。该应用程序示出在完成合成展示的全屏显示之后或在用户停止全屏合成展示显示之后的该页面500。在一些实施方案中,用户必须(例如通过轻击来)选择查看器以重新启动展示的全屏显示、或启动该展示仅在查看器窗口中的显示。
每个阶段还示出情绪滑块515和持续时间滑块520。每个滑块列出在用户在滑块上执行拖动操作时能沿滑动方向在屏幕上向左和向右滚动的多个候选滑块值。情绪滑块列出若干情绪值(例如快乐、宏大、冷漠、温和、伤感等),持续时间滑块列出若干持续时间(例如30秒、45秒、60秒等等)。
第一阶段502显示用户在情绪滑块515上执行拖动操作。这个阶段还显示合成展示的机器选择的情绪是快乐。第二阶段504显示用户选择宏大情绪以便将合成展示的情绪从快乐改变成宏大。第三阶段506显示展示情绪已改变成宏大。
第三阶段506还显示用户在持续时间滑块520上执行拖动操作。这个阶段还显示合成展示的机器选择的持续时间是30秒。第四阶段508显示用户选择60秒持续时间以便将合成展示的持续时间从30秒改变成60秒。第四阶段508还显示展示持续时间已改变成60秒。
图6示出应用程序的UI如何允许用户改变应用程序为合成展示自动选取的内容。该示例以移动设备100的五个操作阶段602至610示出。第一阶段602与图5的第一阶段502类似,因为其显示具有查看器510、情绪滑块515和持续时间滑块520的页面500。该页面还包括编辑控件605。第一阶段示出用户对该控件的选择。
第二阶段604示出,响应于对编辑控件605的选择,应用程序显示若干编辑控件,诸如(1)用于修改合成展示中一个或多个机器选择的过渡的过渡控件650、(2)用于修改用于自动生成合成展示歌曲的歌曲的音乐控件655、(3)用于修改合成展示的一个或多个机器指定的效果的效果控件660、(4)用于修改合成展示的一个或多个机器生成的标题的标题控件665、和(5)用于添加或移除为合成展示自动选择的MCP的内容控件670。
对这些控件中任何控件的选择会指示应用程序展示用于实行与所选控件相关联的操作的一个或多个附加控件。在图6所示的示例中,所选控件是内容控件670,其在第二阶段604中被选择。
第三阶段606显示,对内容控件670的选择指示应用程序展示显示用户能选择从合成展示添加或移除MCP的MCP列表的页面630。在这个页面上,一些实施方案不同地显示已包括在合成展示中的MCP和还未包括在展示中的MCP(例如显示以不同色调或顶部指定)。
第三阶段606还示出用户选择视频剪辑635的缩略图用于添加到合成展示。第四阶段608和第五阶段610于是示出合成展示在查看器510中播放。如第五阶段所示,合成展示现在包括来自所选视频剪辑635的内容。
图7示出过程700,集合生成器110尝试将MCP关联到一个或多个模板实例。这个附图将参考图8来进行描述,图8示出集合生成器对其进行处理以在没有用户输入的情况下自动定义模板实例的输入。如图8所示,集合生成器105从媒体内容存储装置140接收MCP及其相关联元数据。集合生成器105将每个MCP的元数据与存储在模板存储装置145中的每个模板的属性组进行比较,以便确定MCP是否应与模板相关联。当MCP匹配应与模板相关联时,集合生成器将MCP关联到模板匹配的模板实例。在图8所示的示例中,这个关联是通过添加对涉及匹配MCP的模板实例的标引(例如指针或标识符)来建立。当之前还未定义一个此类模板实例时,集合生成器定义模板实例。
在一些实施方案中,过程700每当应用程序启动时启动。另外在一些实施方案中,该过程每当应用程序运行并且一个或多个新MCP被接收时启动。例如在一些实施方案中,应用程序在具有捕获图片和视频的相机的移动设备上执行。在这些实施方案中的一些中,过程700每当设备捕获一个或多个新照片或视频时启动。这些或其他实施方案还可每当在远程存储装置上有新的一组MCP变得可供使用时启动该过程。
在一些实施方案中,过程700也可每当新模板被添加到模板存储装置145时启动。在这种情况下,过程800为这个新模板重新分析所有先前分析过的MCP。其他实施方案不同地启动过程800,例如周期性地(例如每小时、每6小时、每12小时、每24小时等等)执行这个过程。结合地或另选地,一些实施方案每当应用程序打开时和/或基于用户请求而启动这个过程。
如图所示,过程700初始(在705)选择先前还未分析的MCP来与一个或多个模板关联。在一些实施方案中,所选MCP可以是新MCP,或者可以是先前分析过的还未为最近定义的一个或多个新模板分析的MCP。所选MCP在一些实施方案中是驻留在驻留于执行集合生成器的设备上的数据存储装置(例如数据库)上的MCP。在一些实施方案中,所选MCP可以是驻留在集合生成器的设备能通过网络访问的单独设备(例如另一计算机、服务器、移动设备等)上的MCP。
如图8所示,MCP 805在一些实施方案中包括MCP内容810、所捕获元数据815、和捕获后元数据820。MCP内容通常包括图像内容,诸如一个或多个照片或视频帧的像素值。还可包括一个或多个音轨,如在MCP是具有音轨的视频剪辑的情况中那样。不同类型的视觉MCP内容的示例包括静态照片、视频剪辑、突发模式照片序列、全景照片、延时视频、慢动作视频等等。
所捕获元数据815包括MCP捕获设备(例如相机)在MCP被捕获时生成的元数据。捕获元数据的示例包括MCP捕获的日期和时间、MCP捕获的位置、和MCP捕获的一个或多个相机设置(例如曝光、焦点矩形等)。
捕获后元数据包括在MCP已被捕获之后为MCP定义的元数据。如图所示,捕获后元数据的两个示例包括推导元数据825和显式用户分配元数据830。用户分配元数据830包括用户分配给MCP的关键字(例如生日、度假、周年纪念等等)或其他标签(例如喜欢、不喜欢、偏爱等等)。还包括MCP的用户指定关联,例如包括在用户指定的相册中等等。
推导元数据825包括通过分析MCP内容810、所捕获元数据815、用户分配元数据820和/或对于MCP的用户动作而推导的不同类型的元数据。设备的一个或多个框架服务分析MCP、其元数据及相关联用户动作以生成推导元数据825。此类所推导元数据的示例包括推导位置元数据830、图像分析元数据835和隐式用户元数据840。隐式用户元数据840是通过监视对于MCP的用户动作(例如将MCP与他人分享、反复查看MCP等等)而生成的元数据。
推导位置元数据830包括通过分析与MCP相关联的元数据而与MCP相关联的位置数据。例如在一些实施方案中,MCP的捕获位置元数据被分析以便将MCP与允许MCP与其他MCP分组在一起的区域和/或范围指定关联。在一些实施方案中,应用程序或框架服务生成包括对应于区域和子区域的节点的分级有向无环图(DAG)结构。在这些实施方案中的一些中,推导位置元数据是按DAG结构中的区域节点标识符来定义。
图像分析元数据835包括通过分析MCP图像内容810定义的一个或多个元数据属性。在一些实施方案中,这个元数据包括图像属性得分845和内容指示符850。图像属性得分845的示例包括用于对聚焦、曝光、模糊、锐度、色彩属性等定量的得分。这些得分在一些实施方案中由设备的一个或多个框架服务生成。内容指示符850指示MCP内容的类型,并表征这个内容。如果MCP剪辑具有多个帧或图像(例如对于视频剪辑),内容指示符可按定义特定内容指示符在其上有效的图像或帧范围的范围来表述。内容指示符的示例包括面部指示符、笑脸指示符、语音指示符、相机运动指示符、无用内容指示符、场景指示符、图像质量指示符等。这些指示符在一些实施方案中由设备的一个或多个框架服务生成。
在选择未分配的MCP之后,过程700(在710)确定模板存储装置145中是否有任何模板具有一组与MCP的捕获或捕获后元数据810和815匹配的属性。如上所述,模板在一些实施方案中是参考一组媒体匹配属性855来定义。过程700(在710)将模板的属性组与MCP的元数据进行比较,以便标识匹配模板属性的MCP。
模板的示例在一些实施方案中包括(1)位置相关模板(例如在具有特定半径的区域内捕获的视频和/或照片)、(2)时间相关模板(例如在特定时间范围和/或日期范围内捕获的视频和/或照片)、(3)时间相关且位置相关模板(例如早晨在海滩上)、(4)内容定义模板(例如包含笑脸的视频和/或照片)、(5)基于用户元数据的模板(例如用户创建的相册中的MCP、用户与他人分享的MCP、具有特定用户定义元数据标签的MCP等等)、以及(6)这些模板的任意组合。
这些类型的模板中每一者可按一组模板属性来表述。例如,位置相关的内容定义模板可指定两个属性:(1)MCP应包含笑脸,和(2)MCP是在机器推导的并非设备家或工作位置的区域内被捕获。对于这个模板,模板实例于是被定义为包括任何具有指示其图像内容包括笑脸的元数据且其推导位置元数据830指示其与并非设备家或工作位置的机器指定区域相关联的MCP。
当所选MCP匹配模板的属性组时,该过程(在715)确定先前是否已定义了所选MCP应被匹配到的模板实例。这是因为该过程可为模板定义多个模板实例,并且可将不同MCP组与模板的不同模板实例关联。当模板的至少一个特定属性可具有多个可能值时,不同MCP组可被分组到模板的不同模板实例中。在这种情况下,不同MCP组对于所述特定模板属性具有不同的可接受匹配属性值。
例如,时间和位置相关模板可按(1)指定12pm到4pm的时间范围元组、(2)指定星期天的日范围元组、和(3)指定不与设备的家或工作位置相关联的任何区域的位置元组来定义。对于这个模板,应用程序可标识包括在星期天下午在不同位置捕获的不同组MCP的多个模板实例,其中每个模板实例与设备通过分析所捕获MCP数据或通过其他分析标识的不同区域相关联。
当该过程(在715处)确定先前还未定义所选MCP应被关联到的模板实例时,其在720定义模板实例,然后过渡到725。该过程当(在715处)确定先前已定义了所选模板应关联到的模板实例时也过渡到725。
在725处,该过程将所选MCP与模板实例关联。如图8所示,这个关联在一些实施方案中是通过添加对涉及匹配MCP的模板实例的标引(例如指针或标识符)来建立。过程700将所定义的模板实例存储在媒体集合存储装置150中,如图8所示。
在730处,该过程确定所选MCP是否匹配任何其它模板的属性组。如果匹配,则该过程返回到715将所选MCP与这个其它模板的模板实例关联。否则,该过程(在735处)确定是否已处理了所有需要检查的MCP。如果还没有,则返回到705选择先前还未分析的另一MCP以与一个或多个模板关联。
当过程700(在735)确定已处理了所有需要分析的MCP时,该过程(在740处)分析其(在725处)修改了的每个模板实例以便滤除不期望的MCP。在一些实施方案中,(在740处)被滤除的不期望的MCP包括同一模板实例中其它MCP的非必要重复的MCP。一些实施方案滤除其它MCP,诸如质量差的MCP(例如具有太多相机运动的MCP等)和不感兴趣的MCP(例如接收方图片、屏幕截屏照片等)。然而在一些实施方案中,此类其它不期望的MCP在MCP处理的其它阶段被滤除,诸如在集合生成器105定义模板实例之前以及在媒体合成器定义合成媒体展示期间。
在740处,该过程(在745处)确定是否应滤除任何其已创建的模板实例。在一些实施方案中,过程700在模板实例不具有足够数量的高质量MCP时消除该实例,因为此类模板实例不会适于生成令人感兴趣的合成展示。在一些实施方案中,消除模板实例只是涉及(例如以标记)将模板实例指派为布局生成器不应将其考虑用于在UI布局中展示的模板实例。在这些实施方案中,集合生成器不丢弃被消除的模板实例,因为将在过程700的后续迭代中使用这个实例以便可能将新分析的MCP与这个实例关联。当足够高质量的MCP后续被添加到模板实例时,该模板实例不再被滤除(例如过程700在后续迭代中改变实例的指派使得其可被布局生成器考虑)。在745之后,过程700结束。
在一些实施方案中,集合生成器通过首先将MCP聚集到基于时间和/或位置的群集中、然后分析这些群集以标识匹配模板的群集并为这些匹配群集定义模板实例来定义基于时间和/或位置的模板实例。使用这个方法是因为,对于一些模板,不能为在710与模板相关联的仅一个匹配MCP定义模板实例。为了为这些模板创建实例,MCP首先需要基于其位置和/或时间属性来聚集。
此类聚集方法现在将参考图9-11来进行描述。图9示出在基于位置和时间属性将MCP组织到若干群集中的位置和时间树中关联MCP的过程900。该过程将参考图10来描述,该图示出位置和时间树1000的一个示例。这个树具有布置在对应于多个地理分级等级的多个等级中的多个节点。每个非根且非叶的节点可具有一个父节点和一个或多个子节点。根节点可具有仅一个子节点。在该示例中,根节点的子节点是国家,但可以是其它子节点诸如大陆。叶节点具有父节点,但没有子节点。如下文进一步所述,每个节点可与一个或多个MCP群集关联,每个MCP群集1010可与时间范围关联。
在图10所示的示例中,顶部第二等级定义国家,第三等级定义国家内的州或地区,第四等级定义地区/州内的城市,第五等级定义城市内的社区,第六等级定义城市中的兴趣点(POI)或兴趣区(ROI)。在一些实施方案中,POI/ROI中的两者或更多者可与执行合成应用程序的设备的用户的家或工作地址相关联。在一些实施方案中,设备和/或合成应用程序可由设备在特定小时期间向这些位置的行进、由与用户相关联的接触卡、和/或由用户捕获的MCP的元数据来标识用户的家和/或工作地址。
该示例只示出美国的州子节点、加利福尼亚节点的城市节点、旧金山节点的社区节点、和南市场街(SOMA)子节点的POI节点。其它节点具有其它子节点,但显示这些节点在一页上是不可能的,并且会不必要地卷绕图10的例示。
图9的过程900将MCP放置到与位置和时间树1000中节点相关联的MCP群集中。如图所示,过程900初始(在905处)选择先前还未分析的MCP以与位置和时间树1000关联。所选MCP在一些实施方案中是驻留在驻留于执行集合生成器的设备上的数据存储装置(例如数据库)上的MCP。在一些实施方案中,所选MCP可以是驻留在集合生成器的设备能通过网络访问的单独设备(例如另一计算机、服务器、移动设备等)上的MCP。
然后在910处,该过程确定所选MCP是否是所期望的。在一些实施方案中,过程900(在910处)丢弃不感兴趣的内容(例如接收方、屏幕截图等)和质量差的内容(例如模糊的照片或视频)的图像或视频。当该过程确定MCP不是所期望的时,过渡到930,将在下文中对其进行描述。
另一方面,当该过程(在910处)确定MCP不应被拒绝时,该过程将MCP与位置和时间树中的节点关联。过程900将所选MCP与涉及MCP捕获位置的节点关联。这个位置与为其生成合成展示的用户的家越近,MCP关联到的节点在树中越低。
例如,如果MCP是在烛台公园捕获的照片,则MCP在图10所示示例中与作为SOMA节点1020的子节点的POI叶节点相关联。另一方面,如果MCP是在加利福尼亚圣莫尼卡捕获的照片,则照片与作为加利福尼亚节点1030的子节点的LA节点1025相关联。不同实施方案可将MCP不同地与不同等级节点关联。例如,一些实施方案可能不将MCP与城市节点关联,除非该城市与用户家位置相距超过2000英里。用于将MCP与内节点、而不是叶节点关联的理由是,用户距离其家或工作地址越远,用户对与叶节点相关联的POI或ROI越不熟悉。例如,旧金山的居民可能非常熟悉旧金山的所有社区,但其可能不熟悉泰国的社区。因此,在泰国捕获的所有照片应与泰国或与泰国城市关联,而在旧金山捕获的照片应与旧金山的社区关联。
为了将MCP与节点关联,将MCP的相关联位置元数据与树1000中节点的位置进行比较。在一些实施方案中,MCP被设备的框架服务加标签以分级的一组对应于树1000的分级等级的属性。例如在这些实施方案中,MCP被加标签以国家、州、城市、社区和POI标签。基于MCP的POI标签相对于用户家的距离,MCP于是与树的叶或内节点相关联。
为了将MCP与节点关联,过程900在一些实施方案中创建MCP群集1010。这些群集在一些实施方案中是指代其所包含的MCP的容器数据结构。在一些实施方案中,每个群集与限制群集所有MCP的捕获时间元数据的时间范围相关联。在一些实施方案中,过程900指定基于相应时间范围顺序地布置群集的群集列表。该列表使过程更容易搜索群集,以及确定新分析的MCP是否应导致先前群集被分成两个群集。在一些实施方案中,位置和时间树的节点具有对群集列表中一个或多个群集的一个或多个标引(例如指针)。
当集合生成器105标识落在先前与第二节点的MCP群集相关联的时间范围内的第一节点的MCP时,集合生成器将所述MCP群集分成两个群集,如下文进一步所述。这样,每个MCP群集旨在代表在一段持续时间上在一个位置连续捕获的一组MCP。这些MCP群集随后将被分析以标识应为之生成模板实例的地点、区域、旅游、度假等,如下文参考图11进一步所述。
因此,在915处,该过程不仅标识应将所选MCP关联到的节点,而且还将这个MCP与先前与该节点相关联的先前定义MCP群集关联,或者创建可将其与这个节点关联且可将所选MCP关联到的MCP群集。在一些实施方案中,用于将所选MCP添加到新MCP群集或先前创建的MCP群集的标准是MCP是否落在所标识节点的先前创建MCP群集的时间范围内,其中这个时间范围不被任何其它MCP群集的时间范围中断。
在920处,该过程确定是否应修改先前定义的且与树中任何节点相关联的任何MCP群集。该过程在所选MCP的时间捕获元数据落在另一MCP群集的时间范围内时会必须修改所述另一MCP群集。当这发生时,过程900(在925处)通过将MCP群集分成两个群集来修改被影响的MCP群集,这两个群集分别在所选MCP的捕获时间之前结束以及在所选MCP的捕获时间之后开始。在925处,该过程还参考修改后的MCP群集将先前定义的任何模板实例标记为无效,或者将此类实例标记为要重新分析使得其可被重新定义。当模板实例被标记用于重新分析时,另一过程周期性地或按需地将成批地或单独地分析模板实例以基于MCP群集修改对其重新定义。
该过程从925过渡到930。该过程当(在920处)确定不应基于将所选MCP插入到位置和时间树1000中修改任何先前定义的MCP群集时也过渡到930。在930处,该过程确定是否有任何其它MCP仍然要被分析。如果有,则返回905以选择这个MCP并为该MCP重复其操作。否则,该过程结束。
图11示出集合生成器105周期性地执行以由与位置和时间树的节点相关联的MCP群集生成模板实例的过程1100。这个过程初始(在1105处)选择基于位置和/或时间的模板。此类模板的示例包括地点、区域、旅游、度假、历史上的今天(TDIH)、假日、家、工作等。可基于与一组一个或多个节点相关联的MCP群集为模板定义模板实例。另外,在一些实施方案中可为这些模板中的任一个定义多个此类模板实例。
例如在一些实施方案中,地点模板实例可由一个节点(例如POI叶节点)的MCP群集来定义。在其它实施方案中,地点模板实例可由与作为父子节点、或作为同级节点的一组节点相关联的MCP群集来定义。其它实施方案调用将多个节点的MCP聚合为区域模板实例的此类模板实例。另外的实施方案将区域模板实例定义为不具有父子关系或同级关系、而是彼此具有地理邻近性的两个节点的MCP群集的聚合。例如,两个MCP群集可与两个节点相关联,一个代表内华达的太浩湖,一个代表加利福尼亚的太浩湖。这两个节点会是内华达和加利福尼亚父节点的孙节点,因此既非同级节点又非父子节点。然而,与这两个节点相关联的位置数据指示它们在地理上彼此靠近。因此,过程1100可聚合它们的对应MCP以创建太浩湖的区域MCP实例。
在一些实施方案中,每个MCP群集可被视为候选旅游实例。然而,到工作或家位置的MCP群集在一些实施方案中不被视为旅游实例,而在其它实施方案中被视为到常游历位置的旅游实例。一些实施方案为每组(1)具有作为位置和时间树中时间连续群集的相关联MCP群集、且(2)不是常游历位置(诸如家或工作位置)的两个或更多旅游实例定义度假实例。在一些实施方案中,每个度假实例是通过在常游历位置(例如家或工作位置)捕获的两个MCP群集来限制的一系列旅游实例。
TDIH实例包括位置和时间树中在任意数量的年中特定一天捕获的所有MCP群集。当总是存在大量被捕获的高质量MCP或大量事件时,可为任意一天(例如用户生日或周年纪念)创建此类实例。假日实例在一些实施方案中包括在特定日子(例如圣诞节、感恩节等)或在特定日子范围中捕获的所有MCP群集。
当(在1105处)选择模板之后,过程1100(在1110处)确定位置和时间树1000中一个或多个节点是否具有与所选模板的属性匹配的一个或多个MCP群集。例如在一些实施方案中,地点模板指定为与一个节点相关联且包括在不同三天捕获的MCP的一个或多个MCP群集创建地点实例。区域模板在一些实施方案中指定为各自可算作地点实例且各自与具有与其他MCP群集节点的位置靠近的位置的不同节点相关联的两个或更多个MCP群集创建区域实例。
在一些实施方案中,度假模板指定创建包含若干与并非常游历位置且在时间上彼此连续的若干旅游实例相关联的MCP群集的度假实例。假日模板指定为树中与任何给定数量的年中假日日期相关联的所有MCP群集创建假日实例。
当过程1100(在1110处)确定在树中没有任何一组节点具有匹配MCP群集,则该过程过渡到1130,这将在下文中描述。否则,该过程(在1115处)确定是否需要基于新的或经修改的MCP群集创建模板实例或更新先前创建的模板实例。该过程在先前用于定义模板实例的MCP群集没有改变时不需要创建或更新模板实例。
当该过程(在1115处)确定不需要创建或更新模板实例时,该过程过渡到1130。否则,在1120处,该过程创建新的模板实例或更新先前创建的模板实例。该过程然后(在1125处)确定位置和时间树1000中是否有任何其他组的节点具有与所选模板的属性匹配的一个或多个MCP群集。如果有,则该过程返回1115以确定是否需要为该节点创建模板实例或更新先前创建的模板实例。
当该过程(在1115处)确定位置和时间树1000中没有任何其他组的节点具有与所选模板的属性匹配的一个或多个MCP群集时,该过程(在1130处)确定是否已检查了所有基于位置和/或时间的模板。如果如此,该过程结束。否则,该过程返回1105以选择另一基于位置和/或时间的模板,并为该模板重复其操作。
图12示出打分引擎120在一些实施方案中为了计算模板实例的得分而执行的过程1200。在一些实施方案中,打分引擎为存储在集合存储装置150中且已被指派为用于显示的可行模板实例的模板实例执行这个过程。如图所示,过程1200开始于打分引擎(在1205处)从布局生成器接收一组背景属性的时候。如上所述,布局生成器110在一些实施方案中从背景标识器115获得背景属性组。在一些实施方案中,背景属性组至少包括一个位置(例如按纬度和经度坐标表述)或一个时间值(其包括日期值)。
过程1200使用所接收的背景属性组来计算每个模板实例的背景得分,其对模板实例的背景重要性定量。在一些实施方案中,背景属性组可包括多个背景属性子组,其中每个子组指定不同位置和/或时间值。在一些实施方案中,每个背景属性子组至少包括一个位置(例如按纬度和经度坐标表述)或一个时间值。不同背景属性子组定义用于评估每个模板实例重要性的不同背景。在不同实施方案中可使用不同背景属性。背景属性的示例包括(1)当前时间、(2)未来时间、(3)设备的当前位置、(4)设备在未来日期的未来预测位置(例如基于存储在设备上的或设备能访问的日历或票签事件)等等。
在1210处,过程1200在集合存储装置150中选择已被指派为用于显示的可行模板实例的模板实例。该过程然后(在1215处)使用所接收的背景属性组来计算所选模板实例的背景得分,其对模板实例的背景重要性定量。在一些实施方案中,该过程(在1215处)为所选模板实例计算每个所提供背景属性子组(其中每个子组指定时间值和/或位置值)的背景得分,然后使用模板实例的最高所计算背景得分来表述模板实例的背景重要性。为了为一个背景属性子组计算模板实例的背景得分,过程1200在一些实施方案中计算该子组每个属性值与模板实例的对应值之间的差异,然后在函数中使用所计算的差值来生成背景得分。在一些实施方案中,所述函数被定义为使得其计算的背景得分与所述差值成反比(即,差值越小,所计算的得分的值越大)。
在计算模板实例的背景得分之后,该过程(在1220处)标识模板实例的质量得分,并(在1225处)标识模板实例的数量得分。每当模板实例被更新时,打分引擎在一些实施方案中计算质量得分和数量得分,并存储这些得分,因为这些得分取决于模板实例的本征属性并且不需要每当背景改变时就实时地重复计算。在这些实施方案中,过程1200(在1220和1225处)检索模板实例的预先计算的质量和数量得分。
在一些实施方案中,打分引擎120生成模板实例的得分,其基于假设数量越大就意味着对模板实例的感兴趣水平越高来考虑实例中MCP的数量。例如,具有大量在特定一天在一个位置捕获的MCP(例如相片、视频剪辑等)的模板实例通常会表明感兴趣的事件是在那个特定一天在那个位置处发生,并且用户因此会更有兴趣看到形成那个事件的照片。在一些实施方案中,基于假设具有更好内容的模板实例将导致更好生成的合成展示、由此导致查看者更感兴趣的合成展示,每个模板实例的质量得分考虑实例的MCP的质量。
在标识背景得分、质量得分和数量得分之后,过程1200(在1230处)计算聚合得分。在一些实施方案中,这个聚合得分是背景得分、质量得分和数量得分的加权组合,其中所选权重值将聚合得分偏向背景得分。例如在一些实施方案中,聚合得分是以下公式中的加权和:
总得分=Wc*背景得分+WQL*质量得分+WQN*数量得分,
其中背景权重值(Wc)大于质量和数量权重值(WQL,WQN)。在计算聚合得分之后,过程1200(在1230处)确定是否已为所有可行模板实例计算了得分。如果还没有,则该过程返回1210以选择另一模板实例并重复其操作1215-1225来为这个模板实例计算聚合得分。当过程1200(在1230处)确定已经为所有可行模板实例计算了得分时,该过程结束。
图13示出媒体合成器125每当必须定义合成展示时(例如在用户选择模板实例的摘要窗格且布局生成器110指示媒体合成器125生成模板实例的合成展示定义之后)执行的过程1300。如图所示,过程1300初始(在1305处)基于模板实例中媒体的类型和/或持续时间、对该媒体的内容分析(例如检测高运动视频)、和/或检测到的用户情绪偏好而为合成展示选择情绪。这个选择是自动的,而无需接收指定为该实例选取的情绪的用户输入。然而在一些实施方案中,这个自动化选择取决于以前对媒体合成器先前为其他展示自动选择的展示情绪的修改。该过程考虑这些对情绪的先前改变,因为这些先前改变提供关于用户对于合成展示喜欢的情绪类型的信息。
在选取情绪之后,该过程(在1310处)基于所选择的情绪为合成展示选择蓝图。如上所述,蓝图在一些实施方案中描述期望的过渡、效果、编辑样式(包括编辑节奏)、期望的展示类型等等。然后在1315处,该过程定义用于选择所选模板实例的MCP的选择次序。一种用于定义选择次序的方式将参考图14-17来描述。
然后在1320处,该过程基于选择次序和蓝图为合成展示计算所期望的持续时间。持续时间的计算在上文中参考图4进行了描述,并且在下文中将参考图17进一步描述。当(在1320处)计算合成展示的所期望持续时间之后,过程1300(在1325处)将该持续时间提供给歌曲合成器130并指示这个合成器动态地生成具有该持续时间的歌曲展示的定义。然后在1330处,过程1300启动受约束优化过程以动态地生成具有所期望持续时间的媒体展示的定义。受约束优化过程将在下文中参考图18进一步描述。在1330之后,过程1300结束。
图14示出一种用于定义模板实例的MCP的选择次序的过程1400。该过程将通过图15-17来描述,这些附图示出对一个模板实例1500的MCP执行过程1400的操作。图15-17中每一者示出模板实例的MCP的处理的多个阶段。
过程1400初始(在1405处)检索模板实例的MCP、以及其先前标识的特征和本征得分。如上所述,设备的一个或多个框架服务分析每个MCP,定义MCP特征(例如无用范围、面部指示符、语音指示符等)并计算每个MCP的质量得分。图15的前两个阶段1502和1504示出所检索的模板实例MCP和所检索的这些MCP的得分。在1405处,该过程基于展示次序布置所检索的MCP,其可以是按先后顺序(时间)的、按先后逆序的、聚集的等等。在图15-17所示示例中,展示次序被假设为是按先后顺序的。应该指出的是,过程1400被执行是因为用于选取模板实例中最佳MCP的选择次序常常与展示次序不同,并且过程1400需要被执行以标识最佳MCP来选择。
在1410处,过程1400于是尝试通过标识模板实例的MCP之间的关联、以及将相关联的每组MCP缩减到仅一个聚合MCP来标识经缩减MCP组。图15的第三阶段1506和第四阶段1508示出(1)照片1510和1515被标识为HDR对,(2)照片1520被标识为一个突发序列的一部分,(3)照片1510和1515被MCP组中的照片剪辑1525替代,以及(4)突发照片1520被MCP组中的突发剪辑1530替代。
然后在1415处,该过程从MCP移除不期望的内容(例如无用内容、质量差的内容、以大量相机运动捕获的内容)。在一些实施方案中,过程1400通过分析在1405以MCP检索的MCP的元数据标签指示符来标识不期望的内容。当被移除的不期望内容在MCP中间(例如视频剪辑中间)时,该过程将该MCP分成两个MCP。当由所述划分得到的节段太小时,该过程丢弃小节段。
图16的第一阶段1602示出此类操作的示例。特别地,这个阶段示出已加标签为包括摇晃内容(即与太多相机运动相关联的内容)和无用内容的三个MCP 1610,1615和1620。第一阶段1602还示出两个MCP 1610和1615分别被分成两个MCP 1625/1630和1635/1640。第一阶段1602还示出MCP的第一部分在划分操作之后因为其在划分之后太小而被丢弃。这个阶段还示出MCP 1620因为其只包括无用内容而被完全丢弃。
在移除不期望的内容之后,过程1400于是(在1420处)计算展示次序中每对相邻MCP之间的时间和差异距离。在一些实施方案中,时间和差异距离是这两个MCP之间时间距离和差异距离的加权聚合(例如加和)。差异距离在一些实施方案中是这两个MCP的两个图像(例如两个视频剪辑MCP的两个代表性帧,例如第一帧)之间的差异。第二阶段1604和第三阶段1606图示说明所计算的展示次序中相邻MCP之间的距离。第二阶段1604将所有MCP表示改变成相同的,以简化对该示例的其余说明。第三阶段1606于是聚集MCP以反映其各自彼此的距离。这些距离将在下文中参考图17进一步描述。
在1425处,该过程将最高打分MCP选为选择次序中的第一MCP。当两个MCP具有最高得分时,该过程在一些实施方案中要么随机地要么确定性地(例如选择持续时间最长的那个)选择MCP。图17的第一阶段1702示出将剪辑1640选为选择次序中的第一MCP。在该示例中,剪辑1635和1640具有相同的最高得分(在这个示例中是因为它们是从同一MCP 1615提取),但选择MCP 1640,因为其具有更长的持续时间。
该过程然后(在1430处)定义展示次序中所计算的最高时间和差异距离的位置处的序列次序划分器。图17的第二阶段1704示出在MCP 1750和MCP 1635之间边界处定义的序列次序划分器1710,这是因为这两个MCP之间的时间和差异距离最大。
在1435处,该过程选择在新定义的划分器指示符的不具有上一个所选MCP(即在1425或在1435的前一迭代中所选的MCP)的侧上的最高打分的未选MCP。图17的第二阶段1704示出选择MCP 1630,因为这是划分器1710的不具有先前所选MCP 1640的另一侧上的最高打分MCP。在该示例中,剪辑1625和1630具有相同的最高得分(在这个示例中是因为它们是从同一MCP 1610提取),但选择MCP 1630,因为其具有更长的持续时间和/或具有更期望的内容(例如包含面部和语音内容,而MCP 1620只包含面部内容)。
然后在1440处,过程1400确定是否已经为每个MCP指定了选择次序中的位置。如果没有,则该过程返回到1430以标识另一序列次序划分器,然后返回到1435以基于这个新定义的划分器选取另一MCP。图17的第三阶段1706示出在选择MCP 1630之后,该过程定义在MCP 1630和MCP 1752之间边界处定义的划分器指示符1712,这是因为这两个MCP之间的时间和差异距离是次最大距离。这个阶段还示出将MCP 1750选为选择次序中的第三MCP,因为这个MCP是划分器1712的不包含先前所选MCP 1630的另一侧上的最高打分MCP。
第四阶段1708示出在选择MCP 1750之后,该过程定义在MCP 1640和MCP 1754之间边界处定义的划分器指示符1714,这是因为这两个MCP之间的时间和差异距离是次最大距离。这个阶段还示出将MCP 1530选为选择次序中的第四MCP,因为这个MCP是划分器1714的不具有先前所选MCP 1750的另一侧上的最高打分MCP。在后续迭代中,过程1700将MCP1772,1754和1525分别标识为第五、第六和第七选取。
过程1400继续以下操作:定义次序划分器和基于这些划分器选择MCP直到最后的划分器划分最后两个剩下的MCP。在基于这个划分器选择这两个MCP之一之后,该过程然后(在1440处)将最后剩下的MCP添加到选择次序末端,然后结束。
在执行过程1400之后,媒体合成器具有用于优先选取合成展示的MCP的选择次序。媒体合成器在一些实施方案中使用这个选择次序来使解算器的操作相比于在选择次序上较低的MCP偏向于选取在选择次序上较高的那些。在其它实施方案中,解算器只是通过使用位于所定义选择次序顶部的MCP子组来定义合成媒体展示。
媒体合成器在一些实施方案中还使用选择次序来在没有任何用户输入的情况下自动定义合成展示的期望持续时间。例如,一些实施方案的视频合成器选择模板实例的直到选择次序中两个连续MCP彼此在特定时间和差异距离内(例如彼此在0.25单位时间和差异距离内)的位置的MCP子组。例如,在图17所示示例中,第六和第七选取之间的距离假定小于0.25单位,其中第六选取是MCP 1754,第七选取是MCP 1525。
结合指定所期望编辑(例如快速过渡编辑或缓慢过渡编辑)的类型的蓝图,基于选择次序选择MCP子组就允许媒体合成器在没有任何用户输入的情况下自动地定义合成展示的持续时间。例如,一些实施方案将所述持续时间计算为所选MCP子组中每个MCP的理想持续时间之和。在一些实施方案中,每个MCP具有MCP类型,MCP的理想持续时间是其类型所定义的理想持续时间。在这些实施方案中的一些中,MCP类型的理想持续时间基于所选择的蓝图而被调节。其他实施方案自动地不同地定义合成展示的持续时间。例如在一些实施方案中,媒体合成器在计算所期望持续时间中不考虑蓝图,而只是基于其利用选择次序选取的MCP子组来计算合成展示的所期望持续时间。
图18示出一些实施方案的媒体合成器的受约束优化过程1800。将参考图19-16所示的示例来描述该过程。图19和21示出在受约束优化过程1800的各个阶段,图15-12的模板实例1500的MCP。另一方面,图20示出基于与视频剪辑相关联的元数据标签范围指示符将视频剪辑分成多个候选MCP。
过程1800开始于过程1300在1330调用其的时候。如图所示,过程1800初始(在1805)将模板实例的MCP布置在过程1400从MCP中移除不期望内容之后所定义的展示次序序列中。图19的阶段1902示出模板实例1500的在从该实例的MCP中移除不期望内容之后的MCP。该阶段中的MCP与图16的阶段1602的MCP相同。
从具有多个元数据加标签区域的视频剪辑,一些实施方案的过程1800(在1805)定义参考一组标签区域定义的多个候选视频剪辑MCP。图20示出此类候选视频剪辑MCP的一个示例。这个附图例示被语音范围指示符、三个不同面部的面部范围指示符、一个场景范围指示符、质量范围指示符、运动范围指示符、和无用范围指示符加标签的视频剪辑2000。
这个附图还示出每当场景范围指示符标识场景改变时定义的候选MCP。还示出这些候选MCP中每一者中的基于语音、面部、质量和运动指示符所指示的期望内容属性在相应候选MCP中打分最高的多个节段。下文中将描述将这些最高打分节段用于解算器的另选具体实施。过程1800将基于图20的示例中三个场景变化定义的三个候选MCP添加到解算器必须分析以便标识MCP的所期望序列的MCP列表。
为了简化图18的讨论,图19和21所示的示例只讨论元数据标签范围中的一些,并忽略基于场景变化将视频剪辑分成多个视频剪辑。这些基于场景的视频剪辑以及使用这些剪辑内最高打分范围将在下文中在讨论一些实施方案的另选视频合成解算器中进一步描述。
在1805之后,该过程为模板实例的每种类型的MCP计算最小持续时间约束、最大持续时间约束和理想持续时间约束。对于每种MCP类型,这三个约束指定供该类型的MCP在合成展示内播放的最小可接受持续时间、最大可接受持续时间和理想持续时间。对于每种MCP类型,该过程还(在1810处)从合成展示的蓝图定义delta_最小持续时间、delta_最大持续时间、和delta_理想持续时间。这些delta值指定受约束解算器可如何调节每种MCP类型的所指定最小、最大和理想持续时间约束以便定制蓝图相关联情绪的合成展示。
然后在1815处,过程1800从歌曲合成器获取(1)结束音频片段的位置、(2)结束片段插播乐句(如果有的话)的位置、和(2)一个或多个音频渐隐参数。该过程获取结束音频片段或其插播乐句的位置,使得其能将合成媒体展示中最后一个MCP的开头与这个结束音频片段对准。
例如,合成展示的所计算的理想持续时间可能是2分钟。歌曲合成器然后可能选择4秒长的结束片段。因此,歌曲合成器向媒体合成器提供1分56秒作为结束音频片段的起始位置。媒体合成器于是具有被定义为在1分56秒开始的最后一个MCP节段的展示。这样,最后一个MCP和结束音频片段应在合成展示末端同时开始。当结束片段具有插播乐句时,过程1800在一些实施方案中将最后一个MCP的开头与插播乐句的位置(而不是与结束片段的起始位置)对准。
类似地,歌曲合成器可能指定在展示的1.5秒开始的音频渐隐效果。在这种情况下,歌曲合成器在一些实施方案中向媒体合成器提供1分58.5秒作为音频渐隐的开始。媒体合成器于是可定义其视频渐隐在2分钟展示的1分58.5秒处或附近发生。
在1820处,过程1800使用所获得的结束音频片段位置和渐隐参数来定义用于约束解算器的约束(例如关于最后一个MCP剪辑应在哪里开始的约束、关于视频渐隐参数的约束等等)。在1820处,该过程在一些实施方案中定义指定不能跟在其他MCP类型后面的MCP类型的位置MCP约束。
在1825处,该过程于是指示约束解算器在考虑该过程已定义的约束的情况下寻找对于目标函数的最优解。在一些实施方案中,目标函数探索MCP的各种组合来标识生成最佳目标函数得分且满足所定义约束的一个MCP组合。在一些实施方案中,不同MCP组合探索同一MCP的不同部分(例如不同片段)。在探索解空间中,约束解算器优先打分更突出推出(例如使用更多)在选择次序上排名较高的MCP和被加标签以所期望内容标签的MCP的MCP组合。
图19的第二阶段1904和第三阶段1906图示说明约束解算器的操作。第二阶段1904示出在第一迭代中被馈送给约束解算器的模板实例1500的MCP。如图所示,MCP被显示具有MCP的期望内容范围指示符1625,1630,1635和1640。在一些实施方案中,这些范围可对应于面部和语音范围。
第三阶段1906示出在约束解算器已执行其第一通过分析之后模板实例1500的MCP。在第三阶段1906(以及图19的第四阶段和图21的阶段)中,MCP尺寸被绘制为表示解算器所标识的MCP解中的相应持续时间。这些尺寸不是以与图19的先前阶段、或图15-17的在先阶段相同的比例来绘制。
如第三阶段1906中所示,MCP 1905,1525,1910,1625,1752,1635和1915已被缩小以对媒体展示具有非常小的贡献。解算器选取具有非常少这些MCP的解,因为这些MCP在选择次序中排名低,和/或具有不期望的特征,如其相关联元数据标签和/或范围指示符所指定。特别地,如图所示,未被缩小到可忽略不计的持续时间的MCP是在选择次序上被指派为选取1-6的MCP 1772,1630,1750,1640,1754和1530。在该示例中,这六个MCP也是用于定义合成展示的所期望理想持续时间的六个MCP。然而,在其它情况下,这可能不是这样的。
在运行约束解算器标识满足所定义约束的目标函数的最优解之后,该过程(在1830)确定约束解算器的第一解(即,在该过程在1825第一次调用解算器之后的解)是否有任何MCP具有比阈值持续时间短的持续时间。如果有,则该过程(在1835处)从先前标识的解中移除这些MCP,然后返回到1825以再次调用约束解算器以优化这个经修改的没有被滤除MCP的解。
图19的第四阶段1908示出没有短MCP 1905,1525,1910,1625,1752,1635和1915的MCP组。这个MCP组在第二迭代中被馈送给约束解算器,使得其能基于这个先前计算的解来寻找另一最优解。图21的第一阶段2102示出受约束解算器在接收图19的第四阶段1908所示的解集之后在其第二通过中输出的MCP解集。
当该过程(在1830处)确定约束解算器的第一解不具有持续时间短的MCP时,该过程过渡到1840。该过程在其在1825处调用解算器第二次或第三次之后也过渡到1840。在1840处,该过程确定约束解算器的第二解(即,在该过程在1825处第二次调用解算器之后的解)有任何MCP具有由于没有所期望内容(即,具有与相机运动相关联的不期望内容,具有不具有所期望面部和/或语音内容的内容等等)而应被删除的内片段(即不在MCP任一边界处的片段)。
如果有,则该过程(在1845处)从在1840处标识的任何MCP移除此类内片段,并返回到1825以第三次调用约束解算器。图21的第二阶段2104示出在第一解算器中从MCP 1640移除内片段、以及创建两个新MCP 1640A和1640B。第三阶段2106于是示出约束解算器在接收第二阶段2104所示的解集之后在其第三通过中输出的MCP解集。如图所示,这个第三通过分配附加时间给一些MCP(例如MCP 1772),而减少对其他MCP(例如MCP 1630和1640A)的分配时间。
当该过程(在1840处)确定约束解算器的第二解不具有内片段应被过滤的MCP时,该过程过渡到1850。该过程在其在1825处调用解算器第三次之后也过渡到1850。在1850处,过程1800在约束解算器的最终解中标识特定特殊MCP类型,并为这些MCP类型定义特殊媒体处理。此类特殊MCP类型的示例在一些实施方案中包括突发模式序列、全景照片、慢动作视频、和延时序列。一些实施方案的受约束优化过程将这些类型之一的MCP作为大多数其操作的占位剪辑。在1850处,受约束优化过程基于MCP在展示中被分配的时间以及基于蓝图所定义的编辑节奏为这些特种MCP中每一者定义编辑操作。
例如在一些实施方案中,过程1800(在1850处)定义全景照片如何基于所分配的时间和编辑节奏被显示。对于较快节奏,该过程可将单个平移全景分成以过渡结合在一起的多个更短平移全景。另一方面,对于较慢节奏,该过程可允许更长更慢的平移全景。另外在一些实施方案中,该过程分解较宽全景比较窄全景更多。
受约束优化过程还可在不同环境下根据所分配时间和编辑节奏不同地对待突发模式序列。突发模式序列的处理可指定播放通过突发模式照片而没有任何过渡、具有快闪过渡、或具有过渡且保持在最后一张照片上,在这最后一张照片上被增强以Ken Burns效果。
在定义特种媒体处理之后,该过程(在1855处)确定是否必须为最终解中的任何MCP提供多个同时照片显示(被称为N上显示)。这是因为一些照片对于所期望的显示分辨率可能太窄。换句话讲,此类照片只可能占据屏幕的一部分。
最后在1860处,过程1800执行一个或多个后处理操作。一个后处理操作尝试将合成媒体展示中的编辑(即MCP边界位置)与合成歌曲展示中听觉上可分辨的过渡位置对准。为了这样做,媒体合成器向歌曲合成器询问在合成媒体展示中每个编辑点附近的此类过渡位置的列表、以及这些位置中每一者的优先级值。这些位置在一些实施方案中包括合成定义中的节拍位置、起音点位置、片段边界位置、和结束片段插播乐句位置。媒体合成器尝试将每个编辑点与过渡位置之一对准,优先处理优先级较高的位置,但对于要求编辑点较大移动的调节给予惩罚。
另一组后处理操作(在1860)定义合成媒体展示的附加音频和视频过渡效果。此类过渡的示例有J&L剪切、图像或视频片段之间交错渐变过渡、擦除过渡、滑动过渡等。在1860之后,该过程结束。
过程1800只是示出用于以自动化方式定义合成媒体展示的一种方式。其他实施方案使用其他过程。例如,一些实施方案的合成过程只由基于选择次序选取且用于定义合成媒体展示的MCP(例如上文参考图17所述示例中的提取1-6)定义合成媒体展示。该过程然后根据展示次序将所选的这些MCP布置在序列中。
该过程然后基于展示次序中MCP的位置而迭代地选择序列中的个体MCP。该过程然后由所选MCP定义视频剪辑。对于照片,该过程可通过定义Ken Burns效果而生成具有(由照片MCP的蓝图定义的)期望持续时间的视频剪辑。对于特种照片(例如突发、全景、延时等),该过程在一些实施方案中定义容器剪辑,使得后续过程(如在1850执行的那个过程)能为该特种照片生成视频片段。容器剪辑的持续时间是蓝图所定义的这个MCP的类型的期望持续时间。
对于每个所选MCP,如果MCP是视频剪辑,则该过程标识MCP内最高打分的范围。该过程基于指示面部范围、语音范围、相机运动等的范围指示器来标识最高打分的范围。对于这个最高打分的范围,该过程定义候选视频剪辑以从视频MCP提取。当最高打分的范围比(蓝图所定义的)视频MCP的期望持续时间短时,该过程尝试在两个边界扩展所提取剪辑的长度直到获得所期望持续时间或者边界开始重叠指示不期望内容(例如高相机运动等等)的范围指示符。
通过遍历基于选择次序选取的MCP并尝试基于每个MCP的理想持续时间定义视频剪辑片段,该过程通常获得具有所期望的总持续时间的合成媒体展示。在并非如此的程度上,该过程执行第二通过来通过所提取MCP中的一些或全部以从为所提取的MCP定义的视频剪辑进行添加或移除。
如上所述,媒体合成器在一些实施方案中将合成展示的期望持续时间提供给歌曲合成器,歌曲合成器然后动态地定义该持续时间的合成歌曲展示。这个歌曲合成器动态地定义用于在特定序列中包括若干音频片段的歌曲展示、以及序列中音频片段之间的一组编辑和过渡。在一些实施方案中,音频片段是一首歌曲的部分,而在其他实施方案中,它们可以是两首或更多首歌曲的部分。这些音频片段被称为主体片段,以表明其是另一歌曲的部分。在一些实施方案中,歌曲合成器还从用于合成歌曲展示的若干候选结束片段中选择结束片段。歌曲合成器在这些实施方案中的一些实施方案中还可从用于合成歌曲展示的若干起始片段中选择起始片段。
图22示出一种用于将歌曲分成多个主体片段、一个或多个起始片段、和一个或多个结束片段的创作过程2200。在一些实施方案中,编辑方在歌曲合成器使用这些片段动态地创建媒体合成器所请求的特定持续时间的歌曲展示之前执行这个创作过程2200。编辑方通过使用创作工具来执行这个过程。图23示出一些实施方案的一种创作应用程序的用户界面2300的多个操作阶段。过程2200将在下文中参考这个用户界面来进行描述。
如图22所示,过程2200开始于编辑方(在2205处)选择歌曲的时候。图23的第一阶段2302示出用户通过光标点击操作从列表2305中选择歌曲1。在这个示例中,用户通过光标和键盘与UI交互,但在其他实施方案中,编辑方通过触摸输入与创作工具交互。图23的第二阶段2304在时间轴2310上示出所选歌曲。在2210处,编辑方使用创作应用程序的修饰工具将所选歌曲分成多个片段。第二阶段2304示出选择修饰工具2320,而第三阶段2306示出在修饰工具已被用于将所选歌曲分成多个片段之后在时间轴上的这些片段。
为了确保片段在合成歌曲展示中正确地布置,在一些实施方案中使用不同的两组规则。这些规则是用于将音频片段插入序列中的插入规则、和用于确保被插入音频片段可与序列中的其他片段邻接的序列规则。在一些实施方案中,这些序列规则嵌入在跳转表中,这将在下文中进一步描述。一些实施方案参考分配给歌曲片段的名称来定义插入规则。例如在一些实施方案中,每个歌曲片段具有分配给其的数字和字母。数字定义片段的节段号,而字母是该节段中的片段标识符。在这些实施方案中,歌曲合成器只有在第一音频片段具有的节段号与第二音频片段的相同或比其更小的情况下才能将第一音频片段放置于第二音频片段前面。
给定此类插入规则,过程2200(在2215处)命名其在2210定义的歌曲片段。第三阶段2306示出,在所选歌曲被分成若干片段之后,区段2330出现在每个歌曲片段下面。编辑方可将片段的名称插在其相关联区段中。第四阶段2308示出填在其对应区段中的片段名称(1a,1b,1c,2a,2b、3a,3b,3c)。如这个示例中片段1b,1c,3a和3b所示,片段不需要基于其在所选歌曲中的初始位置来顺序编号。
然后在2215处,编辑方(在2220处)在所定义节段中插入一个或多个标记以标识听觉上可分辨的过渡(例如节拍)的位置。在2220处之后,该过程(在2225处)定义过渡片段、起始片段和结束片段。如上所述,这些片段在一些实施方案中是歌曲合成器可任选地添加到合成展示的片段。在其它实施方案中,需要一个或多个过渡、起始和/或结束片段。例如在一些实施方案中,合成歌曲片段必须包括结束片段,而其可以任选地包括起始片段。
如下文进一步所述,跳转表在一些实施方案中允许编辑方指定在一个片段跟在另一片段后面时是否需要过渡片段。在一些实施方案中,过渡、起始和结束片段是编辑方基于编辑方从所选歌曲提取的部分定义的片段。在其它实施方案中,这些片段中的一者或多者(例如过渡片段)是参考创作工具的特殊效果或预定义音频内容来定义。
在2220处,编辑方在一些实施方案中还指定所定义的起始和结束节段中的一个或多个标记以便标识听觉上可分辨的过渡的位置。媒体合成器于是可将合成媒体展示中的编辑点与起始或结束节段中的一个此类所标识位置对准。此类位置的一个示例是结束片段中插播乐句的位置。在一些实施方案中,创作工具允许编辑方为编辑方将其与主体、起始或结束片段中的标记关联的每个听觉上可分辨的位置指定优先级。媒体合成器于是使用过渡位置的优先级值来选择一个过渡位置用于与其编辑点之一对准。
在2220之后,过程2200结束。
如图23所示,该应用程序的UI 2300包括用于为编辑方定义的音频片段创建跳转表的控件2355。图24示出对该控件2355的选择指示创作应用程序生成并显示具有多行多列的跳转表2400。图25以更多细节示出这个跳转表2400。如图所示,每个音频片段与一行和一列相关联。
如图25所示,每个跳转表单元格具有指定被分配给该单元格的行和列的两个片段是否被允许按行和列分配所指定的次序彼此跟随的布尔标识符。在一些实施方案中,沿列定义的音频片段是跟在沿行定义的片段后面的片段。跳转表的单元格的布尔标识符共同定义序列规则,序列规则指定两个音频片段是否可以是歌曲合成器定义的合成歌曲展示中的相邻片段。在一些实施方案中,每个跳转表单元格还具有三个其他参数,它们是过渡参数、渐显参数和渐隐参数。过渡参数指定单元格的两个片段之间的任选过渡,而渐隐参数和渐显参数指定单元格的行音频片段应如何渐隐以及单元格的列音频片段应如何渐显。
如图25进一步所示,跳转表还指定(1)每个主体片段的优先级值和(2)用于指示主体片段在歌曲合成期间是否可被切割的标识符。对于每个主体片段,跳转表还指定片段中小节的数量。这个数量在一些实施方案中用于预测片段中节拍的位置。在跳转表中,起始片段1与一行相关联,而每个结束片段与列相关联。起始和结束节段的这些关联允许跳转表将主体片段与一个或多个起始和结束片段相关,以指定起始片段是否能在主体片段前面以及结束片段是否能跟在主体片段后面。
图26概念性地示出一种定义图23的创作应用程序的跳转表的过程2600。这个过程在一些实施方案中每当编辑方选择跳转表创建控件2355时就启动。如图所示,这个过程初始显示将每个主体片段与行和列关联、将每个起始片段与行关联、且将每个结束片段与列关联的跳转表。
该过程于是执行被概念性地例示为操作2610-2635的一系列操作,以便用主体、起始和结束节段的属性和关系填充跳转表。普通技术人员将认识到,图26中操作的次序是任意的,因为编辑方可以任何次序执行这些操作直到跳转表被填充。另外,在该图所示的示例中,每个操作完整地定义一个属性或一组关系。同样,普通技术人员将认识到,编辑方可在这些操作之间跳来跳去,以在不同时间定义属性和关系的不同实例。
在2610处,编辑方为跳转表的片段列中的每个主体片段定义优先级。如下文进一步所述,主体片段的优先级值在一些实施方案中用于指定主体片段的次序,其被用于逐个通过主体片段以确定它们是否是用于基于其持续时间插入到音频序列中的可行候选者。优先级值还用于在两个主体片段违背定序规则被插入到音频序列中时标识要移除的主体片段。
在2615处,编辑方在跳转表中指定可划分指示符,其指定每个主体片段是否能被分成(即切割成)更小的节段。在一些实施方案中,跳转表还指定结束片段是否可被分成更小的节段。当歌曲合成器不能通过使用完整主体片段合成所期望持续时间的歌曲时,歌曲合成器在一些实施方案中尝试确定主体片段中是否有任何主体片段是可划分的,如果有,则尝试添加主体片段的部分中的一者或多者到歌曲以便创建所期望持续时间的歌曲。歌曲合成器使用可划分指示符来确定其是否可将主体片段切割成更小的片块。
在2620处,编辑方指定每个主体片段中小节的数量。在一些实施方案中,歌曲合成器使用主体片段的小节数量来计算主体片段中节拍的预测位置。如下文进一步所述,歌曲合成器在需要为媒体合成器编制在给定时间附近的听觉上可分辨的过渡位置的列表时使用节拍位置。
在2625和2630处,编辑方指定与主体片段和另一主体片段、起始片段或结束片段相关联的每个跳转表单元格的属性。如上所述,每个此类单元格具有四个属性,它们是(1)指定行相关联片段是否能在列相关联片段前面的适当性的布尔指示符、(2)指定在这两个片段之间是否需要定义过渡的过渡指示符、和(3)指定列相关联片段应如何渐显以及行相关联片段应如何渐隐的渐显参数和渐隐参数。在一些实施方案中,过渡指示符包括从若干预定义和/或编辑方定义的过渡中标识特定过渡的过渡标识符。
在2635处,该过程将嵌入在跳转表中的数据导出给歌曲合成器在运行时使用的数据结构。在一些实施方案中,这个数据结构是JSON(Javascript对象表示法)文件。在一些实施方案中,该过程将所导出跳转表数据结构(例如JSON文件)与需要从中提取歌曲片段的歌曲关联。在其它实施方案中,该过程将跳转表数据结构与所提取的歌曲片段关联,例如将JSON文件和歌曲片段放在另一文件中。歌曲合成器每当想要动态地合成歌曲时就导入跳转表数据结构(例如JSON文件)。一个或多个编辑方执行图22和26的过程2200和2600多次,来为多首歌曲创建多组歌曲片段和多个跳转表数据结构(例如多个JSON文件)。
在一些实施方案中,跳转表数据结构或父结构(例如包含JSON文件及其相关联组歌曲片段的文件)与情绪相关联,并且歌曲合成器每当想要动态地合成该情绪的歌曲时就选择该数据结构。不同跳转表数据结构可与不同情绪相关联。在一些实施方案中,一个跳转表数据结构可与多个情绪相关联。另选地,一些实施方案将一个或多个情绪与歌曲关联,将歌曲与跳转表数据结构和从歌曲提取的歌曲片段关联。
图27例示一些实施方案的歌曲合成器130。如图所示,这个歌曲合成器包括序列生成器2705、片段分拣器2710、和序列验证器2715。序列生成器2705在一些实施方案中充当歌曲合成器的协调模块。序列生成器2705从媒体合成器125接收歌曲合成器需要在没有用户输入的情况下动态地生成的歌曲的期望持续时间和情绪。
基于所接收的情绪,序列生成器选择与所接收情绪相关联的跳转表文件及其相关联组音频片段。基于这个文件,序列创建其、片段分拣器2710和序列验证器2715使用的跳转表2720的运行时版本。序列生成器然后指示片段分拣器定义所选组音频片段的经分拣次序。作为响应,片段分拣器使用跳转表2720的片段优先级值生成片段次序2725。这个次序从最高优先级片段向最低优先级片段列出音频片段。
序列生成器于是基于经分拣次序2725和插入规则定义音频序列。在一些实施方案中,这个音频序列是仅主体片段的序列。另外在一些实施方案中,序列生成器将这个音频序列的持续时间定义为所接收的期望持续时间减所选歌曲片段组中最长结束片段的持续时间。序列生成器通过基于优先级值(即基于所分拣的次序2725)逐个通过主体片段来迭代地将主体片段插入音频序列中。如下文参考图28-30进一步所述,一些实施方案中序列生成器在插入主体片段时使用的插入规则指定(1)属于后面第二节段的主体片段不能插在属于先前第一节段的主体片段前面、以及(2)属于同一节段的主体片段基于其在相应节段中的次序而放置在彼此旁边。
在创建候选音频序列2735之后,序列生成器2705于是指示序列验证器2715使用跳转表2720的序列规则验证音频序列中的主体片段布置。这个验证涉及确保音频序列中没有任何两个相邻片段的放置违背跳转表中指定的序列规则。当验证器2715检测到违背序列规则的相邻片段对时,验证器移除优先级较低的片段以消除所述违背。
当验证器移除一个或多个片段以消除一个或多个序列规则违背时,序列生成器2705再次尝试在音频序列中插入主体片段。在此类情形中,序列生成器在前一迭代中停止的位置按经分拣的次序恢复。当序列生成器标识(基于序列验证器的评估)不违背任何序列规则的音频序列时,序列生成器添加片段组2730中的结束片段。在一些实施方案中,序列生成器添加与所定义音频序列中最后一个主体片段相容的最长结束片段。如果音频序列持续时间在这个阶段小于所接收的期望持续时间并且片段组包括与序列的第一歌曲片段相容的起始片段,则序列生成器在音频序列的开头添加这个起始片段。当多个起始片段是可行的时,序列生成器选择不导致音频序列超过所期望持续时间的具有最长持续时间的起始片段。
图28示出图27的歌曲合成器在一些实施方案中为了动态地合成歌曲展示而执行的一种过程2800。该过程每当媒体合成器指示歌曲合成器生成特定持续时间的歌曲展示时启动。如图所示,过程2800(在2805处)从媒体合成器接收所期望歌曲展示的情绪和所期望持续时间。
基于所接收的情绪,该过程(在2810处)选择其应由之动态地生成歌曲展示的歌曲。在一些实施方案中,在2810处,该过程选择与所接收情绪相关联的跳转表文件及其相关联组片段。这组片段在一些实施方案中包括主体、起始和结束片段。然后在2815处,该过程根据在跳转表文件中指定的优先级值来分拣歌曲片段。在这个分拣中,具有较高优先级值的歌曲片段被布置在具有较低优先级值的歌曲片段前面。
在2820处,该过程通过从在2805接收的理想持续时间减去最长结束片段的持续时间来计算经调节的持续时间。该过程使用经调节的持续时间来计算一个或多个主体片段及它们之间任何所需过渡的序列。该过程减去最长结束片段的持续时间以便确保有足够的时间在合成歌曲展示末端包括结束片段。其他实施方案不要求合成歌曲展示具有结束片段,在这些实施方案中,该过程不计算经调节的持续时间,而是使用所接收的持续时间来标识合成歌曲展示。
然后在2825处,该过程基于在2815处定义的经分拣的次序,迭代地将主体片段插入到展示序列中。在这些实施方案中的一些中,该过程逐步通过经分拣的次序(并在到达经分拣次序的末端时返回)以检查用于在所定义的音频序列中在连续位置插入主体片段的可行性。在逐步通过这个次序中,该过程基于展示的剩余持续时间和主体片段的长度来检查用于插入主体片段的可行性。
另外,当该过程确定主体片段能被插入音频序列中时,该过程将主体片段插入在音频序列中适合插入规则的位置中。例如,在一些实施方案中,该过程将属于后续第二节段的主体片段插在属于先前第一节段的主体片段之后。另外,在放置属于同一节段的多个主体片段时,该过程基于其在其相应节段中的次序来放置主体片段,例如在布置片段1A-1C时,该过程首先放置1A,然后放置1B和1C。然而,当将一个主体片段多次插入音频序列中时,该过程将把该主体片段的后续实例放置在片段次序中后来的主体片段之后,使得片段可循环。例如,在将片段1A插在先前插入的片段1A-1C之后时,该过程将1A插在1C之后,使得音频序列被表述为1A、1B、1C、1A。
在一些实施方案中,该过程将主体片段插入到音频序列中,直到序列已达到经调节的持续时间,或者直到该过程已经用完选择。为了探究所有选择,过程2800在一些实施方案中在不能通过只是添加主体片段获得具有经调节持续时间的音频序列时探索添加可切割主体片段的经切割部分。过程2800的操作2825将在下文中参考图29进一步描述。
在2830处,该过程确定所定义音频序列中是否有任何主体片段违背跳转表中指定的序列规则。在一些实施方案中,过程2800由跳转表文件中的跳转表定义生成运行时跳转表。该过程使用这个跳转表来确定音频序列中是否有任何相邻主体片段对违背跳转表中设定的序列禁律。如果有,则该过程(在2835处)移除所述对中较低优先级主体片段。在一些情况下,多个相邻对可能违背序列禁律。在这种情况下,该过程尝试(在2835处)标识在移除时能纠正多个违背的最低优先级主体片段。在其它实施方案中,该过程不尝试标识此类主体片段,而只是通过按特定次序(例如从音频序列的开头向末端)分析违背对来一次一对地解决相邻对违背。
当(在2835处)从所定义的音频序列中移除一个或多个主体片段之后,该过程返回到2825以尝试重新将主体片段插入歌曲展示中。当该过程返回到2825时,该过程按经分拣的次序在其上一次过渡到2830之前在其前一次迭代通过2825中停止的位置恢复。
当过程2800(在2830处)确定所定义的音频序列不违背任何序列规则时,该过程(在2840处)添加结束片段之一给音频序列。在一些实施方案中,过程2800选择与所定义音频序列中最后一个主体片段相容的最长结束片段。最后在2845处,该过程确定所定义的音频序列是否仍然比所接收的理想持续时间短。如果是,则该过程(在2845处)确定是否有任何起始片段能使音频序列达到或尽可能接近理想持续时间。为此,起始片段不能与音频序列中的第一主体片段冲突。当多个起始片段是可行的时,该过程选择不导致音频序列超过所期望持续时间的具有最长持续时间的起始片段。在2845之后,该过程结束。
图29示出过程2800在2825处执行的过程2900。如图所示,该过程(在2905处)基于片段优先级值选择片段。第一次通过2905,过程2900选择按2815定义的优先级经分拣次序为第一的主体片段。后续每次通过2905,该过程选择经分拣次序中的在该过程在其上一次迭代通过2905中从经分拣次序选择的上一主体片段后面的主体片段。
当(在2905处)选择主体片段之后,该过程(在2910处)确定将所选主体片段添加到音频序列是否会使序列的持续时间匹配在2820计算的经调节持续时间。在一些实施方案中,该过程每当评估在2910或2920添加潜在候选片段时序列的持续时间会是什么时都考虑通过将所选主体片段放置在前一片段旁边而会必须定义的任何过渡的持续时间。在跳转表中定义是否需要此类过渡。在一些实施方案中,这些过渡中的一些或全部不是以会增大序列总持续时间的方式被添加到音频序列,因为此类过渡会被应用于前一片段的末端和/或下一片段的开头。
当该过程(在2910处)确定添加所选主体片段给音频序列会使序列的持续时间匹配经调节的持续时间时,该过程(在2915处)在音频序列中适合插入规则的位置将所选主体片段添加到音频序列。例如,在一些实施方案中,该过程将属于后续第二节段的主体片段插在属于先前第一节段的主体片段之后。另外,在放置属于同一节段的多个主体片段时,该过程基于其在其相应节段中的次序来放置主体片段。例如,在布置片段1A-1C时,该过程首先放置1A,然后放置1B和1C。然而,当将一个主体片段多次插入音频序列中时,该过程将把该主体片段的后续实例放置在片段次序中后来的主体片段之后,使得片段可循环。例如,在将片段1A插在先前插入的片段1A-1C之后时,该过程将1A插在1C之后,使得音频序列被表述为1A、1B、1C、1A。在2915之后,该过程结束。
当该过程(在2910处)确定添加所选主体片段给音频序列不会使序列的持续时间匹配经调节的持续时间时,该过程(在2915处)确定添加所选主体片段到所定义的音频序列会导致音频序列超过经调节的持续时间。当还没有添加任何主体片段到音频序列时,该过程确定所选主体片段的持续时间是否超过经调节的持续时间。当先前已添加一个或多个主体片段到音频序列时,该过程(在2910处)确定所选主体片段的长度是否超过经调节的持续时间减去当前被分配给音频序列的主体片段的持续时间。
当该过程(在2920处)确定添加所选主体片段给所定义音频序列不会使音频序列超过经调节的持续时间时,该过程(在2925处)在音频序列中适合插入规则的位置将所选主体片段添加到音频序列,如上所述。在2925之后,该过程返回到2905以选择另一主体片段。
当该过程(在2920处)确定添加所选主体片段给所定义音频序列会导致音频序列超过经调节的持续时间时,该过程(在2930处)确定在这个迭代通过操作2825中是否已完成了一个循环通过经分拣的次序。如果没有,则该过程返回到2905以基于经分拣的次序选择下一主体片段。
当该过程(在2930处)确定在这个迭代通过2825中已探索了所有主体片段,则该过程(在2935处)确定是否有任何主体片段被指派为可切割的。如果没有,则该过程结束。否则,该过程(在2940处)探索添加可划分主体片段的部分给音频序列。在一些实施方案中,该过程基于编辑方如何标记主体片段的可划分节段和/或基于与主体片段相关联的小节数据来标识主体片段的部分。
在一些实施方案中,用于添加主体片段部分的操作与用于添加主体片段到音频序列的操作2905-2930类似。因此,该过程基于相关联主体片段的优先级值来探索主体片段部分。在将主体片段部分插入音频序列中时,该过程在一些实施方案中遵循上述插入规则。该过程尝试添加主体片段部分直到添加一个主体片段部分导致音频序列达到经调节的持续时间,或者直到所有主体片段部分已经被探索。在2940之后,该过程结束。
图30示出序列生成器2705和序列验证器2715的操作的一个示例。这个示例在三个操作阶段3002-3006中示出,其中第一阶段3002和第三阶段3006涉及序列生成器2705的操作,第二阶段3004涉及序列验证器2715的操作。在该示例中,歌曲片段组包括八个片段1A、1B、1C、2A、2B、2C、3A和3B。这些歌曲片段的持续时间和优先级在片段分拣器2710生成的优先级分拣表3010中示出。
第一阶段3002示出序列生成器2705接收歌曲的期望持续时间。在该示例中,假设期望持续时间是1分10秒,并且最长结束片段的长度为10秒。因此,序列生成器2705根据优先级分拣表3010指定的次序逐个通过主体片段,以便标识最大持续时间为60秒的主体片段序列。
如合成序列2735的分解图所示,序列生成器逐步通过优先级分拣次序,以首先插入主体片段1A,然后插入主体片段1C,之后插入主体片段2A,最后插入主体片段2C。每当序列生成器选择主体片段时,确定该主体片段的长度是否超过正被生成的主体片段序列的剩余持续时间。如果是,则序列生成器不插入所选主体片段,并移动到下一主体片段。例如,在插入主体片段1A之后,序列生成器选择主体片段1B,因为在片段1A之后,片段1B具有最高优先级。但序列生成器不插入片段1B,因为主体片段序列的长度于是会为65秒,这会超过这个序列的最大60秒持续时间。
因此,序列生成器只有在插入不会导致主体片段序列超过其最大持续时间时才将所选主体片段插入序列中。当序列生成器将所选主体片段插入序列中时,其基于主体片段的节段号和片段字母插入这个片段。由于插入规则,序列生成器将主体片段1C插在主体片段1A后面,然后将主体片段2A插在主体片段1C后面,然后将主体片段2C插在主体片段2A后面。
在插入主体片段2C之后,所定义的音频序列3015的总持续时间为1分钟,这是最大主体片段序列持续时间。如第二阶段3004所示,序列生成器2705于是使序列验证器2715检查所定义的音频序列3015以确定是否有任何两个相邻片段违背在跳转表中定义的序列规则。
第二阶段3004还示出序列验证器2715接收跳转表3020,其包括禁止主体片段2A跟在主体片段1C后面的规则。因此,序列验证器2715从主体片段序列3015移除主体片段2A以生成经修改的音频序列3025。因为这个经修改的音频序列的持续时间现在是40秒,即比60秒期望持续时间少20秒,所以序列生成器尝试在该序列中插入主体片段以达到期望持续时间。
如第三阶段3006所示,序列生成器2705开始选择主体片段来针对在其前一尝试中停止的地方插入主体片段序列中进行检查。在这个示例中,序列生成器2705在片段2B停止。然而,序列生成器不能添加这个片段,因为添加这个片段会导致主体片段序列超过60秒。因此,序列生成器2705跳过这个片段,然后选择片段3A。序列生成器将这个片段3A添加到序列,因为在其添加之后,序列具有比最大60秒持续时间短的45秒持续时间。
如第三阶段3006中合成序列2735的分解图所示,序列生成器逐步且循环通过优先级分拣次序,于是在跳过片段3B、1A、1B和2A之后又添加片段1C和2C。这些片段被跳过是因为添加这些片段中每一者会导致主体片段序列超过其最大持续时间。当片段1C和2C被再次插入主体片段序列中时,它们在其节段号和片段字母指定的位置处被插入序列中。因此,所得到的主体片段序列3035如下:1A、1C、1C、2C、2C、3A。
由于这个主体片段序列为60秒长(即具有期望最大持续时间),所以序列生成器使序列验证器针对序列规则违背对其进行核查。如果序列验证器未标识任何序列规则违背,则序列生成器于是选择可跟在主体片段3A后面的最长结束片段,并将这个结束片段在主体片段3A后面插入音频序列中。当被插入的结束片段小于10秒长时,音频序列比70秒短(即比歌曲展示的期望持续时间短)。在这种情况下,序列生成器尝试标识能在片段1A前面的起始片段,该起始片段具有在该起始片段已被插入音频序列之后不会导致音频序列超过其最大持续时间的持续时间。如果标识到任何此类起始片段,则序列生成器将这个片段插在所有主体片段前面(在这个示例中,即在片段1A前面)。当存在多个起始片段能在片段1A前面并且具有等于或小于音频序列可用持续时间的持续时间时,序列生成器选择最长的起始片段。
上文所述的特征和应用程序中的许多者可被实施为被指定为在计算机可读存储介质(还称为计算机可读介质)上记录的一组指令的软件过程。在这些指令由一个或多个计算或处理单元(例如,一个或多个处理器、处理器的内核或者其它处理单元)执行时,这些指令使得一个或多个处理单元能够执行指令中所指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、随机存取存储器(RAM)芯片、硬盘驱动器、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)等。计算机可读介质不包括无线地传送或通过有线连接的载波和电信号。
在本说明书中,术语“软件”意在包括驻留在只读存储器中的固件或者存储在磁性存储设备中的应用程序,所述固件或应用程序可被读取到存储器中以用于由处理器进行处理。另外,在一些实施方案中,可在保留不同的软件发明的同时,将多个软件发明实现为更大程序的子部分。在一些实施方案中,还可将多个软件发明实施为独立程序。最后,共同实施本文所述的软件发明的单独程序的任何组合均在本发明的范围内。在一些实施方案中,当被安装以在一个或多个电子系统上运行时,软件程序定义执行和施行软件程序的操作的一个或多个特定机器具体实施。
一些实施方案的应用在移动设备诸如智能电话(例如,
Figure GDA0002332352640000571
)和平板电脑(例如,
Figure GDA0002332352640000572
)上操作。图31是此类移动计算设备的架构3100的示例。移动计算设备的示例包括智能电话、平板电脑、膝上型电脑等。如图所示,移动计算设备3100包括一个或多个处理单元3105、存储器接口3110和外围设备接口3115。
外围设备接口3115耦接到各种传感器和子系统,该子系统包括相机子系统3120、无线通信子系统3125、音频子系统3130、I/O子系统3135等。外围设备接口3115能够实现处理单元3105与各种外围设备之间的通信。例如,取向传感器3145(例如,陀螺仪)和加速度传感器3150(例如,加速度计)耦接到外围设备接口3115,以促进取向功能和加速功能。
相机子系统3120耦接到一个或多个光学传感器3140(例如,电荷耦合设备(CCD)光学传感器、互补金属氧化物半导体(CMOS)光学传感器等)。与光学传感器3140耦接的相机子系统3120促进相机功能,诸如图像和/或视频数据捕获。无线通信子系统3125用于促进通信功能。在一些实施方案中,无线通信子系统3125包括射频接收器和发射器、以及光学接收器和发射器(在图31中未示出)。一些实施方案的这些接收器和发射器被实现为工作于一个或多个通信网络上,该通信网络诸如是GSM网络、Wi-Fi网络、蓝牙网络等。音频子系统3130耦接到扬声器以输出音频(例如,以输出语音导航指令)。另外,音频子系统3130耦接到麦克风以促进支持语音的功能,诸如语音识别(例如,用于搜索)、数字记录等。
I/O子系统3135涉及输入/输出外围设备(诸如显示器、触摸屏等)与处理单元3105的数据总线之间通过外围设备接口3115的传输。I/O子系统3135包括触摸屏控制器3155和其它输入控制器3160以有利于输入/输出外围设备和处理单元3105的数据总线之间的传输。如图所示,触摸屏控制器3155耦接至触摸屏3165。触摸屏控制器3155使用多种触敏技术中的任一种来检测触摸屏3165上的接触和移动。其它输入控制器3160耦接至其它输入/控制设备,诸如一个或多个按钮。一些实施方案包括接近触感屏和对应控制器,该对应控制器可检测替代触摸交互或除触摸交互之外的接近触摸交互。另外,一些实施方案的输入控制器允许通过触笔进行输入。
存储器接口3110耦接至存储器3170。在一些实施方案中,存储器3170包括易失性存储器(例如,高速随机存取存储器)、非易失性存储器(例如,闪存存储器)、易失性存储器和非易失性存储器的组合、和/或任何其他类型的存储器。如图31中所示,存储器3170存储操作系统(OS)3172。OS 3172包括用于处理基础系统服务以及用于执行硬件相关任务的指令。
存储器3170还包括:促进与一个或多个另外设备进行通信的通信指令3174;促进图形用户界面处理的图形用户界面指令3176;促进图像相关的处理和功能的图像处理指令3178;促进输入相关(例如,触摸输入)的过程和功能的输入处理指令3180;促进音频相关的过程和功能的音频处理指令3182;以及促进相机相关的过程和功能的相机指令3184。上述指令仅是示例性的,并且在一些实施方案中,存储器3170包括附加的和/或其他指令。例如,用于智能电话的存储器可包括促进电话相关的过程和功能的电话指令。以上所识别的指令不需要作为独立的软件程序或模块来实施。可在硬件和/或在软件中,包括在一个或多个信号处理和/或专用集成电路中来实现移动计算设备的各种功能。
虽然图31中示出的部件被图示为独立的部件,但是本领域的普通技术人员将认识到,可将两个或更多个部件集成到一个或多个集成电路中。另外,两个或更多个部件可由一条或多条通信总线或信号线来耦合在一起。另外,虽然已将许多功能描述为由一个部件执行,但是本领域的技术人员将认识到,可将相对于图31所述的功能拆分到两个或更多个集成电路中。
图32概念性地示出实现本发明一些实施方案所利用的电子系统3200的另一个示例。电子系统3200可为计算机(例如,台式计算机、个人计算机、平板电脑等)、电话、PDA、或任何其它种类的电子或计算设备。此类电子系统包括各种类型的计算机可读介质以及用于各种其它类型的计算机可读介质的接口。电子系统3200包括总线3205、处理单元3210、图形处理单元(GPU)3215、系统存储器3220、网络3225、只读存储器3230、永久性存储设备3235、输入设备3240和输出设备3245。
总线3205总体表示通信地连接电子系统3200的许多内部设备的所有系统、外围设备以及芯片组总线。例如,总线3205通信地将处理单元3210与只读存储器3230、GPU 3215、系统存储器3220以及永久性存储设备3235连接。
处理单元3210从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行本发明的过程。在不同实施方案中,一个或多个处理单元可为单个处理器或者多核处理器。一些指令被传送至GPU 3215并且由该GPU执行。GPU 3215可卸载各种计算,或补充由处理单元3210提供的图像处理。
只读存储器(ROM)3230存储处理单元3210和电子系统其它模块需要的静态数据和指令。另一方面,永久性存储设备3235是读写存储器设备。该设备是即使在电子系统3200关闭时也存储指令和数据的非易失性存储器单元。本发明的一些实施方案将海量存储设备(诸如,磁盘或光盘及其相应盘驱动器、集成式闪存存储器)用作永久性存储设备3235。
其他实施方案将可移动的存储设备(诸如软盘、闪存存储器设备等,及其对应的驱动器)用作永久性存储设备。与永久性存储设备3235一样,系统存储器3220也是读写存储器设备。然而,与存储设备3235不同的是,系统存储器3220是易失性读写存储器,诸如随机存取存储器。系统存储器3220存储处理器运行时所需的指令和数据中的一些。在一些实施方案中,本发明的过程存储在系统存储器3220、永久性存储设备3235和/或只读存储器3230中。例如,各种存储单元包括用于根据一些实施方案处理多媒体剪辑的指令。处理单元3210从这些各种存储器单元检索要执行的指令以及要处理的数据,以便执行一些实施方案的过程。
总线3205还连接至输入设备3240和输出设备3245。输入设备3240使得用户能够将信息传达至电子系统以及选择至电子系统的命令。输入设备3240包括字母数字键盘和指向设备(也称为光标控制设备(例如,鼠标))、相机(例如,网络摄像头)、麦克风或用于接收语音命令的类似设备等。输出设备3245显示由电子系统生成的图像或者其他输出数据。输出设备3245包括打印机以及诸如阴极射线管(CRT)或液晶显示器(LCD)的显示设备,以及扬声器或类似的音频输出设备。一些实施方案包括充当输入设备和输出设备两者的设备诸如触摸屏。
最后,如图32中所示,总线3205还通过网络适配器(未示出)将电子系统3200耦接到网络3225。以此方式,计算机可以是计算机的网络(诸如,局域网(“LAN”)、广域网(“WAN”)或内联网)的一部分,或者可以是网络的网络(诸如互联网)的一部分。电子系统3200的任何或所有部件可与本发明一起使用。
一些实施方案包括将计算机程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质、机器可读介质或机器可读存储介质)中的电子部件,诸如微处理器、存储装置以及存储器。此类计算机可读介质的一些示例包括RAM、ROM、只读光盘(CD-ROM)、可刻录光盘(CD-R)、可重写光盘(CD-RW)、只读数字通用光盘(例如,DVD-ROM、双层DVD-ROM)、各种可刻录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如,SD卡,mini-SD卡、micro-SD卡等)、磁性和/或固态硬盘驱动器、只读和可刻录
Figure GDA0002332352640000601
盘、超密度光盘、任何其他光学或磁性介质以及软盘。计算机可读介质可存储计算机程序,该计算机程序可由至少一个处理单元来执行并且包括用于执行各种操作的指令集。计算机程序或者计算机代码的示例包括机器代码,诸如由编译器所产生的机器代码,以及包括可由计算机、电子部件或微处理器使用解译器来执行的更高级别代码的文件。
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但一些实施方案由一个或多个集成电路来执行,该一个或多个集成电路诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一些实施方案中,此类集成电路执行存储在电路自身上的指令。此外,一些实施方案执行存储在可编程逻辑设备(PLD)、ROM或RAM设备中的软件。
如本说明书以及本专利申请的任何权利要求所用,术语“计算机”、“服务器”、“处理器”及“存储器”均是指电子或其它技术设备。这些术语排除人或者人的群组。出于本说明书的目的,术语显示或正在显示意指在电子设备上显示。如在本专利申请的本说明书以及任何权利要求中所使用的,术语“计算机可读介质”以及“机器可读介质”完全限于以可由计算机读取的形式存储信息的可触摸的物理对象。这些术语不包括任何无线信号、有线下载信号以及任何其它短暂信号。
虽然已参考许多特定细节描述了本发明,但本领域的普通技术人员将认识到,可在不脱离本发明的实质的情况下以其它特定形式来体现本发明。例如,多个附图概念性地示出过程。这些过程的特定操作可不以所示出和所描述的确切次序执行。可不在一个连续的操作系列中执行该特定操作,并且可在不同实施方案中执行不同的特定操作。此外,该过程可使用若干子过程来实施,或者作为更大宏过程来实施。

Claims (15)

1.一种用于从存储在设备上的媒体剪辑的集合自动生成音频/视频A/V展示的方法,所述A/V展示包括音频分量和视频分量,所述方法包括:
视频合成过程,所述视频合成过程包括定义所述视频分量并且向音频合成过程提供来自所述视频合成过程的所述视频分量的持续时间;和
所述音频合成过程,所述音频合成过程包括:
基于所述持续时间动态地生成用于所述A/V展示的所述音频分量;
从所述视频合成过程接收所述视频分量中的特定时间;
向所述视频合成过程供应所生成的音频分量中在所述视频分量中的所述特定时间附近的一个或多个听觉上可分辨的过渡位置;以及
为在所述特定时间附近的所述一个或多个听觉上可分辨的过渡位置中的每个过渡位置提供优先级值,
其中所述视频合成过程通过使用所提供的优先级值和所述视频分量中的编辑点为了到达所供应的过渡位置而必须相对于所述特定时间移动的程度来将所述编辑点对准到所供应的过渡位置。
2.根据权利要求1所述的方法,其中所述音频合成过程还包括将所生成的音频分量内的结束片段的位置提供给所述视频合成过程,所述视频合成过程然后将最后的图像片段的开头对准到所提供的位置。
3.根据权利要求2所述的方法,其中所述结束片段的所述位置是所述结束片段中的插播乐句的位置。
4.根据权利要求2所述的方法,其中所述最后的图像片段是最后的视频片段。
5.根据权利要求1所述的方法,其中所述音频合成过程和所述视频合成过程还包括同步这些过程分别应用于所述音频分量和所述视频分量的淡出效果。
6.根据权利要求1所述的方法,其中所述视频合成过程还包括执行后处理以将所述视频分量中的编辑点对准到所生成的音频分量中的一组听觉上可分辨的过渡位置。
7.根据权利要求6所述的方法,其中所述一组听觉上可分辨的过渡位置包括以下的至少一者:所述音频分量中的一组节拍位置、一组起音点位置、一组片段边界位置、和一组结束片段插播乐句位置。
8.一种移动设备,包括:
一组处理单元,所述一组处理单元用于执行指令;
非暂态机器可读介质,所述非暂态机器可读介质存储程序,所述程序用于从存储在设备上的媒体剪辑的集合自动生成音频/视频A/V展示,所述A/V展示包括音频分量和视频分量,所述程序包括:
视频合成过程;和
音频合成过程,
所述视频合成过程定义所述视频分量并且向音频合成过程提供来自所述视频合成过程的所述视频分量的持续时间,
所述音频合成过程:
基于所述持续时间动态地生成用于所述A/V展示的所述音频分量;
从所述视频合成过程接收所述视频分量中的特定时间;
向所述视频合成过程供应所生成的音频分量中在所述视频分量中的所述特定时间附近的一个或多个听觉上可分辨的过渡位置;以及
为在所述特定时间附近的所述一个或多个听觉上可分辨的过渡位置中的每个过渡位置提供优先级值,
其中所述视频合成过程通过使用所提供的优先级值和所述视频分量中的编辑点为了到达所供应的过渡位置而必须相对于所述特定时间移动的程度来将所述编辑点对准到所供应的过渡位置。
9.根据权利要求8所述的移动设备,其中所述程序还包括用于使用所生成的音频分量内的结束片段的位置来对准所述视频分量中的最后的图像片段的开头的一组指令。
10.根据权利要求9所述的移动设备,其中所述结束片段的所述位置是所述结束片段中的插播乐句的位置。
11.根据权利要求9所述的移动设备,其中所述最后的图像片段是最后的视频片段。
12.根据权利要求8所述的移动设备,其中所述程序还包括用于同步应用于所述音频分量和所述视频分量的淡出效果的一组指令。
13.根据权利要求8所述的移动设备,其中所述程序还包括用于执行后处理以将所述视频分量中的编辑点对准到所生成的音频分量中的一组听觉上可分辨的过渡位置的一组指令。
14.根据权利要求13所述的移动设备,其中所述一组听觉上可分辨的过渡位置包括以下的至少一者:所述音频分量中的一组节拍位置、一组起音点位置、一组片段边界位置、和一组结束片段插播乐句位置。
15.一种包括指令的计算机可读介质,所述指令当由一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1至7中任一项所述的方法。
CN201680054739.8A 2015-09-30 2016-09-30 对自动生成的音频/视频展示的音频和视频分量进行同步 Active CN108028054B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562235548P 2015-09-30 2015-09-30
US62/235,548 2015-09-30
PCT/US2016/054916 WO2017059315A1 (en) 2015-09-30 2016-09-30 Synchronizing audio and video components of an automatically generated audio/video presentation

Publications (2)

Publication Number Publication Date
CN108028054A CN108028054A (zh) 2018-05-11
CN108028054B true CN108028054B (zh) 2020-05-12

Family

ID=57178493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680054739.8A Active CN108028054B (zh) 2015-09-30 2016-09-30 对自动生成的音频/视频展示的音频和视频分量进行同步

Country Status (4)

Country Link
US (2) US10062415B2 (zh)
EP (2) EP3998610A1 (zh)
CN (1) CN108028054B (zh)
WO (1) WO2017059315A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049084B2 (en) * 2013-03-18 2018-08-14 Hsc Acquisition, Llc Rules based content management system and method
US10474422B1 (en) 2016-04-18 2019-11-12 Look Sharp Labs, Inc. Music-based social networking multi-media application and related methods
CN110366013B (zh) * 2018-04-10 2021-10-19 腾讯科技(深圳)有限公司 推广内容推送方法、装置及存储介质
CN109257545B (zh) * 2018-08-27 2021-04-13 咪咕文化科技有限公司 一种多源视频剪辑方法、装置及存储介质
US11804246B2 (en) * 2018-11-02 2023-10-31 Soclip! Automatic video editing using beat matching detection
CN109379633B (zh) * 2018-11-08 2020-01-10 北京微播视界科技有限公司 视频编辑方法、装置、计算机设备及可读存储介质
DE102018129813A1 (de) * 2018-11-26 2020-05-28 Beckhoff Automation Gmbh Datenübertragungsverfahren und Automatisierungskommunikationsnetzwerk
US11481434B1 (en) * 2018-11-29 2022-10-25 Look Sharp Labs, Inc. System and method for contextual data selection from electronic data files
US20200302825A1 (en) * 2019-03-21 2020-09-24 Dan Sachs Automated selection and titration of sensory stimuli to induce a target pattern of autonomic nervous system activity
CN110087143B (zh) * 2019-04-26 2020-06-09 北京谦仁科技有限公司 视频处理方法和装置、电子设备及计算机可读存储介质
CN112235631B (zh) 2019-07-15 2022-05-03 北京字节跳动网络技术有限公司 视频处理方法、装置、电子设备及存储介质
CN110602546A (zh) * 2019-09-06 2019-12-20 Oppo广东移动通信有限公司 视频生成方法、终端及计算机可读存储介质
US12045897B2 (en) 2019-11-04 2024-07-23 Hsc Acquisition, Llc Cloud-based enterprise platform for event handling
US11997329B2 (en) * 2019-11-13 2024-05-28 Disney Enterprises, Inc. Generating media programs configured for seamless playback
CN110855904B (zh) * 2019-11-26 2021-10-01 Oppo广东移动通信有限公司 视频处理方法、电子装置和存储介质
CN110992993B (zh) * 2019-12-17 2022-12-09 Oppo广东移动通信有限公司 视频编辑方法、视频编辑装置、终端和可读存储介质
CA3173977A1 (en) * 2020-03-02 2021-09-10 Visual Supply Company Systems and methods for automating video editing
US20230147338A1 (en) * 2020-06-29 2023-05-11 Fanuc Corporation Moving image editing device, moving image editing method, and moving image editing program
GB2597328A (en) * 2020-07-20 2022-01-26 British Telecomm Methods and apparatus for processing media content
CN112073649B (zh) 2020-09-04 2022-12-13 北京字节跳动网络技术有限公司 多媒体数据的处理方法、生成方法及相关设备
US12100425B2 (en) * 2020-10-01 2024-09-24 Loop Now Technologies, Inc. Machine learned video template usage
US20220124385A1 (en) * 2020-10-21 2022-04-21 Allstar Gaming, Inc. Systems and methods for generating digital video content from non-video content
CN112911379B (zh) * 2021-01-15 2023-06-27 北京字跳网络技术有限公司 视频生成方法、装置、电子设备和存储介质
US11956520B2 (en) * 2021-03-02 2024-04-09 Netflix, Inc. Methods and systems for providing dynamically composed personalized media assets
CN113077534B (zh) * 2021-03-22 2023-11-28 上海哔哩哔哩科技有限公司 图片合成云平台及图片合成方法
US11687708B2 (en) * 2021-09-27 2023-06-27 Microsoft Technology Licensing, Llc Generator for synthesizing templates
US20230282240A1 (en) * 2022-03-07 2023-09-07 Apple Inc. Media Editing Using Storyboard Templates

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1587111A1 (en) * 2004-04-15 2005-10-19 Magix AG System and method of automatically aligning video scenes with an audio track
CN100525459C (zh) * 2004-06-18 2009-08-05 杜比实验室特许公司 使用因特网协议保持流式音频和视频的同步
CN103077734A (zh) * 2011-09-23 2013-05-01 哈曼国际工业有限公司 录制的音频信号的时间对准
CN103842936A (zh) * 2011-06-03 2014-06-04 迈克尔·爱德华·扎莱泰尔 将多个实况视频剪辑和静态照片记录、编辑和合并为成品组合作品

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5693902A (en) * 1995-09-22 1997-12-02 Sonic Desktop Software Audio block sequence compiler for generating prescribed duration audio sequences
US6757027B1 (en) 2000-02-11 2004-06-29 Sony Corporation Automatic video editing
JP3810268B2 (ja) 2000-04-07 2006-08-16 シャープ株式会社 オーディオビジュアルシステム
US6807361B1 (en) 2000-07-18 2004-10-19 Fuji Xerox Co., Ltd. Interactive custom video creation system
JP4615166B2 (ja) * 2001-07-17 2011-01-19 パイオニア株式会社 映像情報要約装置、映像情報要約方法及び映像情報要約プログラム
US20030107592A1 (en) 2001-12-11 2003-06-12 Koninklijke Philips Electronics N.V. System and method for retrieving information related to persons in video programs
US7027124B2 (en) * 2002-02-28 2006-04-11 Fuji Xerox Co., Ltd. Method for automatically producing music videos
US8238718B2 (en) 2002-06-19 2012-08-07 Microsoft Corporaton System and method for automatically generating video cliplets from digital video
US7383509B2 (en) * 2002-09-13 2008-06-03 Fuji Xerox Co., Ltd. Automatic generation of multimedia presentation
US7127120B2 (en) 2002-11-01 2006-10-24 Microsoft Corporation Systems and methods for automatically editing a video
US7480442B2 (en) 2003-07-02 2009-01-20 Fuji Xerox Co., Ltd. Systems and methods for generating multi-level hypervideo summaries
GB2404298B (en) 2003-07-24 2007-08-22 Hewlett Packard Development Co Editing of Recorded Media
US7483618B1 (en) 2003-12-04 2009-01-27 Yesvideo, Inc. Automatic editing of a visual recording to eliminate content of unacceptably low quality and/or very little or no interest
US7301092B1 (en) 2004-04-01 2007-11-27 Pinnacle Systems, Inc. Method and apparatus for synchronizing audio and video components of multimedia presentations by identifying beats in a music signal
US8375302B2 (en) 2006-11-17 2013-02-12 Microsoft Corporation Example based video editing
US20090070346A1 (en) 2007-09-06 2009-03-12 Antonio Savona Systems and methods for clustering information
EP2104105A1 (en) * 2008-03-20 2009-09-23 British Telecommunications Public Limited Company Digital audio and video clip encoding
GB2457968A (en) 2008-08-06 2009-09-02 John W Hannay & Co Ltd Forming a presentation of content
EP2159797B1 (en) * 2008-08-28 2013-03-20 Nero Ag Audio signal generator, method of generating an audio signal, and computer program for generating an audio signal
US8996538B1 (en) 2009-05-06 2015-03-31 Gracenote, Inc. Systems, methods, and apparatus for generating an audio-visual presentation using characteristics of audio, visual and symbolic media objects
US9502073B2 (en) * 2010-03-08 2016-11-22 Magisto Ltd. System and method for semi-automatic video editing
US9554111B2 (en) 2010-03-08 2017-01-24 Magisto Ltd. System and method for semi-automatic video editing
US20110283210A1 (en) 2010-05-13 2011-11-17 Kelly Berger Graphical user interface and method for creating and managing photo stories
JP5686673B2 (ja) 2010-07-22 2015-03-18 富士フイルム株式会社 画像処理装置、画像処理方法およびプログラム
US10102208B2 (en) 2010-10-29 2018-10-16 Microsoft Technology Licensing, Llc Automatic multimedia slideshows for social media-enabled mobile devices
US20120189284A1 (en) 2011-01-24 2012-07-26 Andrew Morrison Automatic highlight reel producer
US20120210200A1 (en) 2011-02-10 2012-08-16 Kelly Berger System, method, and touch screen graphical user interface for managing photos and creating photo books
WO2012167191A1 (en) 2011-06-01 2012-12-06 Al Gharabally Faisal Promotional content provided privately via client devices
ITVI20120104A1 (it) 2012-05-03 2013-11-04 St Microelectronics Srl Metodo e apparato per generare in tempo reale uno storyboard visuale
US8891883B2 (en) 2012-05-15 2014-11-18 Google Inc. Summarizing a photo album in a social network system
US20130330062A1 (en) 2012-06-08 2013-12-12 Mymusaic Inc. Automatic creation of movie with images synchronized to music
US9940970B2 (en) 2012-06-29 2018-04-10 Provenance Asset Group Llc Video remixing system
US9070351B2 (en) * 2012-09-19 2015-06-30 Ujam Inc. Adjustment of song length
US20140267395A1 (en) * 2013-03-13 2014-09-18 Ross Video Limited Low-latency interactive multiviewer interfaces and methods for video broadcast equipment
US20150318020A1 (en) 2014-05-02 2015-11-05 FreshTake Media, Inc. Interactive real-time video editor and recorder
US20140376887A1 (en) * 2013-06-24 2014-12-25 Adobe Systems Incorporated Mobile device video selection and edit
US20150046842A1 (en) 2013-08-08 2015-02-12 Diageo North America, Inc. System for providing a social media compilation
US9652475B2 (en) 2013-09-17 2017-05-16 Google Technology Holdings LLC Highlight reels
WO2015089095A1 (en) 2013-12-10 2015-06-18 Google Inc. Providing beat matching
US9779775B2 (en) 2014-02-24 2017-10-03 Lyve Minds, Inc. Automatic generation of compilation videos from an original video based on metadata associated with the original video
US10003716B2 (en) 2015-03-24 2018-06-19 Sony Corporation Generation of a digest video

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1587111A1 (en) * 2004-04-15 2005-10-19 Magix AG System and method of automatically aligning video scenes with an audio track
CN100525459C (zh) * 2004-06-18 2009-08-05 杜比实验室特许公司 使用因特网协议保持流式音频和视频的同步
CN103842936A (zh) * 2011-06-03 2014-06-04 迈克尔·爱德华·扎莱泰尔 将多个实况视频剪辑和静态照片记录、编辑和合并为成品组合作品
CN103077734A (zh) * 2011-09-23 2013-05-01 哈曼国际工业有限公司 录制的音频信号的时间对准

Also Published As

Publication number Publication date
EP3323128A1 (en) 2018-05-23
US20170092331A1 (en) 2017-03-30
US10692537B2 (en) 2020-06-23
CN108028054A (zh) 2018-05-11
EP3998610A1 (en) 2022-05-18
WO2017059315A1 (en) 2017-04-06
US20180294013A1 (en) 2018-10-11
US10062415B2 (en) 2018-08-28

Similar Documents

Publication Publication Date Title
CN108028054B (zh) 对自动生成的音频/视频展示的音频和视频分量进行同步
US10726594B2 (en) Grouping media content for automatically generating a media presentation
US10269387B2 (en) Audio authoring and compositing
US20210173530A1 (en) Hierarchical, Zoomable Presentations Of Media Sets
US20170092324A1 (en) Automatic Video Compositing
US9286360B2 (en) Information processing system, information processing device, information processing method, and computer readable recording medium
US8732149B2 (en) Content output device, content output method, program, program recording medium, and content output integrated circuit
KR101648204B1 (ko) 콘텐트 아이템들의 컬렉션과 연관하여 메타데이터 생성
US10324899B2 (en) Methods for characterizing content item groups
US8879890B2 (en) Method for media reliving playback
US9082452B2 (en) Method for media reliving on demand
WO2008014408A1 (en) Method and system for displaying multimedia content
JP4643735B1 (ja) 電子機器及び映像処理方法
US20170091973A1 (en) User Interface for Adjusting an Automatically Generated Audio/Video Presentation
JP2010118056A (ja) コンテンツアルバム化装置及びコンテンツアルバム化方法
JP2011048729A (ja) クエリ抽出装置、クエリ抽出方法およびクエリ抽出プログラム
WO2012145561A1 (en) Systems and methods for assembling and/or displaying multimedia objects, modules or presentations
KR101964348B1 (ko) 미디어 기기에서의 콘텐츠 정렬 방법 및 장치와 그 방법에 대한 프로그램 소스를 저장한 기록 매체
EP3920046A1 (en) Information processing system, information processing method, and information processing device
TWI780333B (zh) 動態處理並播放多媒體內容的方法及多媒體播放裝置
CN104699382A (zh) 一种电子动态游记的实现方法
JP6206534B2 (ja) 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム
JP6043690B2 (ja) 記録提示装置及び記録提示方法及びプログラム
JP2005303840A (ja) 動画編集装置及び動画編集方法
JP2014115729A (ja) スライドショー作成サーバおよびスライドショー作成方法

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
GR01 Patent grant
GR01 Patent grant