搭配和声的方法、装置、电子设备及计算机可读介质与流程
本申请涉及计算机技术领域,具体而言,本申请涉及一种搭配和声的方法、装置、电子设备及计算机可读介质。
背景技术:
和声在调性音乐(tonalmusic)中是一个很重要的部分,是音乐的基本表现手段之一。尽管一段旋律可以独立呈现,但加上用于伴奏的和声可以增加旋律的丰富性,在听感上更加丰满,并且在对西方传统音乐进行分析时,和声是一个很重要的维度。
现有技术中,一般采用以每小节的第一个音作为和弦根音的方法为旋律搭配上相应的和声。本申请发明人发现,对同一旋律而言存在多种和声搭配的可能性,当以一小节为单位且以每小节的第一个音作为根音为旋律搭配和声时,其局限性较大;且一个旋律片段所对应的和声与整个旋律片段内的所有音符的信息都息息相关,现有技术无法考虑旋律中相邻小节所搭配和弦间的相关性以及相邻和弦间所有音符的信息,导致为旋律所搭配的和声演奏效果突兀。
技术实现要素:
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本申请第一方面,提供了一种搭配和声的方法,包括:基于旋律片段的节拍将所述旋律片段划分成多个目标片段;基于各个目标片段的音符序列分别计算多个预设和弦与所述各个目标片段的匹配度,并针对每个目标片段,将所述匹配度最高的预设和弦作为相应目标片段的目标和弦;基于所述多个目标片段分别对应的目标和弦生成与所述旋律片段搭配的和声片段。
结合第一方面,在第一方面的第一种实施方式中,所述基于旋律片段的节拍将所述旋律片段划分成多个目标片段,包括:基于旋律片段的节拍确定可变参数;其中,所述可变参数为预设值或用户基于所述旋律片段的节拍设定的和弦密度;基于所述可变参数将所述旋律片段划分成多个目标片段。
结合第一方面,在第一方面的第二种实施方式中,所述基于各个目标片段的音符序列分别计算多个预设和弦与所述各个目标片段的匹配度,并针对每个目标片段,将所述匹配度最高的预设和弦作为相应目标片段的目标和弦,包括:基于各个目标片段的音符序列与多个预设和弦确定目标参数;采用隐马尔可夫模型基于所述目标参数分别计算多个预设和弦与所述各个目标片段的匹配度,获得所述各个目标片段分别对应的目标和弦,所述目标和弦为与相应目标片段匹配度最高的预设和弦。
结合第一方面的第二种实施方式,在第一方面的第三种实施中,所述基于各个目标片段的音符序列与多个预设和弦确定目标参数,包括:基于各个目标片段的音符序列确定多个预设和弦与所述各个目标片段的搭配概率;基于所述旋律片段中的多个调号与每个预设和弦的音程关系确定多个预设和弦在各个调号中的概率分布;基于预设变化概率计算多个预设和弦与各个调号组合的状态转移概率;其中,所述预设变化概率包括调号变化概率和预设和弦变化概率;基于所述各个目标片段的音符序列、搭配概率、概率分布及状态转移概率生成目标参数。
结合第一方面的第三种实施方式,在第一方面的第四种实施方式中,所述基于各个目标片段的音符序列确定多个预设和弦与所述各个目标片段的搭配概率,包括:基于各个目标片段的音符序列确定各个音名在所述各个目标片段中的时长向量;基于所述时长向量确定多个预设和弦与所述各个目标片段的搭配概率。
结合第一方面的第二种实施方式,在第一方面的第五种实施方式中,所述基于所述目标参数分别计算多个预设和弦与所述各个目标片段的匹配度,获得所述各个目标片段分别对应的目标和弦,包括:基于所述目标参数分别计算多个预设和弦与排序在所述旋律片段首位的目标片段的匹配度;若当前计算的目标片段排序在所述旋律片段的首位之后,确定当前计算的目标片段为第一目标片段,执行计算多个预设和弦与第一目标片段的匹配度的步骤:基于所述目标参数、及多个预设和弦与前序目标片段的匹配度,分别计算多个预设和弦与所述第一目标片段的匹配度,将排序在所述第一目标片段之后的下一目标片段,作为第一目标片段;其中,所述前序目标片段为在所述旋律片段中排序在所述第一目标片段之前的前一目标片段;重新执行计算多个预设和弦与第一目标片段的匹配度的步骤,直至完成多个预设和弦与所述各个目标片段的匹配度计算;自排序在所述旋律片段末位的目标片段向前回溯确定所述各个目标片段分别对应的目标和弦。
结合第一方面,在第一方面的第六种实施方式中,所述基于所述多个目标片段分别对应的目标和弦生成与所述旋律片段搭配的和声片段,包括:确定所述旋律片段中一小节被划分成至少两个及以上的目标片段;在构成所述旋律片段一小节的至少两个及以上的目标片段分别对应的目标和弦中,将相同且相邻的目标和弦的时值进行合并;基于合并时值后的目标和弦生成与所述旋律片段搭配的和声片段。
本申请第二方面,提供了一种搭配和声的装置,包括:划分模块,用于基于旋律片段的节拍将所述旋律片段划分成多个目标片段;匹配模块,用于基于各个目标片段的音符序列分别计算多个预设和弦与所述各个目标片段的匹配度,并针对每个目标片段,将所述匹配度最高的预设和弦作为相应目标片段的目标和弦;生成模块,用于基于所述多个目标片段分别对应的目标和弦生成与所述旋律片段搭配的和声片段。
结合第二方面,在第二方面的第一种实施方式中,所述划分模块包括:确定单元,用于基于旋律片段的节拍确定可变参数;其中,所述可变参数为预设值或用户基于所述旋律片段的节拍设定的和弦密度;划分单元,用于基于所述可变参数将所述旋律片段划分成多个目标片段。
结合第二方面,在第二方面的第二种实施方式中,所述匹配模块包括:确定单元,用于基于各个目标片段的音符序列与多个预设和弦确定目标参数;匹配单元,用于采用隐马尔可夫模型基于所述目标参数分别计算多个预设和弦与所述各个目标片段的匹配度,获得所述各个目标片段分别对应的目标和弦,所述目标和弦为与相应目标片段匹配度最高的预设和弦。
结合第二方面的第二种实施方式,在第二方面的第三种实施中,所述确定单元包括:第一子单元,用于基于各个目标片段的音符序列确定多个预设和弦与所述各个目标片段的搭配概率;第二子单元,用于基于所述旋律片段中的多个调号与每个预设和弦的音程关系确定多个预设和弦在各个调号中的概率分布;第三子单元,用于基于预设变化概率计算多个预设和弦与各个调号组合的状态转移概率;其中,所述预设变化概率包括调号变化概率和预设和弦变化概率;其中,所述预设变化概率包括调号变化概率和预设和弦变化概率;第四子单元,用于基于所述各个目标片段的音符序列、搭配概率、概率分布及状态转移概率生成目标参数。
结合第二方面的第三种实施方式,在第二方面的第四种实施方式中,所述第一子单元,还用于基于各个目标片段的音符序列确定各个音名在所述各个目标片段中的时长向量;基于所述时长向量确定多个预设和弦与所述各个目标片段的搭配概率。
结合第二方面的第二种实施方式,在第二方面的第五种实施方式中,所述匹配单元包括:第一匹配子单元,用于基于所述目标参数分别计算多个预设和弦与排序在所述旋律片段首位的目标片段的匹配度;第二匹配子单元,用于若当前计算的目标片段排序在所述旋律片段的首位之后,确定当前计算的目标片段为第一目标片段,执行计算多个预设和弦与第一目标片段的匹配度的步骤:基于所述目标参数、及多个预设和弦与前序目标片段的匹配度,分别计算多个预设和弦与所述第一目标片段的匹配度,将排序在所述第一目标片段之后的下一目标片段,作为第一目标片段;其中,所述前序目标片段为在所述旋律片段中排序在所述第一目标片段之前的前一目标片段;第三匹配子单元,用于重新执行计算多个预设和弦与第一目标片段的匹配度的步骤,直至完成多个预设和弦与所述各个目标片段的匹配度计算;回溯子单元,用于自排序在所述旋律片段末位的目标片段向前回溯确定所述各个目标片段分别对应的目标和弦。
结合第二方面,在第二方面的第六种实施方式中,所述生成模块,包括:目标确定单元,用于确定所述旋律片段中一小节被划分成至少两个及以上的目标片段;合并单元,用于在构成所述旋律片段一小节的至少两个及以上的目标片段分别对应的目标和弦中,将相同且相邻的目标和弦的时值进行合并;生成单元,用于基于合并时值后的目标和弦生成与所述旋律片段搭配的和声片段。
本申请第三方面,提供了一种电子设备,所述电子设备包括:存储器和处理器;存储器中存储有计算机程序;处理器,用于在运行计算机程序时执行第一方面及其实施方式的方法。
本申请第四方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面及其实施方式的方法。
本申请提供的技术方案带来的有益效果是:
本申请基于旋律片段的节拍对旋律片段进行划分,其划分成的多个目标片段中相邻的目标片段具有密切的关联性;由于相邻的目标片段关联性强,其使得相邻的音符序列也具有较强的关联性;在基于各个目标片段的音符序列计算多个预设和弦与各个目标片段的匹配度,并以匹配度最高的预设和弦作为相应目标片段的目标和弦时,有利于充分考虑相邻目标片段所搭配和弦间所有音符的信息,且相邻目标片段对应的相邻目标和弦关联性强,基于多个目标片段分别对应的目标和弦生成和声片段有利于提高基于旋律片段搭配和声片段的准确性,以及和声片段整体演奏效果的平滑度。
附图说明
结合附图并参考以下具体实施方式,本申请各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本申请实施例提供的搭配和声的方法的流程图;
图2为本申请实施例提供的搭配和声的方法的流程图;
图3为本申请实施例提供的搭配和声的方法的流程图;
图4为本申请实施例提供的搭配和声的方法的流程图;
图5为本申请实施例提供的搭配和声的方法的流程图;
图6为本申请实施例提供的搭配和声的方法的流程图;
图7为本申请实施例提供的搭配和声的方法的流程图;
图8为本申请实施例提供的搭配和声的方法中生成和声片段的示意图;
图9为本申请实施例提供的一种搭配和声的装置的结构示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请中提及的“第一”、“第二”等概念仅用于对装置、模块或单元进行区分,并非用于限定这些装置、模块或单元一定为不同的装置、模块或单元,也并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本申请实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
旋律片段:旋律是音乐的首要要素,通常指若干乐音经过艺术构思而形成的有组织、节奏的序列。旋律片段可以是序列中的某一部分,也可以是完整的序列。
节拍:节拍是衡量节奏的单位,在音乐中,有一定强弱分别的一系列拍子在每隔一定时间重复出现。如2/4、4/4、3/4拍等。节拍在乐曲中表示固定单位时值和强弱规律的组织形式。
音符序列:音符是用来记录不同长短的音的进行符号。全音符、二分音符、四分音符、八分音符、十六分音符是最常见的音符。音符序列是指由多个音符组成的序列,其具体包括音符信息及各个音名的排序,其中音符信息包括音符出现的时长。
和弦:和弦是指有一定音程关系的一组声音,即将三个或以上的音,按照三度或非三度的叠置关系,在纵向上加以结合,就称为和弦。
和声片段:和声是指两个或两个以上不同的音按一定的法则同时发声而构成的音响组合。它包含和弦与和声进行,其中和弦是和声的基本素材,由3个或3个以上不同的音,根据三度叠置或其他方法同时结合构成,这是和声的纵向结构;和声进行是指各和弦的先后连接,这是和声的横向结构。和声片段是指由多个和弦先后连接形成的序列,其长度一般与旋律片段相同。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
请参照图1,本申请提供了一种搭配和声的方法,该方法具体可以由本申请实施例的电子设备执行,本申请包括:
s101基于旋律片段的节拍将所述旋律片段划分成多个目标片段;
s102基于各个目标片段的音符序列分别计算多个预设和弦与所述各个目标片段的匹配度,并针对每个目标片段,将所述匹配度最高的和弦作为相应目标片段的目标和弦;
s103基于所述多个目标片段分别对应的目标和弦生成与所述旋律片段搭配的和声片段。
在步骤s101基于旋律片段的节拍将所述旋律片段划分成多个目标片段中,具体地,旋律片段可以由用户从本地获取输入或从第三方应用程序获取后输入,或由用户在现有存储的多个旋律片段中指定;获取到的旋律片段为midi文件,midi文件属于二进制文件,将旋律片段的每个音符记录为一个数字。同一段旋律片段中节拍是固定的,如4/4拍,基于旋律片段的节拍对旋律片段进行划分可以是每小节划分为一个目标片段,也可以是每小节划分为多个目标片段,还可以是多个小节划分为一个目标片段;一个旋律片段至少被划分成一个目标片段。
需要强调的是,为进一步保证上述旋律片段的私密和安全性,上述旋律片段还可以存储于一区块链的节点中。
在步骤s102基于各个目标片段的音符序列分别计算多个预设和弦与所述各个目标片段的匹配度,并针对每个目标片段,将所述匹配度最高的和弦作为相应目标片段的目标和弦中,具体地,音符序列由目标片段中的音符按照演奏顺序排列而成;预设和弦至少包括两个,其可根据实际搭配需求调整预设和弦;不同的预设和弦与目标片段搭配将产生不同的演奏效果,在本实施例中,预设和弦与目标片段的匹配度基于音符序列计算,具体地与音符对应的音名相关,且将多个预设和弦与各个目标片段搭配所得的匹配度最高的预设和弦作为相应目标片段对应的目标和弦,一个目标片段对应一个目标和弦。其中,本实施例通过隐马尔可夫模型结合维特比算法(hmm维特比算法)计算多个预设和弦与各个目标片段的匹配度,针对每个目标片段,将所述匹配度最高的预设和弦作为相应目标片段的目标和弦具体为根据hmm维特比算法从排序在旋律片段末位的目标片段向前回溯,得到具有最大概率的和弦序列(由各个目标片段分别对应的目标和弦构成),即隐含状态序列。
在步骤s103基于所述多个目标片段分别对应的目标和弦生成与所述旋律片段搭配的和声片段中,具体地,和声片段用于在旋律片段演奏时加入,以丰富音乐整体的演奏效果;和声片段由多个目标和弦先后连接构成(和声进行),其中由于各个目标和弦对应于旋律片段的节拍,其基于多个目标和弦生成的和声片段与旋律片段的节拍相同。具体地,各个目标和弦基于相应的目标片段在旋律片段中的演奏顺序进行排序,一个目标片段对应一个目标和弦,生成与旋律片段演奏形式相同的和声片段。
本申请实施例基于旋律片段的节拍对旋律片段进行划分,其划分成的多个目标片段中相邻的目标片段具有密切的关联性;由于相邻的目标片段关联性强,其使得相邻的音符序列也具有较强的关联性;在基于各个目标片段的音符序列计算多个预设和弦与各个目标片段的匹配度,并以匹配度最高的预设和弦作为相应目标片段的目标和弦时,有利于充分考虑相邻目标片段所搭配和弦间所有音符的信息,且相邻目标片段对应的相邻目标和弦关联性强,基于多个目标片段分别对应的目标和弦生成和声片段有利于提高旋律片段搭配和声片段的准确性,以及和声片段整体演奏效果的平滑度。
在一实施例中,请参照图2,步骤s101基于旋律片段的节拍将所述旋律片段划分成多个目标片段,包括:
s201基于旋律片段的节拍确定可变参数;其中,所述可变参数为预设值或用户基于所述旋律片段的节拍设定的和弦密度;
s202基于所述可变参数将所述旋律片段划分成多个目标片段。
具体地,可变参数(chords_per_bar)为旋律片段每小节可搭配和弦的参数,如一小节4/4拍的目标片段,其音符总长度为4拍,最大可搭配和弦数为4;当可变参数为预设值时,可变参数可设定为1,即假设旋律片段的节拍为4/4拍,可变参数为可搭配和弦数的最小值,则以4拍为一个单元对旋律片段进行划分形成多个音符总长度为4拍的目标片段;当可变参数为预设值时,可变参数还可设定为可搭配和弦数值区间的随机值,如4/4拍的旋律片段,可搭配和弦数值区间为[1-4],若随机值为2,则以2拍为一个单元对旋律片段进行划分形成多个音符总长度为2拍的目标片段。和弦密度是指一个目标片段中搭配的和弦数目,如一个4/4拍的目标片段,和弦密度包括1、2、3、和4,当和弦密度为1时,一个目标片段搭配一种和弦。当可变参数为用户基于旋律片段的节拍设定的和弦密度时,首先确定旋律片段的节拍,假设为4/4拍,用户设定和弦密度为2,则将以每小节划分为2段为单位,对旋律片段进行划分形成多个音符长度为2拍的目标片段。
在一实施例中,步骤s101基于旋律片段的节拍将旋律片段划分为多个目标片段,还包括:
基于旋律片段的节拍确定每小节中各音符的音符时值;
基于音符时值将旋律片段划分成多个目标片段。
具体地,一个全音符的音符时值为1,一个二分音符的音符时值为1/2,如此类推。在4/4拍的一小节旋律片段中,若包括全音符则最多可搭配一种和弦;若包括两个二分音符则最多可搭配两种和弦。
在本实施例中,对旋律片段进行划分的标准为可变参数,该可变参数可由用户基于旋律片段的节拍设定(在搭配和声的模型中,提供接口供用户设定可变参数),在搭配和声的过程中,用户可基于实际需要调整可变参数(和弦密度),如在用户对旋律片段不熟悉时,将可变参数调低,使得所搭配的和弦较少,降低演奏难度。进一步地,本实施例根据可变参数对旋律片段进行划分形成多个目标片段,有利于丰富所搭配和弦的数量,加强相邻目标片段所搭配和弦的关联性;进一步地,当可变参数为用户设定的和弦密度时,基于用户需求的不同,将旋律片段划分成多个目标片段所相应需要搭配的和弦数量及和弦种类不同,有利于加强人机互动的紧密性,提高用户的体验。
在一实施例中,请参照图3,步骤s102基于各个目标片段的音符序列分别计算多个预设和弦与所述各个目标片段的匹配度,并针对每个目标片段,将所述匹配度最高的预设和弦作为相应目标片段的目标和弦,包括:
s301基于各个目标片段的音符序列与多个预设和弦确定目标参数;
s302采用隐马尔可夫模型基于所述目标参数分别计算多个预设和弦与所述各个目标片段的匹配度,获得所述各个目标片段分别对应的目标和弦,所述目标和弦为与相应目标片段匹配度最高的预设和弦。
具体地,通过隐马尔可夫模型(hiddenmarkovmodel,hmm)结合维特比算法(viterbi算法),构建多选择多步骤的模型解决最优选择的问题,按序计算多个预设和弦与各个目标片段搭配的匹配度(对数似然值)。在本实施例中所涉及的音名(pitches_name_class)包括:c,#c,d,#d,e,f,#f,g,#g,a,#a,b;预设和弦(chords)包括多种和弦种类,在本实施例中和弦种类包括:大三和弦major,小三和弦minor,增三和弦augmented,减三和弦diminished,大七和弦major7,小七和弦minor7,属七和弦dominant7,半减三和弦half-diminished。由于存在某些音符组成可能不对应任何和弦的情况,在预设和弦中增加一个nochord表征无和弦搭配;通过各个音名与多个预设和弦的搭配,共有97(12*8+1)种和弦候选的可能性,即共有97种和弦候选项。具体地,各个音名出现的概率是1/12;预设和弦在对应某一个音名时,各个预设和弦出现的概率是1/9。以上音名与预设和弦可基于实际情况调整。
其中,目标参数为隐马尔可夫模型的计算参数,由各个目标片段的音符序列及多个预设和弦确定。目标片段的音符序列包括音符信息及各音名在目标片段中的排序,音符信息包括各音名在相应目标片段中出现的时长。在本实施例中,基于各个目标片段的音符序列与多个预设和弦共同确定一份目标参数。
其中,隐马尔可夫模型基于目标参数通过维特比算法可推断出多个预设和弦与各个目标片段的匹配度,并获得各个目标片段分别相应的目标和弦,将多个目标和弦按序排列输出目标和弦序列。其中目标和弦为与相应目标片段匹配度最高的预设和弦。
在一实施例中,请参照图4,步骤s301基于各个目标片段的音符序列与多个预设和弦确定目标参数,包括:
s401基于各个目标片段的音符序列确定多个预设和弦与所述各个目标片段的搭配概率;
s402基于所述旋律片段中的多个调号与每个预设和弦的音程关系确定多个预设和弦在各个调号中的概率分布;
s403基于预设变化概率计算多个预设和弦与各个调号组合的状态转移概率;其中,所述预设变化概率包括调号变化概率和预设和弦变化概率;
s404基于所述各个目标片段的音符序列、搭配概率、概率分布以及状态转移概率生成目标参数。
在步骤s401基于各个目标片段的音符序列确定多个预设和弦与所述各个目标片段的搭配概率中,具体地,根据各个目标片段的音符序列,确定97种和弦候选项在相应目标片段中的概率。其中,音符序列包括音符信息。
在步骤s402基于所述旋律片段中的多个调号与每个预设和弦的音程关系确定多个预设和弦在各个调号中的概率分布中,具体地,音程是指两个音级在音高上的相互关系,也即两个音在音高上的距离,其单位名称叫做度。各个调号与旋律片段中涉及的各个音名相应。根据不同调号key下大调音阶的音程关系与每个预设和弦组成的音程关系,计算每个预设和弦组成音在调内和调外的情况,得到各个调号下各预设和弦的概率分布(key_chord_distribution)。其中,音调外音可以认为对于某个调号key来说,预设和弦的组成音存在不是这个key下的自然音的预设和弦都称为这个调的调外和弦。如c大调中,d大三和弦d#fa为调外,d小三和弦dfa为调内。基于上述背景,本实施例中调号包括多个,如c调,d调,e调等,虽然对应同一旋律片段,但是在搭配和弦时可通过移调变换旋律片段在搭配和声片段时的整体风格,因此,需要考虑不同调号下与多个预设和弦搭配的概率分布。当调号为c大调时,若预设和弦仅包括dmajor和dminor,则c大调下50%为调内的概率分布,50%为调外的概率分布;对此,在一实施例中,还可根据小调性、多调性的情况,以及调外和弦与旋律搭配所起的伴奏效果计算各个调号下多个预设和弦的概率分布。
在步骤s403基于预设变化概率计算多个预设和弦与各个调号组合的状态转移概率;其中,所述预设变化概率包括调号变化概率和预设和弦变化概率中,具体地,各个音名对应的调号包括c,#c,d,#d,e,f,#f,g,#g,a,#a,b。在一实施例中,音名可包括所有乐理知识中的音名。其中,一个调号与多个预设和弦组合的数量由多个预设和弦的数量确定,某一个调号与某一个预设和弦的组合表征为调号与预设和弦组合,在本实施例所涉及的多个音名与多个预设和弦下,调号与预设和弦组合(key-chord)共有1164(97*12)个。状态转移概率表征各个调号与多个预设和弦转换的概率,如在c大调下,预设和弦从1、3、5转换为#1、3、#5的概率。在hmm维特比算法求解方法中,具体表征为所有调号与预设和弦组合的状态转移概率相应的矩阵。具体地,预设的变化概率包括调号变化概率为0.001,key_change_prob(=0.001)及预设和弦变化概率为0.5,chord_change_prob(=0.5)。预设的变化概率经多次测试与本实施例涉及的多个音名与多个预设和弦匹配,在实际情况下,可适应调整。通过下述公式(1)和(2)可计算出各个调号与多个预设和弦组合的状态转换概率。
在公式(1)中,γ为预设和弦chord变化的概率,ρ为调号key变化的概率,f(ht)为根据预设和弦与调号组合概率key_chord_distribution得到的在某个调号key下的多个预设和弦音高的二项分布,初始化设定γ=0.5,
在步骤s404基于所述各个目标片段的音符序列、搭配概率、概率分布及状态转移概率生成目标参数中,具体地,基于各个目标片段的音符序列确定可见状态序列;如4/4拍的目标片段a|4352|的音符序列为4-3-5-2,目标片段b|1467|的音符序列为1-4-6-7,则构成可见状态序列为4-3-5-2-1-4-6-7。在hmm维特比算法中,可见状态序列处于已知的观察状态,可见状态序列对应于旋律片段中的音符排序。具体地,将可观察旋律片段得出的可见状态序列、多个预设和弦与各个目标片段的搭配概率、多个预设和弦在各个调号中的概率分布、以及多个预设和弦与各个调号组合的状态转移概率生成目标参数,生成目标参数的过程为隐马尔可夫模型的训练过程。
在一实施例中,请参照图5,步骤s401基于各个目标片段的音符序列确定多个预设和弦与所述各个目标片段的搭配概率,包括:
s501基于各个目标片段的音符序列确定各个音名在所述各个目标片段中的时长向量;
s502基于所述时长向量确定多个预设和弦与所述各个目标片段的搭配概率。
在步骤s501基于各个目标片段的音符序列确定各个音名在所述各个目标片段中的时长向量中,具体地,音符序列中包括确定各个音名在各个目标片段中出现的时长信息,可基于时长信息确定时长向量,时长向量表征各个音名对应在各个目标片段中音进行的长短及方向。在一实施例中,确定各个音名在各个目标片段中出现的时长向量(note_pitch_vector),如4/4拍目标片段a:|5-23|,则g在目标片段a中出现时长为2拍,d在目标片段a中出现时长为1拍,e在目标片段a中出现时长为1拍;基于该时长信息可确定出相应的时长向量;其中,出现时长与时值相关。
在步骤s502基于所述时长向量确定多个预设和弦与所述各个目标片段的搭配概率中,具体地,假设4/4拍目标片段a:|5-23|中g在目标片段a中出现时长为2拍,d在目标片段a中出现时长为1拍,e在目标片段a中出现时长为1拍。则可根据该目标片段a的音符组成情况确定97种和弦候选项在目标片段a中的概率,即包含音名g、d、e的和弦更有可能被认为是目标片段a的和弦搭配。其中,假设多个预设和弦包括dfa、ceg、cbeg、bdf,则在目标片段a中,预设和弦dfa的搭配概率为0.5、ceg的搭配概率为0.75、cbeg的搭配概率为0.75、bdf的搭配概率为0.25。通过该步骤的实施可以知悉各个和弦候选项(共97种)与各个目标片段搭配的概率(chord_frame_loglike)。
在一实施中,请参照图6,步骤s302基于所述目标参数分别计算多个预设和弦与所述各个目标片段的匹配度,获得所述各个目标片段分别对应的目标和弦,包括:
s601基于所述目标参数分别计算多个预设和弦与排序在所述旋律片段首位的目标片段的匹配度;
s602若当前计算的目标片段排序在所述旋律片段的首位之后,确定当前计算的目标片段为第一目标片段,执行计算多个预设和弦与第一目标片段的匹配度的步骤:基于所述目标参数、及多个预设和弦与前序目标片段的匹配度,分别计算多个预设和弦与所述第一目标片段的匹配度,将排序在所述第一目标片段之后的下一目标片段,作为第一目标片段;其中,所述前序目标片段为在所述旋律片段中排序在所述第一目标片段之前的前一目标片段;
s603重新执行计算多个预设和弦与第一目标片段的匹配度的步骤,直至完成多个预设和弦与所述各个目标片段的匹配度计算;
s604自排序在所述旋律片段末位的目标片段向前回溯确定所述各个目标片段分别对应的目标和弦。
具体地,结合目标参数根据维特比算法,针对各个目标片段在旋律片段中的排序,按序计算多个预设和弦与每个目标片段的匹配度,获得所述各个目标片段分别对应的目标和弦,目标和弦为与相应目标片段匹配度最高的预设和弦,其具体为隐马尔可夫模型的预测过程。
在步骤s601基于所述目标参数分别计算多个预设和弦与排序在所述旋律片段首位的目标片段的匹配度中,具体地,匹配度的计算自排序在旋律片段首位的目标片段开始,结合目标参数分别计算多个预设和弦与该目标片段的匹配度。
在步骤s602若当前计算的目标片段排序在所述旋律片段的首位之后,确定当前计算的目标片段为第一目标片段,执行计算多个预设和弦与第一目标片段的匹配度的步骤:基于所述目标参数、及多个预设和弦与前序目标片段的匹配度,分别计算多个预设和弦与所述第一目标片段的匹配度,将排序在所述第一目标片段之后的下一目标片段,作为第一目标片段;其中,所述前序目标片段为在所述旋律片段中排序在所述第一目标片段之前的前一目标片段中,具体地,匹配度的计算在进行到排序在旋律片段的首位之后时,结合目标片段、及多个预设和弦与前序目标片段的匹配度,分别计算多个预设和弦与排序在旋律片段的首位之后的目标片段的匹配度。
在步骤s603重新执行计算多个预设和弦与第一目标片段的匹配度的步骤,直至完成多个预设和弦与所述各个目标片段的匹配度计算中,具体地,在匹配度的计算过程中,按序获取排序在旋律片段首位之后的各个目标片段,结合目标片段、及多个预设和弦与前序目标片段的匹配度,分别计算多个预设和弦与排序在旋律片段首位之后的各个目标片段的匹配度。
基于步骤s601、s602、s603、s604,举例说明,例1:旋律片段被划分为4个目标片段,基于在旋律片段中的排序位置,4个目标片段构成的序列为:d1-d2-d3-d4;在匹配度的计算步骤中,第一步,获取目标片段d1,结合目标参数分别计算多个预设和弦与目标片段d1的匹配度;第二步,获取目标片段d2,结合目标参数、及多个预设和弦与目标片段d1的匹配度,分别计算多个预设和弦与目标片段d2的匹配度;第三步,获取目标片段d3,结合目标参数、及多个预设和弦与目标片段d2的匹配度,分别计算多个预设和弦与目标片段d3的匹配度;第四步,获取目标片段d4,结合目标参数、及多个预设和弦与目标片段d3的匹配度,分别计算多个预设和弦与目标片段d4的匹配度;自此,完成多个预设和弦与4个目标片段的匹配度计算。在回溯的步骤中,第一步,获取目标片段d4,确定目标片段d4的目标和弦h4;第二步,获取目标片段d3,确定目标片段d3的目标和弦h3;第三步,获取目标片段d2,确定目标片段d2的目标和弦h2,;第四步,获取目标片段d1,确定目标片段d1的目标和弦h1;自此,完成回溯的步骤,在完成回溯步骤后,基于目标和弦h1、h2、h3和h4的排序可构成目标和弦序列。从以上例子可见,在本实施例中,针对多个预设和弦与每个目标片段的匹配度计算中,所得匹配度并非仅针对单一的目标片段得出,其综合考虑了多个预设和弦与前序目标片段的匹配度,且和排序在旋律片段其他位置的目标片段与多个预设和弦的匹配度无关,由此提高了相邻片段间所搭配目标和弦的关联性,也提高了由多个目标片段分别对应的目标和弦生成的和声片段整体的演奏平滑度。
具体地,在模型基于目标参数进行匹配度计算时,多个预设和弦与各个目标片段的匹配度为各个目标片段在所有调号与预设和弦组合(即1164种组合)下的多个对数似然值(log-likelihood),对数似然值通过维特比算法基于目标参数计算。当按照旋律片段划分的顺序拼接多个目标片段时,对于排序在旋律片段首位的目标片段与多个预设和弦匹配度的计算得到该目标片段在所有调号与预设和弦组合下的多个对数似然值;排序在旋律片段首位之后的各个目标片段根据调号与预设和弦组合的状态转移概率的矩阵,并结合前序目标片段的相关信息(多个预设和弦与前序目标片段的匹配度),分别计算得到排序在旋律片段首位之后的各个目标片段在所有调号与预设和弦组合下的多个对数似然值,最终模型相应于每一个目标片段将存储有多个对数似然值相应的调号与预设和弦组合的矩阵(path_matrix),即存储有各个目标片段与多个预设和弦的匹配度,以及相应的调号与预设和弦组合;即通过hmm维特比算法在计算每一个目标片段与所有预设和弦的搭配匹配度中均保存了各个前序目标片段到当前计算的一个目标片段与当前一个预设和弦搭配的匹配度(对数似然值),以及在当前计算的一个目标片段与当前一个预设和弦搭配的匹配度最高的情况下,各个前序目标片段分别相应的匹配度最高的预设和弦。进一步地,模型通过从排序在旋律片段末位的目标片段向前回溯,确定出各个目标片段分别对应的目标和弦,并输出由多个目标和弦构成的目标和弦序列;其中,目标和弦为与相应目标片段匹配度最高的预设和弦。
在本实施例中,通过使用hmm维特比算法,在已知可观察的可见状态序列(旋律片段)与状态转移概率,推断出隐含状态序列(目标和弦序列);具体地,包括以下5个步骤:
(1)将旋律片段进行划分形成多个目标片段后,对各个目标片段(frame)的音符信息进行统计,得到包含各个音名在各个目标片段中出现的时长向量(note_pitch_vector);
(2)根据时长向量,确定多个预设和弦对应各个音名定义下的各种和弦候选项与各个目标片段搭配的搭配概率(chord_frame_loglike)。
(3)根据不同调号key下大调音阶的音程关系与每个预设和弦组成的音程关系,计算每个预设和弦组成在调内和调外的情况,得到每个调号下各个预设和弦的概率分布。
(4)基于预设变化概率,根据上述公式(1)计算各个调号与多个预设和弦组合的状态转移概率。
采用隐马尔可夫模型基于可见状态序列、搭配概率、概率分布与状态转移概率通过维特比算法计算各个目标片段与多个预设和弦搭配的匹配度,针对每个目标片段,将匹配度最高的预设和弦作为相应目标片段的目标和弦,获得由各个目标和弦构成的与旋律片段搭配具有最大概率的目标和弦序列(由多个目标和弦依次排序构成)。具体地,基于所述目标参数分别计算多个预设和弦与排序在所述旋律片段首位的目标片段的匹配度;若当前计算的目标片段排序在所述旋律片段的首位之后,确定当前计算的目标片段为第一目标片段,执行计算多个预设和弦与第一目标片段的匹配度的步骤:基于所述目标参数、及多个预设和弦与前序目标片段的匹配度,分别计算多个预设和弦与所述第一目标片段的匹配度,将排序在所述第一目标片段之后的下一目标片段,作为第一目标片段;其中,所述前序目标片段为在所述旋律片段中排序在所述第一目标片段之前的前一目标片段(即排序在第一目标片段前一位的目标片段);重新执行计算多个预设和弦与第一目标片段的匹配度的步骤,直至完成多个预设和弦与所述各个目标片段的匹配度计算;在匹配度计算过程中,模型存储有各个目标片段中匹配度最高的调号与预设和弦组合的矩阵(path_matrix);并自排序在旋律片段末位的目标片段向前回溯,获得匹配度最高的路径(旋律片段整体对应的匹配度最高的目标和弦序列)。
在一实施例中,步骤s302获得所述各个目标片段分别对应的目标和弦,包括:
遍历各个目标片段,将音符序列相同的目标片段添加相同标识;
从排序最后的目标片段向前回溯将所述匹配度最高的和弦作为目标和弦,若当前回溯目标片段与已回溯目标片段具有相同标识,则将已回溯目标片段对应的目标和弦作为当前回溯目标片段的目标和弦。
具体地,本实施例通过遍历各个目标片段,将音符序列相同的目标片段添加相同标识,在后期模型回溯确定各个目标片段分别对应的目标和弦时,若当前回溯目标片段与已回溯目标片段具有相同标识,则将已回溯目标片段对应的目标和弦作为当前回溯目标片段的目标和弦,减少回溯的计算量,有效提高模型的效率。
在一实施例中,请参照图7,步骤s103基于所述多个目标片段分别对应的目标和弦生成与所述旋律片段搭配的和声片段,包括:
s701确定所述旋律片段中一小节被划分成至少两个及以上的目标片段;
s702在构成所述旋律片段一小节的至少两个及以上的目标片段分别对应的目标和弦中,将相同且相邻的目标和弦的时值进行合并;
s703基于合并时值后的目标和弦生成与所述旋律片段搭配的和声片段。
在步骤s701确定所述旋律片段中一小节被划分成至少两个以上的目标片段中,具体地,在对旋律片段进行划分时不一定将一小节划分为一个目标片段,有可能将一小节划分为两个及以上的目标片段;由于一个目标片段对应一个目标和弦,此时当将旋律片段的一小节划分为两个及以上的目标片段时,每小节将包括两个及以上的目标和弦。
在步骤s702在构成所述旋律片段一小节的至少两个及以上的目标片段分别对应的目标和弦中,将相同且相邻的目标和弦的时值进行合并中,具体地,若旋律片段的一小节包括两个及以上的目标和弦中,存在相同且相邻的目标和弦则将两者的时值进行合并,合并后剩余排序在前的一个目标和弦;当将旋律片段的一小节划分为四个目标片段时,每小节包括的四个目标片段对应四个目标和弦,若该四个目标和弦两两相同且相邻则将其时值进行合并,如:一小节中包括四个相同的目标和弦,则将四个相同的目标和弦进行时值合并,合并时值后剩余排序在前的一个目标和弦;本实施例的实施有利于减少每小节对应的目标和弦数量,提高由合并时值后的目标和弦生成的和声片段演奏的平滑性。
在步骤s703基于合并时值后的目标和弦生成与所述旋律片段搭配的和声片段中,具体地,进行时值合并后的目标和弦仍对应于目标片段在旋律片段中的排序位置,形成合并时值后的目标和弦序列,将该合并时值后的目标和弦序列相应旋律片段的演奏形式生成和声片段,如基于旋律片段的节拍,将合并时值后的目标和弦序列生成相应的和声片段。
在本实施例中,若旋律片段每小节仅有一个目标片段,则无需进行对目标和弦的时值合并;或旋律片段每小节包括两个及以上的目标片段,但该两个及以上的目标片段分别对应的目标和弦不相同或不相邻,则无需进行对目标和弦的时值合并。
通过上述实施例提供的方法,在一种搭配和声的系统中,当获取到用户输入的旋律片段后,基于上述搭配和声的方法可获得与旋律片段相应的和声片段,则在编辑文件的轨道上,对应输入旋律片段的轨道加入和声片段的轨道,如图8所示,得到基于旋律搭配和声的结果文件,进而输出给用户使用。
请参照图9,本申请实施例提供的一种搭配和声的装置的结构示意图,本申请实施例的搭配和声的装置900可以包括:
划分模块901,用于基于旋律片段的节拍将所述旋律片段划分成多个目标片段;
匹配模块902,用于基于各个目标片段的音符序列分别计算多个预设和弦与所述各个目标片段的匹配度,并针对每个目标片段,将所述匹配度最高的预设和弦作为相应目标片段的目标和弦;
生成模块903,用于基于所述多个目标片段分别对应的目标和弦生成与所述旋律片段搭配的和声片段。
在一实施例中,所述划分模块901包括:确定单元,用于基于旋律片段的节拍确定可变参数;其中,所述可变参数为预设值或用户基于所述旋律片段的节拍设定的和弦密度;划分单元,用于基于所述可变参数将所述旋律片段划分成多个目标片段。
在一实施例中,所述匹配模块包括:确定单元,用于基于各个目标片段的音符序列与多个预设和弦确定目标参数;匹配单元,用于采用隐马尔可夫模型基于所述目标参数分别计算多个预设和弦与所述各个目标片段的匹配度,获得所述各个目标片段分别对应的目标和弦,所述目标和弦为与相应目标片段匹配度最高的预设和弦。
在一实施例中,所述确定单元包括:第一子单元,用于基于各个目标片段的音符序列确定多个预设和弦与所述各个目标片段的搭配概率;第二子单元,用于基于所述旋律片段中的多个调号与每个预设和弦的音程关系确定多个预设和弦在各个调号中的概率分布;第三子单元,用于基于预设变化概率计算多个预设和弦与各个调号组合的状态转移概率;其中,所述预设变化概率包括调号变化概率和预设和弦变化概率;第四子单元,用于基于所述各个目标片段的音符序列、搭配概率、概率分布及状态转移概率生成目标参数。
在一实施例中,所述第一子单元,还用于基于各个目标片段的音符序列确定各个音名在所述各个目标片段中的时长向量;基于所述时长向量确定多个预设和弦与所述各个目标片段的搭配概率。
在一实施例中,所述匹配单元包括:第一匹配子单元,用于基于所述目标参数分别计算多个预设和弦与排序在所述旋律片段首位的目标片段的匹配度;第二匹配子单元,用于若当前计算的目标片段排序在所述旋律片段的首位之后,确定当前计算的目标片段为第一目标片段,执行计算多个预设和弦与第一目标片段的匹配度的步骤:基于所述目标参数、及多个预设和弦与前序目标片段的匹配度,分别计算多个预设和弦与所述第一目标片段的匹配度,将排序在所述第一目标片段之后的下一目标片段,作为第一目标片段;其中,所述前序目标片段为在所述旋律片段中排序在所述第一目标片段之前的前一目标片段;第三匹配子单元,用于重新执行计算多个预设和弦与第一目标片段的匹配度的步骤,直至完成多个预设和弦与所述各个目标片段的匹配度计算;回溯子单元,用于自排序在所述旋律片段末位的目标片段向前回溯确定所述各个目标片段分别对应的目标和弦。
在一实施例中,所述生成模块903,包括:目标确定单元,用于确定所述旋律片段中一小节被划分成至少两个及以上的目标片段;合并单元,用于在构成所述旋律片段一小节的至少两个及以上的目标片段分别对应的目标和弦中,将相同且相邻的目标和弦的时值进行合并;生成单元,用于基于合并时值后的目标和弦生成与所述旋律片段搭配的和声片段。
本申请实施例的搭配和声的装置可执行本申请的实施例所提供的一种搭配和声的方法,其实现原理相类似,本申请各实施例中的搭配和声的装置中的各模块所执行的动作是与本申请各实施例中的搭配和声的方法中的步骤相对应的,对于搭配和声的装置的各模块的详细功能描述具体可以参见前文中所示的对应的搭配和声的方法中的描述,此处不再赘述。
下面参考图10,其示出了适于用来实现本申请实施例的电子设备(例如移动终端)600的结构示意图。本申请实施例中的移动终端可以包括但不限于诸如计算机等的设备。图10示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
电子设备包括:存储器以及处理器,其中,这里的处理器可以称为下文的处理装置601,存储器可以包括下文中的只读存储器(rom)602、随机访问存储器(ram)603以及存储装置608中的至少一项,具体如下所示:
如图10所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储装置608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
通常,以下装置可以连接至i/o接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从rom602被安装。在该计算机程序被处理装置601执行时,执行本申请实施例的方法中限定的上述功能。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如http(hypertexttransferprotocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,adhoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行以下步骤:基于旋律片段的节拍将所述旋律片段划分成多个目标片段;基于各个目标片段的音符序列分别计算多个预设和弦与所述各个目标片段的匹配度,并针对每个目标片段,将所述匹配度最高的预设和弦作为相应目标片段的目标和弦;基于所述多个目标片段分别对应的目标和弦生成与所述旋律片段搭配的和声片段。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块或单元的名称在某种情况下并不构成对该单元本身的限定,例如,生成模块还可以被描述为“基于所述多个目标片段分别对应的目标和弦生成与所述旋律片段搭配的和声片段的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本申请的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除