CN107481706B - 歌曲串烧方法及装置 - Google Patents
歌曲串烧方法及装置 Download PDFInfo
- Publication number
- CN107481706B CN107481706B CN201710671669.7A CN201710671669A CN107481706B CN 107481706 B CN107481706 B CN 107481706B CN 201710671669 A CN201710671669 A CN 201710671669A CN 107481706 B CN107481706 B CN 107481706B
- Authority
- CN
- China
- Prior art keywords
- sentence
- candidate
- song
- singing
- matching degree
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0033—Recording/reproducing or transmission of music for electrophonic musical instruments
- G10H1/0041—Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
- G10H1/0058—Transmission between separate instruments or between individual components of a musical system
- G10H1/0066—Transmission between separate instruments or between individual components of a musical system using a MIDI interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
- G06F16/632—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/68—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/683—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/101—Music Composition or musical creation; Tools or processes therefor
- G10H2210/125—Medley, i.e. linking parts of different musical pieces in one single piece, e.g. sound collage, DJ mix
Abstract
本发明实施例提供了一种歌曲串烧方法及装置,其中,歌曲串烧方法包括:对当前歌曲以及各个候选歌曲的midi文件进行解析,以获取当前歌曲中每句的音符信息以及各个候选歌曲中每句的音符信息;根据音符信息计算当前歌曲的当前演唱句与各个候选歌曲中各个候选句的多维匹配度;根据当前演唱句与各个候选句的多维匹配度确定当前演唱句与各个候选句的相似度;从各个候选句中,选择与当前演唱句的相似度最高的候选句作为目标句,将目标句所在的候选歌曲作为目标歌曲;将当前演唱句与目标句在目标歌曲中的下一句串烧起来。本发明实施例能够自动实现歌曲串烧,提高了处理效率。
Description
技术领域
本发明实施例涉及音频处理领域,具体涉及一种歌曲串烧方法及装置。
背景技术
随着科技的发展,移动终端具备的功能越来越多,已经能为用户提供一些多元化的休闲娱乐方式,例如为用户提供一些串烧歌曲。现有的歌曲串烧方法,多半是通过人工的方式,借用一些软件,从候选歌曲中截取需要串烧的部分,再将需要串烧的部分拼接起来,操作十分繁琐,处理效率较低,如果针对大量的歌曲,处理效率就更低了。
发明内容
有鉴于此,本发明实施例提供了一种歌曲串烧方法及装置,能够提高处理效率。
本发明实施例提供的歌曲串烧方法,包括:
对当前歌曲的乐器数字接口midi文件进行解析,以获取所述当前歌曲中每句的音符信息,对各个候选歌曲的midi文件进行解析,以获取所述各个候选歌曲中每句的音符信息,每句的音符信息包括每句中每个音符的播放开始时间、播放持续时间和音高值;
根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度;
根据所述当前演唱句与所述各个候选句的多维匹配度确定所述当前演唱句与所述各个候选句的相似度;
从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲;
将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。
本发明实施例提供的歌曲串烧装置,包括:
解析单元,用于对当前歌曲的乐器数字接口midi文件进行解析,以获取所述当前歌曲中每句的音符信息,对各个候选歌曲的midi文件进行解析,以获取所述各个候选歌曲中每句的音符信息,每句的音符信息包括每句中每个音符的播放开始时间、播放持续时间和音高值;
计算单元,用于根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度;
确定单元,用于根据所述当前演唱句与所述各个候选句的多维匹配度确定所述当前演唱句与所述各个候选句的相似度;
选择单元,用于从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲;
串烧单元,用于将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。
本发明实施例中,可以对歌曲的midi文件进行解析,以获取歌曲中每句的音符信息,根据当前歌曲中当前演唱句的音符信息及各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度,根据所述当前演唱句与所述各个候选句的多维匹配度确定所述当前演唱句与所述各个候选句的相似度;从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲;将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。即本发明实施例,可以根据当前歌曲的每句与各个候选歌曲的每句的多维匹配度,确定当前歌曲的每句与各个候选歌曲的每句的相似度,选择相似度最高的候选句作为目标句,自动实现歌曲串烧,相较于人工串烧的实现方案,本发明实施例的方法,具有较高的处理效率,同时具有趣味性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例所提供的歌曲串烧方法的一个场景示意图。
图2是本发明实施例所提供的歌曲串烧方法的一个流程示意图。
图3是本发明实施例所提供的一种具体的串烧拼接方式示意图。
图4是本发明实施例所提供的歌曲串烧装置的一个结构示意图。
图5是本发明实施例所提供的歌曲串烧装置的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于现有技术缺乏歌曲串烧的自动实现方案,因而本发明实施例提供了一种歌曲串烧方法及装置,本发明实施例提供的歌曲串烧方法可实现在歌曲串烧装置中,歌曲串烧装置具体可以集成在终端或其他可以进行音频数据处理的设备中。以歌曲串烧装置集成在终端中为例,参见图1,终端可以通过网络与服务器进行交互,所述网络可以是移动通信网络、广域网、局域网等。具体在本发明实施例中,终端可以通过网络从服务器下载歌曲,下载完成之后,终端可以对当前歌曲(指当前播放的歌曲)的midi文件进行解析,以获取所述当前歌曲中每句的音符信息,对各个候选歌曲的midi文件进行解析,以获取所述各个候选歌曲中每句的音符信息,每句的音符信息包括每句中每个音符的播放开始时间、播放持续时间和音高值,然后根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度,根据所述当前演唱句与所述各个候选句的多维匹配度确定所述当前演唱句与所述各个候选句的相似度,最后从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲;将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。即本发明实施例,可以根据当前歌曲的每句与各个候选歌曲的每句的多维匹配度,确定当前歌曲的每句与各个候选歌曲的每句的相似度,选择相似度最高的候选句作为目标句,自动实现歌曲串烧,相较于人工串烧的实现方案,本发明实施例的方法,具有较高的处理效率,同时具有趣味性。
以下将分别进行详细说明,以下各个实施例的描述先后顺序并不构成对具体实施先后顺序的限定。
实施例一
如图2所示,本实施例的歌曲串烧方法包括以下步骤:
步骤201、对当前歌曲的乐器数字接口midi文件进行解析,以获取所述当前歌曲中每句的音符信息,对各个候选歌曲的midi文件进行解析,以获取所述各个候选歌曲中每句的音符信息。
midi,是一个工业标准的电子通信协议,为电子乐器等演奏设备(如合成器)定义各种音符或者弹奏码,容许电子乐器、电脑、手机或其他的舞台演出设备彼此连接,调整和同步,得以实时交换演奏数据。midi文件以数字信息的形式存储了音乐信息,是一首歌曲的音乐旋律文件。
本实施例主要通过确定歌曲之间句子的相似度来实现歌曲串烧,因此,在执行步骤201之前,可先对当前歌曲及各个候选歌曲进行分句。以对当前歌曲分句为例,具体的分句方法可如下:
(1)对当前歌曲的midi文件进行解析,以获取midi文件中的音符信息,可以采用程序的方法定义一个结构体来存储音符信息,具体方法可如下:
采用上述结构体将midi文件解析出来之后,可以得到表1所示的音符信息。
播放开始时间(ms) | 播放持续时间(ms) | 音高值 |
38210 | 311 | 71 |
38524 | 309 | 69 |
38837 | 622 | 67 |
40711 | 309 | 64 |
41024 | 309 | 67 |
…… | …… | …… |
表1
表1示出了从midi文件中获取的部分音符信息,这部分音符信息可以是midi文件中的任意一段。
解析出来的音符信息包括音符的播放开始时间、播放持续时间和音高值。其中,音高值一般位于区间[21,108],音高值越大,音调越高。每个音高值对应音乐中的“do、re、mi……”中的一个音符。如表1所示,一个音高值对应一组具有关联关系的播放开始时间和播放持续时间。例如,表1中的第一行的音高值“71”,对应的播放开始时间为38210,播放持续时间为311。也就是说,音符以71的音高值,从38210ms开始播放,播放的时长为311ms。播放开始时间和播放持续时间是关联的,根据播放开始时间和播放持续时间,可以得到一个音符的播放结束时间,在上面的例子中,表1中的第一行,音符以71的音高值持续播放311秒,播放结束时间是38521ms。
(2)根据所述音符信息计算所述当前歌曲的各个相邻音符之间的播放时间差值。即可以根据每个音符的播放开始时间和播放持续时间,计算每个音符的播放结束时间;根据每个音符的播放结束时间,以及每个音符的相邻音符的播放开始时间,计算各个相邻音符之间的播放时间差值。如表1中第一行与第二行所示,第一个音符的播放结束时间是38521ms,第二个音符的播放开始时间是38524ms,可知,这两个相邻音符的播放时间差值为3ms。
(3)根据所述各个相邻音符之间的播放时间差值对所述当前歌曲进行分句。具体地,可以预设一个时间差值阈值,从所述各个相邻音符中,寻找播放时间差值大于所述时间差值阈值的相邻音符,将所述当前歌曲从寻找到的相邻音符处进行分句。例如,第6、第7个音符之间的播放时间间隔大于所述时间差值阈值,则从第6、第7个音符之间进行分句,将第6个音符作为前一句中的音符,将第7个音符作为后一句中的音符。时间差值阈值的具体取值,可根据计算所得的各个播放时间差值的分布情况求取,还可以根据实际情况自定义,此处不做具体限定。
上面描述了根据当前歌曲的midi文件对当前歌曲进行分句,实际应用中,还可以采用其他方式对当前歌曲进行分句,例如采用人工标注的方式分句、或者采用其他机器计算的方式分句、或者如果当前歌曲有歌词信息,则根据歌词信息对当前歌曲进行分句,具体的分句方法,此处不做具体限定。对当前歌曲进行分句,以及对各个候选歌曲进行分句时,可以采用相同的分句方法,也可以采用不同的分句方法。
本实施例中,终端中可预先设置一个候选曲库,该候选曲库中可以包括海量的歌曲,候选曲库中的歌曲可以来自服务器,候选曲库中的全部歌曲都可以作为上述候选歌曲,一首候选歌曲中可以包括多个候选句。对歌曲分句之后,可以获取当前歌曲中每句的音符信息,以及各个候选歌曲中每句的音符信息。
步骤202、根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度。
所述多维匹配度指的是:两个句子在多个维度的匹配程度,所述多个维度包括但不限于时间、均值差、距离、歌词字数等维度。
下面以一个具体的例子,说明计算歌曲间两个句子的多维匹配度的过程,例如,以计算A句子和B句子的多维匹配度为例,具体可如下:
第一维度:时间。
根据A句子第一个音符的播放开始时间,和A句子最后一个音符的播放结束时间,可以获取A句子的演唱时长;同样,根据B句子第一个音符的播放开始时间,和B句子最后一个音符的播放结束时间,可以获取B句子的演唱时长。根据获取的演唱时长计算A句子和B句子的演唱时长差值,对该演唱时长差值取绝对值,根据预设的演唱时长差值与匹配度的对应关系,获取计算所得的演唱时长差值对应的匹配度,记为p1。
演唱时长差值与匹配度的对应关系的设置方法,例如可以如下:设置最大差值阈值,例如5s,则演唱时间差值大于或等于5s的时候,设置对应的匹配度为0,演唱时间差值为0的时候,设置对应的匹配度为1,演唱时间差值大于0小于5时,设置对应的匹配度随着演唱时间差值的增大而呈线性或非线性递减。
第二维度和第三维度:均值差。
获取A句子中音符的音高值的均值(如表1中第三列数据的均值),同时获取B句子中音符的音高值的均值,计算A、B两个句子的均值差,对所述均值差取绝对值,采用预设除数对计算所得的均值差作求余运算,得到商和余数,根据预设的商与匹配度的对应关系,获取所述商对应的匹配度,记为p2,根据预设的余数与匹配度的对应关系,获取所述余数对应的匹配度,记为p3。
预设除数可自定义取值,例如可以取6、8、12等。以预设除数取12为例,商与匹配度的对应关系的设置方法,例如可以如下:商为0时,设置对应的匹配度为1,随着商增大,设置对应的匹配度呈线性或非线性递减,设定阈值,例如阈值为2,当商大于或等于2时,设置对应的匹配度最小,为0.5。
余数与匹配度的对应关系的设置方法,例如可以如下:余数为0时,设置对应的匹配度为1,余数为6时,设置对应的匹配度最小,为0.5,以6为中心,设置对应的匹配度从两边向中心呈线性或非线性递减,例如0对应的匹配度为最大,1和11对应的匹配度为其次,2和10对应的匹配度为再次,……6对应的匹配度为最小。
第四维度:距离。
计算A句子与B句子的距离。具体可如下:
假如,A句子的音符信息如表2所示,根据A句子的音符信息可以建立第一矩阵即A句子中,音符的开始时间为123ms,以65的音高持续了200ms,中间空白了一段数据,然后从456ms开始,以45的音高持续了100ms结束,结束时间是556ms,则整个时间长度是556-123=433ms,则可以建立一个433长度的第一数组,数组中首先持续200ms的65,然后中间间隔填0,最后再持续100ms的45,所建立的第一数组可以为[65,65,65……0,0,0……45,45,45]。同样的方法,可以根据B句子的音符信息建立第二数组。
播放开始时间(ms) | 播放持续时间(ms) | 音高值 |
123 | 200 | 65 |
456 | 100 | 45 |
表2
建立完成之后,可以获取第一数组与第二数组的均值,求均值的绝对值并取整。确定根据A句子的音符信息建立的第一矩阵,以及根据B句子的音符信息建立的第二矩阵中,较小的那个矩阵,将较小的那个矩阵中的所有数据加上上述均值,以保证A、B在同一水平线上,然后,根据有修改的矩阵重新建立第一数组或第二数组。
计算第一数组与第二数组的编辑距离,将所述编辑距离作为A句子和B句子的距离。当然,还可以采用其他方式计算A句子和B句子的距离,此处不作具体限定。
最后根据预设的编辑距离与匹配度的对应关系,获取所述编辑距离对应的匹配度,记为p4。编辑距离与匹配度的对应关系的设置方法,例如可以如下:编辑距离为0时,完全相同,设置对应的匹配度为1,设置距离阈值,当编辑距离大于或等于距离阈值时,设置对应的匹配度最小,例如为0,当编辑距离大于0小于距离阈值时,设置对应的匹配度随着编辑距离的增大而呈线性或非线性递减。
第五维度:歌词字数。
将A、B两句的歌词文件提取出来,获取A、B两句的歌词字数差值,根据预设的歌词字数差值与匹配度的对应关系,获取所述歌词字数差值对应的匹配度,记为p5。
歌词字数差值与匹配度的对应关系的设置方法,例如可以如下:歌词字数差值为0时,设置对应的匹配度为1,设置最大差值阈值,例如5,当歌词字数差值大于或等于5时,设置对应的匹配度最小,为0.5,歌词字数差值大于1小于5时,设置对应的匹配度随着歌词字数差值的增大而呈线性或非线性递减。
第六维度:节拍数(Beat Per Minute,BPM)。
获取A、B两句的节拍数的差值,记为节拍差值,根据预设的节拍差值与匹配度的对应关系,获取所述节拍差值对应的匹配度,记为p6。
节拍差值与匹配度的对应关系的设置方法,例如可以如下:节拍差值为0时,设置对应的匹配度为1,设置节拍差值阈值,例如为4,节拍差值大于或等于4时,设置对应的匹配度最小,例如为0.5,节拍差值大于1小于4时,设置对应的匹配度随着节拍差值的增大而呈线性或非线性递减。
需要说明的是,上述第一、第二……第六,仅作为区分不同维度,并不构成对实际获取顺序的限定。
按照上述计算A句子和B句子的多维匹配度的方法,可以计算当前歌曲的每句与各个候选句的多维匹配度。
步骤203、根据所述当前演唱句与所述各个候选句的多维匹配度确定所述当前演唱句与所述各个候选句的相似度。
以上面的例子为例,在计算得到以上六个维度的匹配度值之后,可以将其中任意一个维度值,或者任意多个维度值的乘积,确定为A句子和B句子的相似度。依此方法,可以确定当前演唱句与各个候选句的相似度。
步骤204、从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲。
在确定当前歌曲的当前演唱句与各个候选句的相似度之后,可以对所得的相似度进行排序,从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲。
步骤205、将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。
在执行步骤205之前,可以先判断是否满足预设串烧条件,若满足,则执行步骤205,否则继续演唱当前歌曲的下一句。预设串烧条件包括但不限于以下几种:
随机函数串烧;即设定随机函数生成串烧条件,条件可视需求自定义设置,如果触发,则执行串烧。
预设相似度门限串烧;即设置相似度门限值,如果计算的最高相似度超过所设置的相似度门限值,则执行串烧。
预设句数串烧;例如可以设置每N句进行串烧,N可视需求自定义取值,例如,可以取3、4等。
如果满足预设串烧条件,则将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。例如目标歌曲的第八句与当前演唱句相似度最高,则将目标歌曲的第九句与当前演唱句串烧起来。
在串烧时,如果直接截断当前歌曲,拼接下一句的话,会由于不连接而导致爆音、杂音等。为避免出现这些情况,本实施例中,可以采用无缝过渡的方式,将当前演唱句与所述目标句在所述目标歌曲中的下一句拼接起来。
无缝过渡的拼接方式,例如重叠相加,比如A句子和B句子要拼接,可以将A句子末尾的n个数据,和B句子开头的n个数据进行叠加,如图3所示,A句子的结尾处,数据从1到0逐渐消失,B句子的开头处,数据从0到1逐渐增大,将两部分数据相加,比例因子在整个叠加处正好为1,就可以实现无缝拼接。当然,无缝过渡的拼接方式,还可以包括其他方法,例如淡出淡入,即先对前面的句子淡出,再对后面的句子淡入,实际中,可根据需求自行选择,此处不做具体限定。
上面的实施例描述了在歌曲播放的过程中,实时确定相似度并进行串烧的方法,实际中,还可以提前确定好当前歌曲的每句与各个候选句的相似度,在播放的过程中,如果满足条件,则直接执行串烧。
本实施例中,终端可以根据歌曲的midi文件、歌词、节拍信息等,确定当前歌曲的每句与各个候选句的相似度,从海量的所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲;将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来,这种自动歌曲串烧的实现方案,相较于人工串烧的实现方案,具有更高的处理效率,同时具有趣味性。
实施例二
为了更好地实施以上方法,本发明还提供了一种歌曲串烧装置,在一个具体的实施例中,歌曲串烧装置可以是终端,如图4所示,本实施例的装置包括:解析单元401、计算单元402、确定单元403、选择单元404以及串烧单元405,如下:
(1)解析单元401;
解析单元401,用于对当前歌曲的乐器数字接口midi文件进行解析,以获取所述当前歌曲中每句的音符信息,对各个候选歌曲的midi文件进行解析,以获取所述各个候选歌曲中每句的音符信息。
midi,是一个工业标准的电子通信协议,为电子乐器等演奏设备(如合成器)定义各种音符或者弹奏码,容许电子乐器、电脑、手机或其他的舞台演出设备彼此连接,调整和同步,得以实时交换演奏数据。midi文件以数字信息的形式存储了音乐信息,是一首歌曲的音乐旋律文件。
本实施例主要通过确定歌曲之间句子的相似度来实现歌曲串烧,因此,可先对当前歌曲及各个候选歌曲进行分句。具体的分句方法,例如:根据歌曲的midi文件对歌曲进行分句,或者采用人工标注的方式对歌曲进行分句,或者采用其他机器计算的方式对歌曲进行分句,或者如果歌曲有歌词信息,则根据歌词信息对歌曲进行分句,具体的分句方法,此处不做具体限定。
本实施例中,终端中可预先设置一个候选曲库,该候选曲库中可以包括海量的歌曲,候选曲库中的歌曲可以来自服务器,候选曲库中的全部歌曲都可以作为上述候选歌曲,一首候选歌曲中可以包括多个候选句。对歌曲分句之后,解析单元401可以对当前歌曲的midi文件进行解析,以获取所述当前歌曲中每句的音符信息,对各个候选歌曲的midi文件进行解析,以获取所述各个候选歌曲中每句的音符信息。
(2)计算单元402;
计算单元402,用于根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度;
所述多维匹配度指的是:两个句子在多个维度的匹配程度,所述多个维度包括但不限于时间、均值差、距离、歌词字数等维度。
下面以一个具体的例子,说明计算单元402计算歌曲间两个句子的多维匹配度的过程,例如,以计算A句子和B句子的多维匹配度为例,具体可如下:
第一维度:时间。
计算单元402可以根据A句子第一个音符的播放开始时间,和A句子最后一个音符的播放结束时间,获取A句子的演唱时长;同样,可以根据B句子第一个音符的播放开始时间,和B句子最后一个音符的播放结束时间,可以获取B句子的演唱时长。根据获取的演唱时长计算A句子和B句子的演唱时长差值,对该演唱时长差值取绝对值,根据预设的演唱时长差值与匹配度的对应关系,获取计算所得的演唱时长差值对应的匹配度,记为p1。
演唱时长差值与匹配度的对应关系的设置方法,例如可以如下:设置最大差值阈值,例如为5s,则演唱时间差值大于或等于5s的时候,设置对应的匹配度为0,演唱时间差值为0的时候,设置对应的匹配度为1,演唱时间差值大于0小于5时,设置对应的匹配度随着演唱时间差值的增大而呈线性或非线性递减。
第二维度和第三维度:均值差。
计算单元402可以获取A句子中音符的音高值的均值(如表1中第三列数据的均值),同时获取B句子中音符的音高值的均值,计算A、B两个句子的均值差,对所述均值差取绝对值,采用预设除数对计算所得的均值差作求余运算,得到商和余数,根据预设的商与匹配度的对应关系,获取所述商对应的匹配度,记为p2,根据预设的余数与匹配度的对应关系,获取所述余数对应的匹配度,记为p3。
预设除数可自定义取值,例如可以取6、8、12等。以预设除数取12为例,商与匹配度的对应关系的设置方法,例如可以如下:商为0时,设置对应的匹配度为1,随着商增大,设置对应的匹配度呈线性或非线性递减,设定阈值,例如阈值为2,当商大于或等于2时,设置对应的匹配度最小,为0.5。
余数与匹配度的对应关系的设置方法,例如可以如下:余数为0时,设置对应的匹配度为1,余数为6时,设置对应的匹配度最小,为0.5,以6为中心,设置对应的匹配度从两边向中心呈线性或非线性递减,例如0对应的匹配度为最大,1和11对应的匹配度为其次,2和10对应的匹配度为再次,……6对应的匹配度为最小。
第四维度:距离。
计算单元402可以计算A句子与B句子的距离。具体可如下:
假如,A句子的音符信息如表2所示,根据A句子的音符信息可以建立第一矩阵即A句子中,音符的开始时间为123ms,以65的音高持续了200ms,中间空白了一段数据,然后从456ms开始,以45的音高持续了100ms结束,结束时间是556ms。则整个时间长度是556-123=433ms,则可以建立一个433长度的第一数组,数组中首先持续200ms的65,然后中间间隔填0,最后再持续100ms的45,所建立的第一数组可以为[65,65,65……0,0,0……45,45,45]。同样的方法,可以根据B句子的音符信息建立第二数组。
建立完成之后,可以获取第一数组与第二数组的均值,求均值的绝对值并取整。确定根据A句子的音符信息建立的第一矩阵,以及根据B句子的音符信息建立的第二矩阵中,较小的那个矩阵,将较小的那个矩阵中的所有数据加上上述均值,以保证A、B在同一水平线上,然后,根据有修改的矩阵重新建立第一数组或第二数组。
计算第一数组与第二数组的编辑距离,将所述编辑距离作为A句子和B句子的距离。当然,还可以采用其他方式计算A句子和B句子的距离,此处不作具体限定。
最后根据预设的编辑距离与匹配度的对应关系,获取所述编辑距离对应的匹配度,记为p4。编辑距离与匹配度的对应关系的设置方法,例如可以如下:编辑距离为0时,完全相同,设置对应的匹配度为1,设置距离阈值,当编辑距离大于或等于距离阈值时,设置对应的匹配度最小,例如为0,当编辑距离大于0小于距离阈值时,设置对应的匹配度随着编辑距离的增大而呈线性或非线性递减。
第五维度:歌词字数。
计算单元402可以将A、B两句的歌词文件提取出来,获取A、B两句的歌词字数差值,根据预设的歌词字数差值与匹配度的对应关系,获取所述歌词字数差值对应的匹配度,记为p5。
歌词字数差值与匹配度的对应关系的设置方法,例如可以如下:歌词字数差值为0时,设置对应的匹配度为1,设置最大差值阈值,例如5,当歌词字数差值大于或等于5时,设置对应的匹配度最小,为0.5,歌词字数差值大于1小于5时,设置对应的匹配度随着歌词字数差值的增大而呈线性或非线性递减。
第六维度:节拍数(Beat Per Minute,BPM)。
计算单元402可以获取A、B两句的节拍数的差值,记为节拍差值,根据预设的节拍差值与匹配度的对应关系,获取所述节拍差值对应的匹配度,记为p6。
节拍差值与匹配度的对应关系的设置方法,例如可以如下:节拍差值为0时,设置对应的匹配度为1,设置节拍差值阈值,例如为4,节拍差值大于或等于4时,设置对应的匹配度最小,例如为0.5,节拍差值大于1小于4时,设置对应的匹配度随着节拍差值的增大而呈线性或非线性递减。
需要说明的是,上述第一、第二……第六,仅作为区分不同维度,并不构成对实际获取顺序的限定。
按照上述计算A句子和B句子的相似度的方法,计算单元402可以计算当前歌曲的每句与各个候选句的多维匹配度。
(3)确定单元403;
确定单元403,用于根据所述当前演唱句与所述各个候选句的多维匹配度确定所述当前演唱句与所述各个候选句的相似度。
以上面的例子为例,在计算单元402计算得到以上六个维度的匹配度值之后,确定单元403可以将其中任意一个维度值,或者任意多个维度值的乘积,确定为A句子和B句子的相似度。依此方法,确定单元403可以确定当前演唱句与各个候选句的相似度。
(4)选择单元404;
选择单元404,用于从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲。
在确定单元403确定当前歌曲的当前演唱句与各个候选句的相似度之后,选择单元404可以对所得的相似度进行排序,从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲。
(5)串烧单元405;
串烧单元405,用于将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。
本实施例的装置还可以包括判断单元,判断单元用于判断是否满足预设串烧条件,若满足,则串烧单元405将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来,否则,终端继续播放当前歌曲的下一句。预设串烧条件包括但不限于以下几种:
随机函数串烧;即设定随机函数生成串烧条件,条件可视需求自定义设置,如果触发,则执行串烧。
预设相似度门限串烧;即设置相似度门限值,如果计算的最高相似度超过所设置的相似度门限值,则执行串烧。
预设句数串烧;例如可以设置每N句进行串烧,N可视需求自定义取值,例如,可以取3、4等。
如果满足预设串烧条件,则串烧单元405将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。例如目标歌曲的第八句与当前演唱句相似度最高,则将目标歌曲的第九句与当前演唱句串烧起来。
在串烧时,如果直接截断当前歌曲,拼接下一句的话,会由于不连接而导致爆音、杂音等。为避免出现这些情况,本实施例中,串烧单元405可以采用无缝过渡的方式,将当前演唱句与所述目标句在所述目标歌曲中的下一句拼接起来。
无缝过渡的拼接方式,例如重叠相加,比如A句子和B句子要拼接,可以将A句子末尾的n个数据,和B句子开头的n个数据进行叠加,如图3所示,A句子的结尾处,数据从1到0逐渐消失,B句子的开头处,数据从0到1逐渐增大,将两部分数据相加,比例因子在整个叠加处正好为1,就可以实现无缝拼接。当然,无缝过渡的拼接方式,还可以包括其他方法,例如淡出淡入,即先对前面的句子淡出,再对后面的句子淡入,实际中,可根据需求自行选择,此处不做具体限定。
上面的实施例描述了在歌曲播放的过程中,确定单元403实时确定相似度并进行串烧的方法,实际中,确定单元403还可以提前确定好当前歌曲的每句与各个候选句的相似度,在播放的过程中,如果满足条件,则直接执行串烧。
需要说明的是,上述实施例提供的歌曲串烧装置在进行歌曲串烧时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的歌曲串烧装置与歌曲串烧方法属于同一构思,其具体实现过程详见方法实施例,此处不再赘述。
本实施例中,确定单元可以根据歌曲的midi文件、歌词、节拍信息等,确定当前歌曲的每句与各个候选句的相似度,选择单元从海量的所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,串烧单元将所述目标句所在的候选歌曲作为目标歌曲;将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来,这种自动歌曲串烧的实现方案,相较于人工串烧的实现方案,具有更高的处理效率,同时具有趣味性。
实施例三
相应的,本发明实施例还提供了一种歌曲串烧装置,如图5所示,该装置可以包括射频(RF,Radio Frequency)电路501、包括有一个或一个以上计算机可读存储介质的存储器502、输入单元503、显示单元504、传感器505、音频电路506、无线保真(WiFi,WirelessFidelity)模块507、包括有一个或者一个以上处理核心的处理器508、以及电源509等部件。本领域技术人员可以理解,图5中示出的装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路501可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器508处理;另外,将涉及上行的数据发送给基站。通常,RF电路501包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路501还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器502可用于存储软件程序以及模块,处理器508通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据装置的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器508和输入单元503对存储器502的访问。
输入单元503可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元503可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器508,并能接收处理器508发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元503还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元504可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元504可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器508以确定触摸事件的类型,随后处理器508根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图5中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
装置还可包括至少一种传感器505,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在装置移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路506、扬声器,传声器可提供用户与终端之间的音频接口。音频电路506可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路506接收后转换为音频数据,再将音频数据输出处理器508处理后,经RF电路501以发送给比如另一装置,或者将音频数据输出至存储器502以便进一步处理。音频电路506还可能包括耳塞插孔,以提供外设耳机与装置的通信。
WiFi属于短距离无线传输技术,装置通过WiFi模块507可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5示出了WiFi模块507,但是可以理解的是,其并不属于装置的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器508是装置的控制中心,利用各种接口和线路连接整个装置的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行终端的各种功能和处理数据,从而对装置进行整体监控。可选的,处理器508可包括一个或多个处理核心;优选的,处理器508可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器508中。
装置还包括给各个部件供电的电源509(比如电池),优选的,电源可以通过电源管理系统与处理器508逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源509还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,装置还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,装置中的处理器508会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器508来运行存储在存储器502中的应用程序,从而实现各种功能:
对当前歌曲的乐器数字接口midi文件进行解析,以获取所述当前歌曲中每句的音符信息,对各个候选歌曲的midi文件进行解析,以获取所述各个候选歌曲中每句的音符信息,每句的音符信息包括每句中每个音符的播放开始时间、播放持续时间和音高值;
根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度;
根据所述当前演唱句与所述各个候选句的多维匹配度确定所述当前演唱句与所述各个候选句的相似度;
从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲;
将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。
在一些实施例中,在根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度时,处理器508用于执行以下步骤:
根据所述当前演唱句的音符信息获取所述当前演唱句的演唱时长,根据任意一个候选句的音符信息获取所述任意一个候选句的演唱时长;
获取所述当前演唱句的演唱时长与所述任意一个候选句的演唱时长的差值,记为演唱时长差值;
根据预设的演唱时长差值与匹配度的对应关系,获取所述演唱时长差值对应的匹配度,记为p1。
在一些实施例中,在根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度时,处理器508还用于执行以下步骤:
获取所述当前演唱句的所有音符的音高值的均值,与所述任意一个候选句的所有音符的音高值的均值的差值,记为均值差;
采用预设除数对所述均值差作求余运算,得到商和余数;
根据预设的商与匹配度的对应关系,获取所述商对应的匹配度,记为p2;
根据预设的余数与匹配度的对应关系,获取所述余数对应的匹配度,记为p3。
在一些实施例中,在根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度时,处理器508还用于执行以下步骤:
根据所述当前演唱句的音符信息建立第一数组,所述第一数组的长度值与所述当前演唱句的演唱时长值相等,所述第一数组中的元素为所述当前演唱句中各个音符的音高值;
根据所述任意一个候选句的音符信息建立第二数组,所述第二数组的长度值与所述任意一个候选句的演唱时长值相等,所述第二数组中的元素为所述任意一个候选句中各个音符的音高值;
计算所述第一数组与所述第二数组的编辑距离;
根据预设的编辑距离与匹配度的对应关系,获取所述编辑距离对应的匹配度,记为p4。
在一些实施例中,在计算当前歌曲的当前演唱句与各个候选句的相似度时,处理器508还用于执行以下步骤:
获取所述当前演唱句的歌词字数与所述任意一个候选句的歌词字数的差值,记为歌词字数差值;
根据预设的歌词字数差值与匹配度的对应关系,获取所述歌词字数差值对应的匹配度,记为p5。
在一些实施例中,在计算当前歌曲的当前演唱句与各个候选句的相似度时,处理器508还用于执行以下步骤:
获取所述当前演唱句的节拍数与所述任意一个候选句的节拍数的差值,记为节拍差值;
根据预设的节拍差值与匹配度的对应关系,获取所述节拍差值对应的匹配度,记为p6。
在一些实施例中,在从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句,作为目标句之后,处理器508还用于执行以下步骤:
判断是否满足预设串烧条件;
若满足所述预设串烧条件,则将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。
在一些实施例中,所述预设串烧条件包括:随机函数串烧,或预设相似度门限串烧,或预设句数串烧。
在一些实施例中,在将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来时,处理器508用于执行以下步骤:
采用无缝过渡的方式,将所述当前演唱句与所述目标句在所述目标歌曲中的下一句拼接起来。
本实施例的歌曲串烧装置,可以对歌曲的midi文件进行解析,以获取歌曲中每句的音符信息,根据当前歌曲中当前演唱句的音符信息及各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度,根据所述当前演唱句与所述各个候选句的多维匹配度确定所述当前演唱句与所述各个候选句的相似度;从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲;将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。即本实施例的装置,可以根据当前歌曲的每句与各个候选歌曲的每句的多维匹配度,确定当前歌曲的每句与各个候选歌曲的每句的相似度,选择相似度最高的候选句作为目标句,自动实现歌曲串烧,相较于人工串烧的实现方案,本发明实施例的方法,具有较高的处理效率,同时具有趣味性。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,装置,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (18)
1.一种歌曲串烧方法,其特征在于,包括:
对当前歌曲的乐器数字接口midi文件进行解析,以获取所述当前歌曲中每句的音符信息,对各个候选歌曲的midi文件进行解析,以获取所述各个候选歌曲中每句的音符信息,每句的音符信息包括每句中每个音符的播放开始时间、播放持续时间和音高值;
根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度,所述多维匹配度包括时间、均值差、距离、歌词字数、节拍数维度的匹配度;
所述根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度,具体包括:
根据当前演唱句的音符信息获取所述当前演唱句的演唱时长,根据任意一个候选句的音符信息获取所述任意一个候选句的演唱时长;
获取所述当前演唱句的演唱时长与所述任意一个候选句的演唱时长的差值,记为演唱时长差值;
根据预设的演唱时长差值与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述演唱时长差值对应的匹配度,记为p1;
根据所述当前演唱句与所述各个候选句的多维匹配度确定所述当前演唱句与所述各个候选句的相似度;
从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲;
将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。
2.根据权利要求1所述的方法,其特征在于,根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度,包括:
获取所述当前演唱句的所有音符的音高值的均值,与所述任意一个候选句的所有音符的音高值的均值的差值,记为均值差;
采用预设除数对所述均值差作求余运算,得到商和余数;
根据预设的商与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述商对应的匹配度,记为p2;
根据预设的余数与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述余数对应的匹配度,记为p3。
3.根据权利要求2所述的方法,其特征在于,根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度,包括:
根据所述当前演唱句的音符信息建立第一数组,所述第一数组的长度值与所述当前演唱句的演唱时长值相等,所述第一数组中的元素为所述当前演唱句中各个音符的音高值;
根据所述任意一个候选句的音符信息建立第二数组,所述第二数组的长度值与所述任意一个候选句的演唱时长值相等,所述第二数组中的元素为所述任意一个候选句中各个音符的音高值;
计算所述第一数组与所述第二数组的编辑距离;
根据预设的编辑距离与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述编辑距离对应的匹配度,记为p4。
4.根据权利要求3所述的方法,其特征在于,计算所述当前演唱句与所述各个候选句的多维匹配度,还包括:
获取所述当前演唱句的歌词字数与所述任意一个候选句的歌词字数的差值,记为歌词字数差值;
根据预设的歌词字数差值与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述歌词字数差值对应的匹配度,记为p5。
5.根据权利要求4所述的方法,其特征在于,所述计算所述当前演唱句与所述各个候选句的多维匹配度,还包括:
获取所述当前演唱句的节拍数与所述任意一个候选句的节拍数的差值,记为节拍差值;
根据预设的节拍差值与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述节拍差值对应的匹配度,记为p6。
6.根据权利要求5所述的方法,其特征在于,根据所述当前演唱句与所述各个候选句的多维匹配度确定所述当前演唱句与所述各个候选句的相似度,包括:
将p1、p2、p3、p4、p5、p6中的任意一个或任意多个的乘积,确定为所述当前演唱句与所述任意一个候选句的相似度。
7.根据权利要求1至6任意一项所述的方法,其特征在于,在从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句,作为目标句之后,所述方法还包括:
判断是否满足预设串烧条件;
若满足所述预设串烧条件,则将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。
8.根据权利要求7所述的方法,其特征在于,所述预设串烧条件包括:随机函数串烧,或预设相似度门限串烧,或预设句数串烧。
9.根据权利要求1至6任意一项所述的方法,其特征在于,所述将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来,包括:
采用无缝过渡的方式,将所述当前演唱句与所述目标句在所述目标歌曲中的下一句拼接起来。
10.一种歌曲串烧装置,其特征在于,包括:
解析单元,用于对当前歌曲的乐器数字接口midi文件进行解析,以获取所述当前歌曲中每句的音符信息,对各个候选歌曲的midi文件进行解析,以获取所述各个候选歌曲中每句的音符信息,每句的音符信息包括每句中每个音符的播放开始时间、播放持续时间和音高值;
计算单元,用于根据所述当前歌曲中当前演唱句的音符信息及所述各个候选歌曲中各个候选句的音符信息,计算所述当前演唱句与所述各个候选句的多维匹配度,所述多维匹配度包括时间、均值差、距离、歌词字数、节拍数维度的匹配度;
所述计算单元具体用于:根据当前演唱句的音符信息获取所述当前演唱句的演唱时长,根据任意一个候选句的音符信息获取所述任意一个候选句的演唱时长;
获取所述当前演唱句的演唱时长与所述任意一个候选句的演唱时长的差值,记为演唱时长差值;
根据预设的演唱时长差值与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述演唱时长差值对应的匹配度,记为p1;
确定单元,用于根据所述当前演唱句与所述各个候选句的多维匹配度确定所述当前演唱句与所述各个候选句的相似度;
选择单元,用于从所述各个候选句中,选择与所述当前演唱句的相似度最高的候选句作为目标句,将所述目标句所在的候选歌曲作为目标歌曲;
串烧单元,用于将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。
11.根据权利要求10所述的装置,其特征在于,所述计算单元具体用于:
获取所述当前演唱句的所有音符的音高值的均值,与所述任意一个候选句的所有音符的音高值的均值的差值,记为均值差;
采用预设除数对所述均值差作求余运算,得到商和余数;
根据预设的商与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述商对应的匹配度,记为p2;
根据预设的余数与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述余数对应的匹配度,记为p3。
12.根据权利要求11所述的装置,其特征在于,所述计算单元具体用于:
根据所述当前演唱句的音符信息建立第一数组,所述第一数组的长度值与所述当前演唱句的演唱时长值相等,所述第一数组中的元素为所述当前演唱句中各个音符的音高值;
根据所述任意一个候选句的音符信息建立第二数组,所述第二数组的长度值与所述任意一个候选句的演唱时长值相等,所述第二数组中的元素为所述任意一个候选句中各个音符的音高值;
计算所述第一数组与所述第二数组的编辑距离;
根据预设的编辑距离与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述编辑距离对应的匹配度,记为p4。
13.根据权利要求12所述的装置,其特征在于,所述计算单元还用于:
获取所述当前演唱句的歌词字数与所述任意一个候选句的歌词字数的差值,记为歌词字数差值;
根据预设的歌词字数差值与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述歌词字数差值对应的匹配度,记为p5。
14.根据权利要求13所述的装置,其特征在于,所述计算单元还用于:
获取所述当前演唱句的节拍数与所述任意一个候选句的节拍数的差值,记为节拍差值;
根据预设的节拍差值与所述时间、均值差、距离、歌词字数、节拍数维度的匹配度的对应关系,获取所述节拍差值对应的匹配度,记为p6。
15.根据权利要求14所述的装置,其特征在于,所述确定单元具体用于:
将p1、p2、p3、p4、p5、p6中的任意一个或任意多个的乘积,确定为所述当前演唱句与所述任意一个候选句的相似度。
16.根据权利要求10至15任意一项所述的装置,其特征在于,所述装置还包括:
判断单元,用于判断是否满足预设串烧条件;
所述串烧单元在所述判断单元的判断结果为满足所述预设串烧条件时,将所述当前演唱句与所述目标句在所述目标歌曲中的下一句串烧起来。
17.根据权利要求16所述的装置,其特征在于,所述预设串烧条件包括:随机函数串烧,或预设相似度门限串烧,或预设句数串烧。
18.根据权利要求10至15任意一项所述的装置,其特征在于,所述串烧单元具体用于:
采用无缝过渡的方式,将所述当前演唱句与所述目标句在所述目标歌曲中的下一句拼接起来。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710671669.7A CN107481706B (zh) | 2017-08-08 | 2017-08-08 | 歌曲串烧方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710671669.7A CN107481706B (zh) | 2017-08-08 | 2017-08-08 | 歌曲串烧方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107481706A CN107481706A (zh) | 2017-12-15 |
CN107481706B true CN107481706B (zh) | 2021-08-03 |
Family
ID=60599705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710671669.7A Active CN107481706B (zh) | 2017-08-08 | 2017-08-08 | 歌曲串烧方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107481706B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108322816B (zh) * | 2018-01-22 | 2020-07-31 | 北京英夫美迪科技股份有限公司 | 广播节目中背景音乐的播放方法和系统 |
CN108717849A (zh) * | 2018-04-03 | 2018-10-30 | 腾讯音乐娱乐科技(深圳)有限公司 | 拼接多媒体数据的方法、装置及存储介质 |
CN108766407B (zh) * | 2018-05-15 | 2023-03-24 | 腾讯音乐娱乐科技(深圳)有限公司 | 音频连接方法及装置 |
CN110867174A (zh) * | 2018-08-28 | 2020-03-06 | 努音有限公司 | 自动混音装置 |
CN109788343B (zh) * | 2018-11-26 | 2019-10-25 | 广州微算互联信息技术有限公司 | Html网页播放音频流的方法与云手机服务器 |
CN111613195B (zh) * | 2019-02-22 | 2022-12-09 | 浙江大学 | 音频拼接方法、装置及存储介质 |
CN110209871B (zh) * | 2019-06-17 | 2024-04-12 | 广州酷狗计算机科技有限公司 | 歌曲评论发布方法及装置 |
CN111046217A (zh) * | 2019-12-17 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 组合歌曲生成方法、装置、设备以及存储介质 |
CN111339350B (zh) * | 2020-03-27 | 2023-11-28 | 腾讯音乐娱乐科技(深圳)有限公司 | 数据处理方法、装置、存储介质及电子设备 |
CN112037739B (zh) * | 2020-09-01 | 2024-02-27 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种数据处理方法、装置、电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963957A (en) * | 1997-04-28 | 1999-10-05 | Philips Electronics North America Corporation | Bibliographic music data base with normalized musical themes |
CN1940926A (zh) * | 2006-03-15 | 2007-04-04 | 中国人民大学 | 一种基于哼唱的音乐数据库高效查询方法 |
CN101916250A (zh) * | 2010-04-12 | 2010-12-15 | 电子科技大学 | 一种基于哼唱的音乐检索方法 |
CN102053998A (zh) * | 2009-11-04 | 2011-05-11 | 周明全 | 一种利用声音方式检索歌曲的方法及系统装置 |
US7962530B1 (en) * | 2007-04-27 | 2011-06-14 | Michael Joseph Kolta | Method for locating information in a musical database using a fragment of a melody |
CN103823867A (zh) * | 2014-02-26 | 2014-05-28 | 深圳大学 | 一种基于音符建模的哼唱式音乐检索方法及系统 |
-
2017
- 2017-08-08 CN CN201710671669.7A patent/CN107481706B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963957A (en) * | 1997-04-28 | 1999-10-05 | Philips Electronics North America Corporation | Bibliographic music data base with normalized musical themes |
CN1940926A (zh) * | 2006-03-15 | 2007-04-04 | 中国人民大学 | 一种基于哼唱的音乐数据库高效查询方法 |
US7962530B1 (en) * | 2007-04-27 | 2011-06-14 | Michael Joseph Kolta | Method for locating information in a musical database using a fragment of a melody |
CN102053998A (zh) * | 2009-11-04 | 2011-05-11 | 周明全 | 一种利用声音方式检索歌曲的方法及系统装置 |
CN101916250A (zh) * | 2010-04-12 | 2010-12-15 | 电子科技大学 | 一种基于哼唱的音乐检索方法 |
CN103823867A (zh) * | 2014-02-26 | 2014-05-28 | 深圳大学 | 一种基于音符建模的哼唱式音乐检索方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107481706A (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107481706B (zh) | 歌曲串烧方法及装置 | |
CN109379641B (zh) | 一种字幕生成方法和装置 | |
CN106782600B (zh) | 音频文件的评分方法及装置 | |
CN110633067B (zh) | 一种音效参数的调节方法及移动终端 | |
CN105208056B (zh) | 信息交互的方法及终端 | |
EP3367257A1 (en) | Multimedia poster generation method and terminal | |
CN107507628B (zh) | 唱歌评分方法、装置及终端 | |
CN108156508B (zh) | 弹幕信息处理的方法、装置、移动终端、服务器及系统 | |
EP3382707B1 (en) | Audio file re-recording method, device and storage medium | |
CN107766455B (zh) | 歌词接龙方法、装置和计算机可读存储介质 | |
WO2018223837A1 (zh) | 音乐播放方法及相关产品 | |
US20230395051A1 (en) | Pitch adjustment method and device, and computer storage medium | |
CN107680614B (zh) | 音频信号处理方法、装置和存储介质 | |
WO2019128638A1 (zh) | 从音乐节拍点中提取大节拍信息的方法、存储介质和终端 | |
CN109872710B (zh) | 音效调制方法、装置及存储介质 | |
US10949462B2 (en) | Audio identification method and apparatus, and computer storage medium | |
CN107452361B (zh) | 歌曲分句方法及装置 | |
CN108090140A (zh) | 一种歌曲播放方法及移动终端 | |
CN109977013B (zh) | 一种调试信息获取方法、系统及装置 | |
CN105959482B (zh) | 一种场景音效的控制方法、及电子设备 | |
CN105550316B (zh) | 音频列表的推送方法及装置 | |
CN110335629B (zh) | 音频文件的音高识别方法、装置以及存储介质 | |
CN106057213B (zh) | 一种显示人声音高数据的方法和装置 | |
CN105976849B (zh) | 一种播放音频数据的方法和装置 | |
CN110347578B (zh) | 一种应用的测试方法、装置及存储介质 |
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 |