CN106919583B - 音频文件的推送方法及装置 - Google Patents
音频文件的推送方法及装置 Download PDFInfo
- Publication number
- CN106919583B CN106919583B CN201510991634.2A CN201510991634A CN106919583B CN 106919583 B CN106919583 B CN 106919583B CN 201510991634 A CN201510991634 A CN 201510991634A CN 106919583 B CN106919583 B CN 106919583B
- Authority
- CN
- China
- Prior art keywords
- audio
- data
- audio data
- frame
- fundamental frequency
- 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
- G06—COMPUTING OR CALCULATING; 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
- G06F16/634—Query by example, e.g. query by humming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Auxiliary Devices For Music (AREA)
Abstract
本发明公开了一种音频文件的推送方法及装置。其中,该方法包括:获取第一客户端采集到的第一清唱音频数据,其中,第一清唱音频数据包括多帧第一音频数据;根据多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量;根据第一音频向量从存储的音频文件集合中查找目标音频文件,其中,目标音频文件的第二音频向量与第一音频向量相匹配;将查找到的目标音频文件推送给第一客户端。本发明解决了现有的音频文件推送方式所存在的推送准确性较低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种音频文件的推送方法及装置。
背景技术
相比于在KTV唱歌的传统方式,在线K歌的方式不仅所需成本较低,而且还可以满足用户实时K歌的需求,因而,这种在线K歌的方式受到越来越多的用户关注。然而,用户在面对在线曲库中的海量歌曲时,往往不知道该选择哪首歌曲进行演唱。
目前,在线K歌中的歌曲均是通过歌曲推送系统进行推送的,常用的方式是将主要的算法集中在如何找到用户喜欢唱的歌曲,例如,按照搜索量或点播量为用户推送较受欢迎的歌曲,但这些歌曲却并不一定适合用户演唱。比如某用户不擅长高音,但系统却推送一个对高音要求很高的歌曲给该用户,即使该用户很喜欢这首歌曲,但该用户却并不适合演唱这首歌曲。也就是说,由于采用现有技术中的推送方式所推送的歌曲准确性较低将造成所推送的歌曲并不适合用户演唱的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种音频文件的推送方法及装置,以至少解决现有的音频文件推送方式所存在的推送准确性较低的技术问题。
根据本发明实施例的一个方面,提供了一种音频文件的推送方法,包括:获取第一客户端采集到的第一清唱音频数据,其中,上述第一清唱音频数据包括多帧第一音频数据;根据上述多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示上述第一清唱音频数据的音域的第一音频向量;根据上述第一音频向量从存储的音频文件集合中查找目标音频文件,其中,上述目标音频文件的第二音频向量与上述第一音频向量相匹配;将查找到的上述目标音频文件推送给上述第一客户端。
根据本发明实施例的另一方面,还提供了一种音频文件的推送装置,包括:第一获取单元,用于获取第一客户端采集到的第一清唱音频数据,其中,上述第一清唱音频数据包括多帧第一音频数据;第二获取单元,用于根据上述多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示上述第一清唱音频数据的音域的第一音频向量;查找单元,用于根据上述第一音频向量从存储的音频文件集合中查找目标音频文件,其中,上述目标音频文件的第二音频向量与上述第一音频向量相匹配;推送单元,用于将查找到的上述目标音频文件推送给上述第一客户端。
在本发明实施例中,在获取的第一客户端采集到的用户的第一清唱音频数据后,其中,第一清唱音频数据包括多帧第一音频数据;可以根据上述多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量;进一步,根据第一音域向量从存储的音频文件集合中查找目标音频文件,其中,目标音频文件的第二音频向量与第一音频向量相匹配;并将查找到的该目标音频文件推送给第一客户端。通过上述音频文件的推送方法根据第一客户端采集到的用户的第一清唱音频数据获取用于表示用户的第一清唱音频数据的音域的第一音频向量,进一步通过在音频文件集合中查找到与第一音频向量相匹配的第二音频向量对应的目标音频文件,实现向第一客户端准确推送更加符合用户自身的音域特点的目标音频文件,以达到提高音频文件推送的准确性的效果,进而克服了现有技术中仅仅通过搜索量或点播量的方式推送歌曲所造成的推送准确性较低的问题。
进一步,通过向用户推送符合用户音域的目标音频文件,还将使用户在通过目标音频文件进行演唱时,达到更佳的演唱效果,以改善用户通过上述推送方法获取音频文件的体验。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的音频文件的推送方法的应用场景示意图;
图2是根据本发明实施例的一种可选的音频文件的推送方法的流程图;
图3是根据本发明实施例的一种可选的音频文件的推送方法的流程图;
图4是根据本发明实施例的另一种可选的音频文件的推送方法的示意图;
图5是根据本发明实施例的又一种可选的音频文件的推送方法的示意图;
图6是根据本发明实施例的又一种可选的音频文件的推送方法的示意图;
图7是根据本发明实施例的又一种可选的音频文件的推送方法的示意图;
图8是根据本发明实施例的一种可选的音频文件的推送装置的示意图;
图9是根据本发明实施例的另一种可选的音频文件的推送装置的示意图;以及
图10是根据本发明实施例的一种可选的音频文件的推送服务器的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种音频文件的推送方法的实施例,上述音频文件的推送方法可以但不限于应用于如图1所示的应用场景中。服务器104通过网络106获取安装有第一客户端的终端102采集到的第一清唱数据,其中,第一清唱音频数据包括多帧第一音频数据;服务器104根据多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量,以根据该第一音频向量从存储的音频文件集合中查找目标音频文件,其中,目标音频文件的第二音频向量与第一音频向量相匹配;进而将查找到的目标音频文件推送给安装有第一客户端的终端102。从而实现为用户推送更加适合用户音域的音频文件,以达到提高推送准确性的效果。可选地,在本实施例中,上述终端可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、PC机。可选地,在本实施例中,上述网络可以包括但不限于以下至少之一:广域网、城域网、局域网。上述只是一种示例,本实施例对此不做任何限定。
根据本发明实施例,提供了一种音频文件的推送方法,如图2所示,该方法包括:
S202,获取第一客户端采集到的第一清唱音频数据,其中,第一清唱音频数据包括多帧第一音频数据;
S204,根据多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量;
S206,根据第一音频向量从存储的音频文件集合中查找目标音频文件,其中,目标音频文件的第二音频向量与第一音频向量相匹配;
S208,将查找到的目标音频文件推送给第一客户端。
可选地,在本实施例中,上述音频文件的推送方法可以但不限于应用于网络在线推送音频文件的过程中,例如,如图1所示由服务器104向终端102上安装的第一客户端推送在线k歌所需的音频文件(如伴奏歌曲)。上述仅是一种示例,本实施例中对此不作任何限定。在本实施例中,在服务器104获取终端102上安装的第一客户端采集到的第一清唱音频数据后,其中,第一清唱音频数据包括多帧第一音频数据;可以根据上述多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量;进一步,根据第一音域向量从存储的音频文件集合中查找目标音频文件,其中,目标音频文件的第二音频向量与第一音频向量相匹配;并将查找到的该目标音频文件推送给第一客户端。
也就是说,服务器104在获取终端102上的第一客户端采集到的用户的第一清唱音频数据后,可以在包含多个音频文件的音频文件集合中查找到与所采集的第一清唱音频数据的音域相适应的目标音频文件,以使用户通过该目标音频文件完成在线k歌。需要说明的是,由于所推送的目标音频文件与用户自身音域相匹配,因而,通过本实施例中提供的音频文件的推送方法所推送的目标音频文件,将更加符合用户自身的音域特点,从而实现用户在通过本实施例所推送的目标音频文件进行演唱时,演唱效果更佳,进而达到提高音频文件推送的准确性的效果,并改善了用户体验,以克服现有技术中通过搜索量或点播量的方式推送歌曲所造成的推送准确性较低的问题。
可选地,在本实施例中,上述第一清唱音频数据可以包括麦克风收录的人声音频数据,例如,上述麦克风收录的人声音频数据可以为但不限于以下至少之一:无伴唱时通过麦克风收录的人声音频数据、有伴唱时通过麦克风定向收录的人声音频数据。其中,上述第一清唱音频数据中可以包括但不限于:按照预定帧长划分的多帧第一音频数据,每一帧第一音频数据中包含用于表示音高的基频数据。需要说明的是,上述基频数据的频谱位于预定的基频段内,其中,上述预定的基频段可以包括但不限于人类声带振动的频率所在的基频段,如50-550Hz。
可选地,在本实施例中,上述第一音频向量和第二音频向量可以但不限于为在预定的基频段内划分成N个连续的子段后,根据各个子段上统计的基频数据的数量得到用于表示音域的一维N向量。例如,包括M帧第一音频数据的第一清唱音频数据在N个子段中的基频数据的数量为{X1,X2…XN},其中,X1+X2+…XN=M;则可以但不限于得到对应的第一音频向量{x1,x2,...,xN}为{X1/M,X2/M…XN/M};同理,包括P帧第二音频数据的第二清唱音频数据在N个子段中的基频数据的数量为{Y1,Y2…YN},其中,Y1+Y2+…YN=P;则可以但不限于得到对应的第二音频向量{y1,y2,...,yN}为{Y1/P,Y2/P…YN/P}。上述仅是一种示例,本实施例中对此不做任何限定。
需要说明的是,在本实施例中,上述音频文件集合中每一个音频文件对应的第二音频向量可以但不限于根据与每一个音频文件对应的Q个第二清唱音频数据得到。可选地,在本实施例中,在获取第一客户端采集到的清唱音频数据之前,还包括:获取音频文件集合中每一个音频文件对应的Q个第二清唱音频数据,根据上述Q个第二清唱音频数据中每一个第二清唱音频数据中的多帧第二音频数据上的基频数据获取对应的音频文件的第二音频向量。
可选地,在本实施例中,根据清唱音频数据的音频向量从存储的音频文件集合中查找目标音频文件包括:S1,在音频文件集合中查找第二音频向量与第一音频向量距离小于预定阈值的音频文件作为目标音频文件。通过比对每一个音频文件的第二音频向量与第一音频向量的方式来查找适合用户音域演唱的目标音频文件,从而实现为用户推送更加准确的音频文件的效果。
可选地,在本实施例中,将查找到的目标音频文件推送给第一客户端包括:结合查找到的目标音频文件的热度(如搜索量和/或点播量),按照热度向第一客户端推送包含查找到的目标音频文件的目标音频文件列表,其中,热度高的目标音频文件在目标音频文件列表中的位置位于热度低的目标音频文件在目标音频文件列表中的位置之前。
通过本申请提供的实施例,在获取的第一客户端采集到的用户的第一清唱音频数据后,其中,第一清唱音频数据包括多帧第一音频数据;可以根据上述多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量;进一步,根据第一音域向量从存储的音频文件集合中查找目标音频文件,其中,目标音频文件的第二音频向量与第一音频向量相匹配;并将查找到的该目标音频文件推送给第一客户端。通过上述音频文件的推送方法根据第一客户端采集到的用户的第一清唱音频数据获取用于表示用户的第一清唱音频数据的音域的第一音频向量,进一步通过在音频文件集合中查找到与第一音频向量相匹配的第二音频向量对应的目标音频文件,实现向第一客户端准确推送更加符合用户自身的音域特点的目标音频文件,以达到提高音频文件推送的准确性的效果,进而克服了现有技术中仅仅通过搜索量或点播量的方式推送歌曲所造成的推送准确性较低的问题。进一步,通过向用户推送符合用户音域的目标音频文件,还将使用户在通过目标音频文件进行演唱时,达到更佳的演唱效果,以改善用户通过上述推送方法获取音频文件的体验。
作为一种可选的方案,多帧第一音频数据为M帧第一音频数据,每一帧第一音频数据包括一个基频数据,其中,根据多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量包括:
S1,将预定的基频段划分成N个连续的子段;
S2,获取每个子段中包含的多帧第一音频数据的基频数据的数量{X1,X2…XN},其中,Xi表示第i个子段中包含的多帧第一音频数据的基频数据的数量,1≤i≤N,X1+X2+…XN=M;
S3,将第一音频向量{x1,x2,...,xN}设置为{X1/M,X2/M…XN/M}。
可选地,在本实施例中,上述第一客户端采集到的第一清唱音频数据可以包括但不限于一个或多个。其中,多个第一清唱音频数据可以为关于同一个音频文件的多个第一清唱音频数据,例如,第一客户端采集到关于同一首歌曲的F个第一清唱音频数据;也可以为分别关于不同音频文件的多个第一清唱音频数据,例如,第一客户端采集到分别针对H首歌曲的H个第一清唱音频数据。对多个第一清唱音频数据中的每一个第一清唱音频数据所执行的操作相同,本实施例中对此不做任何限定。
具体结合以下示例进行说明,假设第一清唱音频数据为一个,第一清唱音频数据包括多帧第一音频数据为M帧第一音频数据,如图3所示,M=25,每一帧第一音频数据包括一个基频数据,例如,该基频数据为每一帧第一音频数据的最大值。将预定的基频段50-550Hz划分为N个连续的子段,N=10。其中,小于50Hz的按50Hz处理,大于550Hz的按550Hz处理。进一步,获取每个子段中包含的多帧第一音频数据的基频数据的数量{X1,X2…XN}为{4,2,2,3,3,1,5,2,1,2},根据上述数量可以设置第一音频向量为{4/25,2/25,2/25,3/25,3/25,1/25,5/25,2/25,1/25,2/25}。
通过本申请提供的实施例,通过对获取的第一清唱音频数据所包括的多帧第一音频数据中每一帧基频数据进行量化处理,获取在预定的基频段上每个子段中包含的多帧第一音频数据的基频数据的数量,从而获取用于表示第一清唱音频数据的第一音频向量,以便于根据该第一音频向量从音频文件集合中海量的音频文件中查找到与第一清唱音频数据相匹配的目标音频文件,从而达到向第一客户端准确推送更加符合用户自身音域特点的目标音频文件,进而提升用户通过所推送的目标音频文件进行演唱的演唱效果。
作为一种可选的方案,在将预定的基频段划分成N个连续的子段之前,还包括:
S1,每隔预定帧移从第一清唱音频数据中获取帧长相同的多帧第一音频数据,其中,预定帧移表示相邻两帧第一音频数据的起始位置的间隔;
S2,在多帧第一音频数据中每一帧第一音频数据对应的频谱上提取最大值作为用于表示音高的基频数据。
可选地,在本实施例中,上述预定帧移可以但不限于小于帧长。其中,预定帧移表示相邻两帧第一音频数据的起始位置的间隔。
例如,帧长为30ms,帧移为10ms,如图4所示,帧号为1的第一音频数据的帧长为30ms,范围为{0,30};帧号为2的第一音频数据的帧长为30ms,范围为{10,40},与帧号为1的第一音频数据的帧移为10ms,即{0,10};帧号为3的第一音频数据的帧长为30ms,范围为{20,50},与帧号为2的第一音频数据的帧移为10ms,即{10,20}。上述仅是一种示例,本实施例中对此不做任何限定。
进一步,在上述每一帧第一音频数据对应的频谱上提取最大值作为用于表示音高的基频数据,如图3所示的实心点,即为每一帧第一音频数据中频谱最大值。
通过本申请提供的实施例,通过每隔预定帧移从第一清唱音频数据中获取帧长相同的多帧第一音频数据,并从多帧第一音频数据中每一帧第一音频数据对应的频谱上提取最大值作为用于表示音高的基频数据,以便于服务器根据上述基频数据获取用于表示第一清唱音频数据的第一音频向量。
作为一种可选的方案,在获取第一客户端采集到的清唱音频数据之前,还包括:
S1,获取音频文件集合中每一个音频文件对应的Q个第二清唱音频数据,并将每一个音频文件作为当前音频文件分别执行以下步骤:
S12,每隔预定帧移从当前音频文件对应的每一个第二清唱音频数据中获取帧长相同的多帧第二音频数据,其中,预定帧移表示相邻两帧第二音频数据的起始位置的间隔,多帧第二音频数据为P帧第二音频数据;
S14,获取每一个第二清唱音频数据中每一帧第二音频数据上一个用于表示音高的基频数据;
S16,依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据,其中,每帧对应一个基频数据:从Q个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择一个基频数据作为第j帧对应的基频数据;
S18,将预定的基频段划分成N个连续的子段;
S20,获取每个子段中包含的P个基频数据中的基频数据的数量{Y1,Y2…YN},其中,Yi表示第j个子段中包含的P个基频数据中的基频数据的数量,1≤j≤N,Y1+Y2+…YN=P;
S22,将当前音频文件的第二音频向量{y1,y2,...,yN}设置为{Y1/P,Y2/P…YN/P}。
可选地,在本实施例中,音频文件集合(例如在线曲库)中可以包括的但不限于多个音频文件,其中,在获取第一客户端采集到的清唱音频数据之前,可以但不限于获取每一个音频文件对应数量的第二清唱音频数据。
具体结合以下示例进行说明,如图5所示,假设音频文件集合中包括S个音频文件,其中第i个音频文件对应Q个第二清唱音频数据。进一步,将每一个音频文件作为当前音频文件分别执行以下步骤,这里,当前音频文件以音频文件i为例进行说明,其中,音频文件i对应Q个第二清唱音频数据,Q=100:
每隔预定帧移10ms从音频文件i对应的每一个第二清唱音频数据中获取帧长为30ms的P帧第二音频数据,其中,P=100;获取每一个第二清唱音频数据中每一帧第二音频数据上一个用于表示音高的基频数据,如图6所示为某一个第二清唱音频数据的基频数据。
进一步,依次令j=1,2,…,100,分别对每帧第二音频数据执行以下操作,以得到待操作的清唱音频数据中的100个基频数据,其中,每帧对应一个基频数据:从100个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择一个基频数据作为第j帧对应的基频数据。也就是说,在对多个第二清唱音频数据中第j帧上的基频数据进行比对后,从中选择一个基频数据作为第j帧对应的基频数据,通过这种方式获取各帧上的基频数据以得到用于获取第二音频向量的待操作的清唱音频数据。
对获取到的待操作的清唱音频数据执行以下步骤:获取待操作的清唱音频数据中的100个基频数据在划分成N个连续的子段(N=10)后的预定的基频段上的每个子段中所包含的基频数据的数量{Y1,Y2…YN}为{2,3,5,6,…2},根据上述数量可以设置第二音频向量为{2/100,3/100…2/100}。
通过本申请提供的实施例,通过由每一个音频文件对应的Q个第二清唱数据获取与该音频文件对应的第二音频向量,以便于服务器根据第二音频向量与第一音频向量进行匹配,从而实现快速准确地查找到与第一客户端所采集的第一清唱音频数据对应的目标音频文件,进而达到提高音频文件推送的准确性的目的。
作为一种可选的方案,
S1,获取每一个第二清唱音频数据中每一帧第二音频数据上一个用于表示音高的基频数据包括:在每一帧第二音频数据对应的频谱上提取最大值作为用于表示音高的基频数据;
S2,依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据包括:
S22,根据每一个第二清唱音频数据中每一帧第二音频数据上用于表示音高的基频数据,从当前音频文件对应的Q个第二清唱音频数据中选择非0值的基频数据的个数靠前的R个第二清唱音频数据;
S24,依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据,其中,每帧对应一个基频数据:从R个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择取值为中间值的一个基频数据作为第j帧对应的基频数据。
可选地,在本实施例中,上述基频数据的取值可以但不限于在对采集到的基频数据进行3点中值滤波后得到。其中,上述非0值的基频数据可以但不限于中值滤波后得到的基频非0值。
具体结合以下示例进行说明,仍以音频文件i为例进行说明,其中,音频文件i对应Q个第二清唱音频数据,Q=100,每隔预定帧移10ms从音频文件i对应的每一个第二清唱音频数据中获取帧长为30ms的P帧第二音频数据,其中,P=100;在每一个第二清唱音频数据中每一帧第二音频数据对应的频谱上提取最大值作为用于表示音高的基频数据。对上述每帧执行以下步骤,以得到待操作的清唱音频数据中的100个基频数据:
从当前音频文件(即音频文件i)对应的100个第二清唱音频数据中选择非0值的基频数据的个数靠前的R个第二清唱音频数据,R=45;从45个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择取值为中间值的一个基频数据作为第j帧对应的基频数据。
例如,如图7所示,对45个第二清唱音频数据中帧号为1的第二音频数据上的基频数据进行排序,获取取值为中间值的一个基频数据,例如取值为中间值的一个基频数据所在的第二音频数据的标识为3,即,将标识为3的第二音频数据中第1帧上的基频数据作为待操作的清唱音频数据上第1帧上的基频数据;又例如,经排序将标识为3的第二音频数据中第2帧上的基频数据作为待操作的清唱音频数据上第2帧上的基频数据;又例如,经排序将标识为20的第二音频数据的第3帧上的基频数据作为待操作的清唱音频数据上第3帧上的基频数据,依次类推。通过这种方式得到用于获取第二音频向量的待操作的清唱音频数据中的100帧基频数据。
需要说明的是,在本实施例中,由于有些用户提供的清唱音频数据中会存在大量静音,而静音数据的取值是0,因而,通过上述方式可以将不完整的第二清唱音频数据过滤掉,从而保证根据第二清唱音频数据获取到的第二音频向量的准确性。
通过本申请提供的实施例,通过上述方式得到用于获取第二音频向量的基频数据,不仅可以实现对无效音频数据(如静音)的过滤,而且进一步可以保证利用上述过滤后的第二清唱音频数据得到更加准确的用于表示音频文件的第二音频向量。
作为一种可选的方案,根据清唱音频数据的音频向量从存储的音频文件集合中查找目标音频文件包括:
S1,在音频文件集合中查找第二音频向量与第一音频向量距离小于预定阈值的音频文件作为目标音频文件。
可选地,在本实施例中,上述第二音频向量与第一音频向量距离可以但不限于用于指示第一清唱音频数据与音频文件集合中各个音频文件的相似度。也就是说,将相似度小于预定阈值的音频文件作为目标音频文件推送给第一客户端。需要说明的是,上述用于表示二者相似度的距离可以包含多种计算方法,本实施例中对此不做任何限定。
通过本申请提供的实施例,通过比较音频文件集合中音频文件的第二音频向量与第一清唱音频数据的第一音频向量的距离,来查找与第一清唱音频数据的音域相匹配的目标音频文件,从而实现提高向第一客户端推送音频文件的准确性。
作为一种可选的方案,在音频文件集合中查找第二音频向量与第一音频向量距离小于预定阈值的音频文件作为目标音频文件包括:
S1,通过以下方式获取音频文件集合中第j个音频文件的距离lj:
其中,xi为第一音频向量中的第i个向量值,yi为第二音频向量中的第i个向量值,zi为预定权重,i、j为自然数,N为在预定的基频段划分的连续的子段的个数,1≤i≤N。
可选地,在本实施例中,上述预定权重zi可以但不限于用于调整高音或低音区对用户的要求,例如,该预定权重可以为:{10,5,2,1,1,1,1,2,5,10}。
通过本申请提供的实施例,通过上述方式获取与第一清唱音频数据的第一音频向量相匹配的第二音频向量,进而获取对应的音频文件作为推送给第一客户端的目标音频文件,以保证所推送的目标音频文件与第一清唱音频数据的音域向匹配,达到提升用户演唱目标音频文件的演唱效果。
作为一种可选的方案,将查找到的目标音频文件推送给第一客户端包括:
S1,获取目标音频文件的热度;
S2,按照热度对目标音频文件进行排序,以得到待推送的目标音频文件列表,其中,热度高的目标音频文件在目标音频文件列表中的位置位于热度低的目标音频文件在目标音频文件列表中的位置之前;
S3,向第一客户端推送目标音频文件列表。
可选地,在本实施例中,上述热度可以但不限于通过以下至少一种方式获取:搜索量、点播量。也就是说,在获取到多个目标音频文件后,还可以结合各个目标音频文件的热度,按照预定顺序推送给第一客户端与第一清唱音频数据对应的目标音频文件列表,其中,热度高的目标音频文件在目标音频文件列表中的位置位于热度低的目标音频文件在目标音频文件列表中的位置之前。
通过本申请提供的实施例,通过上述结合热度进行推送的方式,进一步方便了用户获取适合用户音域特点,并符合用户喜好的音频文件,以达到改善用户体验的效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述音频文件的推送方法的音频文件的推送装置,如图8所示,该装置包括:
1)第一获取单元802,用于获取第一客户端采集到的第一清唱音频数据,其中,第一清唱音频数据包括多帧第一音频数据;
2)第二获取单元804,用于根据多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量;
3)查找单元806,用于根据第一音频向量从存储的音频文件集合中查找目标音频文件,其中,目标音频文件的第二音频向量与第一音频向量相匹配;
4)推送单元808,用于将查找到的目标音频文件推送给第一客户端。
可选地,在本实施例中,上述音频文件的推送装置可以但不限于应用于网络在线推送音频文件的过程中,例如,如图1所示由服务器104向终端102上安装的第一客户端推送在线k歌所需的音频文件(如伴奏歌曲)。上述仅是一种示例,本实施例中对此不作任何限定。在本实施例中,在服务器104获取终端102上安装的第一客户端采集到的第一清唱音频数据后,其中,第一清唱音频数据包括多帧第一音频数据;可以根据上述多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量;进一步,根据第一音域向量从存储的音频文件集合中查找目标音频文件,其中,目标音频文件的第二音频向量与第一音频向量相匹配;并将查找到的该目标音频文件推送给第一客户端。
也就是说,服务器104在获取终端102上的第一客户端采集到的用户的第一清唱音频数据后,可以在包含多个音频文件的音频文件集合中查找到与所采集的第一清唱音频数据的音域相适应的目标音频文件,以使用户通过该目标音频文件完成在线k歌。需要说明的是,由于所推送的目标音频文件与用户自身音域相匹配,因而,通过本实施例中提供的音频文件的推送装置所推送的目标音频文件,将更加符合用户自身的音域特点,从而实现用户在通过本实施例所推送的目标音频文件进行演唱时,演唱效果更佳,进而达到提高音频文件推送的准确性的效果,并改善了用户体验,以克服现有技术中通过搜索量或点播量的方式推送歌曲所造成的推送准确性较低的问题。
可选地,在本实施例中,上述第一清唱音频数据可以包括麦克风收录的人声音频数据,例如,上述麦克风收录的人声音频数据可以为但不限于以下至少之一:无伴唱时通过麦克风收录的人声音频数据、有伴唱时通过麦克风定向收录的人声音频数据。其中,上述第一清唱音频数据中可以包括但不限于:按照预定帧长划分的多帧第一音频数据,每一帧第一音频数据中包含用于表示音高的基频数据。需要说明的是,上述基频数据的频谱位于预定的基频段内,其中,上述预定的基频段可以包括但不限于人类声带振动的频率所在的基频段,如50-550Hz。
可选地,在本实施例中,上述第一音频向量和第二音频向量可以但不限于为在预定的基频段内划分成N个连续的子段后,根据各个子段上统计的基频数据的数量得到用于表示音域的一维N向量。例如,包括M帧第一音频数据的第一清唱音频数据在N个子段中的基频数据的数量为{X1,X2…XN},其中,X1+X2+…XN=M;则可以但不限于得到对应的第一音频向量{x1,x2,...,xN}为{X1/M,X2/M…XN/M};同理,包括P帧第二音频数据的第二清唱音频数据在N个子段中的基频数据的数量为{Y1,Y2…YN},其中,Y1+Y2+…YN=P;则可以但不限于得到对应的第二音频向量{y1,y2,...,yN}为{Y1/P,Y2/P…YN/P}。上述仅是一种示例,本实施例中对此不做任何限定。
需要说明的是,在本实施例中,上述音频文件集合中每一个音频文件对应的第二音频向量可以但不限于根据与每一个音频文件对应的Q个第二清唱音频数据得到。可选地,在本实施例中,在获取第一客户端采集到的清唱音频数据之前,还包括:获取音频文件集合中每一个音频文件对应的Q个第二清唱音频数据,根据上述Q个第二清唱音频数据中每一个第二清唱音频数据中的多帧第二音频数据上的基频数据获取对应的音频文件的第二音频向量。
可选地,在本实施例中,根据清唱音频数据的音频向量从存储的音频文件集合中查找目标音频文件包括:S1,在音频文件集合中查找第二音频向量与第一音频向量距离小于预定阈值的音频文件作为目标音频文件。通过比对每一个音频文件的第二音频向量与第一音频向量的方式来查找适合用户音域演唱的目标音频文件,从而实现为用户推送更加准确的音频文件的效果。
可选地,在本实施例中,将查找到的目标音频文件推送给第一客户端包括:结合查找到的目标音频文件的热度(如搜索量和/或点播量),按照热度向第一客户端推送包含查找到的目标音频文件的目标音频文件列表,其中,热度高的目标音频文件在目标音频文件列表中的位置位于热度低的目标音频文件在目标音频文件列表中的位置之前。
通过本申请提供的实施例,在获取的第一客户端采集到的用户的第一清唱音频数据后,其中,第一清唱音频数据包括多帧第一音频数据;可以根据上述多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量;进一步,根据第一音域向量从存储的音频文件集合中查找目标音频文件,其中,目标音频文件的第二音频向量与第一音频向量相匹配;并将查找到的该目标音频文件推送给第一客户端。通过上述音频文件的推送装置根据第一客户端采集到的用户的第一清唱音频数据获取用于表示用户的第一清唱音频数据的音域的第一音频向量,进一步通过在音频文件集合中查找到与第一音频向量相匹配的第二音频向量对应的目标音频文件,实现向第一客户端准确推送更加符合用户自身的音域特点的目标音频文件,以达到提高音频文件推送的准确性的效果,进而克服了现有技术中仅仅通过搜索量或点播量的方式推送歌曲所造成的推送准确性较低的问题。进一步,通过向用户推送符合用户音域的目标音频文件,还将使用户在通过目标音频文件进行演唱时,达到更佳的演唱效果,以改善用户通过上述推送装置获取音频文件的体验。
作为一种可选的方案,多帧第一音频数据为M帧第一音频数据,每一帧第一音频数据包括一个基频数据,其中,如图9所示,第二获取单元804包括:
1)划分模块902,用于将预定的基频段划分成N个连续的子段;
2)第一获取模块904,用于获取每个子段中包含的多帧第一音频数据的基频数据的数量{X1,X2…XN},其中,Xi表示第i个子段中包含的多帧第一音频数据的基频数据的数量,1≤i≤N,X1+X2+…XN=M;
3)设置模块906,用于将第一音频向量{x1,x2,...,xN}设置为{X1/M,X2/M…XN/M}。
可选地,在本实施例中,上述第一客户端采集到的第一清唱音频数据可以包括但不限于一个或多个。其中,多个第一清唱音频数据可以为关于同一个音频文件的多个第一清唱音频数据,例如,第一客户端采集到关于同一首歌曲的F个第一清唱音频数据;也可以为分别关于不同音频文件的多个第一清唱音频数据,例如,第一客户端采集到分别针对H首歌曲的H个第一清唱音频数据。对多个第一清唱音频数据中的每一个第一清唱音频数据所执行的操作相同,本实施例中对此不做任何限定。
具体结合以下示例进行说明,假设第一清唱音频数据为一个,第一清唱音频数据包括多帧第一音频数据为M帧第一音频数据,如图3所示,M=25,每一帧第一音频数据包括一个基频数据,例如,该基频数据为每一帧第一音频数据的最大值。将预定的基频段50-550Hz划分为N个连续的子段,N=10。其中,小于50Hz的按50Hz处理,大于550Hz的按550Hz处理。进一步,获取每个子段中包含的多帧第一音频数据的基频数据的数量{X1,X2…XN}为{4,2,2,3,3,1,5,2,1,2},根据上述数量可以设置第一音频向量为{4/25,2/25,2/25,3/25,3/25,1/25,5/25,2/25,1/25,2/25}。
通过本申请提供的实施例,通过对获取的第一清唱音频数据所包括的多帧第一音频数据中每一帧基频数据进行量化处理,获取在预定的基频段上每个子段中包含的多帧第一音频数据的基频数据的数量,从而获取用于表示第一清唱音频数据的第一音频向量,以便于根据该第一音频向量从音频文件集合中海量的音频文件中查找到与第一清唱音频数据相匹配的目标音频文件,从而达到向第一客户端准确推送更加符合用户自身音域特点的目标音频文件,进而提升用户通过所推送的目标音频文件进行演唱的演唱效果。
作为一种可选的方案,还包括:
1)第二获取模块,用于在将预定的基频段划分成N个连续的子段之前,每隔预定帧移从第一清唱音频数据中获取帧长相同的多帧第一音频数据,其中,预定帧移表示相邻两帧第一音频数据的起始位置的间隔;
2)提取模块,用于在多帧第一音频数据中每一帧第一音频数据对应的频谱上提取最大值作为用于表示音高的基频数据。
可选地,在本实施例中,上述预定帧移可以但不限于小于帧长。其中,预定帧移表示相邻两帧第一音频数据的起始位置的间隔。
例如,帧长为30ms,帧移为10ms,如图4所示,帧号为1的第一音频数据的帧长为30ms,范围为{0,30};帧号为2的第一音频数据的帧长为30ms,范围为{10,40},与帧号为1的第一音频数据的帧移为10ms,即{0,10};帧号为3的第一音频数据的帧长为30ms,范围为{20,50},与帧号为2的第一音频数据的帧移为10ms,即{10,20}。上述仅是一种示例,本实施例中对此不做任何限定。
进一步,在上述每一帧第一音频数据对应的频谱上提取最大值作为用于表示音高的基频数据,如图3所示的实心点,即为每一帧第一音频数据中频谱最大值。
通过本申请提供的实施例,通过每隔预定帧移从第一清唱音频数据中获取帧长相同的多帧第一音频数据,并从多帧第一音频数据中每一帧第一音频数据对应的频谱上提取最大值作为用于表示音高的基频数据,以便于服务器根据上述基频数据获取用于表示第一清唱音频数据的第一音频向量。
作为一种可选的方案,还包括:
1)第三获取单元,用于在获取第一客户端采集到的清唱音频数据之前,获取音频文件集合中每一个音频文件对应的Q个第二清唱音频数据;
2)处理单元,用于将每一个音频文件作为当前音频文件分别执行以下步骤:
S1,每隔预定帧移从当前音频文件对应的每一个第二清唱音频数据中获取帧长相同的多帧第二音频数据,其中,预定帧移表示相邻两帧第二音频数据的起始位置的间隔,多帧第二音频数据为P帧第二音频数据;
S2,获取每一个第二清唱音频数据中每一帧第二音频数据上一个用于表示音高的基频数据;
S3,依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据,其中,每帧对应一个基频数据:从Q个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择一个基频数据作为第j帧对应的基频数据;
S4,将预定的基频段划分成N个连续的子段;
S5,获取每个子段中包含的P个基频数据中的基频数据的数量{Y1,Y2…YN},其中,Yi表示第j个子段中包含的P个基频数据中的基频数据的数量,1≤j≤N,Y1+Y2+…YN=P;
S6,将当前音频文件的第二音频向量{y1,y2,...,yN}设置为{Y1/P,Y2/P…YN/P}。
可选地,在本实施例中,音频文件集合(例如在线曲库)中可以包括的但不限于多个音频文件,其中,在获取第一客户端采集到的清唱音频数据之前,可以但不限于获取每一个音频文件对应数量的第二清唱音频数据。
具体结合以下示例进行说明,如图5所示,假设音频文件集合中包括S个音频文件,其中第i个音频文件对应Q个第二清唱音频数据。进一步,将每一个音频文件作为当前音频文件分别执行以下步骤,这里,当前音频文件以音频文件i为例进行说明,其中,音频文件i对应Q个第二清唱音频数据,Q=100:
每隔预定帧移10ms从音频文件i对应的每一个第二清唱音频数据中获取帧长为30ms的P帧第二音频数据,其中,P=100;获取每一个第二清唱音频数据中每一帧第二音频数据上一个用于表示音高的基频数据,如图6所示为某一个第二清唱音频数据的基频数据。
进一步,依次令j=1,2,…,100,分别对每帧第二音频数据执行以下操作,以得到待操作的清唱音频数据中的100个基频数据,其中,每帧对应一个基频数据:从100个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择一个基频数据作为第j帧对应的基频数据。也就是说,在对多个第二清唱音频数据中第j帧上的基频数据进行比对后,从中选择一个基频数据作为第j帧对应的基频数据,通过这种方式获取各帧上的基频数据以得到用于获取第二音频向量的待操作的清唱音频数据。
对获取到的待操作的清唱音频数据执行以下步骤:获取待操作的清唱音频数据中的100个基频数据在划分成N个连续的子段(N=10)后的预定的基频段上的每个子段中所包含的基频数据的数量{Y1,Y2…YN}为{2,3,5,6,…2},根据上述数量可以设置第二音频向量为{2/100,3/100…2/100}。
通过本申请提供的实施例,通过由每一个音频文件对应的Q个第二清唱数据获取与该音频文件对应的第二音频向量,以便于服务器根据第二音频向量与第一音频向量进行匹配,从而实现快速准确地查找到与第一客户端所采集的第一清唱音频数据对应的目标音频文件,进而达到提高音频文件推送的准确性的目的。
作为一种可选的方案,
1)处理单元通过以下步骤实现获取每一个第二清唱音频数据中每一帧第二音频数据上一个用于表示音高的基频数据:在每一帧第二音频数据对应的频谱上提取最大值作为用于表示音高的基频数据;
2)处理单元通过以下步骤实现依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据:根据每一个第二清唱音频数据中每一帧第二音频数据上用于表示音高的基频数据,从当前音频文件对应的Q个第二清唱音频数据中选择非0值的基频数据的个数靠前的R个第二清唱音频数据;依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据,其中,每帧对应一个基频数据:从R个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择取值为中间值的一个基频数据作为第j帧对应的基频数据。
可选地,在本实施例中,上述基频数据的取值可以但不限于在对采集到的基频数据进行3点中值滤波后得到。其中,上述非0值的基频数据可以但不限于中值滤波后得到的基频非0值。
具体结合以下示例进行说明,仍以音频文件i为例进行说明,其中,音频文件i对应Q个第二清唱音频数据,Q=100,每隔预定帧移10ms从音频文件i对应的每一个第二清唱音频数据中获取帧长为30ms的P帧第二音频数据,其中,P=100;在每一个第二清唱音频数据中每一帧第二音频数据对应的频谱上提取最大值作为用于表示音高的基频数据。对上述每帧执行以下步骤,以得到待操作的清唱音频数据中的100个基频数据:
从当前音频文件(即音频文件i)对应的100个第二清唱音频数据中选择非0值的基频数据的个数靠前的R个第二清唱音频数据,R=45;从45个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择取值为中间值的一个基频数据作为第j帧对应的基频数据。
例如,如图7所示,对45个第二清唱音频数据中帧号为1的第二音频数据上的基频数据进行排序,获取取值为中间值的一个基频数据,例如取值为中间值的一个基频数据所在的第二音频数据的标识为3,即,将标识为3的第二音频数据中第1帧上的基频数据作为待操作的清唱音频数据上第1帧上的基频数据;又例如,经排序将标识为3的第二音频数据中第2帧上的基频数据作为待操作的清唱音频数据上第2帧上的基频数据;又例如,经排序将标识为20的第二音频数据的第3帧上的基频数据作为待操作的清唱音频数据上第3帧上的基频数据,依次类推。通过这种方式得到用于获取第二音频向量的待操作的清唱音频数据中的100帧基频数据。
需要说明的是,在本实施例中,由于有些用户提供的清唱音频数据中会存在大量静音,而静音数据的取值是0,因而,通过上述方式可以将不完整的第二清唱音频数据过滤掉,从而保证根据第二清唱音频数据获取到的第二音频向量的准确性。
通过本申请提供的实施例,通过上述方式得到用于获取第二音频向量的基频数据,不仅可以实现对无效音频数据(如静音)的过滤,而且进一步可以保证利用上述过滤后的第二清唱音频数据得到更加准确的用于表示音频文件的第二音频向量。
作为一种可选的方案,查找单元806包括:
1)查找模块,用于在音频文件集合中查找第二音频向量与第一音频向量距离小于预定阈值的音频文件作为目标音频文件。
可选地,在本实施例中,上述第二音频向量与第一音频向量距离可以但不限于用于指示第一清唱音频数据与音频文件集合中各个音频文件的相似度。也就是说,将相似度小于预定阈值的音频文件作为目标音频文件推送给第一客户端。需要说明的是,上述用于表示二者相似度的距离可以包含多种计算方法,本实施例中对此不做任何限定。
通过本申请提供的实施例,通过比较音频文件集合中音频文件的第二音频向量与第一清唱音频数据的第一音频向量的距离,来查找与第一清唱音频数据的音域相匹配的目标音频文件,从而实现提高向第一客户端推送音频文件的准确性。
作为一种可选的方案,查找模块通过以下方式获取音频文件集合中第j个音频文件的距离lj:
其中,xi为第一音频向量中的第i个向量值,yi为第二音频向量中的第i个向量值,zi为预定权重,i、j为自然数,N为在预定的基频段划分的连续的子段的个数,1≤i≤N。
可选地,在本实施例中,上述预定权重zi可以但不限于用于调整高音或低音区对用户的要求,例如,该预定权重可以为:{10,5,2,1,1,1,1,2,5,10}。
通过本申请提供的实施例,通过上述方式获取与第一清唱音频数据的第一音频向量相匹配的第二音频向量,进而获取对应的音频文件作为推送给第一客户端的目标音频文件,以保证所推送的目标音频文件与第一清唱音频数据的音域向匹配,达到提升用户演唱目标音频文件的演唱效果。
作为一种可选的方案,推送单元包括:
1)第三获取模块,用于获取目标音频文件的热度;
2)排序模块,用于按照热度对目标音频文件进行排序,以得到待推送的目标音频文件列表,其中,热度高的目标音频文件在目标音频文件列表中的位置位于热度低的目标音频文件在目标音频文件列表中的位置之前;
3)推送模块,用于向第一客户端推送目标音频文件列表。
可选地,在本实施例中,上述热度可以但不限于通过以下至少一种方式获取:搜索量、点播量。也就是说,在获取到多个目标音频文件后,还可以结合各个目标音频文件的热度,按照预定顺序推送给第一客户端与第一清唱音频数据对应的目标音频文件列表,其中,热度高的目标音频文件在目标音频文件列表中的位置位于热度低的目标音频文件在目标音频文件列表中的位置之前。
通过本申请提供的实施例,通过上述结合热度进行推送的方式,进一步方便了用户获取适合用户音域特点,并符合用户喜好的音频文件,以达到改善用户体验的效果。
实施例3
根据本发明实施例,还提供了一种用于实施上述音频文件的推送方法的音频文件的推送服务器,如图10所示,该服务器包括:
1)通讯接口1002,设置为获取第一客户端采集到的第一清唱音频数据,其中,第一清唱音频数据包括多帧第一音频数据;还设置为获取音频文件集合中的音频文件;还设置为将查找到的目标音频文件推送给第一客户端。
2)存储器1004,与通讯接口1002连接,设置为存储第一清唱音频数据及音频文件集合中的音频文件;
3)处理器1006,与通讯接口1002及存储器1004连接,设置为根据多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量;还设置为根据第一音频向量从存储的音频文件集合中查找目标音频文件,其中,目标音频文件的第二音频向量与第一音频向量相匹配。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取第一客户端采集到的第一清唱音频数据,其中,第一清唱音频数据包括多帧第一音频数据;
S2,根据多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示第一清唱音频数据的音域的第一音频向量;
S3,根据第一音频向量从存储的音频文件集合中查找目标音频文件,其中,目标音频文件的第二音频向量与第一音频向量相匹配;
S4,将查找到的目标音频文件推送给第一客户端。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种音频文件的推送方法,其特征在于,包括:
获取第一客户端采集到的第一清唱音频数据,其中,所述第一清唱音频数据包括多帧第一音频数据;
根据所述多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示所述第一清唱音频数据的音域的第一音频向量,包括:将预定的基频段划分成N个连续的子段,根据每个所述子段中基频数据的数量得到用于表示音域的一维N向量;
根据所述第一音频向量从存储的音频文件集合中查找目标音频文件,其中,所述目标音频文件的第二音频向量与所述第一音频向量相匹配;
将查找到的所述目标音频文件推送给所述第一客户端。
2.根据权利要求1所述的方法,其特征在于,所述多帧第一音频数据为M帧第一音频数据,所述每一帧第一音频数据包括一个所述基频数据,其中,根据每个所述子段中基频数据的数量得到用于表示音域的一维N向量包括:
获取每个所述子段中包含的所述多帧第一音频数据的基频数据的数量{X1,X2…XN},其中,Xi表示第i个子段中包含的所述多帧第一音频数据的基频数据的数量,1≤i≤N,X1+X2+…XN=M;
将所述第一音频向量{x1,x2,...,xN}设置为{X1/M,X2/M…XN/M}。
3.根据权利要求2所述的方法,其特征在于,在所述将预定的基频段划分成N个连续的子段之前,还包括:
每隔预定帧移从所述第一清唱音频数据中获取帧长相同的所述多帧第一音频数据,其中,所述预定帧移表示相邻两帧所述第一音频数据的起始位置的间隔;
在所述多帧第一音频数据中每一帧第一音频数据对应的频谱上提取最大值作为所述用于表示音高的基频数据。
4.根据权利要求3所述的方法,其特征在于,所述预定帧移小于所述帧长。
5.根据权利要求1所述的方法,其特征在于,在获取第一客户端采集到的清唱音频数据之前,还包括:
获取所述音频文件集合中每一个音频文件对应的Q个第二清唱音频数据,并将每一个音频文件作为当前音频文件分别执行以下步骤:
每隔预定帧移从所述当前音频文件对应的每一个第二清唱音频数据中获取帧长相同的多帧第二音频数据,其中,所述预定帧移表示相邻两帧所述第二音频数据的起始位置的间隔,所述多帧第二音频数据为P帧第二音频数据;
获取所述每一个第二清唱音频数据中每一帧第二音频数据上一个用于表示音高的基频数据;
依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据,其中,每帧对应一个基频数据:从Q个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择一个基频数据作为第j帧对应的基频数据;
将预定的基频段划分成N个连续的子段;
获取每个所述子段中包含的所述P个基频数据中的基频数据的数量{Y1,Y2…YN},其中,Yi表示第j个子段中包含的所述P个基频数据中的基频数据的数量,1≤j≤N,Y1+Y2+…YN=P;
将所述当前音频文件的第二音频向量{y1,y2,...,yN}设置为{Y1/P,Y2/P…YN/P}。
6.根据权利要求5所述的方法,其特征在于,
获取所述每一个第二清唱音频数据中每一帧第二音频数据上一个用于表示音高的基频数据包括:在每一帧所述第二音频数据对应的频谱上提取最大值作为所述用于表示音高的基频数据;
依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据包括:
根据所述每一个第二清唱音频数据中每一帧第二音频数据上用于表示音高的基频数据,从所述当前音频文件对应的所述Q个第二清唱音频数据中选择非0值的基频数据的个数靠前的R个第二清唱音频数据;
依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据,其中,每帧对应一个基频数据:从所述R个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择取值为中间值的一个基频数据作为所述第j帧对应的基频数据。
7.根据权利要求1所述的方法,其特征在于,根据所述清唱音频数据的所述音频向量从存储的音频文件集合中查找目标音频文件包括:
在所述音频文件集合中查找所述第二音频向量与所述第一音频向量距离小于预定阈值的音频文件作为所述目标音频文件。
8.根据权利要求1所述的方法,其特征在于,所述将查找到的所述目标音频文件推送给所述第一客户端包括:
获取所述目标音频文件的热度;
按照所述热度对所述目标音频文件进行排序,以得到待推送的目标音频文件列表,其中,热度高的所述目标音频文件在所述目标音频文件列表中的位置位于热度低的所述目标音频文件在所述目标音频文件列表中的位置之前;
向所述第一客户端推送所述目标音频文件列表。
9.一种音频文件的推送装置,其特征在于,包括:
第一获取单元,用于获取第一客户端采集到的第一清唱音频数据,其中,所述第一清唱音频数据包括多帧第一音频数据;
第二获取单元,用于根据所述多帧第一音频数据中每一帧第一音频数据上用于表示音高的基频数据获取用于表示所述第一清唱音频数据的音域的第一音频向量,包括:将预定的基频段划分成N个连续的子段,根据每个所述子段中基频数据的数量得到用于表示音域的一维N向量;
查找单元,用于根据所述第一音频向量从存储的音频文件集合中查找目标音频文件,其中,所述目标音频文件的第二音频向量与所述第一音频向量相匹配;
推送单元,用于将查找到的所述目标音频文件推送给所述第一客户端。
10.根据权利要求9所述的装置,其特征在于,所述多帧第一音频数据为M帧第一音频数据,所述每一帧第一音频数据包括一个所述基频数据,其中,所述第二获取单元包括:
划分模块,用于将预定的基频段划分成N个连续的子段;
第一获取模块,用于获取每个所述子段中包含的所述多帧第一音频数据的基频数据的数量{X1,X2…XN},其中,Xi表示第i个子段中包含的所述多帧第一音频数据的基频数据的数量,1≤i≤N,X1+X2+…XN=M;
设置模块,用于将所述第一音频向量{x1,x2,...,xN}设置为{X1/M,X2/M…XN/M}。
11.根据权利要求10所述的装置,其特征在于,还包括:
第二获取模块,用于在所述将预定的基频段划分成N个连续的子段之前,每隔预定帧移从所述第一清唱音频数据中获取帧长相同的所述多帧第一音频数据,其中,所述预定帧移表示相邻两帧所述第一音频数据的起始位置的间隔;
提取模块,用于在所述多帧第一音频数据中每一帧第一音频数据对应的频谱上提取最大值作为所述用于表示音高的基频数据。
12.根据权利要求9所述的装置,其特征在于,还包括:
第三获取单元,用于在获取第一客户端采集到的清唱音频数据之前,获取所述音频文件集合中每一个音频文件对应的Q个第二清唱音频数据;
处理单元,用于将每一个音频文件作为当前音频文件分别执行以下步骤:
每隔预定帧移从所述当前音频文件对应的每一个第二清唱音频数据中获取帧长相同的多帧第二音频数据,其中,所述预定帧移表示相邻两帧所述第二音频数据的起始位置的间隔,所述多帧第二音频数据为P帧第二音频数据;
获取所述每一个第二清唱音频数据中每一帧第二音频数据上一个用于表示音高的基频数据;
依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据,其中,每帧对应一个基频数据:从Q个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择一个基频数据作为第j帧对应的基频数据;
将预定的基频段划分成N个连续的子段;
获取每个所述子段中包含的所述P个基频数据中的基频数据的数量{Y1,Y2…YN},其中,Yi表示第j个子段中包含的所述P个基频数据中的基频数据的数量,1≤j≤N,Y1+Y2+…YN=P;
将所述当前音频文件的第二音频向量{y1,y2,...,yN}设置为{Y1/P,Y2/P…YN/P}。
13.根据权利要求12所述的装置,其特征在于,
所述处理单元通过以下步骤实现获取所述每一个第二清唱音频数据中每一帧第二音频数据上一个用于表示音高的基频数据:在每一帧所述第二音频数据对应的频谱上提取最大值作为所述用于表示音高的基频数据;
所述处理单元通过以下步骤实现依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据:根据所述每一个第二清唱音频数据中每一帧第二音频数据上用于表示音高的基频数据,从所述当前音频文件对应的所述Q个第二清唱音频数据中选择非0值的基频数据的个数靠前的R个第二清唱音频数据;依次令j=1,2,…,P,分别对每帧执行以下操作,以得到P个基频数据,其中,每帧对应一个基频数据:从所述R个第二清唱音频数据中的第j帧第二音频数据的基频数据中选择取值为中间值的一个基频数据作为所述第j帧对应的基频数据。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510991634.2A CN106919583B (zh) | 2015-12-25 | 2015-12-25 | 音频文件的推送方法及装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510991634.2A CN106919583B (zh) | 2015-12-25 | 2015-12-25 | 音频文件的推送方法及装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN106919583A CN106919583A (zh) | 2017-07-04 |
| CN106919583B true CN106919583B (zh) | 2020-11-10 |
Family
ID=59456977
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201510991634.2A Active CN106919583B (zh) | 2015-12-25 | 2015-12-25 | 音频文件的推送方法及装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN106919583B (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108182227B (zh) * | 2017-12-27 | 2020-11-03 | 广州酷狗计算机科技有限公司 | 伴奏音频推荐方法、装置和计算机可读存储介质 |
| CN109710797B (zh) * | 2018-11-14 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 音频文件的推送方法、装置、电子装置和存储介质 |
| CN112417201A (zh) * | 2019-08-22 | 2021-02-26 | 北京峰趣互联网信息服务有限公司 | 音频信息推送方法、系统、电子设备和计算机可读介质 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2006039992A1 (de) * | 2004-10-11 | 2006-04-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Extraktion einer einem audiosignal zu grunde liegenden melodie |
| CN201397672Y (zh) * | 2009-03-23 | 2010-02-03 | 北京派瑞根科技开发有限公司 | 乐曲学习系统 |
| CN103955490A (zh) * | 2014-04-16 | 2014-07-30 | 华为技术有限公司 | 一种播放音频的方法和设备 |
| CN103970802A (zh) * | 2013-02-05 | 2014-08-06 | 百度在线网络技术(北京)有限公司 | 一种歌曲推荐的方法及装置 |
| CN103974143A (zh) * | 2014-05-20 | 2014-08-06 | 北京速能数码网络技术有限公司 | 一种生成媒体数据的方法和设备 |
| US9122753B2 (en) * | 2011-04-11 | 2015-09-01 | Samsung Electronics Co., Ltd. | Method and apparatus for retrieving a song by hummed query |
| CN105022744A (zh) * | 2014-04-24 | 2015-11-04 | 上海京知信息科技有限公司 | 一种基于动态规划的哼唱旋律提取匹配检索方法 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI426501B (zh) * | 2010-11-29 | 2014-02-11 | Inst Information Industry | 旋律辨識方法與其裝置 |
-
2015
- 2015-12-25 CN CN201510991634.2A patent/CN106919583B/zh active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2006039992A1 (de) * | 2004-10-11 | 2006-04-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Extraktion einer einem audiosignal zu grunde liegenden melodie |
| CN201397672Y (zh) * | 2009-03-23 | 2010-02-03 | 北京派瑞根科技开发有限公司 | 乐曲学习系统 |
| US9122753B2 (en) * | 2011-04-11 | 2015-09-01 | Samsung Electronics Co., Ltd. | Method and apparatus for retrieving a song by hummed query |
| CN103970802A (zh) * | 2013-02-05 | 2014-08-06 | 百度在线网络技术(北京)有限公司 | 一种歌曲推荐的方法及装置 |
| CN103955490A (zh) * | 2014-04-16 | 2014-07-30 | 华为技术有限公司 | 一种播放音频的方法和设备 |
| CN105022744A (zh) * | 2014-04-24 | 2015-11-04 | 上海京知信息科技有限公司 | 一种基于动态规划的哼唱旋律提取匹配检索方法 |
| CN103974143A (zh) * | 2014-05-20 | 2014-08-06 | 北京速能数码网络技术有限公司 | 一种生成媒体数据的方法和设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN106919583A (zh) | 2017-07-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2791935B1 (en) | Low complexity repetition detection in media data | |
| EP2659480B1 (en) | Repetition detection in media data | |
| CN106652997B (zh) | 一种音频合成的方法及终端 | |
| US20130226957A1 (en) | Methods, Systems, and Media for Identifying Similar Songs Using Two-Dimensional Fourier Transform Magnitudes | |
| US20130091167A1 (en) | Methods, systems, and media for identifying similar songs using jumpcodes | |
| CN105741835B (zh) | 一种音频信息处理方法及终端 | |
| US8865993B2 (en) | Musical composition processing system for processing musical composition for energy level and related methods | |
| CN104395953A (zh) | 来自音乐音频信号的拍子、和弦和强拍的评估 | |
| CN105825872B (zh) | 歌曲的难度确定方法和装置 | |
| CN106157979B (zh) | 一种获取人声音高数据的方法和装置 | |
| CN106919583B (zh) | 音频文件的推送方法及装置 | |
| CN110688520A (zh) | 音频特征提取方法、装置及介质 | |
| CN106898339A (zh) | 一种歌曲的合唱方法及终端 | |
| CN105718486A (zh) | 在线哼唱检索方法及系统 | |
| KR101813704B1 (ko) | 사용자 음색 분석 장치 및 음색 분석 방법 | |
| Prockup et al. | Modeling musical rhythmatscale with the music genome project | |
| CN111986698A (zh) | 音频片段的匹配方法、装置、计算机可读介质及电子设备 | |
| CN113066512B (zh) | 佛教音乐识别方法、装置、设备及存储介质 | |
| CN111462775B (zh) | 音频相似度确定方法、装置、服务器及介质 | |
| WO2016102738A1 (en) | Similarity determination and selection of music | |
| CN105575400A (zh) | 一种获取歌曲信息的方法、终端、服务器和系统 | |
| CN107133344B (zh) | 一种数据处理方法及装置 | |
| CN106503181B (zh) | 一种音频数据处理方法及装置 | |
| EP3644306B1 (en) | Methods for analyzing musical compositions, computer-based system and machine readable storage medium | |
| CN107025902B (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 | ||
| CP02 | Change in the address of a patent holder |
Address after: No. 315, Huangpu Avenue middle, Tianhe District, Guangzhou City, Guangdong Province Patentee after: GUANGZHOU KUGOU COMPUTER TECHNOLOGY Co.,Ltd. Address before: 510000 room 1301, building 2, No.16 Keyun Road, Tianhe District, Guangzhou City, Guangdong Province Patentee before: GUANGZHOU KUGOU COMPUTER TECHNOLOGY Co.,Ltd. |
|
| CP02 | Change in the address of a patent holder |