新型马尔可夫序列生成器和生成马尔可夫序列的新方法

文档序号:6606040阅读:238来源:国知局
专利名称:新型马尔可夫序列生成器和生成马尔可夫序列的新方法
技术领域
本发明涉及马尔可夫序列生成领域,S卩,涉及生成包括至少一部分具有马尔可夫 性质的序列的方法和设备。更具体地,本发明与一种新型马尔可夫序列生成器和生成方法 相关,其具有生成包括马尔可夫性质可控的序列部分的能力。
背景技术
存在多个利用马尔可夫序列生成器的应用用以生成序列通常,这些应用寻找可 对过程进行建模的马尔可夫序列(例如,建模机会对策(garneof chance)中可能出现的结 果序列,建模出现在自然世界中的过程,等),其他应用针对创作新作品——例如,新的歌 曲、新的文字作品等——尤其是用于用户娱乐方面。在后者的应用中,通常需要创作过程至 少在某受限程度上是交互式的。回想与马尔可夫序列相关的基本特征是有益的。马尔可夫序列(或马尔可夫链) 是条目的序列,其中,在序列中位置靠前的条目对序列中位置靠后的条目没有影响。在阶数 (order)为1的马尔可夫序列中,序列中的下一个条目只取决于在该条目之前的条目和定 义了从一个条目转变到另一条目的各自概率的概率集。可认为序列中的每个条目代表“系 统状态”,并且该概率分布定义了从一种系统状态转变到另一系统状态的概率。例如,在蛇 爬梯子的游戏中,由玩家的游戏片所占据的方块的序列是阶数为1的马尔可夫序列。每轮 中,序列中的下一方块仅由当前方块和掷骰子的不同概率所确定。马尔可夫序列的“阶数”决定当生成序列中的下一条目时应当考虑序列中的多少 个在前条目。例如,考虑到目前为止已生成字母表ABCEDDEG的字母序列的马尔可夫序列 生成器。当决定该序列的下一个字母时,阶数为1的马尔可夫序列生成器仅考虑序列中的 最后一个条目(即,“G”),阶数为2的马尔可夫序列生成器将考虑序列中的最后两个条目 (即,子序列“EG”),阶数为3的马尔可夫序列生成器将考虑序列中的最后3个条目(S卩,子 序列“DEG”),并以此类推。为了说明方便,此处应用“前导(preamble)”来说明当决定在序 列中的下一位置放入何条目时,马尔可夫序列生成器所考虑的条目或子序列。因此,在上述 示例中,阶数为1、2、3的马尔可夫生成器分别利用了前导“G”、“EG”和“DEG”。在每种情况 下,马尔可夫序列生成器通过在理论上可能作为下一个的可能候选条目中进行随机抽签来 确定下一条目,其中考虑了每个候选条目跟随在所关心的前导之后的各自的概率。可以形成一部分序列的条目域以及从一个条目转变到另一条目的概率取决于马 尔可夫序列生成器正在使用的应用。通常,候选条目的域基本上是常数,而与选择条目的序 列位置无关。另外,域中的条目可以是不同类型的元素和/或具有同一通用类型但具有不 同性质的元素例如,在一种情形中,将要生成的序列是音乐音符的序列,域中的条目可以 是具有不同音调、音长、不同节拍性质、不同幅度等以及其不同组合(即,不同角度)的音 符。在一些情形中,从序列中一个条目转变到另一条目的概率由明确规则所确定例 如,在马尔可夫序列建模在蛇爬梯子游戏期间由游戏片所占据的方块序列的情形中,从给定方块到具体其他方块的转换概率取决于掷骰子会将游戏片转移到其他方块上的概率。但 是,在多种应用中,特别是在马尔可夫序列生成器被意欲用于自动创作新作品的应用中,所 允许的转换和与其相关联的概率通常从包括与全部或部分将要生成的类型的作品相关的 序列或子序列的训练数据库中得来。在此情形下,配置马尔可夫序列生成器使得其应用仅 与已在训练数据库中的序列/子序列中发生的转换有关的转换概率。马尔可夫链文本生成器经常被用于生成输入文本的模拟(例如,有具体诗人的风 格的输入诗歌的模拟)。在此情形下,输出序列需要遵从文本语言所遵从的句法规则以及模 仿此具体输入文本的风格趋势。这通过分析输入文本和控制马尔可夫链生成器来获得,使 得在生成文本中的给定字到字转换的概率可以基于输入文本中的同样的字到字转换的概 率。以同样的方式,当需要以具体作曲家的风格生成旋律时,可利用由该作曲家创作的乐节 作为马尔可夫序列生成器的训练数据库,在生成的旋律中,音符到音符的转换得自于基于 与训练数据库中相应音符到音符的转换的概率的随机抽签。传统的马尔可夫序列生成器基于增量,使用上述随机抽签的方式来逐项构建序 列。这是“低成本”的方式,即,使得以少的计算开销来生成输出序列的方式。但是,传统马 尔可夫序列生成器不允许用户控制所生成的马尔可夫序列的性质。欧洲专利申请EP1274069描述了一个称为Continuator的自动音乐创作系统,该 系统使用马尔可夫序列生成器以生成作为输入到系统(例如,通过用户弹奏乐器)的旋律 的继续的音乐音符或和弦。该系统试图生成由用户开始的旋律的实声继续的序列,该序列 模仿了训练全集的风格特征。Contirumtor中所使用的马尔可夫序列生成器是可变阶数 的马尔可夫序列生成器,该生成器选择下一个将要生成的音符/和弦,比较到目前为止的 旋律的终止部分(包括到目前为止由用户弹奏的序列和所生成的继续)和出现在训练全 集中的序列,在训练全集中查找与到目前为止的旋律终止部分相匹配的最长序列,选择在 此最长序列之后的继续中的下一音符/和弦。然后,通过考虑由先前输入序列组成的新序 列来迭代该过程,并连接由此选择的条目(变长随机游动方法(variable-length random walkapproach))0通过输入用于对下一个将被包含在继续中的条目的选择产生偏移的短序列音符, Continuator允许用户“在具体方向上”开始旋律的生成,例如,根据序列中的和谐性质或音 符的速度。但是,即使是在此系统中,用户只能对所生成的序列实施非常有限的控制,具体 地,用户输入只影响继续(序列)中的一个条目,即,临近已被生成的序列部分的条目。

发明内容
本发明优选的实施例提供了马尔可夫序列生成器和马尔可夫序列生成方法,使得 用户对输出马尔可夫序列的特性有更多扩展的控制。体现本发明的一些序列生成器和生成 方法可以配置为生成实质上全部是马尔可夫的序列;其他的序列生成器和生成方法可配置 为生成和输出具有马尔可夫和非马尔可夫部分的组合序列;但是,还有其他的序列生成器 和生成方法可配置为能够在生成全马尔可夫、非马尔可夫和混合序列之间切换。本发明利用在马尔可夫序列中相邻条目的转换的概率性质,尤其是,利用存在多 个将在给定马尔可夫序列生成任务中生成的不同可能的马尔可夫序列的事实(对于给定 序列中的条目域的集合和给定的可允许的转换和相关联的概率的集合)。总之,这些不同可能的马尔可夫序列将具有不同的性质。因此,当用户希望获得具有具体性质的马尔可夫序 列时,根据本发明的马尔可夫生成器在多个可能的马尔可夫序列中执行搜索以便找到一个 (或多个)与用户选择准则(或多个准则)相匹配的序列。形式上,可以说根据本发明的 马尔可夫链生成器搜索可能的马尔可夫序列空间以便定位一个或多个满足用户单个准则/ 多个准则的序列。本发明提供了从实现在传统马尔可夫链生成器中的增量式、逐条生成的马尔可 夫序列到新方法的范例转换,在该新方法中,马尔可夫链生成器搜索包括所有理论上可能 的马尔可夫序列,考虑位于在这些理论上可能的序列中的多个位置上的条目的性质,尤 其是与序列中正被选择作为下一个条目的之后的条目的位置相关的“前向位置(forward location),,(即,不在或不临近已生成的序列部分中的条目的性质)。该新方法是更“昂贵 的”,即,比传统方式在计算上更密集。但是,其具有一定的前瞻(look-ahead)能力,该能力 能够根据所选的控制准则来生成可控的马尔可夫序列。另外,本发明优选的实施例使用在 执行搜索中减少所涉及的计算开销的技术。如本说明所附加的权利要求1中所指示的,本发明提供了马尔可夫序列生成器。如本说明所附加的权利要求8中所指示的,本发明提供了交互式的马尔可夫序列 生成系统。如本说明所附加的权利要求10中所指示的,本发明提供了马尔可夫序列生成方法。在本发明优选的实施例中,选择了一系列条目用于马尔可夫序列中的一系列相邻 位置——换言之,序列以块方式(chimkwise)生成——并且这些块被组装以形成输出马尔 可夫序列。在块中选择条目期间,根据本发明的优选实施例,马尔可夫序列生成器分析与马 尔可夫序列对应的、并且理论上可包含在整个序列的相邻位置集中的不同的可能的条目系 列,并选择能够满足一个或多个控制准则的集合的一系列条目。该方法可迎合多种控制准则,包括对位于序列中多个位置或“将来位置”(即,在系 列中正被考虑的位置之后的位置)的条目的性质进行限制的控制准则。应当理解,此处术 语“将来”并不意欲限制发明于所生成的序列代表时间上时序的条目的情况。根据本发明, 马尔可夫链生成器可被配置为生成不同类型的序列,例如,包括当不限于时间序列,还包括 空间序列(包括在多个空间维度的序列),以及时空序列(包括视频)。总之,序列中的条目根据特征而被说明,每个特征包括给定的属性和与该属性相 关联的值。这些属性可以是数字值,但这并不重要例如,属性可以使用非数字值“真”值 或“假”值(指示该属性是否由所关心的条目所拥有),与一组中所选的性质相关的“值”(例 如,用于属性“颜色”的值“红”、“绿”、“蓝”及以此类推),等。本发明的优选实施例提供了可生成序列(其包括至少一个马尔可夫链部分)使得 该序列满足一个或多个控制准则(每个准则定义了保持在序列上的计算要求)的马尔可夫 序列生成器和生成方法。该计算要求可以是与在序列中不同位置的条目特性相关的布尔命题。更特别地,当生成序列的下一部分时,根据本发明的马尔可夫序列生成器和生成 方法,即便其保持在与至此所生成的序列部分不相邻的条目上,仍可以选择下一条目使得 控制准则被满足。
因此,例如,根据本发明的马尔可夫序列生成器和生成方法可以允许用户指定类 型为“序列中的第十个条目必须与第四个条目的颜色相同”的控制准则,并且,当序列中的 第四个条目被选择时,将考虑此选择对在第十个位置上的条目的性质的影响。


通过参照附图,通过示例而非限制,在阅读优选的实施例的下述说明后,本发明的 进一步的特性和优势将变得明显,其中图1示出了根据本发明优选的实施例的可控马尔可夫序列的块式生成;图2是示出了在可应用根据本发明的马尔可夫序列生成方法的交互式序列生成 系统中的组件的框图;图3是示出了作为本发明的第一优选实施例的应用的示例的爵士乐作曲系统中 的组件的框图;图4是示出了如何通过使用与在训练数据库中的训练序列部分相对应的子序列 的各种“阶”的排铺(tiling)而建造可变阶数马尔可夫序列的图。图5是示出了马尔可夫约束的配置的图,该马尔可夫约束可被定义使得确保根据 本发明第二优选的实施例来生成的序列与可变阶数马尔可夫序列相对应。图6是示出了在实验中生成的序列的图,该实验利用本发明的第二优选实施例来 试图生成与多个控制准则相匹配的可变阶数马尔可夫序列;以及图7是示出了作为本发明的第二优选实施例的应用示例的爵士乐作曲系统中的 组件的框图。
具体实施例方式在详尽讨论根据本发明的马尔可夫序列生成方法的第一和第二优选实施例之前, 做出适合于这两种本发明优选实施例的一些总的评论。根据本发明的马尔可夫序列生成器和生成方法是属于一般应用的,换言之,它们 可被配置为生成基本上任意所需类型的条目的序列。根据本发明的马尔可夫序列生成器和 生成方法可被配置为输出所生成序列的描述,尤其是描述或识别所生成序列的条目和在序 列中它们的次序的数据,例如,这些说明以有序表、表格或其他符号表示(并且该说明可被 存储、打印、显示、在网络上传输或以其他方式输出)的形式存在。但是,存在许多应用,其 中,可替换地或附加地,以用户可感知的形式呈现(render)所生成的序列是有利的。这通 常是如下的情形,当本发明被应用于创作音乐、文本、静止图像数据、视频或其他易受数字 表示影响的内容的系统时。当本发明的马尔可夫序列生成器和生成方法被配置为以用户可感知的形式呈现 所生成的序列时,呈现设备和方法应当适合于序列中条目的性质。例如,当所生成的序列是 音乐创作时,可应用扩音器来播放与音乐创作相对应的音频信号从而输出所生成的序列; 当所生成的序列是文本时,可通过在监视器上显示文本、打印出文本、利用扩音器来输出文 本的读出版等来输出所生成的序列;当所生成的序列是颜色序列时,可通过以与所生成序 列相对应的次序来照亮合适颜色的光子、通过以在时间或空间合适的方式的次序来在监视 器上显示颜色,来输出所生成的序列;以及以此类推。
7
应当理解,在本发明的马尔可夫序列生成器和生成方法呈现所生成的序列数据的 应用中,系统产生其性质根据指定的(一个或多个)控制准则所控制的物理实体(音频信 号、显示的图像、光演示等)。如上所述,本发明提供了一种新的范例,其中,通过搜索马尔可夫序列的空间以找 到与(一个或多个)控制准则相匹配的恰当的序列来生成具有受控性质的马尔可夫序列。 这可被认为是一类组合优化。但是,组合优化(例如,调度、值班方法,等)的典型应用通常 需要生成完整序列(可能很长)。通过对比,本发明的优选实施例将所生成的整个序列“切 分”成连续块,并应用搜索技术来找到给定块的合适的马尔可夫序列。当块完成时,添加其 到至此已生成的序列的剩余部分,然后考虑下一个块。如上所述,根据本发明,序列生成器是马尔可夫序列生成器。因此,对于需要是马 尔可夫序列的部分,本发明的实施例被配置为寻找以确保在两个连续块间和在每个块的生 成期间保持马尔可夫的连续性。基于块的方法特别适合于本发明的优选实施例被用于交互式序列生成的应用,例 如,作为交互式设计或作曲系统,或游戏的一部分。在本文中,序列必须根据通常在实时地 从用户行为(例如,通过输入设备、控制器,传感器等)得来的一些(一个或多个)输入控 制参数而被生成。在此类交互应用中,当块已被计算出时,通常将块“传送”给用户是恰当 的(例如,给用户呈现/播放块),以便用户可以使得未来的控制输入是基于他对到目前为 止所生成的序列的评价的。根据定义,已经通过这种方式传送的块是不能改变的。图1示出了块式序列生成器随时间的输出。在图1中的时刻t0,序列的块3被计 算(指定为“当前块”),而现在块1和块2已被计算并将不做变化。将被本发明中所使用的块式序列生成器生成的块的合适大小取决于应用。但是, 可做出一般的评论。首先,在某些应用中,块大小是可变的,S卩,序列生成器可被配置为通过生成和链 接不同大小的序列块来生成整个序列。另外,可根据固定的或动态的规则来设置块的大小。 例如,在乐曲生成应用的示例中,系统可被配置使得在乐曲被生成的同时播放背景音频伴 奏(同步地)。伴奏中的一些乐节可能具有具体的性质,例如,就拍子(慢,块,等)而言,系 统可被配置为基于伴奏的这些具体性质来设置块大小。可手动确定这些性质,并且被作为 对系统的控制输入,或可在之前执行的自动分析处理中确定(或,实时地,如果与伴奏相对 应的音频输出存在时间延迟来补偿生成对应乐曲块所需的时间)。作为此具体乐曲生成应 用的另一个示例,可执行音频伴奏的和声分析,并且可基于和声来确定块大小(例如,如果 和弦持续2小节,则块将延展跨越2小节,等)。一般地,如果块大小很大,则相应地,将被搜索的可能的马尔可夫序列的数量将很 大,这将增加执行搜索所需的时间和计算功率。这降低了系统的反应度,并导致无法实时生 成所需的整个马尔可夫序列,或根本无法生成(对交互式应用是劣势)。如果块大小很小, 则相对快些并容易计算,但是用户对所生成的马尔可夫序列的性质具有更严格的控制。还可通过分析用户自身的动作来确定块大小。例如,在控制准则是基于用户姿势 而生成的情形下,可判定“慢”姿势意味着最大的块(例如,缓慢的提升胳膊的动作将触发 更长的用于乐曲的块被生成)。根据所使用的块的合适大小,利用本发明,可基本上控制马尔可夫序列的任何性质,这些性质可以被表达为保持在序列中的(任意数目的)条目上的可计算要求。该可计 算要求可以是具有数值值的参数间的关系(例如,一种指定序列中适合于给定条目的第一 个数值值大于、小于,或等于适合于在整个序列中的一些其他条目或子序列的第二个数值 值的关系),但是本发明并不限于此;可容纳其他类型的可计算要求,尤其是布尔命题(例 如,“序列中的第四个条目必须比序列中的第一个条目更红”,“序列必须变得更加爵士”)。 更一般地,控制准则可以是可被表达为算术性质(包括基本数学运算符,例如+,*,等)和 所谓的“基数(cardinality)”性质(包括具有具体性质的条目的数目,例如,“不应有多于 4个的相同音符”)的可计算要求。通常,标准计算技术适合于确定给定序列的条目是否满足由控制准则所施加的要 求。但是,在一些情形下(尤其是属性具有受限值),可能需要利用分类器以便确定给定属 性值是否适合于序列中的具体条目或在整个序列中的一些子序列。本发明的马尔可夫序列生成方法可应用于对马尔可夫序列的性质的控制是自动 的系统中,即,由系统自己实施而无由用户给出的具体序列控制准则的明确输入(系统可 利用通过控制所生成的序列而获得的目标或关于其中应当实现不同类型控制的环境的通 用规则而被预编程)。或者,根据本发明的马尔可夫序列生成系统可被配置为根据由用户先 前输入的一个或多个控制准则来实现控制。还可产生混合半自动系统。另外,通过使用本发明,建造如下的新型交互式马尔可夫序列生成系统成为可能, 该系统能够使用户与序列生成器交互从而实时对所生成的马尔可夫序列实施控制。该交互 式控制可在多种不同环境中被实施在玩游戏的环境中,或在创作音乐、文本或其他易受数 字表示影响的内容中,或在设计图形或其他视觉表现的序列中,以及在许多不同性质的环 境中。在此类型的交互式系统中,所生成的序列通常实时地被返回呈现给用户,使得用 户如果需要的话可更新控制准则,从而以一定程度上类似于指挥家指挥乐队或驾驶员控制 行车的演进的、交互式的方式使所生成的序列成形。图2示出了其中可实现本发明的马尔可夫序列生成方法的交互式序列生成系统 的一般架构。该交互式马尔可夫序列生成系统可被应用于多种不同应用,例如,它可以是用 于自动创作音乐、文本或其他易受数字表示影响的内容的系统,用于合成游戏中的静止图 像或视频,以及其他应用。如图2中所示,根据本发明的实施例的交互式序列生成系统10被配置为经由任意 类型方便的输入设备20来实时地从用户接收控制输入,该设备20包括但不限于键盘、鼠 标、画图板、触摸屏,或其他设备20a,用户操作该设备以便与用户接口(例如,图形用户接 口)进行交互,该接口被配置为使得用户指定将被生成的序列的控制准则;传统的游戏控 制器20b包括用户可操作的按钮、杆等;控制器20C (例如Nintendo的wiimote),该控制器 利用加速计等检测用户做出的姿势;图像获取和分析系统20d,被配置为检测和解释用户 姿势;等。另外,除了那些具体提及的以外的控制器和传感器可被配置为使得用户指定说明 将被生成的序列所需的性质的控制准则。应当理解,尤其当图2所示的那类交互式序列生成系统被配置为基于用户行为或 姿势的控制输入时,用户可以直觉和好玩的方式对所生成的序列施加控制。交互式序列生成系统10通常包括接收用户控制输入的输入接口。该控制输入由控制单元13解释,该控制单元输出一个或多个将被所生成序列满足的控制准则的集合。交 互式序列生成系统10包括块式马尔可夫序列生成器15,该生成器利用诸如通过参照本发 明的第一和第二优选实施例的如下所述之类的技术以生成所需的马尔可夫序列块。在序列 中具体转换的概率由概率控制,并且单元14给马尔可夫序列生成器15提供其使用的数据 以应用适合于所关心的应用的转换概率。所生成的马尔可夫序列块经由输出接口被输出, 并且,如上所述,其一般被适合于序列中条目的性质的呈现设备30所呈现,该呈现设备可 以是扬声器30a、控制器或其他显示设备30b,等。图2所示出的架构仅包括适合于生成马尔可夫序列部分的序列生成组件。但是, 应当理解,可以在系统中同时并用块式马尔可夫序列生成器15和一个或多个其他序列生 成组件,其中该系统需要输出至少具有一个非马尔可夫部分的序列。现将说明根据本发明的第一和第二优选的实施例的马尔可夫序列生成方法。这些 方法可被应用于使用在图2所示的交互式系统中的块式马尔可夫序列生成器15,以及其他 架构中(包括全自动马尔可夫序列生成系统、提前(非实时)接收用户控制输入的系统、混 合系统,等)。本发明的第一优选实施例通过利用“生成和测试”方法(即,随机生成一定量的候 选马尔可夫序列,然后选择一个最佳满足(一个或多个)输入控制准则的序列),确保了每 个块内的马尔可夫连续性(块内连续性)和对(一个或多个)输入控制准则的满足。为了 确保块间连续性,利用随机游走方法生成作为前一块的连续的每个序列。根据本发明,应用于本发明的第一优选实施例中的“生成和测试”方法已被相当成 功地应用于马尔可夫序列生成器中,本发明自动生成音乐乐曲,尤其是模仿爵士即兴创作 的乐曲。下面将描述作为本发明第一优选实施例的一个可能实现的示例的此类型的爵士 乐曲创作系统。应当理解,本发明的第一优选实施例可以多种不同方式被实现于音乐创作 系统,并且可被实现于多种其他已存在或可被开发的应用中,其包括但不限于涉及一个或 多个玩家(例如,轮流玩)的音乐游戏、音乐教育应用、绘图应用、计算机辅助设计系统,以 及组合游戏,其中,用户必须生成条目序列以最优化满足多个任意约束的马尔可夫(即,排 铺)性质。图3中示出了此具体爵士乐曲创作系统的示例的通用架构,该架构根据本发明的 第一优选实施例实现了马尔可夫序列生成方法。图3的自动爵士乐曲创作系统被配置为生成与单声音乐音符(音调)的马尔可夫 序列相对应的爵士乐曲。自动爵士乐曲创作系统40包括配置为同时以多个音符的块输出 所需音乐的马尔可夫序列生成器45。所生成的序列优选地经由输出接口输出到呈现设备 (例如,扬声器),该呈现设备可回放代表自动生成的爵士和声的音频信号。块式序列生成器45包括马尔可夫链生成单元42,该单元被配置为生成多个不同 可能的可被选为输出序列块的音符的序列。块式序列生成器还包括序列选择器44,该序列 选择器用于在马尔可夫链生成器单元42所生成的不同候选序列中选择一个作为序列块, 该序列块被输出以形成由系统所生成的整个序列的一部分。序列选择器44被配置为选择 最匹配一个或多个控制准则的集合的候选序列。控制准则的集合可包括可计算要求,这些 可计算要求保持在不与已被生成的整个序列的一部分相邻的条目上。每个块中的音符的数量是可变的,但在此示例中,每个块对应于一个音乐拍子。更具体地,在图3的示例系统中,控制单元46控制节拍生成器41使得对乐曲的每拍,节拍生 成器41判定乐曲是否由4个四分之一音符、8个八分之一音符、16个十六分之一音符组成, 或是否将由四分之一音符、八分之一音符或十六分之一音符的三元组组成。这设置了将被 包括在块中且块式序列生成器45将为此乐曲的节拍生成的音符的数量。节拍生成器41在 块式序列生成器45中发送信号到马尔可夫链生成器单元42,为“下一块”识别将要被生成 的音符的数量和类别(四分之一音符,等)。已发现在一拍内保持节奏实质不变(即,节拍生成器41选择持续时间相同的音符 集用以在给定一拍中生成)是有利的,因为这精确地建模了在由真人音乐艺术大师在爵士 即兴创作中可能自然发生的情景。另外,配置节拍控制器41使得选择相对持续时间短的音 符(四分之一音符或更少)还导致类似爵士即兴创作的生成序列。如上所述,马尔可夫链生成器单元42被配置为生成多个不同的马尔可夫序列,该 序列可以在理论上被用作当前节拍的序列块输出。马尔可夫链生成器单元42逐音符地生 成每个候选序列,并考虑表现在训练数据库43中的给定音符到另一音符的转换概率,该训 练数据库存储具有自动生成的乐曲意欲模仿的风格特质的序列(样本乐曲)。马尔可夫链 生成器单元42可以是固定阶数或可变阶数设备。控制单元46控制马尔可夫链生成器单元 42使得其生成指定数目的候选马尔可夫序列。序列选择器44将通过确定哪个候选序列与由控制单元46标识的控制准则最相匹 配来选择用于输出的候选马尔可夫序列之一。可预先以任何方便的方式(经由输入接口、 通过系统预编程,等)将该控制准则的集合输入到系统。可替换地,可实时地从响应于用户 动作的输入设备输入控制准则的集合。在此应用中,使用户对对音乐家有意义的高水平性质方面控制所生成的乐曲。具 体地,该系统使得用户指定一些任意类型的准则,该准则在下一节乐曲的如下乐节特征方 面定义了目标特征,例如,音调(例如,“使下一节的平均音调高于/低于在前的一节或多 节”)、和弦约束(“更多音色音符(more tonal notes)”)、间隙(“半音阶的”)、方向(“上 升”,“下降”),琶音,等。这使用户可以控制所生成的乐曲使得其具有所需的音乐性质。在图3的示例中,序列选择器44被配置为计算说明每个连续序列块的数量特征 (属性和相关联的值)集。所计算的值被保持在临时存储单元或存储器中(未示出)。当 该生成序列中的下一块时,并且用户已经指定定义了与前一乐节相关的下一乐节的属性的 控制要求时,序列选择器44计算由马尔可夫序列生成器单元42输出的用于下一块的不同 候选序列的特征,并确定这些候选序列中的那个具有最能满足控制要求的特征。例如,在一个非常简单的情形下,序列选择器44可计算由马尔可夫链生成器单元 42输出的候选序列的如下特征序列音调的均值、序列间隙的均值和序列音色(音色在范 围W,l]中取一个值,并可利用诸如Krumhasi之类的音调谱算法来计算)。如果用户希望 使序列变得更加有音色,则他输入控制输入到该效果,并且序列选择器44选择输出比整个 所生成的序列的在前部分更有音色的候选马尔可夫序列。序列选择器44可包括使之可暂 时保持标量特征值的存储器或寄存器(未示出),该标量特征值被用于计算先前输出的所 生成的乐曲块。需要配置系统以在可由序列生成器40所生成的乐曲上放置一定附加的与音乐有 关的约束。尤其需要所生成的乐曲具有一定程度的连续性,并遵循一致的和弦结果(和音
11序列)。关于此附加约束的乐曲倾向于更好地模仿由真人音乐家产生的爵士即兴创作。可将这些附加的约束建构到系统中使得它们无需受明确用户控制的限制。例如, 为了确保所生成的乐曲具有遵循给定和音序列的和声结构,配置训练数据库使得其包括多 个不同的训练序列集是有利的,每个训练序列集对应于与给定和音相谐调的音符。然后,控 制单元可被配置使得当马尔可夫链生成器42需要针对乐曲的给定节拍生成候选马尔可夫 序列时,控制单元41确定在该节拍期间哪个和音序列的和音是适用的,并且控制马尔可夫 链生成器使得其通过利用与所确定的和音协调的训练序列集,生成候选马尔可夫序列。另外,如果系统被配置为使得试图保持甚至跨越从一个和音到下一和音的转换而 生成的乐曲的连续性,可出现在马尔可夫生成器42正在使用的训练序列中无法找到合适 的“下一音符”(即,没有音符提供音乐连续性)时的情形。在此情形下,图3中的系统40 的马尔可夫链生成器单元42被配置为确定哪个音符是在到目前为止所生成的序列中的最 后音符的上半音或下半音,并且测试这两个音中的哪一个提供音乐连续性。该修复机制是 由下述认识所激发的,即,在爵士乐中,每个音符最多与音调差一个音符,该音调代表乐曲 的和弦结构的自然继续(称为“单音符最大(onenote max) ”定理)。已经发现,通过配置系统可提升由图3的乐曲生成系统所产生的乐曲的自然性, 使得对于乐曲的某部分,马尔可夫序列的要求放松了。具体地,可通过实现乐曲之前部分的 形式转换来生成所生成乐曲的某部分。例如,乐曲中的所选乐节可被形式转换生成,该形式 转换包括将前一(或,更一般的,之前的)乐节变调提升(或下降)一个半音,逆转在已转 换乐节中的音符的模式,组合此变调和逆转,等等。图3用虚线示出了一个转换单元47,该 转换单元可被用于计算此类型的形式转换。一般,在此应用中,与转换相对应的乐曲部分将 组成相对较少部分的已生成序列。根据一些预置准则,例如,如果对于乐曲的η拍没有和音变化则实现转换,转换单 元47 (代替块式序列生成器45)的生成序列的下一部分的操作被用户输入或系统自动触 发。由转换单元47输出的序列数据被提供给马尔可夫链序列生成器42使得由马尔可夫链 生成器单元42所生成的候选序列(关于跟随在与转换相关的序列部分后的马尔可夫序列 部分)可以如下的方式被生成,即,恰当地跟随在非马尔可夫序列的部分后。由转换单元47 输出的序列数据也被提供给序列选择器44使得序列选择器44也能够计算该序列数据部分 的标量特征。除了别的以外,例如,图3的乐曲生成系统是适合于实时音乐游戏和基于姿势的 控制器的使用。从音乐上而言,此系统生成“高质量”的乐曲。具体地,该系统被用于生成 模仿爵士即兴创作(尤其是比博普即兴创作)的风格化品质的乐曲,并被认为与由爵士即 兴创作艺术大师演奏的乐曲在质量上可比。这代表了对现有技术的自动爵士乐生成系统的 极大进步,该自动爵士乐生成系统最多能产生与大学水平的音乐家可比的乐曲。在本发明第一优选实施例中使用的“生成和测试”方法代表在计算简单性和搜索 完全度间的折中。但是,该方法并不确保系统找到最优序列。通过参照图4到图7将说明根据本发明的马尔可夫序列生成方法的第二优选实施 例。应用在本发明第二优选实施例中的搜索策略是完全和最优的,即,其保证对于给定的序 列生成任务的参数(例如,马尔可夫序列的要求,以及将要满足的(一个或多个)控制准 则),找到的序列是可能的最好的。
根据本发明的第二优选实施例,对于马尔可夫序列的每个块,马尔可夫序列生成 任务被明确表达为各自的约束满足问题(constraint satisfactionproblem,CSP),该问题 涉及找到整个将被生成的马尔可夫序列的块的连续条目的合适值。在给定块中的连续条目 构成了 CSP的受约束变量,并且,适合于这些变量的约束是-确保块组成马尔可夫序列的第一约束集(以及,为了确保当前所考虑的块组成 具有前一个块的马尔可夫连续部,序列中前一块的最后变量可被设置为将被考虑的新块的 第一个变量;这些被转运的变量的值在用于当前块的CSP解决方案中是不变的,但是将考 虑它们的值),以及_确保序列块适合于确保满足(一个或多个)控制准则的一个或多个第二约束集。由于“第一约束”是施于序列块以便确保包括此块的整个所生成的序列部分具有 马尔可夫性质,所以有时他们被称为“马尔可夫约束”。由于“第二约束”是施于序列块以便 确保所生成的序列满足指定的控制要求,所以有时他们被称为“控制约束”。可认为以前从未使用约束满足以用于生成马尔可夫序列。用公式表达作为CSP的序列生成任务具有在时间和处理开销方面的“成本”,而并 非是几乎零成本的传统可变阶数的马尔可夫生成(基本上在每步进行随机抽签),因为此 CSP公式使在长度为N(块长度)的所有可能序列空间中进行搜索成为必需。但是,该成本 通过下述技术手段被极大减少。技术人员将容易理解,根据本发明的第二优选实施例,当被用公式表达为可应用 于序列块的CSP集时,来自约束满足领域的多个不同方法和技术可被应用以解决马尔可夫 序列生成任务。总之,公式化的CSP的解决方案将涉及枚举用于受约束变量(即,在此序列块中的 条目)的值的不同的可能组合,并且,为了减少要考虑的情形,涉及以“主动”方式考虑多种 约束使得减少受约束变量的域。更具体地,在枚举处理期间,将决定在受约束变量的域中的 哪些值与可分配给给定受约束变量的值相符合,并且也与满足CSP的第一和第二约束集相 符合。在受约束变量域中的不相符条目被移除。该处理被称为“过滤”,使得受约束变量域 被移除,从而极大地减少了搜索空间。分配潜在值给受约束的变量以及过滤的程序花费时间和处理功率,但是其减少了 将要搜索的空间的大小。优选地,根据本发明第二优选实施例的马尔可夫生成器和生成方法利用由 Mackworth 在"Consistency in Networks of Relations", ArtificialIntelligence, 8(1) 99-118(1977)中讨论的具有“弧相容(arc consistency),,性质(其确保在用于过滤 所化时间和减少搜索树的大小间的好的平衡)的约束来将序列生成任务公式化为CSP。发明人已经发现,当利用确保所生成的序列是可变长马尔可夫的具体第一约束集 (即,第一约束集,该第一约束集最优化所生成的序列是在来自训练数据库的训练序列的可 变长元素间的排铺的程度)来将马尔可夫序列生成任务公式化为CSP时,可以定义这些约 束使得它们具有弧相容。本发明的第二优选的实施例可利用第一约束集,该约束集确保固 定阶数的马尔可夫性质,但是还未验证是否可保持有利的弧相容。在根据本发明的第二优选实施例的系统和方法中,已被定义并在其他类型约束满 足问题的公式化和解决方案中使用的已知类型的约束一般讲适合于作为“第二约束”的使用(即,确保所生成的序列与一个或多个控制要求集相匹配的“控制约束”)。一般,对于技 术人员而言,从已知约束库中选择适合于给定控制要求的控制约束是常规的。将从下述图 表中理解3个示例的考虑
控制准则合适的约束/方法的示例在序列中位置P处的条目必须为条 目q使在位置P的域固定到条目q,然后 保持此域固定,应用其他约束在序列块中第i位置处的条目必须= 在第k位置处的条目在受约束变量Vi和Vk上保持“相 等”约束在序列块的最后4个位置的条目必 须彼此不同在所考虑的最后4个受约束变量上 保持“都不同”的约束很清楚,作为控制约束,利用已被开发有高效的过滤程序的约束类型是有利的。但 是,庆幸的是,多个出版物说明了用于上述图表中所列出的示例约束/方法的高效过滤算 法,以及用于施加算术要求、基数要求,以及其他保持在序列条目上的实际可计算要求。另外,根据本发明的第二优选实施例,技术人员可很好地设计适合于控制约束的 新约束类型。再次,根据本发明的第二实施例,当已知(或新近开发的)的约束正被考虑在 系统和方法中用作控制约束时,选择具有弧相容性质的约束是有利的。出于示出目的,而 非限制,给出了一个示例,其应用了约束满足技术的组合以便解决根据本发明的第二优选 实施例的公式化的CSP,使得生成马尔可夫序列块,其性质根据一个或多个控制准则被控制 (包括要求在比到目前为止所生成的序列立即随后的条目更远的某种“前瞻”的准则)。在 此具体示例的下述描述中,省去了控制约束的定义和处理的细节。首先,这是因为一般地, 控制约束的定义和处理与应用在传统约束满足中的技术相对应。其次,在下述示例中,所提 到的所有具体控制要求是上述图表中所列出的第一类型,并且仅要求受约束变量之一的具 体域是固定的。根据本示例,过滤处理遵循例如 “ Implementing ApplicationFrameworks Object-Oriented Frameworks at Work,,Fayad, Μ· and Schmidt, D. and Johnson, R., editors, pages 369—402,John Wiley & Sons (1997)中由 P. Roy、A. Liret 禾口 F. Pachet 在 "A Framework for Object-Oriented ConstraintSatisfaction Problems,,中所描述的“基 于事件,,的方法,同见 Choco CSPconstraint library User Guide,http//choco-solver. net/index, php ? title = Userguide (2009),连同所谓的“分枝定界(branch and bound)” 策略。这两种技术在组合优化领域是已知的,并且此处仅提供有限的细节。根据基于时间的方法,当具体事件在枚举处理期间发生时将执行过滤。事件通常 为1)变量已经被算法设置了一个值2)值已经从变量域移除3)最小值已经被增大4)最大值已经被减小
14
5)域已经被减小对于每个约束,算法集被定义,其描述了当每种预定事件发生时如何减少受约束 变量的域。“分枝定界”策略包括定义“成本函数(cost function) ”,对于受约束变量的值的 给定组合,“成本函数”的值必须最小化(或最优化)。该成本函数自身被表示为一种约束。 当成本函数到达最优值时,该搜索处理停止。下面给出了在需要生成可变阶数的马尔可夫序列的情形下的第一约束集(即,保 证所生成的序列块是马尔可夫的约束)的可能配置一个示例。技术人员通过其普通知识及 从此处的教导所增加的知识,可以容易地确定适合于生成可变阶数马尔可夫序列的约束的 第一集的可替换配置,以及适合于生成不同阶数的固定阶数马尔可夫序列的约束的第一集 的可替换配置。本示例提出了通用类型的“马尔可夫”约束集,该约束集确保所生成的序列遵循可 变阶数马尔可夫生成的规则,并且提出了精确描述由随机游走方式所生成的马尔可夫序列 的性质的数量和配置。通过此约束(下述)的配置,该搜索算法生成所有随机游走方式可 能产生的序列。其可生成更多序列,尤其因为可变阶数随机游走方式当可以时有利于系统 上更长的子序列,而CSP公式可能有利于一步中更短的子序列,使得其可以在序列中后来 具有更长的子序列。在此示例中,为了生成长度为N(即,在序列中包括N个相邻条目的块)的序列块, 需要分析所有可出现在序列中的可能的可变阶数马尔可夫序列。在序列块中的连续条目被 看作N个受约束的变量,H...,Vn,每个变量Di的域是所有可属于该序列的所有可能条 目的集合。搜索处理目标是给每个变量分配唯一值使得约束全部被满足(下述所定义的)。在此示例中,假定将被生成的序列中所允许的转换(以及他们对应的概率)由在 “训练数据库”中的预定训练序列所定义。由于此处此示例与所生成的序列是可变阶数的马 尔可夫序列的情形相关,训练序列的可变长部分定义了可允许的马尔可夫子序列,该子序 列可作为将被输出的序列部分被生成。理论上,训练数据库的最小大小可以是包括两个条目的序列。但是,大多数系统的 实际应用将使用更大量的训练序列和/或更长的训练序列。训练序列的内容可被指定为DB = (S1, ...,Sp},其中Si是条目的训练序列之一。 例如,在音乐生成应用中,将被生成的序列以及每个训练序列可以是乐曲,即,音调序列。例 如,一个训练序列可以是下述贝多芬C大调“欢乐颂”中的部分{Ε、E、F、G、G、F、E、D、C、C、D、Ε、E、D, D}事实上,在通常的乐曲创作系统中,通常适合于使用比单15音符乐曲更大的训练 数据库。通常地,每个乐曲30音符的50个乐曲是更常见的(虽然,如果需要,可通过将可 用样本乐曲转换到所有可能音乐键来容易地生成具有更多分支选择的更大的训练数据库; 这将是训练序列的数目乘以12)。形式上,将被生成的序列的马尔可夫性质可被如下声明序列V” V2,. . .,Vn由取自DB中的多个子序列所组成。这些子序列被彼此相“排 铺”。在此“可变阶数”的情形下,排铺意味着序列的第一个元素用1个或多个前一子序列 组成继续。在前一子序列中的元素的数目被称为继续的“阶数”。例如,如图4所示,下述序列=EDEEre由从初始数据库中的训练序列借用来的排铺块所组成。在图4,继续的不同阶数 分别为1和2。在此示例中,为了约束此序列块中的条目使得其实现此可变阶数排铺处理,第一 约束集被设置到所有可能的阶数(从2到最大值Order-max)及所有将生成的序列的连续 滑行子序列。这些第一约束应被称为“马尔可夫”约束,使得与确保所生成的序列块满足 (一个或多个)控制准则的第二约束相区分。图5示出了适合于获得所需排铺的处理的马尔可夫约束的配置,其与如下情形相 关,即所生成的马尔可夫序列到目前为止是可变阶数的,因为子序列的阶数2、3、4是允许 的(艮, Order—max = 4)。在图5所示的示例中,必须检查序列中的相邻条目的所有相邻对、三元组和四元 组,从而确定他们是否与出现在训练数据库中的子序列相对应。这相当于检查马尔可夫性 质是否被所检查的相邻条目组所遵守。该检查处理通过给序列块中的相邻受约束变量的每 个相邻对、三元组和四元组定义各自的马尔可夫约束来实现。在图5中,符号C12指代对相邻受约束变量V1和V2是否与出现在训练数据库中的 某个长度为2的子序列(即,一个可允许的子序列)相对应进行检查的马尔可夫约束;更一 般地,符号Ci,i+1指代对相邻受约束变量是否与出现在训练数据库中的某个长度为 2的子序列相对应进行检查的马尔可夫约束。类似地,符号C234指代对相邻受约束变量\、 V3和V4是否与出现在训练数据库中的一个长度为3的子序列相对应进行检查的马尔可夫 约束;更一般地,符号Cuim指代对相邻受约束变量ViJw和Vi+2是否与出现在训练数据 库中的一个长度为3的子序列相对应进行检查的马尔可夫约束。类似地,符号C3456指代对 相邻受约束变量V3、V4、V5和V6是否与出现在训练数据库中的一个长度为4的子序列相对 应进行检查的马尔可夫约束;更一般地,符号Cuw2,i+3指代对相邻受约束变量Vi、Vi+1、Vi+2 和Vi+3是否与出现在训练数据库中的某个长度为4的子序列相对应进行检查的马尔可夫约 束ο为了简单,图5仅示出了可应用于6个受约束变量的马尔可夫约束(S卩,可应用于 正被生成的序列块中的前6个条目)。但是,当存在更多或更小数目的受约束变量时(即, 序列块长于或短于6个条目时),增加或减少所需的马尔可夫约束的数目是直接的。技术人员应该理解,在需要生成2阶的固定阶数马尔可夫序列的情形下,仅需要 指定马尔可夫约束Cu,其检查在序列中的相邻条目对是否与训练数据库中长度为2的子序 列相对应。同样地,在需要生成3阶的固定阶数马尔可夫序列的情形下,仅需要指定马尔可 夫约束Cuk,其检查在序列中的条目的相邻三元组条目是否与训练数据库中长度为3的子 序列相对应;以此类推。在本示例中,上述马尔可夫约束的每一个与布尔变量(此处指“跳跃变量”)相关 联。如果对应的子序列是合法的(即,其属于训练序列集),则跳跃变量的值为“真”,否则 (在该情形下,对此具体子序列和此具体阶数,存在对马尔可夫连续性的违背)为假。利用上述马尔可夫约束的数目、配置和类型,可以特别简单的方式定义成本函数 (由分支定界算法所使用)。更具体地,成本函数可被定义为布尔跳跃变量(此处,真=0 且假=1)的所有和。分支定界搜索处理确保用于受约束变量的“最低成本”的值的组合被 定位,并被选择输出。可示出,所有布尔跳跃变量的和的最小值(即,违背马尔可夫情形的与具有在连续子序列间“最大”排铺的方案相对应,即,由随机游走方法所生 成的方案。利用分支和定界处理的实施方式并不必须利用基于简单和的上述成本函数,而是 可使用其他函数。例如,如果需要有利于更长的子序列,则成本函数可以是阶数的权重和, 其中,高阶数被给予高权重。在此情形下,分支和定界处理将自然有利于这些高阶数。为了避免昂贵的组合搜索,定义马尔可夫约束的高效过滤程序是有利的。现将描 述此高效过滤程序的两个示例在第一个示例中,过滤程序包括在约束满足领域已知的使用和组合技术。具体地, 由 G. Pesant 在"A regular language membership constraint forfinite sequences of variables", LNCS2004, 32 (58) 482到495中介绍的所谓的正则约束提供了用于正则语言 的高效过滤机制。这些语言被由确定性有限自动机(Deterministic Finite Automata, DFA)所定义。为了在本发明的第二优选实施例的实现中使用此约束作为结构单元,必须做 出两个添加1)利用任何可用技术(技术人员已知)将输入序列集转换成这样的DFA。例 如,一种简单(但不高效)的技术将在每个序列中的每个符号的出现看做一个状态(这 将通常产生大且昂贵的结构)。例如,可使用因素预言(Factor Oracle)算法来建造更 高效的自动机,该算法由 C. Allauzen, M. Crochemore 和 M. Raffinot 在 “Factor Oracle A New Structure for Pattern Matching,,,Proceedings of the 26th Conference on Current Trends in Theory andPractice of informatics on Theory and Practice of informatics(November 27-December 04,1999), J. Pavelka, G. Tel,and M. Bartosek,Eds, Lecture Notes In Computer Science, vol. 1725. Springer-Verlag, London, 295-310 中提 出O2)在过滤程序中引入布尔跳跃变量(见上述)。如上所述,该变量在分支和定界 处理期间被用于激活/解除正则约束。第二个示例过滤程序包括直接利用输入序列集,而回避DFA的显式构造。根据此 方法,可根据上述实现马尔可夫约束Markov(J, V1, V2, . . . , Vn)该约束保持在变量V1, VN。其确保J ==真《直V1, ...,Vn组成长度为N的有效 子序列,即,在训练全集中存在长度为N的子序列。介绍了两种数据结构以便合适地过滤此约束1)如果给定子序列是合法的,则预言返回“真”(如果不合法,则返回“假”)。此 语言可利用多种技术来实现,例如后缀树(如上述欧洲专利1274069的Contirumtor系统, 其全部内容通过引入结合于此),或上述DFA。无论用什么方法实现,该语言在技术上能够 高效实现下列函数i)hasSequence (Seq) => Boolean (具有序列(序列)=>布尔值),Returns true if Seq belongs to the training corpus (如果序列属于训练全 集则返回真)(参见 propagateSeqVarValueChanged),以及ii) getCompatibleSequences (order, i, value) ((i,{t))Returns the list of all sub-sequences of length order havingvalue atposition i (返回在位置i处有值的所有长度阶数的子序列的列表2)在过滤处理期间保持称为coimtMap (计数映射)的数据结构。该数据结构与序 列中的每个变量相关联。其包含它们可能的值(它们的域)的列表和计数。该计数代表该 值已经出现在训练全集中的次数。例如,给定由{1,2,3,4,3,2,1}所定义的训练全集,并且 给定对前4个变量的马尔可夫约束,用于每个变量的计数映射如下所述V1 => {1(1),2(1),3(2),4(1)}V2 => {2(1),3 (2),4(1)}V3 => {2(1),3 (2),4(1)}V4 => {1(1),2(1),3(1),4(1)}上述两个数据结构(预言(oracle)和计数映射(coimtMap))足够对马尔可夫约 束高效地实现过滤程序。过滤过程可以维持弧相容。用于马尔可夫约束的过滤程序可根据下述基于事件的方法被实现。(它们都依赖 于下述的“移去值(valueRemoved) ”算法,该算法通过当可能时减少计数来利用计数映射 (coimtMap)。当计数达到0时,将产生返回,即,给定在枚举处理中当前正考虑的值的组合 并不能导致满足此问题约束的解决方案,则枚举处理继续考虑一种不同的组合(当域被移 除时此返回的触发是在基于事件的约束满足中的标准程序)。)a)当变量Vi已经被分配了值x(在枚举处理期间)时,procedure designatedvalueChangecKVi,》(过程指定的值变更(Vi,x))被执行。此程序的目标是保 持约束的弧相容。这是通过如下步骤将值从其他变量的约束的域中移除1-收集长度=在位置i处具有值χ的阶数的子序列compatibleSequences (才目 兼 容 的 序 歹Ij ) = Oracle. getCompatibleSequences (order, i, χ)(预言·获得所兼容的序列(阶数,i,χ))2-过滤出与变量当前域不兼容的序列,用于(Variables Vj, j ! = i)去除在位 置j的值不属于、域(即,其计数为0)的序列3-收集用于每个变量Ni的结果域Vj的域=在compatibleSequences (相容序列)中的位置j的 allPossibleValues (所有可能值)b)当变量Vi具有已经从其域中移除的值时(在枚举处理期间),过程指定的 valueRemovecKVi,χ)被执行。此过程的目标是保持约束的弧相容。这是通过如下步骤将 其他变量的约束域的一些值从coimtMap中减去所完成的1-收集在位置i具有值χ的长度阶数的子序列compatibleSequences = Oracle. getCompatibleSequences (order,i,χ)(兼容序 列=预言.获得所兼容的序列(阶数,i,χ))2-对于在 compatibleSequences 中的每个序列 Sk对于所有位置j!=i减少在序列Sk中位置j处的值Vj的countMapc)当在枚举处理期间,变量Vi的域已被移除时,或域的最小值已被增加时,或域的 最大值已被减小时,这些情形被作为一系列值移除来对待,对于每个已移除的值利用上述 valueRemovecK值移除)方法来实现。
为了测试根据本发明的第二优选实施例的上述马尔可夫序列生成方法的示例的 生成具有受控性质的马尔可夫序列的能力,上述技术被应用于寻找生成20个音符(即,音 调)并且最大阶数为4的可变阶数马尔可夫序列的任务中,下述附加的控制准则保持在序 列中的不同位置的条目上 第一个音符是C(即,0) 第六个音符是D (即,2) 最后一个音符是C ( SP,0) 中间音符(在位置11)是F(即,5)并且假定包含有下列训练序列的训练数据库(序列代表音调(0 = C,2 = D,等。)。_欢乐颂(贝多芬){EEFGGFEDCCDEEDD}-从我朋友的一点帮助(披头士){EFGGFEDEFFEFEDDDCE}-琶音(arpeggio){CECEGFDC}下述序列被生成CEGFEDECEGFDCECEGFDC该乐曲既有零马尔可夫跳跃(因此,其是最优马尔可夫);如图6所示,其由从训 练数据库中的子序列组成。另外,可从图6看出,所生成的马尔可夫序列还满足多个控制准 则。如上所述,前述的示例只不过是众多用于将生成可控马尔可夫序列公式化为CSP 并应用约束满足技术以解决已公式化问题的具体可能方法之一。可通过多种方式改进前述 示例,并可接纳可替换的技术。例如,上述示例方法可被改进的一种方式包括对跳跃变量的处理的优化。当高阶 数约束“包含”所有低阶数的变量时,阶数η的马尔可夫约束和更高阶数的马尔可夫约束间 存在一种关系。在这种情形下,当低阶数约束被违背时,无需过滤更高阶数约束(因为阶数 η的非连续性明显意味着更高阶数的非连续性)。因此,一种优化即为实现保持在该问题的 多种跳跃约束上的具体“继承”(entailment)约束。此类优化可进一步减少找到已公式化 CSP的最优解决方案所需的搜索量。作为根据本发明的第二优选实施例的序列生成器的架构的示例,图7示出了类似 于图3的系统40的爵士乐创作系统50的组件。与在图3示出的系统40相似,在图7所示出的系统50中,节拍生成器51确定将 被用于代表正在创作的爵士乐的一拍的音乐音符的数量和类型(例如,4个四分之一音符, 8个八分之一音符,等。)。这确定了在下一个将要生成的序列的“块”中有由多少个音符。 节拍生成器51告知基于CSP的块式马尔可夫链生成器55将被包含在下一序列块中的音符 的数量和/或类型。控制单元55给基于CSP的块式马尔可夫链生成器55提供序列需要遵 守的一个或多个控制约束集的数据。如图3的系统40中,控制准则可内建到系统中,由用户提前提供和/或实时输入; 控制准则可经由来自用户控制设备的接口被输入。同样地,由爵士乐创作系统50所生成的序列数据可以任何所需的形式被输出,例如,经由输出接口输出到呈现设备。根据本发明的第二优选的实施例配置基于CSP的块式马尔可夫链生成器55,以将 序列块生成任务公式化为CSP,该CSP涉及等同于由节拍生成器51固定的用于此块的音符 数量的一定数量的受约束变量,第一组马尔可夫约束被设计用于确保序列是马尔可夫的, 第二组控制约束被设计用于确保所生成的序列满足由控制单元55所标识的控制准则的集 合。基于CSP的块式马尔可夫链生成器55可以访问训练数据库53 (其被保持在爵士乐创 作系统50的内部或外部存储设备中)。应当理解,由控制单元56提供给基于CSP的块式马尔可夫链生成器55的控制准 则可指定仅保持在当前将要生成的条目上的要求,或除了保持在当前将要生成的一个或多 个条目之外,还保持已由基于CSP的块式马尔可夫链生成器55生成和输出的序列块的一个 或多个条目上的要求。当用户希望以相对的方式控制序列时(例如,用户的控制指示他希 望爵士乐变得“更有切分的(more syncopated) ”),通常应用后一种情形。如在图3的系统40,在图7的系统50中,转换单元57可选地被提供以便使得生成 输出序列的非马尔可夫块。应当提及,在第二优选的实施例的可替换实现中,在马尔可夫序列中的转换概率 由明确规则所控制,而非由训练数据中的所观察的转换所控制,未提供图7中示出的训练 数据库55。相反地,提供了具有合适转换概率数据(例如,从查找表或计算单元)的基于 CSP的块式马尔可夫链生成器55,或者其被配置以自行计算合适的概率数据。另外,在此可替换的实现中,其中马尔可夫序列中的转换概率由明确的规则所控 制,约束公式公式化问题一般可利用“固定阶数”马尔可夫约束来公式化(即,该约束确保 所生成的序列块是固定阶数的马尔可夫序列,并且根据固定阶数马尔可夫规则,跟随在“到 目前为止所生成的序列”后)。在“固定阶数”的情形下,考虑到该方法所涉及的计算负荷, 在解决CSP中使用分支和定界策略是没有优势的。上述马尔可夫序列生成方法通常使用恰当编程的通用计算设备被实现。在此情形 下,图2和图3中示出的输入和输出接口通常利用传统通用计算设备的接口来实现。考虑 图2示出的交互式系统架构10,控制单元13和块式马尔可夫序列生成器15通常利用通用 计算机中的合适编程的处理单元来实现。这也适合于图3中的乐曲生成系统40的示例中 的节拍生成器41、块式马尔可夫链生成单元45、控制单元46,和转换单元47。另外,对在图 2和图3中的前述组件的功能进行了区分,用于理解方便而非通过限制的方式;这些功能的 不同分布是可能的,并且,当编程的处理单元被用于实现这些组件时,可能无法区分执行归 于这些组件的各自的功能不同的功能模块或程序子例程。此处无需详尽的说明,技术人员将很容易理解可被使用以便实现所描述的方法的 物理处理组件和编程的多样性。具体地,本发明不限于任意具体的物理实现。虽然可存在用于本发明的可控马尔可夫序列生成器的多种不同物理实现,通常, 每个生成器将包括选择用于所生成序列的不同位置的条目的选择单元。该选择单元将包 括-概率确定单元,该概率确定单元适合于提供概率数据,该概率数据定义了在序列 中给定候选条目将跟随在所述序列中确定出的一个或多个在前条目的子序列后的概率,概 率数据将通常以训练数据库的形式被提供,但是其可以其他方式被提供,例如,查找表,控
20制概率如何被计算的规则集等等;概率数据被保持在序列生成器自身中并非是必要的(尽 管这是有利的),概率数据可位于单独的存储器设备中,并且当需要时,通过概率确定单元 (根据本发明的第一和第二实施例的——以及在标准的随机游走方法中——该概率确定单 元可被实现为预言(oracle))经由通信链路被取回;以及_马尔可夫链管理单元(根据本发明的第一优选实施例,该马尔可夫链管理单元 根据到目前为止所生成的序列明确地生成可以跟随的可能的马尔可夫序列;根据本发明的 第二优选实施例,马尔可夫链管理单元在解CSP期间应用马尔可夫约束)。根据某优选实施例和其示例实现的特征描述了本发明。但是,技术人员将容易理 解,可在上述实施例和实现的具体细节中进行多个变更和发展。例如,上述详尽的示例与音乐音符的马尔可夫序列的生成有关。但是,如上所述, 本发明的技术和设备可被广泛应用于多种不同类型,并不限于所生成的序列与音乐条目相 对应的情形。并且,以上说明详尽描述了可用于交互式马尔可夫序列生成系统中的实时输入和 输出的输入设备和呈现设备。但是,应当理解,除了基于实时外,如上述的同类型的输入设 备和呈现设备可被用于输入控制准则和输出序列数据。除了图3示出的示例外,本发明的其他实施例可被配置以使所生成序列的所选部 分是非马尔可夫的。另外,应当理解,在此“混合序列”生成器中,马尔可夫和非马尔可夫部 分的大小可以是不同的或彼此相同,也可与由马尔可夫序列生成器所使用的块大小相同或 不同。例如,根据本发明的第二优选实施例的系统和方法中,CSP公式和约束满足技术可 仅被应用于整个序列的需要成为马尔可夫的部分。另外,在根据本发明的第二优选实施例 的序列生成器中,当正被生成的当前序列块与立即跟随在序列的非马尔可夫部分后的马尔 可夫序列块相对应时,在当前序列块生成期间所应用的马尔可夫约束可被适合于使得不需 要当前序列块是前一非马尔可夫序列部分的马尔可夫继续。另外,在所生成的序列具有马尔可夫和至少一个非马尔可夫部分的情形下,序列 的非马尔可夫部分通过关于图3所讨论的转换序列的前一部分来被生成是不重要的;体现 本发明的序列生成器和生成方法可被配置以充分地利用任何设计者所选择的序列生成处 理(随机生成、算术生成,等)来生成序列的(一个或多个)非马尔可夫部分。所使用的用 以生成序列的(一个或多个)非马尔可夫部分的方法可以是受用户动作影响的方法。按照系统和方法描述了本发明的优选实施例,该系统和方法生成元素的序列,这 些元素的域迎合所讨论的元素的一个性质(或维度)。例如,序列元素可以是具有不同音调 的音乐音符,并且序列生成器在序列中为每个音符选择音调。但是,应当理解,本发明具有 广泛的应用,即,本发明可被实现以使序列中的元素具有多于一个其性质的变更。再次考虑 排序音乐音符的示例,本发明的实施例可被适合于允许变更,比如说,序列中音符的音调和 持续时间。一种使能上述的简单技术,此处通过阐释而非限制提及,包括利用上述方法/系 统的平行工作的多个实例;每个实例产生不同的序列,其中,所排序的元素的各自维度(性 质)可以不同。然后,输出序列被从不同序列的元素被集合输出序列的音符的音调从“音 调生成器”中获得,持续时间从由“持续时间生成器”所选择的持续时间中获得,以此类推。
权利要求
一种马尔可夫序列生成器,适合于生成和输出定义条目序列的数据,所述序列的至少一部分具有马尔可夫性质,所述马尔可夫序列生成器包括输入单元,适合于接收定义一个或多个控制准则的集合的控制输入,所述一个或多个控制准则指定要被生成的序列的希望的性质;以及选择单元,适合于对马尔可夫序列部分中的每个位置,选择在所述位置包含在所述序列中的条目,所述选择单元包括概率确定单元,适合于提供概率数据,所述概率数据定义了在序列中给定候选条目将跟随在所述序列中确定出的一个或多个在前条目的子序列后的概率,马尔可夫链管理单元,适合于控制条目的选择,使得所述序列中的给定条目根据由所述概率数据定义的概率,跟随在所述序列中的所述一个或多个在前条目后,以及输出单元,适合于输出指示所选条目的完成数据;其中,所述序列生成器适合于输出包括由所述选择单元输出的所述完成数据的序列数据,作为代表所述序列的所述至少一部分的序列数据;其特征在于所述选择单元适合于当选择用于包含在所述序列的给定位置处的条目时,搜索一个或多个在所述给定位置处包含了所述条目的马尔可夫序列,并且匹配控制准则,所述控制准则定义保持在所述序列中的至少一个条目上的可计算要求,所述至少一个条目位于所述序列中已由所述选择单元输出了完成数据的位置之后但非立即相邻的位置。
2.如权利要求1所述的马尔可夫序列生成器,其中,所述选择单元适合于对在相应的 一系列相邻位置处包含在输出序列中的条目进行成组地选择,每个组包括两个或更多个条 目,并且所述选择单元适合于输出完成数据块,所述完成数据块定义了所选条目组。
3.如权利要求2所述的马尔可夫序列生成器,其中,所述选择单元包括存储单元,所述 存储单元适合于保存中间数据,所述中间数据定义了对所述序列中的位置的条目的临时分 配,并且所述选择单元适合于做出对所述一系列相邻位置的条目的最终分配,并且向所述 输出单元输出定义了所述最终分配的完成数据块。
4.如权利要求1、2或3所述的马尔可夫序列生成器,其中,所述马尔可夫链管理单元 由马尔可夫链生成器组成,所述马尔可夫链生成器被布置用于生成多个可替换的马尔可夫 链,并且所述选择单元包括块选择单元,所述块选择单元适合于从所述多个可替换的马尔 可夫链中选出一个满足定义了可计算要求的所述控制准则的马尔可夫链。
5.如权利要求1、2或3所述的马尔可夫序列生成器,被配置为将生成马尔可夫序列的 每个块的任务公式化为各自的约束满足问题,所述约束满足问题中,所述问题的受约束变 量是所述块中的相邻条目,并且所述马尔可夫序列生成器被配置为应用约束满足技术来确 定要被选择用于包含在所述块中的位置处的条目。
6.如权利要求1、2或3所述的马尔可夫序列生成器,包括适合于生成输出序列的非马 尔可夫部分的转换单元,所述转换单元通过对输出序列的另一部分执行形式转换来生成输 出序列的所述非马尔可夫部分。
7.如权利要求1、2或3所述的马尔可夫序列生成器,其中,所述输出单元被配置为以用 户可感知的形式呈现条目的输出序列。
8.一种包括根据权利要求1-7中任意一个的马尔可夫序列生成器的交互式马尔可夫序列生成系统,其中,所述输入单元被配置为从响应于用户输入的输入设备实时地接收所 述控制输入,并且所述选择单元适合于实时地生成输出序列块。
9.如权利要求8所述的交互式马尔可夫序列生成系统,其中,所述输入设备基于所述 用户的姿势生成所述控制输入。
10.一种马尔可夫序列生成方法,适合于生成和输出定义条目序列的数据,所述序列的 至少一部分具有马尔可夫性质,所述方法包括如下步骤接收控制输入,所述控制输入定义了一个或多个控制准则的集合,所述一个或多个控 制准则指定要被生成的序列的希望的性质;对马尔可夫序列部分中的每个位置,选择在所述位置包含在所述序列的条目,所述选 择步骤包括如下子步骤确定概率数据,所述概率数据定义了在序列中给定候选条目将跟随在所述序列中确定 出的一个或多个在前条目的子序列后的概率,控制条目的选择,使得所述序列中的给定条目根据由所述概率数据定义的概率根据所 述概率数据定义的概率,跟随在所述序列中的所述一个或多个在前条目后,以及 输出指示所选条目的完成数据;其中,所述序列生成方法适合于输出包括在所述选择步骤中输出的完成数据的序列数 据,作为代表所述所述序列的所述至少一部分的序列数据; 其特征在于所述选择步骤适合于当选择用于包含在所述序列的给定位置处的条目时,搜索一个或 多个在所述给定位置处包含了所述条目的马尔可夫序列,并且匹配控制准则,所述控制准 则定义了保持在所述序列中的至少一个条目上的可计算要求,所述至少一个条目位于所述 序列中已由所述选择步骤输出了完成数据的位置之后但非立即相邻的位置。
全文摘要
新型马尔可夫序列生成器和生成马尔可夫序列的新方法生成有可控性质,尤其是满足至少一个控制准则的性质的马尔可夫序列,控制准则是保持在序列条目上的可计算要求。马尔可夫序列以块方式生成,每块包含序列中的多个条目。每个块的生成期间,在马尔可夫序列空间中执行搜索以找到能满足控制准则的块大小的一系列条目。搜索可利用生成和测试的方法执行生成块大小的马尔可夫序列,然后测试对控制准则的要求的遵从度。或者,搜索可通过将序列生成任务公式化为约束满足问题来执行,一个或多个约束确保所生成的序列是马尔可夫的,一个或多个约束实施控制准则的要求。序列生成器可用于用户经由输入设备(20)指定控制准则的交互式系统中。
文档编号G06N7/00GK101950377SQ201010227509
公开日2011年1月19日 申请日期2010年7月12日 优先权日2009年7月10日
发明者法兰克斯·帕彻特, 皮埃尔·罗伊 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1