一种歌曲同步方法及系统与流程

文档序号:14911328发布日期:2018-07-10 23:29阅读:244来源:国知局

本发明涉及音乐检索技术领域,尤其涉及一种歌曲同步方法及系统。



背景技术:

在用户收听的歌曲中,有很大一部分是用户经过千辛万苦收集到、并非常喜欢的;用户希望在不同的设备上用同一款软件进行听歌时,都能听到该歌曲。常用的听歌软件存在以下两个缺点:1、软件不识别的用户本地歌曲不能同步;2、软件识别用户本地歌曲错误,导致同步的不是同一首歌。

因此,常用的听歌软件不能满足用户的需求。



技术实现要素:

本发明实施例提供一种歌曲同步方法及系统,可以使得用户在不同的设备上用同一款听歌软件进行听歌时,实现歌曲列表同步。

第一方面,本发明实施例提供了一种歌曲同步方法,该方法包括:确定用户收听的第一歌曲的指纹特征,其中,所述第一歌曲的指纹特征通过对所述第一歌曲的频谱特征采样得到,所述指纹特征包括至少一个指纹,每个指纹反映相邻两个采样时间点之间的频谱特征差异;根据所述第一歌曲的指纹特征和听歌软件的服务器中保存的歌曲指纹特征,将所述第一歌曲同步到所述用户在所述听歌软件的收听列表,其中,所述用户收听列表为所述用户在所述听歌软件中候选收听歌曲的列表。

可选地,所述确定用户收听的第一歌曲的指纹特征,包括:确定所述用户收听的第一歌曲的频谱特征;将所述第一歌曲的格式转换成wav格式,对所述wav格式的第一歌曲进行降采样,并对降采样后的wav格式的第一歌曲加入汉明窗处理,得到待采样第一歌曲信息;对所述待采样第一歌曲信息进行快速傅里叶变换FFT,并在预定时间范围内对FFT后的待采样第一歌曲信息的至少两个时间点采样,得到至少两个时间点的采样信息;对每个时间点按预定规则将频带划分为至少一个,根据所述至少两个时间点的采样信息确定每个时间点中各频带的能量信息;根据每个时间点中各频带的能量信息,确定所述至少两个时间点中相邻时间点之间对应频带的能量差信息;根据所述至少两个时间点中相邻时间点之间对应频带的能量差信息确定所述第一歌曲相邻两个时间点的指纹;根据所述第一歌曲相邻两个时间点的指纹确定所述第一歌曲的指纹特征。

可选地,所述听歌软件的服务器中的每首歌曲对应一个指纹特征;所述根据所述第一歌曲的指纹特征和听歌软件的服务器中保存的歌曲指纹特征,将所述第一歌曲同步到所述用户在所述听歌软件的收听列表,包括:将所述第一歌曲的指纹特征与所述保存的歌曲指纹特征中每首歌曲的指纹特征进行匹配对比;若所述第一歌曲的指纹特征与所述保存的歌曲指纹特征中的第二歌曲的指纹特征匹配成功,则将所述第二歌曲同步到所述用户在所述听歌软件的收听列表,其中,所述第二歌曲与所述第一歌曲相同。

可选地,所述听歌软件的服务器中的每首歌曲对应一个指纹特征;所述根据所述第一歌曲的指纹特征和听歌软件的服务器中保存的歌曲指纹特征,将所述第一歌曲同步到所述用户在所述听歌软件的收听列表,包括:将所述第一歌曲的指纹特征与所述保存的歌曲指纹特征中每首歌曲的指纹特征进行匹配对比;若所述第一歌曲的指纹特征与所述保存歌曲指纹特征中的每首歌曲的指纹特征均匹配失败,则将所述第一歌曲的指纹特征和所述第一歌曲上传到所述听歌软件的服务器,并将所述第一歌曲同步到所述用户在所述听歌软件的收听列表。

可选地,所述根据所述至少两个时间点中相邻时间点之间对应频带的能量差信息确定所述第一歌曲相邻两个时间点的指纹,包括:若所述相邻时间点之间对应频带的能量差大于或等于0,则对应的相邻时间点的特征值为1,若所述相邻时间点之间对应频带的能量差小于0,则对应的相邻时间点的特征值为0;根据相邻时间点各频带对应的特征值确定所述第一歌曲相邻两个时间点的指纹。

可选地,所述将所述第一歌曲的指纹特征与所述保存的歌曲指纹特征中每首歌曲的指纹特征进行匹配对比,包括:对保存的所有歌曲的指纹特征进行倒排索引,确定每首歌曲的指纹特征中每个指纹的偏移量与对应的歌曲的映射关系,以在所述第一歌曲的指纹特征和每首歌曲的指纹特征中找到第一个相同的指纹,所述每个指纹的偏移量指的是同一首歌曲的指纹特征中,每个指纹相对最后一个指纹的间隔指纹数;将所述第一歌曲的指纹特征与倒排索引后的保存的所有歌曲的指纹特征中进行对比匹配,得到至少一首第一候选匹配歌曲集合,其中,所述至少一首第一候选匹配歌曲的第一个指纹与所述第一歌曲的第一个指纹相同;在所述至少一首第一候选匹配歌曲集合中,除去第一个指纹的偏移量小于预设第一阈值的第一候选匹配歌曲,得到至少一首第二候选匹配歌曲集合;根据每首第二候选匹配歌曲的第一个指纹开始,第一阈值个数的指纹中,与所述第一歌曲第一个指纹开始的第一阈值个数的指纹中不同的指纹所占的比例,得到所述第一歌曲与每首第二候选匹配歌曲的差异度;在所述至少一首第二候选匹配歌曲集合中,根据所述第一歌曲与每首第二候选匹配歌曲的差异度,除去差异度大于预设第二阈值的第二候选匹配歌曲,得到至少一首第三候选匹配歌曲集合;根据所述至少一首第三候选匹配歌曲的至少一种歌曲信息和所述第一歌曲的至少一种歌曲信息,确定所述第一歌曲与每首第三候选匹配歌曲的每种歌曲信息的相似度,其中,所述至少一种歌曲信息包括:歌曲名、歌手名、专辑名中的至少一个;将所述第一歌曲与每首第三候选匹配歌曲的差异度、所述第一歌曲与每首第三候选匹配歌曲的每种歌曲信息的相似度按权重求和,得到所述第一歌曲与每首第三候选匹配歌曲的匹配值,选取其中匹配值最大的歌曲为所述第二歌曲,其中,所述第一歌曲的指纹特征与所述第二歌曲的指纹特征匹配成功。

第二方面,本发明实施例提供了一种歌曲同步系统,该系统包括:确定单元,用于确定用户收听的第一歌曲的指纹特征,其中,所述第一歌曲的指纹特征通过对所述第一歌曲的频谱特征采样得到,所述指纹特征包括至少一个指纹,每个指纹反映相邻两个采样时间点之间的频谱特征差异;同步单元,用于根据所述第一歌曲的指纹特征和听歌软件的服务器中保存的歌曲指纹特征,将所述第一歌曲同步到所述用户在所述听歌软件的收听列表,其中,所述用户收听列表为所述用户在所述听歌软件中候选收听歌曲的列表。

可选地,确定所述用户收听的第一歌曲的频谱特征;具体用于将所述第一歌曲的格式转换成wav格式,对所述wav格式的第一歌曲进行降采样,并对降采样后的wav格式的第一歌曲加入汉明窗处理,得到待采样第一歌曲信息;对所述待采样第一歌曲信息进行快速傅里叶变换FFT,并在预定时间范围内对FFT后的待采样第一歌曲信息的至少两个时间点采样,得到至少两个时间点的采样信息;对每个时间点按预定规则将频带划分为至少一个,根据所述至少两个时间点的采样信息确定每个时间点中各频带的能量信息;根据每个时间点中各频带的能量信息,确定所述至少两个时间点中相邻时间点之间对应频带的能量差信息;根据所述至少两个时间点中相邻时间点之间对应频带的能量差信息确定所述第一歌曲相邻两个时间点的指纹;根据所述第一歌曲相邻两个时间点的指纹确定所述第一歌曲的指纹特征。

可选地,所述听歌软件的服务器中保存的每首歌曲对应一个指纹特征;所述同步单元,具体用于将所述第一歌曲的指纹特征与所述保存的指纹特征中每个指纹特征进行匹配对比;若所述第一歌曲的指纹特征与所述保存歌曲指纹特征中的第二歌曲的指纹特征匹配成功,则将所述第二歌曲同步到所述用户在所述听歌软件的收听列表,其中,所述第二歌曲与所述第一歌曲相同;若所述第一歌曲的指纹特征与所述保存歌曲指纹特征中的每首歌曲的指和所述第一歌曲上传到所述听歌软件的服务器,并将所述第一歌曲同步到所述用户在所述听歌软件的收听列表。

可选地,所述同步单元,具体用于对保存的所有歌曲的指纹特征进行倒排索引,确定每首歌曲的指纹特征中每个指纹的偏移量与对应的歌曲的映射关系,以在所述第一歌曲的指纹特征和每首歌曲的指纹特征中找到第一个相同的指纹,所述每个指纹的偏移量指的是同一首歌曲的指纹特征中,每个指纹相对最后一个指纹的间隔指纹数;将所述第一歌曲的指纹特征与倒排索引后的保存的所有歌曲的指纹特征中进行对比匹配,得到至少一首第一候选匹配歌曲集合,其中,所述至少一首第一候选匹配歌曲的第一个指纹与所述第一歌曲的第一个指纹相同;在所述至少一首第一候选匹配歌曲集合中,除去第一个指纹的偏移量小于预设第一阈值的第一候选匹配歌曲,得到至少一首第二候选匹配歌曲集合;根据每首第二候选匹配歌曲的第一个指纹开始,第一阈值个数的指纹中,与所述第一歌曲第一个指纹开始的第一阈值个数的指纹中不同的指纹所占的比例,得到所述第一歌曲与每首第二候选匹配歌曲的差异度;在所述至少一首第二候选匹配歌曲集合中,根据所述第一歌曲与每首第二候选匹配歌曲的差异度,除去差异度大于预设第二阈值对应的第二候选匹配歌曲,得到至少一首第三候选匹配歌曲集合;根据所述至少一首第三候选匹配歌曲的至少一种歌曲信息和所述第一歌曲的至少一种歌曲信息,确定所述第一歌曲与每首第三候选匹配歌曲的每种歌曲信息的相似度,其中,所述至少一种歌曲信息包括:歌曲名、歌手名、专辑名中的至少一个;将所述第一歌曲与每首第三候选匹配歌曲的差异度、所述第一歌曲与每首第三候选匹配歌曲的每种歌曲信息的相似度按权重求和,得到所述第一歌曲与每首第三候选匹配歌曲的匹配值,选取其中匹配值最大的歌曲为所述第二歌曲,其中,所述第一歌曲的指纹特征与所述第二歌曲的指纹特征匹配成功。

基于上述技术方案,本发明实施例提供的歌曲同步方法及系统,可以对本地歌曲进行准确的识别,并对本地歌曲在各个设备端进行同步。本发明实施例对本地歌曲的识别,采用了一种新的指纹识别方法,保证识别的准确率。若本地歌曲和听歌软件库里的歌曲一样,则软件库里的歌曲代替本地歌曲,进行各个端的同步和收听。若本地歌曲和软件库里的歌曲不一样,生成用户歌曲指纹,并把用户歌曲上传到软件库里,并把歌曲信息(包括歌曲名、歌手名、专辑名等)保存下来,作为后续匹配的依据。本发明实施例提升了用户体验,增加用户所在设备同步所听歌曲列表及上传歌曲到软件服务器的功能。不但增加了软件库中歌曲的数量,同时提升了用户体验。

附图说明

图1为本发明实施例提供的一种歌曲同步方法流程示意图;

图2为本发明实施例提供的歌曲指纹特征提取过程示意图;

图3为本发明实施例提供的歌曲指纹特征计算示意图;

图4为本发明实施例提供的歌曲同步方法流程示意图;

图5为本发明实施例提供的歌曲同步系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

图1为本发明实施例提供的一种歌曲同步方法流程示意图。如图1所示,包括步骤S101至步骤S102:

在步骤S101,确定用户收听的第一歌曲的指纹特征,其中,所述第一歌曲的指纹特征通过对所述第一歌曲的频谱特征采样得到,所述指纹特征包括至少一个指纹,每个指纹反映相邻两个采样时间点之间的频谱特征差异。

具体地,所述确定用户收听的第一歌曲的指纹特征,包括:确定所述用户收听的第一歌曲的频谱特征;将所述第一歌曲的格式转换成wav格式,对所述wav格式的第一歌曲进行降采样,并对降采样后的wav格式的第一歌曲加入汉明窗处理,得到待采样第一歌曲信息;对所述待采样第一歌曲信息进行快速傅里叶变换FFT,并在预定时间范围内对FFT后的待采样第一歌曲信息的至少两个时间点采样,得到至少两个时间点的采样信息;对每个时间点按预定规则将频带划分为至少一个,根据所述至少两个时间点的采样信息确定每个频带的能量信息;根据每个时间点中频带的能量信息,确定所述至少两个时间点中相邻时间点之间对应频带的能量差信息;根据所述至少两个时间点中相邻时间点之间对应频带的能量差信息确定所述第一歌曲相邻两个时间点的指纹;根据所述第一歌曲相邻两个时间点的指纹确定所述第一歌曲的指纹特征。

具体地,所述根据所述至少两个时间点中相邻时间点之间对应频带的能量差信息确定所述第一歌曲相邻两个时间点的指纹,包括:若所述相邻时间点之间对应频带的能量差大于或等于0,则对应的相邻时间点的特征值为1,若所述相邻时间点之间对应频带的能量差小于0,则对应的相邻时间点的特征值为0;根据相邻时间点各频带对应的特征值确定所述第一歌曲相邻两个时间点的指纹。

在一个具体的示例中,图2为本发明实施例提供的歌曲指纹特征提取过程示意图。如图2所示,包括步骤201至步骤209:

在步骤201,把歌曲的格式转换成wav格式。

在步骤202,对转换后的wav格式的歌曲进行降采样。

需要说明的是,降采样是降低特定信号的采样率的过程,通常用于降低数据传输速率或者数据大小。

在步骤203,对降采样后的wav格式的歌曲加入汉明窗。

需要说明的是,采用汉明窗对降采样后的wav格式的歌曲进行加窗处理,可减小频谱泄漏,以提高线性预测的准确性。

在步骤204,进行快速傅里叶变换((Fast Fourier Transformation,FFT)。

在步骤205,在一定时间范围内,对某些时间点采样;在这些采样点上,按一定规则把频带划分为多份。例如,为方便理解本发明实施例,下面以把频带划分为32份为例,进行说明。

在步骤206,求每个频带的能量和。

在步骤207,求相邻采样点、同样频带的能量差,得到32个值。

在步骤208,对两个相邻采样时间点对应的32个能量值值进行相减,差值大于或等于0的,设为1;差值小于0的,设为0。则可以用32位表示这32个值,也即用一个整数int表示相邻采样时间点的指纹。

在步骤209,假设在3秒时间范围内,采了257个点,则共得到256个指纹。我们这里采集了6秒的特征,共得到512个指纹,这512个指纹就算该歌曲的指纹特征。本发明实施例以512个采样时间点为例,进行说明。

图3为本发明实施例提供的歌曲指纹特征计算示意图;如图3所示,301和302部分分别表示相邻两个采样时间点各频带(共划分为32分频带)的能量信息。303表示根据相邻两个采样时间点各频带能量差得到的各特征值。若相邻两个采样时间点的频带能量差大于或等于0,对应的相邻采样时间点的特征值为1;若相邻两个采样时间点的频带能量差小于0,对应的相邻采样时间点的特征值为0。304表示根据相邻两个采样时间点各频带对应的特征值,转换成一个int,对应相邻两个采样时间点的指纹。

需要说明的是,上述算法在歌曲指纹特征提取方面,由于加入了降采样和汉明窗,计算的速度比传统的算法更快,并且效果更好。由于采用了整数来表示相邻采样点之间的能量差异,保存和计算都比传统的方法更方便、快捷。

在步骤S102,根据所述第一歌曲的指纹特征和听歌软件的服务器中保存的歌曲指纹特征,将所述第一歌曲同步到所述用户在所述听歌软件的收听列表,其中,所述用户收听列表为所述用户在所述听歌软件中候选收听歌曲的列表。

具体地,所述听歌软件的服务器中保存至少一首歌曲,每首歌曲对应一个指纹特征;所述根据所述第一歌曲的指纹特征和听歌软件的服务器中保存的歌曲指纹特征,将所述第一歌曲同步到所述用户在所述听歌软件的收听列表,包括:将所述第一歌曲的指纹特征与所述保存的歌曲指纹特征中每首歌曲的指纹特征进行匹配对比;若所述第一歌曲的指纹特征与所述保存的歌曲指纹特征中的第二歌曲的指纹特征匹配成功,则将所述第二歌曲同步到所述用户在所述听歌软件的收听列表,其中,所述第二歌曲与所述第一歌曲相同。若所述第一歌曲的指纹特征与所述保存歌曲指纹特征中的每首歌曲的指纹特征均匹配失败,则将所述第一歌曲的指纹特征和所述第一歌曲上传到所述听歌软件的服务器,并将所述第一歌曲同步到所述用户在所述听歌软件的收听列表。

在一个具体的示例中,如果要同步一首歌曲,先提取该歌曲的指纹特征,然后和软件库里的指纹特征进行比对,如果找到了,则认为该歌曲是软件库里的歌曲,用软件库的该歌曲进行同步。如果找不到匹配的指纹,则认为该歌曲是用户本地歌曲,然后提取该用户本地歌曲的指纹特征,把该指纹特征存入软件库,并且把歌曲上传到软件服务器,后续的同步都是通过新的指纹特征进行同步。

需要说明的是,在后续其他设备相同听歌软件,该用户登录后,将会显示该用户的收听列表。同时,由于该听歌软件的服务器中已经保存对应的歌曲或者存在对应匹配的歌曲,则当设备可以连接该听歌软件的服务器时,用户可以同步收听其在其他设备听过的歌曲。

本发明实施例提供的歌曲同步方法,涉及歌曲指纹识别的两种算法:指纹提取算法和指纹匹配算法。其中,指纹提取算法已在步骤101中做了详细介绍。以下将介绍指纹匹配算法。

具体地,所述将所述第一歌曲的指纹特征与所述保存的歌曲指纹特征中每首歌曲的指纹特征进行匹配对比,包括:对保存的所有歌曲的指纹特征进行倒排索引,确定每首歌曲的指纹特征中每个指纹的偏移量与对应的歌曲的映射关系,以在所述第一歌曲的指纹特征和每首歌曲的指纹特征中找到第一个相同的指纹,所述每个指纹的偏移量指的是同一首歌曲的指纹特征中,每个指纹相对最后一个指纹的间隔指纹数;将所述第一歌曲的指纹特征与倒排索引后的保存的所有歌曲的指纹特征中进行对比匹配,得到至少一首第一候选匹配歌曲集合,其中,所述至少一首第一候选匹配歌曲的第一个指纹与所述第一歌曲的第一个指纹;在所述至少一首第一候选匹配歌曲集合中,除去第一个指纹的偏移量小于预设第一阈值的第一候选匹配歌曲,得到至少一首第二候选匹配歌曲集合;根据每首第二候选匹配歌曲的第一个指纹开始,第一阈值个数的指纹中,与所述第一歌曲第一个指纹开始的第一阈值个数的指纹中不同的指纹所占的比例,得到所述第一歌曲与每首第二候选匹配歌曲的差异度;在所述至少一首第一候选匹配歌曲集合中,根据所述第一歌曲与每首第二候选匹配歌曲的差异度,除去差异度大于预设第二阈值的第二候选匹配歌曲,得到至少一首第三候选匹配歌曲集合;根据所述至少一首第三候选匹配歌曲的至少一种歌曲信息和所述第一歌曲的至少一种歌曲信息,确定所述第一歌曲与每首第三候选匹配歌曲的每种歌曲信息的相似度,其中,所述至少一种歌曲信息包括:歌曲名、歌手名、专辑名中的至少一个;将所述第一歌曲与每首第三候选匹配歌曲的差异度、所述第一歌曲与每首第三候选匹配歌曲的每种歌曲信息的相似度按权重求和,得到所述第一歌曲与每首第三候选匹配歌曲的匹配值,选取其中匹配值最大的歌曲为所述第二歌曲,其中,所述第一歌曲的指纹特征与所述第二歌曲的指纹特征匹配成功。

在一个具体的示例中,图4为本发明实施例提供的歌曲同步方法流程示意图;如图4所示:包括步骤401至步骤407:

需要说明的是,当两首歌曲的指纹特征中,有超过预设阈值长度的指纹匹配成功,则认为这两首歌曲匹配成功。在本发明下面的实施例中,以匹配的两首歌曲的第一个指纹相同为例,进行说明。

在步骤401,把软件库里的所有指纹进行倒排索引,得到指纹int到歌曲id和歌曲offset的映射,以便从指纹int能快速找到歌曲id。

其中,歌曲id为歌曲在软件歌曲库中的id;歌曲offset指该指纹int在该歌曲指纹特征包括的所有指纹中相对最后一个指纹的偏移量。

在步骤402,用待匹配歌曲的第一个指纹int,在倒排索引中进行查找,得到所有可能匹配的歌曲id和相应的offset。

其中,所有可能匹配的歌曲的第一个指纹与待匹配歌曲的第一个指纹int相同。

在步骤403,在所有可能匹配的歌曲中,除去与待匹配歌曲的第一个指纹int相同的指纹开始的剩余指纹数小于64的歌曲。其中,这里剩余指纹数小于64即为上述偏移量小于预设第一阈值。本发明实施例以偏移量为64进行说明。所有可能匹配的歌曲,如果软件库中歌曲的指纹特征中与待匹配歌曲的第一个指纹int相同的指纹开始的剩余指纹数小于64的话,则认为该歌曲是不能与待匹配歌曲匹配的,从可能匹配集合中去除,以保证软件库中可能匹配的歌曲的可匹配的指纹数量充足。

在步骤404,计算可能匹配集合中的歌曲和待匹配歌曲指纹特征位不相同的位数,和指纹特征的总长度相除,得到差异度diff。

在步骤405,在所有可能匹配的歌曲中,除去差异度diff大于一定阈值歌曲。

其中,如果差异度diff大于一定阈值的认为该待匹配歌曲不在软件库中。若软件库中所有可能匹配的歌曲的差异度diff均大于一定阈值,则认为未在软件库中找到相似歌曲。即待匹配歌曲与软件库中的所有歌曲匹配失败。将上传待匹配歌曲和待匹配歌曲的指纹特征到软件库中,以实现待匹配的歌曲在不同设备同步。

在步骤406,把剩余可能匹配歌曲的歌曲信息(歌曲名、歌手名、专辑名等)和待匹配歌曲的歌曲信息进行比较,得到每种歌曲信息的相似度。

在步骤407,把差异度diff和各种歌曲信息的相似度按权重求和,确定权重值最大的歌曲与待匹配歌曲匹配成功。

其中,把差异度diff和各种歌曲信息的相似度按权重求和,然后进行排序,取最大的一个,认为该歌曲和待匹配歌曲是一样的。

需要说明的是,上述算法在歌曲指纹特征匹配方面,由于加入了倒排索引,查找速度比传统的更高效。并且通过匹配指纹长度和差异度diff两个阈值来进行筛选,保证能过滤掉差异较大的歌曲。最后加入歌曲信息权重的因素,保证匹配的精度。

本发明实施例提供的歌曲同步方法可广泛应用到听歌软件中,以酷我音乐听歌软件为例。使用本发明实施例提供的歌曲同步方法后,现在酷我音乐库中,用户上传的歌曲数目有700多万,不但增加了酷我音乐库中歌曲的数量,并且提升了用户体验。另外,试用阶段内,基本上没有收到用户反馈同步后歌曲出现错误的情况,说明该实施例提供的方法的匹配精确度是有保证的。

图5为本发明实施例提供的歌曲同步系统结构示意图。如图5所示,包括确定单元510和同步单元520。

该实施例提供的系统的确定单元510用于确定用户收听的第一歌曲的指纹特征,其中,所述第一歌曲的指纹特征通过对所述第一歌曲的频谱特征采样得到,所述指纹特征包括至少一个指纹,每个指纹反映相邻两个采样时间点之间的频谱特征差异。

同步单元520用于根据所述第一歌曲的指纹特征和听歌软件的服务器中保存的歌曲指纹特征,将所述第一歌曲同步到所述用户在所述听歌软件的收听列表,其中,所述用户收听列表为所述用户在所述听歌软件中候选收听歌曲的列表。

可选地,确定单元510具体用于确定所述用户收听的第一歌曲的频谱特征;将所述第一歌曲的格式转换成wav格式,对所述wav格式的第一歌曲进行降采样,并对降采样后的wav格式的第一歌曲加入汉明窗处理,得到待采样第一歌曲信息;对所述待采样第一歌曲信息进行快速傅里叶变换FFT,并在预定时间范围内对FFT后的待采样第一歌曲信息的至少一两时间点采样,得到至少两个时间点的采样信息;对每个时间点按预定规则将频带划分为至少一个,根据所述至少两个时间点采样信息确定每个时间点中各频带的能量信息;根据每个时间点中各频带的能量信息,确定所述至少两个时间点中相邻时间点之间对应频带的能量差信息;根据所述至少两个时间点中相邻时间点之间对应频带的能量差信息确定所述第一歌曲相邻两个时间点的指纹;根据所述第一歌曲相邻两个时间点的指纹确定所述第一歌曲的指纹特征。

可选地,所述听歌软件的服务器中的每首歌曲对应一个指纹特征;同步单元520,具体用于将所述第一歌曲的指纹特征与所述保存的指纹特征中每个指纹特征进行匹配对比;若所述第一歌曲的指纹特征与所述保存歌曲指纹特征中的第二歌曲的指纹特征匹配成功,则将所述第二歌曲同步到所述用户在所述听歌软件的收听列表,其中,所述第二歌曲与所述第一歌曲相同;若所述第一歌曲的指纹特征与所述保存歌曲指纹特征中的每首歌曲的指纹特征均匹配失败,则将所述第一歌曲的指纹特征和所述第一歌曲上传到所述听歌软件的服务器,并将所述第一歌曲同步到所述用户在所述听歌软件的收听列表。

可选地,同步单元520,具体用于对保存的所有歌曲的指纹特征进行倒排索引,确定每首歌曲的指纹特征中每个指纹的偏移量与对应的歌曲的映射关系,以在所述第一歌曲的指纹特征和每首歌曲的指纹特征中找到第一个相同的指纹,所述每个指纹的偏移量指的是同一首歌曲的指纹特征中,每个指纹相对最后一个指纹的间隔指纹数;将所述第一歌曲的指纹特征与倒排索引后的保存的所有歌曲的指纹特征中进行对比匹配,得到至少一首第一候选匹配歌曲集合,其中,所述至少一首第一候选匹配歌曲的第一个指纹与所述第一歌曲的第一个指纹相同;在所述至少一首第一候选匹配歌曲集合中,除去第一个指纹的偏移量小于预设第一阈值的第一候选匹配歌曲,得到至少一首第二候选匹配歌曲集合;根据每首第二候选匹配歌曲的第一个指纹开始,第一阈值个数的指纹中,与所述第一歌曲第一个指纹开始的第一阈值个数的指纹中不同的指纹所占的比例,得到所述第一歌曲与每首第二候选匹配歌曲的差异度;在所述至少一首第二候选匹配歌曲集合中,根据所述第一歌曲与每首第二候选匹配歌曲的差异度,除去差异度大于预设第二阈值对应的第二候选匹配歌曲,得到至少一首第三候选匹配歌曲集合;根据所述至少一首第三候选匹配歌曲的至少一种歌曲信息和所述第一歌曲的至少一种歌曲信息,确定所述第一歌曲与每首第三候选匹配歌曲的每种歌曲信息的相似度,其中,所述至少一种歌曲信息包括:歌曲名、歌手名、专辑名中的至少一个;将所述第一歌曲与每首第三候选匹配歌曲的差异度、所述第一歌曲与每首第三候选匹配歌曲的每种歌曲信息的相似度按权重求和,得到所述第一歌曲与每首第三候选匹配歌曲的匹配值,选取其中匹配值最大的歌曲为所述第二歌曲,其中,所述第一歌曲的指纹特征与所述第二歌曲的指纹特征匹配成功。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制。尽管参照实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,对本申请的技术方案进行修改或者等同替换,都不脱离本申请技术方案的精神和范围,其均应涵盖在本申请的权利要求范围当中。

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