音乐可视化方法、装置及计算机可读存储介质与流程

文档序号:14992371发布日期:2018-07-20 22:34阅读:195来源:国知局

本公开涉及可视化技术领域,尤其是一种音乐可视化方法、装置及计算机可读存储介质。



背景技术:

音乐自人类文明出现以来就出现在人类生活中,它是一种音乐表现形式,也是一种生活的表现形式。自古以来,人们通过演奏音乐来抒发自己内心的情感。这种情感是共识的,不分国界,且跨越文化差异。一首欢快的音乐,在任何一个国家和民族看来,通常都是欢快的。而一首悲怆的音乐,通常也不会让任何一个国家或民族觉得是令人愉悦的。所以,人们对音乐的感知形式是大同小异的。

颜色是一直存在的,人类的眼睛进化出了能分辨出可见光的颜色的能力,就能看到世界上五彩缤纷绚丽的画面。而图像即成了颜色的载体,成为一种表现形式。同样,自古以来,人们通过绘画等手段将内心的想法表达在图画上。这种形式不约而同地出现在各个民族文化中,人们对颜色的感知也是如此,一幅艳丽的图画,给人以温暖,而一幅阴暗的画面,往往让人不寒而栗。



技术实现要素:

本公开的一个目的是:提供一种音乐可视化方法,以便用户可以根据绘制的图案感受音乐所表达的情感。

根据本公开实施例的一方面,提供一种音乐可视化方法,包括:获取音乐片段每个部分的能量特征,所述音乐片段包括多个连续的部分,相邻部分的调性不同,所述能量特征表示每个部分中各音频帧的振幅的方均根;获取每个部分的速度特征,所述速度特征表示每个部分中单位时间内的节拍数;获取每个部分的混乱度特征,所述混乱度特征与每个部分中乐器种类的数量正相关;在所述音乐片段播放的过程中,根据每个部分的能量特征、速度特征和混乱度特征,自动绘制每个部分对应的图案。

在一些实施例中,所述方法还包括:根据每个部分的调性确定每个部分对应的图案的显示背景色。

在一些实施例中,所述方法还包括:获取所述音乐片段每个阶段的乐器类型,所述音乐片段包括多个连续的阶段,相邻阶段的乐器类型不同;在所述音乐片段播放的过程中,根据每个阶段的乐器类型,自动绘制每个阶段的乐器对应的图案。

在一些实施例中,所述获取音乐片段每个部分的能量特征包括:对所述音乐文件进行分帧处理,以得到多个音频帧,其中,每个音频帧的长度为第一预设时间,相邻音频帧之间的间隔为第二预设时间;计算每个部分中各音频帧的振幅的方均根,从而得到所述能量特征。

在一些实施例中,所述获取每个部分的混乱度特征包括:统计各音名在每部分出现的频率;根据如下公式确定每部分的混乱度特征e(x):其中,n为音名的个数,p(xi)为音名xi在每部分出现的频率。

根据本公开实施例的另一方面,提供一种音乐可视化装置,包括:能量特征获取模块,用于获取音乐片段每个部分的能量特征,所述音乐片段包括多个连续的部分,相邻部分的调性不同,所述能量特征表示每个部分中各音频帧的振幅的方均根;速度特征获取模块,用于获取每个部分的速度特征,所述速度特征表示每个部分中单位时间内的节拍数;混乱度特征获取模块,用于获取每个部分的混乱度特征,所述混乱度特征与每个部分中乐器种类的数量正相关;绘制模块,用于在所述音乐片段播放的过程中,根据每个部分的能量特征、速度特征和混乱度特征,自动绘制每个部分对应的图案。

在一些实施例中,所述装置还包括:背景色确定模块,用于根据每个部分的调性确定每个部分对应的图案的显示背景色。

在一些实施例中,所述装置还包括:乐器类型获取模块,用于获取所述音乐片段每个阶段的乐器类型,所述音乐片段包括多个连续的阶段,相邻阶段的乐器类型不同;绘制模块,用于在所述音乐片段播放的过程中,根据每个阶段的乐器类型,自动绘制每个阶段的乐器对应的图案。

在一些实施例中,所述能量特征获取模块包括:分帧处理单元,用于对所述音乐文件进行分帧处理,以得到多个音频帧,其中,每个音频帧的长度为第一预设时间,相邻音频帧之间的间隔为第二预设时间;第一计算单元,用于计算每个部分中各音频帧的振幅的方均根,从而得到所述能量特征。

在一些实施例中,所述混乱度特征获取模块包括:统计单元,用于统计各音名在每部分出现的频率;第二计算单元,用于根据如下公式计算每部分的混乱度特征e(x):其中,n为音名的个数,p(xi)为音名xi在每部分出现的频率。

根据本公开实施例的又一方面,提供一种音乐可视化系统,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行上述任意一个实施例所述的方法。

根据本公开实施例的再一方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任意一个实施例所述的方法。

本公开实施例中,在音乐片段播放的过程中,可以根据每个部分的能量特征、速度特征和混乱度特征来自动绘制每个部分对应的图案,从而使得用户在音乐片段播放的过程中可以同时看到音乐片段所对应的图案,以便感受音乐片段所表达的情感。

下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本公开一个实施例的音乐可视化方法的流程示意图;

图2是根据本公开另一个实施例的音乐可视化方法的流程示意图;

图3是根据本公开一个实施例的音乐可视化装置的结构示意图;

图4是根据本公开另一个实施例的音乐可视化装置的结构示意图;

图5是根据本公开又一个实施例的音乐可视化装置的结构示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1是根据本公开一个实施例的音乐可视化方法的流程示意图。

在步骤102,获取音乐片段每个部分的能量特征。

在一些实施例中,音乐片段例如可以是西方音乐片段。音乐片段可以包括多个连续的部分,例如,按照时间先后顺序排列的第一部分、第二部分、第三部分…。在音乐片段的多个部分中,相邻部分的调性不同。每个部分的能量特征表示每个部分中各音频帧的振幅的方均根。

下面介绍获取音乐片段每个部分的能量特征的一个具体实现方式。

首先,对音乐文件进行分帧处理,以得到多个音频帧。每个音频帧的长度为第一预设时间,相邻音频帧之间的间隔为第二预设时间。通过设置第二预设时间,可以使得最终得到的每个部分的能量特征更加准确。

以西方音乐为例,每16秒为一个乐句,一般一个乐句会有16个小节。也就是说,通常每一秒会演奏一个小节的内容。过短的帧长将不会包含任何有意义的内容,而过长的帧长将会影响识别精度。优选地,第一预设时间可以为约4秒左右,第二预设时间可以为约2秒左右。

然后,计算每个部分中各音频帧的振幅的方均根,从而得到能量特征。例如,可以根据下式计算能量特征xrms,其中,xi为各音频帧的振幅。

在步骤104,获取每个部分的速度特征。这里,速度特征用于表示每个部分中单位时间内的节拍数。

速度能够很好的体现情感。类似于我们的心跳一样,当人感到压力大的时候,如果是被压抑,速度往往是很慢的,心跳慢;如果是爆发出来,速度则通常是很快的,我们心跳也会加快;而当我们感受不到压力,心情平静的时候,速度是通常的均衡的速度。也就是说,当压力小时,速度趋向于中速;而当压力越来越大,速度就会趋向于极端。针对每个部分,可以获取每个部分的速度特征。

例如,可以基于音乐片段信号的自相关函数进行峰值检测,之后可以计算音乐片段的每个部分中单位时间内峰值的个数,即每个部分的速度特征。

在步骤106,获取每个部分的混乱度特征,也可以称为熵。这里,混乱度特征也可以称为熵,与每个部分中乐器种类的数量正相关。。

例如,交响乐演奏过程中需要很多个声部(即乐器),但不是每个声部都会同时发声。在音乐的开始阶段仅有个别声部演奏,而在音乐的高潮阶段,全部声部进入。由此可以看出,在音乐高潮阶段,混乱度增加。在一个音乐片段中,音乐高潮的进入与否和乐器种类、各音出现的频率正相关。

在一个实现方式中,可以统计各音名在每部分出现的频率,然后,根据如下公式确定每部分的混乱度特征e(x):

其中,n为音名的个数,p(xi)为音名xi在每部分出现的频率。

在步骤108,在音乐片段播放的过程中,根据每个部分的能量特征、速度特征和混乱度特征,自动绘制每个部分对应的图案。

在一些实施例中,每个部分的能量特征、速度特征和混乱度特征可以是xml(可扩展标记语言)文件。

每个部分的能量特征、速度特征和混乱度特征综合决定了每个部分所表达的情感。可以利用不同的图案来表达不同的情感,故可以针对每个部分设置相应可以表达该部分情感的图案。在音乐片段播放的过程中,可以通过时钟将绘制的图案与音乐播放同步。通过自动绘制并显示每个部分对应的图案可以使得用户,例如听力障碍者可以更好地理解音乐所表达的情感。

上述实施例中,在音乐片段播放的过程中,可以根据每个部分的能量特征、速度特征和混乱度特征来自动绘制每个部分对应的图案,从而使得用户在音乐片段播放的过程中可以同时看到音乐片段所对应的图案,以便感受音乐片段所表达的情感。

音乐是一种高维数据,音乐特征的提取是进行音乐可视化的基础。音乐除了有振幅、频率、相位等基本特征,还包括音高、音色、节奏、速度、音长、调性、和弦等高级特征。作为一个示例,可以采用基于matlab的音乐分析工具箱mirtoolbox来处理音乐的低层和高层信息,从而提取力度、节奏、音色、基频、音调五类基本特征,以及结构形态类、统计类、预测类、相似性特征等几类高级特征。

图2是根据本公开另一个实施例的音乐可视化方法的流程示意图。如图2所示,该实施例的方法包括步骤202-步骤212,其中,步骤202、步骤204、步骤206和步骤208可以参照图1所示的步骤102-步骤108的描述。下面重点介绍步骤210和步骤212的实现。

在步骤202,获取音乐片段每个阶段的乐器类型。这里,音乐片段可以包括多个连续的阶段,相邻阶段的乐器类型不同。

应理解,相邻阶段的乐器类型中只要有一个不同即视为相邻阶段的乐器类型不同。

在步骤204,在音乐片段播放的过程中,根据每个阶段的乐器类型,自动绘制每个阶段的乐器对应的图案,以便能表现出音乐片段中各个乐器的演奏状态和情感表达。

例如,在音乐片段播放的过程中,可以模拟一个交响乐各乐器(包括弦乐,木管乐器,铜管乐器,打击乐器)的分布示意图。例如,弦乐以小提琴为主,可以用棕色(123,62,0)圆点表示;木管类乐器可以用银灰色(209,209,209)圆点表示;铜管类乐器可以用金色(254,186,0)圆点表示,打击类乐器可以用白色(255,255,255)圆点表示。为防止混淆,还可以在对应乐器区域旁做汉字标注。

表1示出了不同阶段乐器演奏的类型。在表1中,v(violin)表示弦乐器,w(woodwind)表示木管乐器,b(brasswind)表示铜管乐器,p(percussion)表示打击乐器。

需要说明的是,这里的弦乐主要表现的是高音弦乐,低音弦乐在整首曲子中表现的情感是悲痛的,故不纳入弦乐。右边乐器种类对应左边开始时间点,下一个时间点停止。例如,在22s时,弦乐v和木管乐器w演奏,下一个时间点35s时,只有弦乐v,木管乐器w停止演奏。

表1

需要说明的是,在表1中,如果左边相邻的两个时间点对应的开始演奏的乐器相同,则表示在后一时间点开始了另一个乐段。

在一些实施例中,可以根据每个部分的调性确定每个部分对应的图案的显示背景色,以便更好地体现每个部分所要表达的情感。表2示出了调性与颜色对应关系的一个示例。

表2

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于装置实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

图3是根据本公开一个实施例的音乐可视化装置的结构示意图。如图3所示,该实施例的装置包括能量特征获取模块301、速度特征获取模块302、混乱度特征获取模块303和绘制模块304。该实施例的装置可以应用在java平台的processing可视化工具中。

能量特征获取模块301用于获取音乐片段每个部分的能量特征,音乐片段包括多个连续的部分,相邻部分的调性不同,能量特征表示每个部分中各音频帧的振幅的方均根。作为一个具体实现方式,能量特征获取模块301可以包括分帧处理单元和第一计算单元。分帧处理单元用于对音乐文件进行分帧处理,以得到多个音频帧,其中,每个音频帧的长度为第一预设时间,相邻音频帧之间的间隔为第二预设时间。第一计算单元用于计算每个部分中各音频帧的振幅的方均根,从而得到能量特征。

速度特征获取模块302用于获取每个部分的速度特征,速度特征表示每个部分中单位时间内的节拍数。

混乱度特征获取模块303用于获取每个部分的混乱度特征,混乱度特征与每个部分中乐器种类的数量正相关。作为一个具体实现方式,混乱度特征获取模块303可以包括统计单元和第二计算单元。统计单元用于统计各音名在每部分出现的频率。第二计算单元用于根据如下公式计算每部分的混乱度特征e(x):其中,n为音名的个数,p(xi)为音名xi在每部分出现的频率。

绘制模块304用于在音乐片段播放的过程中,根据每个部分的能量特征、速度特征和混乱度特征,自动绘制每个部分对应的图案。

在一些实施例中,图3所示音乐可视化装置还可以包括背景色确定模块,用于根据每个部分的调性确定每个部分对应的图案的显示背景色。

在一些实施例中,图3所示音乐可视化装置还可以包括乐器类型获取模块,用于获取音乐片段每个阶段的乐器类型,音乐片段包括多个连续的阶段,相邻阶段的乐器类型不同。相应地,绘制模块304可以用于在音乐片段播放的过程中,根据每个阶段的乐器类型,自动绘制每个阶段的乐器对应的图案。

图4是根据本公开另一个实施例的音乐可视化装置的结构示意图。如图4所示,该实施例的装置包括存储器401和处理器402。存储器401可以是磁盘、闪存或其它任何非易失性存储介质。存储器401用于存储前述任意一个实施例的方法对应的指令。处理器402耦接至存储器401,可以被实施为一个或多个集成电路,例如微处理器或微控制器。处理器402用于执行存储器401中存储的指令。

图5是根据本公开又一个实施例的音乐可视化装置的结构示意图。如图5所示,该实施例的装置500包括存储器501和处理器502。处理器502通过总线(bus)503耦合至存储器501。该实施例的装置500还可以通过存储接口504连接至外部存储装置505以便调用外部数据,还可以通过网络接口506连接至网络或者外部计算机系统(未示出)。

本公开还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现前述任意一个实施例的方法的步骤。

下面以泰坦尼克号主题曲作为一个音乐片段为例介绍音乐片段的每个部分与调性及图案的对应关系。

表3示出了根据调性划分的音乐的不同部分以及在不同部分提出的意象。

表3

下面分别介绍不同意象的图案表示。

(1)关于海洋意象

根据获取到的每个部分的能量特征,可以在位于界面下方分割主画面与乐器演奏界面处设计海浪来体现音乐的实时能量。例如,可以将直线分割成单位为1的线段,每条线段的宽度(strokeweight)即为提取当前时间点的能量。strokeweight=abs(player.left.get(i)*20)。当音乐缓和时,海浪微微起伏,当音乐强劲时,海浪翻滚。

(2)关于泡沫和雨滴意象

音乐开始的60s内的场景是温馨的,可以用泡沫来表示。例如,可以采用同心圆表示泡沫,同心圆由内到外的明度可以逐渐增加,从而达到泡沫效果。

音乐结束的60s内的场景是凄凉的,可以用下雨来表示。下落的雨滴的大小、飘落速度及雨滴数量可以分别由音乐的能量特征、速度特征和混乱度特征来决定。

为达到理想的可视化效果,可以将雨滴数量count设置在(0,500)之间。雨滴数量count与能量特征rms的关系可以如下式:

count=(int)(rms×100)

雨滴的整体下落速度为s[i]=random(1,v),其中,雨滴的最慢下落为速度为1,最快下落速度为v。v和速度特征tempo之间的关系如下式:

雨滴大小为[i]=r。半径r与混乱度特征e之间的关系如下式:

r=(int)avg(e)(6)

(3)关于冰山意象

音乐片段中发现冰山的部分,可以将冰山逐渐变大并将透明度降低。冰山可以显示为白色三角形。

(4)关于船意象

在表3中的不同部分,船可以有不同的表现形式。

在船撞击冰山部分中,可以将船头变大。

在沉船部分中,可以将船分为倾斜阶段、摇摆阶段和下沉阶段。在倾斜阶段,可以调整船身倾斜角度。在摇摆阶段,可以调整为船身上端呈摆钟式摇摆。下沉阶段,可以设置下沉的快慢。

在海面上升部分中,可以设置上升的速度。

本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。

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