首页 > 乐器声学 专利正文
一种曲谱生成方法、电子设备及可读存储介质与流程

时间:2022-02-18 阅读: 作者:专利查询

一种曲谱生成方法、电子设备及可读存储介质与流程

1.本技术涉及音频处理技术领域,特别涉及一种曲谱生成方法、曲谱生成电子设备及计算机可读存储介质。


背景技术:

2.曲谱,即乐谱,是记录音乐音高或者节奏的各种书面符号的有规律的组合,如常见的简谱、五线谱、吉他谱、古琴谱等等各种现代的或者古代的乐谱都叫做曲谱。当前,通常需要采用人工扒谱的方式生成曲谱,例如吉他谱,而人工扒谱的方式效率较低,且曲谱准确性较差。


技术实现要素:

3.有鉴于此,本技术的目的在于提供一种曲谱生成方法、电子设备及计算机可读存储介质,能够高效地生成准确的曲谱。
4.为解决上述技术问题,第一方面,本技术提供了一种曲谱生成方法,包括:
5.获取目标音频;
6.生成所述目标音频与各个音级对应的色度图谱,并利用所述色度图谱识别所述目标音频的和弦,得到和弦信息;
7.对所述目标音频进行调式检测,得到原调信息;
8.对所述目标音频进行节奏检测,得到拍子数;
9.对所述目标音频各个音频帧的节拍类型进行识别,并基于节拍类型与拍号对应关系确定音频拍号;
10.利用所述和弦信息、所述原调信息、所述拍子数和所述音频拍号进行曲谱绘制,得到目标曲谱。
11.可选地,所述利用所述和弦信息、所述原调信息、所述拍子数和所述音频拍号进行曲谱绘制,得到目标曲谱,包括:
12.确定目标歌词中各个字在所述目标音频中的位置信息;所述目标歌词为所述目标音频对应的歌词;
13.利用各个所述字的持续时长确定对应的音符类型;
14.利用所述和弦信息、所述原调信息、所述拍子数和所述音频拍号生成第一曲谱,并基于所述位置信息和所述音符类型,利用所述目标歌词标识所述第一曲谱,得到所述目标曲谱。
15.可选地,所述利用所述和弦信息、所述原调信息、所述拍子数和所述音频拍号进行曲谱绘制,得到目标曲谱,包括:
16.利用所述和弦信息确定指法图像;
17.基于所述和弦信息对所述指法图像进行拼接,得到第二曲谱;
18.利用所述原调信息、所述拍子数和所述音频拍号标记所述第二曲谱,得到所述目
标曲谱。
19.可选地,所述利用所述和弦信息、所述原调信息、所述拍子数和所述音频拍号进行曲谱绘制,得到目标曲谱,包括:
20.根据得到的曲谱调整信息,对目标信息进行调整,得到调整后信息;其中,所述目标信息为所述原调信息、所述和弦信息、曲谱绘制规则、所述拍子数中的至少一项;
21.利用未经调整的非目标信息和所述调整后信息生成所述目标曲谱。
22.可选地,所述对所述目标音频进行调式检测,得到原调信息,包括:
23.提取所述目标音频的音符序列;
24.分别基于多个不同的主音参数,对所述音符序列进行取模计算,得到多个计算结果序列;
25.利用各个所述计算结果序列分别与大小调序列比对,得到对应的匹配音符数;
26.将最大匹配音符数对应的所述大小调序列和所述主音参数均对应的调式确定为所述原调信息。
27.可选地,所述对所述目标音频进行节奏检测,得到拍子数,包括:
28.计算目标音频中各个音频帧的能量值;
29.对所述目标音频划分为若干个区间,并利用所述能量值计算所处区间的平均能量值;
30.若所述能量值大于能量值阈值,则确定检测到一个节拍;所述能量值阈值由平均能量值和所述区间的权重值相乘得到,所述权重值基于各个所述区间内的能量值的方差得到;
31.统计每分钟内的节拍数,得到所述拍子数。
32.可选地,所述对所述目标音频进行节奏检测,得到拍子数,包括:
33.生成所述目标音频对应的对数幅度谱;
34.将所述对数幅度谱输入训练好的神经网络,得到所述目标音频中每个音频帧为节拍的概率值;
35.对所述概率值组成的概率值序列进行自相关计算,得到若干个自相关参数;
36.将处于预设范围内的最大自相关参数确定为所述拍子数。
37.可选地,还包括:
38.建立所述目标音频与所述目标曲谱之间的音频曲谱对应关系,并存储所述目标曲谱和所述音频曲谱对应关系;
39.若检测到曲谱输出请求,则利用各个所述音频曲谱对应关系判断是否存在所述曲谱输出请求对应的请求曲谱;
40.若存在所述请求曲谱,则输出所述请求曲谱。
41.可选地,还包括:
42.根据所述目标曲谱中的目标拍子数确定节拍音频;
43.在检测到开始信号后,播放所述节拍音频,并统计演奏时长;
44.按照所述目标拍子数和所述演奏时长,确定所述目标曲谱中的目标部分,对所述目标部分进行提醒标注。
45.第二方面,本技术还提供了一种电子设备,包括存储器和处理器,其中:
46.所述存储器,用于保存计算机程序;
47.所述处理器,用于执行所述计算机程序,以实现上述的曲谱生成方法。
48.第三方面,本技术还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的曲谱生成方法。
49.本技术提供的曲谱生成方法,获取目标音频;生成目标音频与各个音级对应的色度图谱,并利用色度图谱识别目标音频的和弦,得到和弦信息;对目标音频进行调式检测,得到原调信息;对目标音频进行节奏检测,得到拍子数;对目标音频各个音频帧的节拍类型进行识别,并基于节拍类型与拍号对应关系确定音频拍号;利用和弦信息、原调信息、拍子数和音频拍号进行曲谱绘制,得到目标曲谱。
50.可见,该方法在获取目标音频后,利用色度图谱的方式对目标音频在频域范围的能量分布进行表示,进而识别目标音频的和弦,得到和弦信息。调式和拍号是演奏的重要依据,其需要在曲谱中进行体现,因此对目标音频进行调式检测得到原调信息。并通过对节拍类型进行识别,基于节拍类型的组合确定音频拍号。拍子数(或称为每分钟节拍数)可以表征音频节奏的快慢,利用其确定和弦对应的时间。在得到上述信息后,利用和弦信息、原调信息、拍子数和音频拍号进行曲谱绘制,即可得到目标曲谱。通过对目标音频进行处理,得到绘制曲谱所必须的数据和信息,进而利用其绘制得到目标曲谱,相比人工扒谱的方式,能够高效地生成准确的曲谱,使得曲谱生成的效率和准确性均较高,解决了相关技术效率较低,且曲谱准确性较差的问题。
51.此外,本技术还提供了一种电子设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
52.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
53.图1为本技术实施例提供的一种曲谱生成方法所适用的硬件组成框架示意图;
54.图2为本技术实施例提供的另一种曲谱生成方法所适用的硬件组成框架示意图;
55.图3为本技术实施例提供的一种曲谱生成方法的流程示意图;
56.图4为本技术实施例提供的一种色度图谱;
57.图5为本技术实施例提供的一种具体的第二曲谱;
58.图6为本技术实施例提供的一种具体的目标曲谱;
59.图7为本技术实施例提供的指法图像。
具体实施方式
60.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
61.为了便于理解,先对本技术实施例提供的曲谱生成方法对应的方案所使用的硬件组成框架进行介绍。请参考图1,图1为本技术实施例提供的一种曲谱生成方法所适用的硬件组成框架示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(i/o)接口104以及通信组件105中的一种或多种。
62.其中,处理器101用于控制电子设备100的整体操作,以完成曲谱生成方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,sram)、电可擦除可编程只读存储器(electrically erasable programmable read

only memory,eeprom)、可擦除可编程只读存储器(erasable programmable read

only memory,eprom)、可编程只读存储器(programmable read

only memory,prom)、只读存储器(read

only memory,rom)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。在本实施例中,存储器102中至少存储有用于实现以下功能的程序和/或数据:
63.获取目标音频;
64.生成目标音频与各个音级对应的色度图谱,并利用色度图谱识别目标音频的和弦,得到和弦信息;
65.对目标音频进行调式检测,得到原调信息;
66.对目标音频进行节奏检测,得到拍子数;
67.对目标音频各个音频帧的节拍类型进行识别,并基于节拍类型与拍号对应关系确定音频拍号;
68.利用和弦信息、原调信息、拍子数和音频拍号进行曲谱绘制,得到目标曲谱。
69.多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如wi

fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:wi

fi部件,蓝牙部件,nfc部件。
70.电子设备100可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行曲谱生成方法。
71.当然,图1所示的电子设备100的结构并不构成对本技术实施例中电子设备的限定,在实际应用中电子设备100可以包括比图1所示的更多或更少的部件,或者组合某些部
件。
72.可以理解的是,本技术实施例中并不对电子设备的数量进行限定,其可以是多个电子设备共同协作完成曲谱生成方法。在一种可能的实施方式中,请参考图2,图2为本技术实施例提供的另一种曲谱生成方法所适用的硬件组成框架示意图。由图2可知,该硬件组成框架可以包括:第一电子设备11和第二电子设备12,二者之间通过网络13连接。
73.在本技术实施例中,第一电子设备11与第二电子设备12的硬件结构可以参考图1中电子设备100。即可以理解为本实施例中具有两个电子设备100,两者进行数据交互。进一步,本技术实施例中并不对网络13的形式进行限定,即,网络13可以是无线网络(如wifi、蓝牙等),也可以是有线网络。
74.其中,第一电子设备11和第二电子设备12可以是同一种电子设备,如第一电子设备11和第二电子设备12均为服务器;也可以是不同类型的电子设备,例如,第一电子设备11可以是智能手机或其它智能终端,第二电子设备12可以是服务器。在一种可能的实施方式中,可以利用计算能力强的服务器作为第二电子设备12来提高数据处理效率及可靠性,进而提高曲谱生成的处理效率。同时利用成本低,应用范围广的智能手机作为第一电子设备11,用于实现第二电子设备12与用户之间的交互。可以理解的是,该交互过程可以为:智能手机获取目标音频,并将目标音频发送至服务器,由服务器进行目标曲谱的生成。服务器将目标曲谱发送至智能手机,由智能手机对目标曲谱进行展示。
75.基于上述说明,请参考图3,图3为本技术实施例提供的一种曲谱生成方法的一种流程示意图。该实施例中的方法包括:
76.s101:获取目标音频。
77.目标音频,是指需要生成对应曲谱的音频,其数量、类型等不做限定。具体的,目标音频可以为具有歌词的歌曲,或者可以为不具有歌词的纯音乐。目标音频的具体获取方式不做限定,例如可以先获取音频信息,并利用其对本地预存的音频进行筛选,得到目标音频;或者可以利用数据传输接口获取外部输入的目标音频。
78.s102:生成目标音频与各个音级对应的色度图谱,并利用色度图谱识别目标音频的和弦,得到和弦信息。
79.色度图谱即chromagram,色度特征是色度向量(chroma vector)和色度图谱(chromagram)的统称。色度向量是一个含有12个元素的向量,这些元素分别代表一段时间(如1帧)内12个音级中的能量,不同八度的同一音级能量累加,色度图谱则是色度向量的序列。以钢琴为例,它可以被弹奏出88个音高(pitch),这些音高都是以do、re、mi、fa、so、la、ti七个白键音符(及其之间的五个黑键)为一组“循环”出现的,某一组中的do和下一组中的do就是一个八度的关系,如果忽略组与组之间的概念,那么这十二个音即构成十二个音级(即pitch class)。
80.色度图谱通常通过常数q变换(constant

q transform,cqt)生成。具体的,对目标音频做傅里叶变换,将其从时域转变为频域之后,对频域信号进行降噪处理,再进行调谐,起到类似于“将不同的钢琴调弦到标准频率”的效果。然后将绝对时间按照所选窗的长度转换为帧,并将每一个音高在每一帧内的能量记录下来,成为音高图谱。在音高图谱的基础上,将同一时间、同一音级、不同八度的音符的能量叠加到色度向量内该音级的元素上,成为色度图谱。请参考图4,图4为本技术实施例提供的一种色度图谱。其中的第一个大格,c、
e、g这三个音级非常的亮,根据乐理知识,可以确定目标音频的这一时间内演奏了c大调主和弦(cmaj),或称为c大三和弦。
81.和弦(chord)是乐理上的一个概念,指的是一定音程关系的一组声音。将三个或以上的音,按照三度或非三度的叠置关系,在纵向上加以结合,就成为和弦。音程,指两个音级在音高上的相互关系,就是指两个音在音高上的距离,其单位名称叫做度。通过上述方式,利用色度图谱和乐理知识相配合,可以确定目标音频在不同时间对应的和弦,得到和弦信息。
82.s103:对目标音频进行调式检测,得到原调信息。
83.调式,是指以一个音为核心,按照一定音程关系不同音高组织在一起的若干个乐音,构成的一个有机体。调式具体分为大调和小调,二者分别遵循不同的音程关系。
84.具体的,大调之间的关系为全











半,各个音之间的音程关系为0
‑2‑4‑5‑7‑9‑
11

12,其中,第一个音至第二个音之间的距离为2,即为全;第二个音至第三个音之间的距离为2,即为全;第三个音至第四个音之间的距离为1,即为半,以此类推。小调之间的关系为全











全,各个音之间的音程关系为0
‑2‑3‑5‑7‑8‑
10

12。其中,当调式中的几个音排列成音阶时,主音是一个调式的核心,调式中最稳定的音,即为主音。由于音阶共有12个,每个都可以作为主音,具体包括c、c#(或db)、d、d#(或eb)、e、f、f#(或gb)、g、g#(或ab)、a、a#(或bb)、b。其中#表示升音,比原音高半音,b表示降音,比原音降半音。而调式又分为大调和小调,因此共有24种调式。
85.本实施例并不限定调式检测的具体方式,在一种实施方式中,可以将目标音频输入训练好的卷积神经网络,该卷积神经网络利用大量具有调式标记的训练数据训练得到,其具体结构可以为多层卷积神经网络结构。将目标音频输入该卷积神经网络中后,可以利用其选择24个调试类别中概率最大的一个作为目标音频的调式。在另一种实施方式中,可以利对音符序列进行取模计算,并与大调和小调样式进行匹配,根据匹配结果得到原调信息。
86.s104:对目标音频进行节奏检测,得到拍子数。
87.bpm是beat per minute的简称,中文名为拍子数,释义为每分钟节拍数的单位。bpm是全曲速度标记,为独立在曲谱外的速度标准,一般以一个四分音符为一拍,60bpm即为一分钟演奏均匀60个四分音符(或等效的音符组合)。节奏检测即为bpm检测,拍子数用于控制音频的演奏速度,相同的和弦在不同的bpm下演奏节奏不同。
88.本实施例并不限定节奏检测的具体方式,在一种实施方式中,可以基于目标音频各个音频帧是节拍(即beat)的概率序列进行自相关计算,并将计算得到的结果确定为bpm。在另一种实施方式中,可以基于一段时间内各个音频帧的能量分布情况检测节拍,进而根据检测到的节拍确定bpm。
89.s105:对目标音频各个音频帧的节拍类型进行识别,并基于节拍类型与拍号对应关系确定音频拍号。
90.拍号,是一种在乐谱中使用的符号,用分数的形式来标画。每一个乐谱前面都有拍号,中间如果改变节奏会标出改变的拍号,拍号如同分数,如2/4、3/4等。其分母表示拍子的时值,即用几分音符来做为一拍,例如2/4代表用四分音符代表一拍,每一小节有两拍。分子代表每一小节有多少拍子,例如2/4拍就是以四分音符为一拍,一小节有两拍,3/4以四分音
符为一拍,每小节有三拍,以此类推。音乐中有一个不可缺少的东西就是节奏,节奏即为一系列组织起来的长短关系,这种长短关系需要利用拍号进行规范的划分,拍号的作用就是把众多的音符按规矩分隔,使节奏鲜明。例如,对于4/4拍和3/4拍来说,4/4拍的每小节的节拍分布为强拍、弱拍、次强拍、次弱拍,而3/4拍为强拍、弱拍、弱拍。
91.因为可以通过检测强拍和弱拍的分布来区分它们。将每一帧属于的拍分无拍non

beat、强拍downbeat和弱拍beat,可以通过卷积神经网络或者循环神经网络实现该分类问题,检测出每帧三种不同拍的激活概率,通过一些后处理即可确定强拍和弱拍的分布。
92.因此,可以采用相反的方式对拍号进行识别。具体的,节奏与节拍的强弱和分布情况相关,因此可以对目标音频中各个音频帧的节拍类型进行识别,例如可以利用卷积神经网络或循环神经网络对各个音频帧进行分类,判断其为无拍(non

beat)、强拍(downbeat)或弱拍(beat),并根据节拍的强弱和分布情况,利用节拍类型与拍号的对应关系,确定目标音频对应的音频拍号。需要说明的是,上述节拍类型检测方式仅为一种具体的实施方式,还可以采用其他的方式对节拍进行检测。
93.s106:利用和弦信息、原调信息、拍子数和音频拍号进行曲谱绘制,得到目标曲谱。
94.需要说明的是,s102、s103、s104、s105四个步骤的具体执行顺序不做限定,其可以并行执行,或者可以串行执行。在得到曲谱所需的和弦信息、原调信息、拍子数和音频拍号后,可以基于其进行曲谱绘制,得到与目标音频相对应的目标曲谱。具体的,可以基于预设的绘制规则进行曲谱绘制,绘制规则有多个,各个绘制规则分别与目标曲谱的曲谱类型相关,例如为吉他曲谱,或者为钢琴曲谱等。在一种实施方式中,曲谱绘制规则为和弦与预存的指法图像的对应关系,根据上述信息,可以选择对应的指法图像,并将所述指法图像进行拼接,得到目标曲谱。在另一种实施方式中,曲谱绘制规则为根据乐理知识设定的曲谱绘制规则,例如c和弦第一拍两个音,分别为5弦和3弦,第二拍两个音,分别为2弦和3弦,则其对应的曲谱绘制规则可以承数据形式,例如为c(1:5,2;2,3)。
95.应用本技术实施例提供的曲谱生成方法,在获取目标音频后,利用色度图谱的方式对目标音频在频域范围的能量分布进行表示,进而识别目标音频的和弦,得到和弦信息。调式和拍号是演奏的重要依据,其需要在曲谱中进行体现,因此对目标音频进行调式检测得到原调信息。并通过对节拍类型进行识别,基于节拍类型的组合确定音频拍号。拍子数(或称为每分钟节拍数)可以表征音频节奏的快慢,利用其确定和弦对应的时间。在得到上述信息后,利用和弦信息、原调信息、拍子数和音频拍号进行曲谱绘制,即可得到目标曲谱。通过对目标音频进行处理,得到绘制曲谱所必须的数据和信息,进而利用其绘制得到目标曲谱,相比人工扒谱的方式,能够高效地生成准确的曲谱,使得曲谱生成的效率和准确性均较高,解决了相关技术效率较低,且曲谱准确性较差的问题。
96.基于上述实施例,本实施例对上述实施例中的部分步骤进行具体说明。在一种实施方式中,为了得到准确的原调信息,对目标音频进行调式检测,得到原调信息的过程可以包括如下步骤:
97.步骤11:提取目标音频的音符序列。
98.步骤12:分别基于多个不同的主音参数,对音符序列进行取模计算,得到多个计算结果序列。
99.步骤13:利用各个计算结果序列分别与大小调序列比对,得到对应的匹配音符数。
100.步骤14:将最大匹配音符数对应的大小调序列和主音参数均对应的调式确定为原调信息。
101.其中,音符序列是指目标音频中各个音频帧对应的音,其可以用note_array表示,序列中的每个值,即note_array[i]均为整数。主音参数,是指用于表示目标音频的主音的参数,由于主音有12种可能,因此共有12个主音参数,可以设置为0~11共12个整数。主音参数可以用shift表示。通过该取模计算,可以得到计算结果序列,通过选择不同的主音参数,得到的计算结果序列能够表示在以主音参数表示的音符为主音这一情况下的目标音频的调式。
[0102]
具体的,取模计算为(note_array[i]+shift)%12的计算,其中%表示取模。经过取模计算,可以得到12个计算结果序列。大小调序列具体可以为大调序列或小调序列,大调序列即为(0 2 4 5 7 9 11 12),小调序列为(0 2 3 5 7 8 10 12)。若计算结果序列中的参数全部落入大调序列中,且主音参数为0,则说明目标音频的调式为c大调。所述,不可能出现计算结果序列中所有的参数均落入大调序列或小调序列中的情况。在这种情况下,可以统计计算结果序列中落入大调序列中的音符数和落入小调序列中的音符数,即利用各个计算结果序列分别与大小调序列进行比对,得到对应的匹配音符数。
[0103]
具体的,若计算结果序列为(

0 5 7

),由于0 5 7这三个参数既落入大调序列也落入小调序列,即与大调序列和小调序列均匹配,因此可以为大调序列对应的匹配音符数和小调序列对应的匹配音符数各加3。若计算结果序列为(

4 9 11),则其仅落入大调序列,因此可以为大调序列对应的匹配音符数加3。可以理解的是,由于共有12个对应于不同主音参数的计算结果序列,每个计算结果序列具有2个分别对应于大调序列和小调序列的匹配音符数,因此共有24个匹配音符数,分别对应于24种调式。在得到24个匹配音符数后,从中选择最大值,即选择最大匹配音符数,并根据其对应的大小调序列和主音参数确定对应的调式。
[0104]
进一步,在一种实施方式中,对于节奏检测的过程,为了提高拍子数的准确性,对目标音频进行节奏检测,得到拍子数的过程具体可以包括如下步骤:
[0105]
步骤21:计算目标音频中各个音频帧的能量值。
[0106]
步骤22:对目标音频划分为若干个区间,并利用能量值计算所处区间的平均能量值。
[0107]
步骤23:若能量值大于能量值阈值,则确定检测到一个节拍。
[0108]
步骤24:统计每分钟内的节拍数,得到拍子数。
[0109]
其中,能量值阈值由平均能量值和区间的权重值相乘得到,权重值基于各个区间内的能量值的方差得到。音频的采样率较高,有时可以达到44100hz,在划分音频帧时,通常以每帧1024个采样点进行划分,因此在44100hz采样率的前提下,一秒的目标音频可以划分为43个音频帧。在计算音频帧对应的能量值时,可以按照:
[0110][0111]
其中,e
j
为序号为j的音频帧的能量值,input(i)为采样点的采样值,i为当前音频帧内各个采样点的序号。
[0112]
由于拍子数为bpm,因此需要统计每秒中的的节拍数。本实施例中,将目标音频划
分为若干个区间,具体可以为平均划分或非平均划分,以便确定各个区间内的平均能量值,平均能量值用于确定该区间内的能量值阈值,能量值阈值则用于判断某一音频帧中是否记录有节拍。通常情况下,区间可以为平均划分,每个区间的长度为1秒。则平均能量值为:
[0113][0114]
avg(e)即为平均能量值。在得到平均能量值之后,利用其与权重值得到能量值阈值。具体的,权重值为:
[0115]
c=

0.0000015
·
var(e)+1.5142857
[0116][0117]
其中,c为权重值,var(e)为区间内的能量值的方差,能量值阈值为c*avg(e)。若该区间内某一个音频帧的能量值大于能量值阈值,则说明该能量值音频帧记录了一个节拍,即beat。通过统计每分钟的节拍数,即可得到拍子数。具体的,可以分别统计各个区间内的内分钟节拍数,得到多个候选拍子数,并将数量最多的候选拍子数确定为拍子数。或者,可以计算整个目标音频的节拍数,并利用该节拍数和目标音频的长度计算得到拍子数。
[0118]
在另一种实施方式中,还可以利用深度学习的方式进行节奏检测。对目标音频进行节奏检测,得到拍子数,包括:
[0119]
步骤31:生成目标音频对应的对数幅度谱。
[0120]
步骤32:将对数幅度谱输入训练好的神经网络,得到目标音频中每个音频帧为节拍的概率值。
[0121]
步骤33:对概率值组成的概率值序列进行自相关计算,得到若干个自相关参数。
[0122]
步骤34:将处于预设范围内的最大自相关参数确定为拍子数。
[0123]
对数幅度谱是频谱图中的一种,其中各谱线的振幅都对原振幅a作了对数计算,所以其纵坐标的单位是db(分贝)。这个变换的目的是使那些振幅较低的成分相对高振幅成分得以拉高,以便观察掩盖在低幅噪声中的周期信号。训练好的神经网络,其用于对目标音频中各个音频帧是否记录了节拍进行预测,将对数幅度谱输入神经网络后,神经网络输出每个音频帧记录了节拍的概率值,并对概率值组成的概率值序列进行自相关计算。在自相关计算后,通常会得到超过一个自相关参数。由于音频的bpm通常处于一个固定的区间,即预设范围,因此可以在预设范围内确定拍子数。具体的,将处于预设范围内的最大自相关参数确定为拍子数。
[0124]
进一步,在一种实施方式中,目标曲谱为吉他曲谱,为了提高绘制目标曲谱的速度,可以预存有多个候选指法图像,通过选择已有的图像并进行拼接的方式生成目标曲谱。具体的,利用和弦信息、原调信息、拍子数和音频拍号进行曲谱绘制,得到目标曲谱的过程可以包括如下步骤:
[0125]
步骤41:利用和弦信息确定指法图像。
[0126]
步骤42:基于和弦信息对指法图像进行拼接,得到第二曲谱。
[0127]
步骤43:利用原调信息、拍子数和音频拍号标记第二曲谱,得到目标曲谱。
[0128]
其中,候选指法图像,是指用于反映弹奏吉他时手指控制琴弦的方式的图像,而指
法图像是指与和弦信息相对应的候选指法图像。可以理解的是,不同的和弦需要采用不同的指法来控制琴弦才能弹出。因此当和弦信息确定后,其对应的弹奏方式必然已经确定,因此可以利用其确定指法图像。需要说明的是,通常情况下,不同调式下的相同和弦的演奏方式不同,因此可以利用和弦信息和原调信息共同确定指法图像。由于和弦是变化的,而一个指法图像仅能对应一个音或数量较少的几个音,因此利用和弦信息确定的指法图像的数量必然是多个。
[0129]
在得到指法图像后,通过对各个指法图像进行拼接,即可得到第二曲谱,第二曲谱为由指法图像拼接得到的曲谱,需要说明的是,指法图像包括按弦的图像和控弦的图像,其中,控弦包括拨弦和扫弦等弹奏方式。请参考图5,图5为本技术实施例提供的一种具体的第二曲谱。在得到第二曲谱后,利用原调信息、牌子书和音频拍号对第二曲谱进行标记,即可得到目标曲谱。请参考图6,图6为本技术实施例提供的一种具体的目标曲谱。其中,原调为c调,拍子数为60,拍号为4/4。
[0130]
在一种实施方式中,目标音频可以为具有歌词的音频,在这种情况下,可以在目标曲谱中设置于歌词对应的标记。例如,可以看出,图6中的目标曲谱还包括歌词。具体的,利用和弦信息、原调信息、拍子数和音频拍号进行曲谱绘制,得到目标曲谱的过程可以包括如下步骤:
[0131]
步骤51:确定目标歌词中各个字在目标音频中的位置信息。
[0132]
步骤52:利用各个字的持续时长确定对应的音符类型。
[0133]
步骤53:利用和弦信息、原调信息、拍子数和音频拍号生成第一曲谱,并基于位置信息和音符类型,利用目标歌词标识第一曲谱,得到目标曲谱。
[0134]
该实施方式中,利用和弦信息、原调信息、拍子数和音频拍号生成的是第一曲谱,其具体可以采用步骤41

步骤43中的方式得到。目标歌词为目标音频对应的歌词,在获取目标歌词后,需要确定其中每个字在目标音频中的位置信息。在一种实施方式中,位置信息包括时间戳,如歌曲《春风十里》对应的逐字歌词信息:
[0135]
<lyricline linestarttime="23036"lineduration="5520">
[0136]
<lyricword word="我"starttime="23036"duration="216"/>
[0137]
<lyricword word="在"starttime="23252"duration="553"/>
[0138]
<lyricword word="二"starttime="23805"duration="240"/>
[0139]
<lyricword word="环"starttime="24045"duration="279"/>
[0140]
<lyricword word="路"starttime="24324"duration="552"/>
[0141]
<lyricword word="的"starttime="24876"duration="281"/>
[0142]
<lyricword word="里"starttime="25157"duration="199"/>
[0143]
<lyricword word="边"starttime="25356"duration="872"/>
[0144]
<lyricword word="想"starttime="26228"duration="952"/>
[0145]
<lyricword word="着"starttime="27180"duration="320"/>
[0146]
<lyricword word="你"starttime="27500"duration="1056"/>
[0147]
</lyricline>
[0148]
其中,starttime为时间戳,duration为持续时间。
[0149]
在另一种实施方式中,位置信息可以为各个字所在的小节以及在该小节中的哪一
拍上。在这种情况下,位置信息需要利用上述的时间戳进行位置信息的计算:
[0150]
所在小节=字的开始时间(即时间戳)/一小节的持续时间
[0151]
小节中的位置=(字的开始时间

所在小节*小节的持续时间)/(60/bpm)。
[0152]
在得到位置信息后,则可利用其确定目标歌词中各个字在第一曲谱中的位置。由于每个字的持续时长不同时,其对应的音符类型也不同,例如为16分音符、8分音符或4分音符。为了将每个字的演唱方式在目标曲谱中标明,需要根据持续时长确定对应的音符类型。在确定音符类型和位置信息后,将其作为基准,利用目标歌词标识第一曲谱,得到目标曲谱。
[0153]
进一步的,由于演奏者通常无法演奏具有和的调式、演奏方式、演奏速度的乐曲,因此在生成目标曲谱时,可以根据需要对原曲的某些信息进行修改,使得生成的目标曲谱能够符合用户自身的需要。因此,利用和弦信息、原调信息、拍子数和音频拍号进行曲谱绘制,得到目标曲谱,包括:
[0154]
步骤61:根据得到的曲谱调整信息,对目标信息进行调整,得到调整后信息。
[0155]
步骤62:利用未经调整的非目标信息和调整后信息生成目标曲谱。
[0156]
其中,目标信息为原调信息、和弦信息、曲谱绘制规则、拍子数中的至少一项,非目标信息即为选中被调整的目标信息以外的其他信息。曲谱调整信息,用于对指定的目标信息进行调整。拍子数可以直接决定音频的演奏速度,调整拍子数可以比目标音频的演奏速度更快或更慢。调式的变化也可以称为转调,受到用户能够掌握的吉他调式选择范围限制,例如初学者通常只会弹奏c调,可以将原曲调式转换成用户选择的调式。即调整原调信息,例如将g调调整为c调。需要说明的还是,根据乐理知识,调式的调整通常会引起和弦的调整,即需要将原曲谱上各拍对应的和弦转换成选择调式对应的和弦。例如将调式由g调调整为c调时,需要将g调第一阶和弦g,转换成c调对应的第一阶和弦c。当然,也可以根据需要单独调整和弦。
[0157]
曲谱绘制规则的调整,可以修改曲谱的演奏风格等信息。在一种具体的实施方式中,若采用指法图像拼接的方式生成目标曲谱,则曲谱绘制规则具体为和弦与指法(以及对应的指法图像)之间的对应关系。而在吉他演奏中,可以采用拨弦或扫弦的方式进行演奏,因此相同的和弦对应的指法图像可以为分解和弦图像或节奏型图像。根据乐理知识,不同的拍号,对应着一系列不同的分解和弦和节奏型。请参考图7,图7为本技术实施例提供的指法图像,其中记录了常见的4/4拍对应的若干个节奏型。
[0158]
进一步,为了避免计算资源的浪费,在生成曲谱后可以对其进行存储,以便重复利用。具体的,可以包括如下步骤:
[0159]
步骤71:建立目标音频与目标曲谱之间的音频曲谱对应关系,并存储目标曲谱和音频曲谱对应关系。
[0160]
步骤72:若检测到曲谱输出请求,则利用各个音频曲谱对应关系判断是否存在曲谱输出请求对应的请求曲谱。
[0161]
步骤73:若存在请求曲谱,则输出请求曲谱。
[0162]
其中,若不存在曲谱输出请求对应的请求曲谱,则利用本技术提供您的曲谱生成方法生成该请求曲谱,并将其输出。曲谱保存的具体形式不做限定,例如在一种实施方式中,可以对每一拍的和弦,对应歌词,以及该歌词的音符类型等数据进行记录,并保存。记录
内容可以如下所示:
[0163]
<beatinfo chord="g"segment="9"beat="1">
[0164]
<lyricinfo>
[0165]
<lyricword word="带"startpos="2"note="16"/>
[0166]
<lyricword word="出"startpos="3"note="16"/>
[0167]
<lyricword word="温"startpos="4"note="16""/>
[0168]
</lyricinfo>
[0169]
</beatinfo>
[0170]
意思是,第9小节,第1拍,对应的和弦是g和弦,对应歌词有三个字,第一字“带”是一个16分音符,六线谱下歌词区域,对应的位置是第二位,以此类推
[0171]
此外,还可以在生成曲谱或输出曲谱后,引导用户进行演奏,具体的,还可以包括如下步骤:
[0172]
步骤81:根据目标曲谱中的目标拍子数确定节拍音频。
[0173]
步骤82:在检测到开始信号后,播放节拍音频,并统计演奏时长。
[0174]
步骤83:按照目标拍子数和演奏时长,确定目标曲谱中的目标部分,对目标部分进行提醒标注。
[0175]
节拍音频,是指具有规律的进行节拍提醒的音频,不同的节拍音频中相邻的两个节拍音的时间间隔不同。目标拍子数可以为未经调整的拍子数,或者可以为经过调整的拍子数。利用目标拍子数,可以确定相邻的两个节拍音的时间间隔大小,进而确定节拍音频。具体的,相邻的两个节拍音之间的时间间隔为(60/目标拍子数)秒。
[0176]
在检测到开始信号后,说明用户开始演奏,为了对用户进行演奏节奏的提醒,播放节拍音频,同时统计本次的演奏时长。演奏时长,是指开始演奏目标曲谱的时长,根据目标拍子数和演奏时长,可以确定当前演奏的目标曲谱的部分,即目标部分。为了能够提醒用户当前应当演奏的位置,可以对目标部分进行提醒标注。提醒标注的具体方式不做限定,例如可以为着色标注。进一步的,用户可以选择每次演奏时演奏目标曲谱的全部内容,或者可以演奏其中的部分内容,因此目标部分可以为目标曲谱中的任意一个部分,或者可以为目标曲谱中某一范围内的部分,具体可以由用户指定。
[0177]
下面对本技术实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的曲谱生成方法可相互对应参照。
[0178]
本技术还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的曲谱生成方法的步骤。
[0179]
该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0180]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0181]
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例
的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本技术的范围。
[0182]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
[0183]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0184]
本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。