具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,音频文件的特征信息可以为音频文件的指纹,即第一音频文件的第一特征信息可以为第一音频文件的指纹;第二音频文件的第二特征信息可以为第二音频文件的指纹。
音频文件的指纹指可以代表音频文件的重要声学特征,且基于该音频文件内容的紧致数字签名;音频文件的指纹要求感知(或内容)相似性,具备区分性、鲁棒性、粒度等基本特征。其中,区分性指不同音频文件的指纹应具有较大的差异,而同一音频文件的原始记录的指纹和失真记录的指纹之间应该具有较小的差异;鲁棒性指音频文件在经历各种音频格式变换、信道噪声干扰等处理后,仍然能够被识别出来;粒度指即使针对短音频文件(即音频文件的长度较短,如5s-10s),也能够顺利识别。另外,音频文件的指纹在各种应用场景中,还具备更多的特征,例如:终端应用场景中,音频文件的指纹要求具备易计算性,在计算资源受限的终端中能够实现快速实时的指纹计算;再如:在无线网络应用场景中,音频文件的指纹要求具备数据紧致性,即要求数据量较小,以适应无线网络传输。
下面将结合附图1-附图4,对本发明实施例提供的音频识别方法进行详细介绍。
请参见图1,为本发明实施例提供的一种音频识别方法的流程图;该方法可包括以下步骤S101-步骤S105。
S101,接收音频识别请求时,采集待识别的第一音频文件。
其中,第一音频文件可以包括:电影中的音频片段、电视剧中的音频片段、电视节目中的音频片段、音乐电台播放的音频数据或人发出的音频数据(例如:哼唱的音乐、歌曲片段)等。用户若想要知道未知音频文件的信息,例如:音频文件的歌曲名称、演唱者、专辑名称、歌词等信息,可发起音频查询请求。本步骤中,当接收到用户发送的音频识别请求时,采集待识别的第一音频文件;本步骤的采集过程可以包含以下两种实施方式:
在第一种实施方式中,在接收到用户发送的音频查询请求时,本步骤可启动录音功能,实时录制用户所请求识别的第一音频文件。
在第二种实施方式中,在接收到用户发送的音频查询请求时,本步骤可接收用户上传的请求识别的第一音频文件。
上述两种实施方式中,优选地,第一音频文件为8KHz采样频率、16bit量化的PCM(Pulse-codemodulation,脉冲编码调制)格式的数字音频文件。
S102,计算所述第一音频文件的第一特征信息。
其中,第一音频文件的第一特征信息可以为第一音频文件的指纹,第一音频文件的指纹指代表第一音频文件的重要声学特征、且基于第一音频文件的内容的紧致数字签名。本步骤中,对采集到的数字的第一音频文件进行计算,获得第一音频文件的第一特征信息。
S103,从预置数据库查找与所述第一特征信息相匹配的至少一个第二特征信息。
所述预置数据库中存储至少一个音频文件的标识、所述至少一个音频文件的特征信息、以及所述至少一个音频文件的属性数据。本发明实施例中,所述预置数据库中存储的音频文件可以包括:电影中的音频片段、电视剧中的音频片段、电视节目中的音频片段、歌曲、音乐等。其中,音频文件的标识可以用TrackID表示,例如:音频文件1的标识可表示为TrackID-1,音频文件2的标识可表示为TrackID-2;一个TrackID用于唯一标识一个音频文件。其中,音频文件的特征信息可以为音频文件的指纹,例如:音频文件1的特征信息可为音频文件1的指纹,音频文件2的特征信息可以为音频文件2的指纹。其中,音频文件的属性数据可包括但不限于以下数据中的至少一种:音频文件名称、音频文件所属的专辑信息、音频文件的链接地址、音频文件的歌词。本步骤中,第二特征信息与第一特征信息相匹配可以指第二特征信息与第一特征信息完全相同;或者,第二特征信息与第一特征信息的相似度达到预设相似度值,例如:预设相似度值为90%,若第二特征信息与第一特征信息的相似度达到90%或90%以上,则第二特征信息与第一特征信息相匹配。
S104,获取所述至少一个第二特征信息中的每个第二特征信息对应的第二音频文件的属性数据。
上述步骤S103从预置数据库中查找到至少一个与第一特征信息相匹配的第二特征信息,其中,所述至少一个第二特征信息中的每个特征信息均对应一个第二音频文件。通过上述步骤S103可识别到与第一音频文件相匹配的至少一个第二音频文件,由此可表明,该第一音频文件可能是识别到的至少一个第二音频文件中的其中一个音频文件,或者该第一音频文件可能是识别到的至少一个第二音频文件的音频片段;本步骤则获取识别到的与第一音频文件相匹配的至少一个第二音频文件的属性数据。
S105,将所述第二音频文件的属性数据作为所述第一音频文件的识别结果进行输出。
本步骤可将步骤S104获得的至少一个第二音频文件中的所有音频文件的属性数据作为第一音频文件的识别结果进行输出,也可从步骤S104获得的至少一个音频文件中选择部分音频文件,将选择的音频文件的属性数据作为所述第一音频文件的识别结果进行输出。用户根据所述识别结果,可获知所请求查询的第一音频文件的属性数据,例如:用户可获知第一音频文件的歌曲名称、演唱者、专辑名称、歌词等属性数据。
本发明实施例中,在接收音频识别请求时,自动采集待识别的第一音频文件,无需用户人工输入待识别的第一音频文件的基本信息,从而提升了音频识别的智能性。另外,计算所述第一音频文件的第一特征信息,基于第一特征信息从预置数据库查找相匹配的第二音频文件的属性数据,并将所述第二音频文件的属性数据作为所述第一音频文件的识别结果进行输出;本发明实施例基于特征信息进行音频识别,当音频文件确定时,该音频文件的特征信息也是确定的,基于确定的特征信息进行音频识别,提升了音频识别的准确性,同时提升了音频识别的智能性。
下面将对图1所示的音频识别方法的各步骤进行详细介绍。
请参见图2,为图1所示的步骤S102的实施例的流程图;该步骤S102可包括以下步骤s1201-步骤s1204。
s1201,对所述第一音频文件进行时频分析,生成第一预设数量的相位通道。
其中,第一预设数量的值可根据实际情况进行设定,具体设定过程可考虑第一音频文件的影响因素,例如:第一预设数量的值可根据第一音频文件的信噪比因素进行设定,等等。本发明实施例中,第一预设数量可采用M进行表示,其中M为正整数。本步骤对采集到的数字的第一音频文件的时域信号进行基于STFT(Short-TimeFourierTransform,短时傅立叶变换)变换的时频分析,可以获得第一音频文件的二维时频图;将第一音频文件的二维时频图拆分成M个时频子图,则相应生成第一音频文件的M个相位通道,一个相位通道对应一个时频子图,例如:M个相位通道中和M个时频子图中,相位通道1对应时频子图1,相位通道2对应时频子图2,以此类推,相位通道M对应时频子图M。
s1202,提取所述第一预设数量的相位通道中的每个相位通道的至少一个峰值特征点,所述每个相位通道的至少一个峰值特征点构成所述每个相位通道的峰值特征点序列。
如前述,M个相位通道中,一个相位通道对应一个时频子图。本步骤中,对每个相位通道的峰值特征点的提取过程可以包括:1)在每个相位通道对应的时频子图中,分析每个特征点的能量值;2)根据每个特征点的能量值,选取一定矩形邻域内能量值极大的特征点作为峰值特征点。根据上述1)和2),可提取每个相位通道的至少一个峰值特征点。其中,矩形邻域的尺寸参数可根据实际需要进行设定,设定过程需要考虑以下因素,包括时频子图中的特征点的数量,以及时频子图中的特征点的分布情况,等等。M个相位通道中,每个相位通道可提取至少一个峰值特征点,对该至少一个峰值特征点进行排序可构成每个相位通道的峰值特征点序列,具体地,可先按照时间从先至后的顺序,对该至少一个峰值特征点进行排序,针对相同时间点出现的峰值特征点,再按照频率从高至低的顺序对该至少一个峰值特征点进行排序。本步骤可提取M个峰值特征点序列,例如:M个相位通道中,相位通道1对应峰值特征点序列1,相位通道2对应峰值特征点序列2,以此类推,相位通道M对应峰值特征点序列M。
s1203,对所述每个相位通道的峰值特征点序列中的每个峰值特征点进行配对处理,形成所述每个相位通道的峰值特征点对序列。
本实施例定义Sn(tk,fk)表示任一个相位通道的峰值特征点序列中的任一个峰值特征点,其中n表示相位通道的序号或时频子图的序号,且0<n≤M;k表示该峰值特征点在峰值特征点序列n中的序号,k为正整数;tk表示时频子图n中出现该峰值特征点的时间;fk表示该峰值特征点的频率。
本步骤对每个相位通道的峰值特征点序列中的每个峰值特征点进行配对处理的过程可以包括:(1)在每个相位通道对应的时频子图中,以每个相位通道的峰值特征点序列中的每个峰值特征点作为锚点,选取一个矩形目标区域;针对任一个时频子图中的任一个峰值特征点Sn(tk,fk),所述矩形目标区域满足以下条件:
tstart≤tk≤tend且fstart≤fk≤fend
其中,tstart表示以峰值特征点Sn(tk,fk)作为锚点选取的矩形目标区域的起始时间,tend表示以峰值特征点Sn(tk,fk)作为锚点选取的矩形目标区域的结束时间;fstart表示以峰值特征点Sn(tk,fk)作为锚点选取的矩形目标区域的最小频率,fend表示以峰值特征点Sn(tk,fk)作为锚点选取的矩形目标区域的最大频率。
(2)在矩形目标区域内选取除锚点之外的一个峰值特征点与锚点配对,锚点及与该锚点配对的峰值特征点构成峰值特征点对。与锚点配对的峰值特征点的选取原则可以包括:选取出现时间与锚点的出现时间的时间差最小的峰值特征点;或者,选取除锚点之外的能量值最大的峰值特征点。
通过上述(1)和(2),针对任一个峰值特征点Sn(tk,fk)均可获得一个配对的峰值特征点Sn(tb,fb)。其中n表示相位通道的序号或时频子图的序号,且0<n≤M;b表示该配对的峰值特征点在峰值特征点序列n中的序号,b为正整数;tb表示时频子图n中出现该配对的峰值特征点的时间;fb表示该配对的峰值特征点的频率。本实施例定义四元组(tk,fk,Δfk,Δtk)n来表示任一个相位通道的峰值特征点对序列中的任一对峰值特征点对,其中,n表示相位通道的序号或时频子图的序号;Δtk表示峰值特征点对中的两个峰值特征点之间的时间差,Δtk=tb-tk;Δfk表示峰值特征点对中的两个峰值特征点之间的频率差,Δfk=fb-fk。
本步骤可对M个峰值特征点序列中的每个峰值特征点进行配对,则可形成M个峰值特征点对序列,例如:M个相位通道中,相位通道1对应峰值特征点对序列1,相位通道2对应峰值特征点序列对2,以此类推,相位通道M对应峰值特征点对序列M。
s1204,对所述每个相位通道的峰值特征点对序列进行哈希计算,获得所述每个相位通道对应的指纹序列,所述第一预设数量的相位通道对应的指纹序列的集合构成所述第一音频文件的第一特征信息。
如前述,四元组(tk,fk,Δfk,Δtk)n来表示任一个相位通道的峰值特征点对序列中的任一对峰值特征点对。该四元组中的参数可作如下理解:(fk,Δfk,Δtk)代表峰值特征点对的特征部分,tk代表出现(fk,Δfk,Δtk)的时间。本步骤可对(fk,Δfk,Δtk)进行哈希计算,将(fk,Δfk,Δtk)采用固定比特位数的哈希编码进行表示,具体如下:hashcodek=H(fk,Δfk,Δtk)。经过本步骤的计算,任一个相位通道的峰值特征点对序列中的任一对峰值特征点对可表示为(tk,hashcodek)n,n表示相位通道的序号或时频子图的序号,tk代表出现hashcodek的时间;该(tk,hashcodek)n为一个指纹项,可表示一对峰值特征点对。
经过本步骤,M个峰值特征点对序列中,每个峰值特征点对序列中的每一对峰值特征点对均可采用一个指纹项进行表示,则每个峰值特征点对序列均对应一个指纹序列,M个峰值特征点对序列对应M个指纹序列,例如:峰值特征点对序列1对应指纹序列1,峰值特征点序列对2对应指纹序列2,以此类推,峰值特征点对序列M对应指纹序列M。M个指纹序列的集合构成所述第一音频文件的第一特征信息,即第一音频文件的第一特征信息可表示为M个指纹序列的集合。
请参见图3,为图2所示的步骤s1201的实施例的流程图;该步骤s1201可包括以下步骤s1211-步骤s1215。
s1211,对所述第一音频文件进行时域分帧处理,形成多个音频帧信号。
本步骤可以窗函数作为分帧的参数,对采集到的第一音频文件进行时域分帧处理,形成多个音频帧信号。其中,窗函数可以为海明窗函数、汉宁窗函数、高斯窗函数等常见的窗函数。
s1212,对每一个音频帧信号进行STFT变换,获得所述每一个音频帧信号的频率谱。
s1213,提取所述每一个音频帧信号的频率谱对应的幅度谱。
s1214,根据所述每一个音频帧信号的时间、频率谱和幅度谱,绘制所述第一音频文件的时频图。本步骤中,可以按照每一个音频帧信号的时间顺序,依次绘制每一个音频帧信号的频率谱和幅度谱,形成第一音频文件的二维时频图。
s1215,按照时间取模的方式,对所述第一音频文件的时频图进行拆分,生成第一预设数量的时频子图,所述第一预设数量的时频子图中的一个时频子图对应所述第一音频文件的一个相位通道。
其中,第一预设数量可采用M进行表示,其中M为正整数。本步骤对第一音频文件的时频图按照时间t对M取模的方式进行拆分,生成M个时频子图,具体的拆分过程为:在二维时频图中分别选取t=0、M、2M…xM每个时间对应的特征点,将选取的特征点组成时频子图1;在二维时频图中分别选取t=1、1+M、1+2M…1+xM每个时间对应的特征点,将选取的特征点组成时频子图2;以此类推,在二维时频图中分别选取t=M-1、(M-1)+M…(M-1)+xM每个时间对应的特征点,将选取的特征点组成时频子图M。其中,x为正整数,且0<(M-1)+xM≤tmax,其中tmax为二维时频图中的最大时间点。本发明实施例中,一个时频子图对应第一音频文件的一个相位通道,M个时频子图对应M个相位通道,例如:时频子图1对应相位通道1,时频子图2对应相位通道2,以此类推,时频子图M对应相位通道M。
请参见图4,为图1所示的步骤S103的实施例的流程图;该步骤S103可包括以下步骤s1301-s1305。
s1301,将所述第一特征信息与所述预置数据库中的每个特征信息进行比对。
所述预置数据库中存储至少一个音频文件的标识、所述至少一个音频文件的特征信息、以及所述至少一个音频文件的属性数据。其中,音频文件的属性数据可包括以下数据中的至少一种:音频文件名称、音频文件所属的专辑信息、音频文件的链接地址、音频文件的歌词。其中,音频文件的标识可以用TrackID表示,例如:音频文件1的标识可表示为TrackID-1,音频文件2的标识可表示为TrackID-2;一个TrackID用于唯一标识一个音频文件。其中,音频文件的特征信息可以为音频文件的指纹,例如:音频文件1的特征信息可为音频文件1的指纹,音频文件2的特征信息可以为音频文件2的指纹;参照图3所示实施例中指纹的表述方式,所述预置数据库中存储的音频文件的特征信息为指纹序列的集合。则任一个TrackID-d所标识的音频文件的一个指纹项可表示为(TimeOffesti,hashcodei)p,其中,p为指纹序列的集合中的指纹序列的序号;i为指纹序列中指纹项的序号;TimeOffesti为该指纹项出现hashcodei的时间偏移值。为了提升对预置数据库的查询效率,本发明实施例中,可以哈希表的结构来反向存储所述预置数据库的内容,该哈希表结构可如下表一所示:
表一:哈希表结构
上述表一中,Key值为指纹项中hashcode的值,Value值为音频文件的标识TrackID和出现该hashcode值的时间偏移值TimeOffest。
本步骤将所述第一特征信息与所述预置数据库中的每个特征信息进行比对,实际是将第一特征信息中的每个指纹项中的hashcode值与上述表一所示哈希表中的Key值进行比对。
s1302,根据比对结果对所述预置数据库中的每个特征信息所对应的音频文件的标识进行加权处理。
上述步骤s1301将第一特征信息中的每个指纹项中的hashcode值与上述表一所示哈希表中的Key值进行比对,例如:假设第一特征信息中的某个指纹项中的hashcode值为0x0002,经s1302比对后,可从上述表一所示的哈希表中找到Key值同样为0x0002的行,本步骤中则对比对查找到的Key值为0x0002行中的所有TrackID进行加权处理。具体实现中,本步骤可采用TF(TermFrequency,词频)-IDF(InverseDocumentFrequency,逆文档频率)的加权方式,对TrackID进行加权处理。经过本步骤之后,所述预置数据库中的每个TrackID都会对应一个权重分数,该权重分数最低值为0。
s1303,按照权重由高至低的顺序,从所述预置数据库中选择第二预设数量的音频文件的特征信息组成候选列表。按照TrackID的权重分数由高至低的顺序,挑选权重分数位于前R个TrackID所标识的音频文件,将该R个音频文件的特征信息组成候选列表;其中,R为正整数。
s1304,计算所述候选列表中的每个音频文件的特征信息与所述第一特征信息的时间相关性。
所述第一特征信息为M个指纹序列的集合,且M个指纹序列的集合中的任一个指纹项可表示为(tk,hashcodek)n。所述候选列表中包含R个特征信息,该R个特征信息中的每个特征信息均为指纹序列的集合,例如:所述候选列表中的特征信息A为p个指纹序列构成的集合A,集合A中的任一个指纹项可表示为(TimeOffesti,hashcodei)p。本步骤中,时间相关性的计算过程可包括:(1)采用公式Δt'=tk-TimeOffesti,依次计算所述候选列表中的每个特征信息包含的指纹项与第一特征信息包含的指纹项的时间差。(2)针对所述候选列表中的任一个特征信息,统计相同时间差的数量,例如:针对所述候选列表中的特征信息A,根据(1)的计算结果统计得到20个Δt′=20,40个Δt′=30,50个Δt′=35。(3)针对所述候选列表中的任一个特征信息,选取(2)中统计得到的最大数量表示所述候选列表中的该特征信息与第一特征信息的时间相关性;依上述例子,候选列表中的特征信息A与第一特征信息的时间相关性的度量值L=50。
根据上述(1)-(3),可计算得到所述候选列表中的R个特征信息中的每个特征信息与第一特征信息的时间相关性的度量值。
s1305,从所述候选列表中选取与所述第一特征信息相匹配的至少一个第二特征信息,其中,所述第二特征信息与所述第一特征信息的时间相关性大于预设阈值。
按照时间相关性的值由高至低的顺序,对所述候选列表进行排序,再从排序后的候选列表中选取至少一个与第一特征信息相匹配的第二特征信息,所述第二特征信息与所述第一特征信息的时间相关性大于预设阈值。其中,预设阈值可根据实际情况进行设定。需要说明的是,如果排序后的候选列表中的所有特征信息与第一特征信息的时间相关性均不大于预设阈值,则认为所述预置数据库中没有与第一特征信息相匹配的特征信息,则表示无法识别第一音频文件。
本发明实施例中,在接收音频识别请求时,自动采集待识别的第一音频文件,无需用户人工输入待识别的第一音频文件的基本信息,从而提升了音频识别的智能性。另外,计算所述第一音频文件的第一特征信息,基于第一特征信息从预置数据库查找相匹配的第二音频文件的属性数据,并将所述第二音频文件的属性数据作为所述第一音频文件的识别结果进行输出;本发明实施例基于特征信息进行音频识别,当音频文件确定时,该音频文件的特征信息也是确定的,基于确定的特征信息进行音频识别,提升了音频识别的准确性,同时提升了音频识别的智能性。
本发明实施例提供一种音频识别装置,用以执行上述图1-图4所示实施例的音频识别方法的流程。所述音频识别装置可以存在以下两种可行的实施方式:在第一种可行的实施方式中,所述音频识别装置可以为独立的集成装置,通过该独立的集成装置可以执行图1-图4所示实施例的全部流程,以实现音频识别过程。本实施方式中,所述音频识别装置可以为终端或服务器。
在第二种可行的实施方式中,所述音频识别装置可以由第一分布装置和第二分布装置共同构成,第一分布装置和第二分布装置协同执行图1-图4所示实施例的全部流程,以实现音频识别过程。本实施方式中,所述第一分布装置可以为终端,所述第二分布装置可以为服务器。可以理解的是,当所述音频识别装置包含第一分布装置和第二分布装置时,第一分布装置和第二分布装置在协同过程中可采用一些技术处理手段,例如:对数据进行压缩处理等等,以减小协同过程中传输的数据量,提升协同操作的效率和速率。
下面将结合附图5-附图8,对本发明实施例提供的音频识别装置进行详细介绍。下述的音频识别装置可以应用于上述的音频识别方法中。
请参见图5,为本发明实施例提供的一种音频识别装置的结构示意图;该装置可包括:采集模块101、计算模块102、识别模块103、获取模块104和结果输出模块105。
采集模块101,用于在接收音频识别请求时,采集待识别的第一音频文件。
其中,第一音频文件可以包括:电影中的音频片段、电视剧中的音频片段、电视节目中的音频片段、音乐电台播放的音频数据或人发出的音频数据(例如:哼唱的音乐、歌曲片段)等。用户若想要知道未知音频文件的信息,例如:音频文件的歌曲名称、演唱者、专辑名称、歌词等信息,可发起音频查询请求。当接收到用户发送的音频识别请求时,所述采集模块101采集待识别的第一音频文件;所述采集模块101的采集过程可以包含以下两种实施方式:
在第一种实施方式中,在接收到用户发送的音频查询请求时,所述采集模块101可启动录音功能,实时录制用户所请求识别的第一音频文件。
在第二种实施方式中,在接收到用户发送的音频查询请求时,所述采集模块101可接收用户上传的请求识别的第一音频文件。
上述两种实施方式中,优选地,第一音频文件为8KHz采样频率、16bit量化的PCM格式的数字音频文件。
计算模块102,用于计算所述第一音频文件的第一特征信息。
其中,第一音频文件的第一特征信息可以为第一音频文件的指纹,第一音频文件的指纹指代表第一音频文件的重要声学特征、且基于第一音频文件的内容的紧致数字签名。所述计算模块102对采集到的数字的第一音频文件进行计算,获得第一音频文件的第一特征信息。
查询模块103,用于从预置数据库查找与所述第一特征信息相匹配的至少一个第二特征信息。
所述预置数据库中存储至少一个音频文件的标识、所述至少一个音频文件的特征信息、以及所述至少一个音频文件的属性数据。本发明实施例中,所述预置数据库中存储的音频文件可以包括:电影中的音频片段、电视剧中的音频片段、电视节目中的音频片段、歌曲、音乐等。其中,音频文件的标识可以用TrackID表示;音频文件的特征信息可以为音频文件的指纹;音频文件的属性数据可包括但不限于以下数据中的至少一种:音频文件名称、音频文件所属的专辑信息、音频文件的链接地址、音频文件的歌词。所述查询模块103查找到的第二特征信息与第一特征信息相匹配可以指第二特征信息与第一特征信息完全相同;或者,第二特征信息与第一特征信息的相似度达到预设相似度值,例如:预设相似度值为90%,若第二特征信息与第一特征信息的相似度达到90%或90%以上,则第二特征信息与第一特征信息相匹配。
获取模块104,用于获取所述至少一个第二特征信息中的每个第二特征信息对应的第二音频文件的属性数据。
从预置数据库中查找到至少一个与第一特征信息相匹配的第二特征信息,其中,所述至少一个第二特征信息中的每个特征信息均对应一个第二音频文件。表明识别到与第一音频文件相匹配的至少一个第二音频文件,由此可表明,该第一音频文件可能是识别到的至少一个第二音频文件中的其中一个音频文件,或者该第一音频文件可能是识别到的至少一个第二音频文件的音频片段;所述获取模块104获取识别到的与第一音频文件相匹配的至少一个第二音频文件的属性数据。
结果输出模块105,用于将所述第二音频文件的属性数据作为所述第一音频文件的识别结果进行输出。
所述结果输出模块105可将获得的至少一个第二音频文件中的所有音频文件的属性数据作为第一音频文件的识别结果进行输出,也可将获得的至少一个音频文件中选择部分音频文件,将选择的音频文件的属性数据作为所述第一音频文件的识别结果进行输出。用户根据所述识别结果,可获知所请求查询的第一音频文件的属性数据,例如:用户可获知第一音频文件的歌曲名称、演唱者、专辑名称、歌词等属性数据。
本发明实施例中,在接收音频识别请求时,自动采集待识别的第一音频文件,无需用户人工输入待识别的第一音频文件的基本信息,从而提升了音频识别的智能性。另外,计算所述第一音频文件的第一特征信息,基于第一特征信息从预置数据库查找相匹配的第二音频文件的属性数据,并将所述第二音频文件的属性数据作为所述第一音频文件的识别结果进行输出;本发明实施例基于特征信息进行音频识别,当音频文件确定时,该音频文件的特征信息也是确定的,基于确定的特征信息进行音频识别,提升了音频识别的准确性,同时提升了音频识别的智能性。
下面将对图5所示的音频识别装置的各模块进行详细介绍。
请参见图6,为图5所示的计算模块的实施例的结构示意图;该计算模块102可包括:时频分析单元1201、特征提取单元1202、配对处理单元1203和计算单元1204。
时频分析单元1201,用于对所述第一音频文件进行时频分析,生成第一预设数量的相位通道。
其中,第一预设数量的值可根据实际情况进行设定,具体设定过程可考虑第一音频文件的影响因素,例如:第一预设数量的值可根据第一音频文件的信噪比因素进行设定,等等。本发明实施例中,第一预设数量可采用M进行表示,其中M为正整数。所述时频分析单元1201对采集到的数字的第一音频文件的时域信号进行基于STFT变换的时频分析,可以获得第一音频文件的二维时频图;将第一音频文件的二维时频图拆分成M个时频子图,则相应生成第一音频文件的M个相位通道,一个相位通道对应一个时频子图,例如:M个相位通道中和M个时频子图中,相位通道1对应时频子图1,相位通道2对应时频子图2,以此类推,相位通道M对应时频子图M。
特征提取单元1202,用于提取所述第一预设数量的相位通道中的每个相位通道的至少一个峰值特征点,所述每个相位通道的至少一个峰值特征点构成所述每个相位通道的峰值特征点序列。
如前述,M个相位通道中,一个相位通道对应一个时频子图。所述特征提取单元1202对每个相位通道的峰值特征点的提取过程可以包括:1)在每个相位通道对应的时频子图中,分析每个特征点的能量值;2)根据每个特征点的能量值,选取一定矩形邻域内能量值极大的特征点作为峰值特征点。根据上述1)和2),可提取每个相位通道的至少一个峰值特征点。其中,矩形邻域的尺寸参数可根据实际需要进行设定,设定过程需要考虑以下因素,包括时频子图中的特征点的数量,以及时频子图中的特征点的分布情况,等等。M个相位通道中,每个相位通道可提取至少一个峰值特征点,对该至少一个峰值特征点进行排序可构成每个相位通道的峰值特征点序列,具体地,可先按照时间从先至后的顺序,对该至少一个峰值特征点进行排序,针对相同时间点出现的峰值特征点,再按照频率从高至低的顺序对该至少一个峰值特征点进行排序。所述特征提取单元1202可提取M个峰值特征点序列,例如:M个相位通道中,相位通道1对应峰值特征点序列1,相位通道2对应峰值特征点序列2,以此类推,相位通道M对应峰值特征点序列M。
配对处理单元1203,用于对所述每个相位通道的峰值特征点序列中的每个峰值特征点进行配对处理,形成所述每个相位通道的峰值特征点对序列。
本实施例定义Sn(tk,fk)表示任一个相位通道的峰值特征点序列中的任一个峰值特征点,其中n表示相位通道的序号或时频子图的序号,且0<n≤M;k表示该峰值特征点在峰值特征点序列n中的序号,k为正整数;tk表示时频子图n中出现该峰值特征点的时间;fk表示该峰值特征点的频率。
所述配对处理单元1203对每个相位通道的峰值特征点序列中的每个峰值特征点进行配对处理的过程可以包括:(1)在每个相位通道对应的时频子图中,以每个相位通道的峰值特征点序列中的每个峰值特征点作为锚点,选取一个矩形目标区域;针对任一个时频子图中的任一个峰值特征点Sn(tk,fk),所述矩形目标区域满足以下条件:
tstart≤tk≤tend且fstart≤fk≤fend
其中,tstart表示以峰值特征点Sn(tk,fk)作为锚点选取的矩形目标区域的起始时间,tend表示以峰值特征点Sn(tk,fk)作为锚点选取的矩形目标区域的结束时间;fstart表示以峰值特征点Sn(tk,fk)作为锚点选取的矩形目标区域的最小频率,fend表示以峰值特征点Sn(tk,fk)作为锚点选取的矩形目标区域的最大频率。
(2)在矩形目标区域内选取除锚点之外的一个峰值特征点与锚点配对,锚点及与该锚点配对的峰值特征点构成峰值特征点对。与锚点配对的峰值特征点的选取原则可以包括:选取出现时间与锚点的出现时间的时间差最小的峰值特征点;或者,选取除锚点之外的能量值最大的峰值特征点。
通过上述(1)和(2),针对任一个峰值特征点Sn(tk,fk)均可获得一个配对的峰值特征点Sn(tb,fb)。其中n表示相位通道的序号或时频子图的序号,且0<n≤M;b表示该配对的峰值特征点在峰值特征点序列n中的序号,b为正整数;tb表示时频子图n中出现该配对的峰值特征点的时间;fb表示该配对的峰值特征点的频率。本实施例定义四元组(tk,fk,Δfk,Δtk)n来表示任一个相位通道的峰值特征点对序列中的任一对峰值特征点对,其中,n表示相位通道的序号或时频子图的序号;Δtk表示峰值特征点对中的两个峰值特征点之间的时间差,Δtk=tb-tk;Δfk表示峰值特征点对中的两个峰值特征点之间的频率差,Δfk=fb-fb。
所述配对处理单元1203可对M个峰值特征点序列中的每个峰值特征点进行配对,则可形成M个峰值特征点对序列,例如:M个相位通道中,相位通道1对应峰值特征点对序列1,相位通道2对应峰值特征点序列对2,以此类推,相位通道M对应峰值特征点对序列M。
计算单元1204,用于对所述每个相位通道的峰值特征点对序列进行哈希计算,获得所述每个相位通道对应的指纹序列,所述第一预设数量的相位通道对应的指纹序列的集合构成所述第一音频文件的第一特征信息。
如前述,四元组(tk,fk,Δfk,Δtk)n来表示任一个相位通道的峰值特征点对序列中的任一对峰值特征点对。该四元组中的参数可作如下理解:(fk,Δfk,Δtk)代表峰值特征点对的特征部分,tk代表出现(fk,Δfk,Δtk)的时间。所述计算单元1204可对(fk,Δfk,Δtk)进行哈希计算,将(fk,Δfk,Δtk)采用固定比特位数的哈希编码进行表示,具体如下:hashcodek=H(fk,Δfk,Δtk)。经过所述计算单元1204的计算,任一个相位通道的峰值特征点对序列中的任一对峰值特征点对可表示为(tk,hashcodek)n,n表示相位通道的序号或时频子图的序号,tk代表出现hashcodek的时间;该(tk,hashcodek)n为一个指纹项,可表示一对峰值特征点对。
经过所述计算单元1204的计算,M个峰值特征点对序列中,每个峰值特征点对序列中的每一对峰值特征点对均可采用一个指纹项进行表示,则每个峰值特征点对序列均对应一个指纹序列,M个峰值特征点对序列对应M个指纹序列,例如:峰值特征点对序列1对应指纹序列1,峰值特征点序列对2对应指纹序列2,以此类推,峰值特征点对序列M对应指纹序列M。M个指纹序列的集合构成所述第一音频文件的第一特征信息,即第一音频文件的第一特征信息可表示为M个指纹序列的集合。
请参见图7,为图6所示的时频分析单元的实施例的结构示意图;该时频分析单元1201可包括:分帧处理子单元1211、变换子单元1212、幅度提取子单元1213、绘制子单元1214和拆分子单元1215。
分帧处理子单元1211,用于对所述第一音频文件进行时域分帧处理,形成多个音频帧信号。
所述分帧处理子单元1211可以窗函数作为分帧的参数,对采集到的第一音频文件进行时域分帧处理,形成多个音频帧信号。其中,窗函数可以为海明窗函数、汉宁窗函数、高斯窗函数等常见的窗函数。
变换子单元1212,用于对每一个音频帧信号进行STFT变换,获得所述每一个音频帧信号的频率谱。
幅度提取子单元1213,用于提取所述每一个音频帧信号的频率谱对应的幅度谱。
绘制子单元1214,用于根据所述每一个音频帧信号的时间、频率谱和幅度谱,绘制所述第一音频文件的时频图。所述绘制子单元1214可以按照每一个音频帧信号的时间顺序,依次绘制每一个音频帧信号的频率谱和幅度谱,形成第一音频文件的二维时频图。
拆分子单元1215,用于按照时间取模的方式,对所述第一音频文件的时频图进行拆分,生成第一预设数量的时频子图,所述第一预设数量的时频子图中的一个时频子图对应所述第一音频文件的一个相位通道。
其中,第一预设数量可采用M进行表示,其中M为正整数。所述拆分子单元1215对第一音频文件的时频图按照时间t对M取模的方式进行拆分,生成M个时频子图,具体的拆分过程为:在二维时频图中分别选取t=0、M、2M…xM每个时间对应的特征点,将选取的特征点组成时频子图1;在二维时频图中分别选取t=1、1+M、1+2M…1+xM每个时间对应的特征点,将选取的特征点组成时频子图2;以此类推,在二维时频图中分别选取t=M-1、(M-1)+M…(M-1)+xM每个时间对应的特征点,将选取的特征点组成时频子图M。其中,x为正整数,且0<(M-1)+xM≤tmax,其中tmax为二维时频图中的最大时间点。本发明实施例中,一个时频子图对应第一音频文件的一个相位通道,M个时频子图对应M个相位通道,例如:时频子图1对应相位通道1,时频子图2对应相位通道2,以此类推,时频子图M对应相位通道M。
请参见图8,为图5所示的识别模块的实施例的结构示意图;该识别模块103可包括:特征比对单元1301、加权处理单元1302、候选列表生成单元1303、相关性计算单元1304和匹配单元1305。
特征比对单元1301,用于将所述第一特征信息与所述预置数据库中的每个特征信息进行比对。
所述预置数据库中存储至少一个音频文件的标识、所述至少一个音频文件的特征信息、以及所述至少一个音频文件的属性数据。其中,音频文件的属性数据可包括以下数据中的至少一种:音频文件名称、音频文件所属的专辑信息、音频文件的链接地址、音频文件的歌词。其中,音频文件的标识可以用TrackID表示,例如:音频文件1的标识可表示为TrackID-1,音频文件2的标识可表示为TrackID-2;一个TrackID用于唯一标识一个音频文件。其中,音频文件的特征信息可以为音频文件的指纹,例如:音频文件1的特征信息可为音频文件1的指纹,音频文件2的特征信息可以为音频文件2的指纹;参照图3所示实施例中指纹的表述方式,所述预置数据库中存储的音频文件的特征信息为指纹序列的集合。则任一个TrackID-d所标识的音频文件的一个指纹项可表示为(TimeOffesti,hashcodei)p,其中,p为指纹序列的集合中的指纹序列的序号;i为指纹序列中指纹项的序号;TimeOffesti为该指纹项出现hashcodei的时间偏移值。为了提升对预置数据库的查询效率,本发明实施例中,可以哈希表的结构来反向存储所述预置数据库的内容,该哈希表结构可上述表一所示。
所述特征比对单元1301将所述第一特征信息与所述预置数据库中的每个特征信息进行比对,实际是将第一特征信息中的每个指纹项中的hashcode值与上述表一所示哈希表中的Key值进行比对。
加权处理单元1302,用于根据比对结果对所述预置数据库中的每个特征信息所对应的音频文件的标识进行加权处理。
将第一特征信息中的每个指纹项中的hashcode值与上述表一所示哈希表中的Key值进行比对,例如:假设第一特征信息中的某个指纹项中的hashcode值为0x0002,经s1302比对后,可从上述表一所示的哈希表中找到Key值同样为0x0002的行,所述加权处理单元1302则对比对查找到的Key值为0x0002行中的所有TrackID进行加权处理。具体实现中,所述加权处理单元1302可采用TF-IDF的加权方式,对TrackID进行加权处理。经过所述加权处理单元1302加权处理之后,所述预置数据库中的每个TrackID都会对应一个权重分数,该权重分数最低值为0。
候选列表生成单元1303,用于按照权重由高至低的顺序,从所述预置数据库中选择第二预设数量的音频文件的特征信息组成候选列表。按照TrackID的权重分数由高至低的顺序,挑选权重分数位于前R个TrackID所标识的音频文件,将该R个音频文件的特征信息组成候选列表;其中,R为正整数。
相关性计算单元1304,用于计算所述候选列表中的每个音频文件的特征信息与所述第一特征信息的时间相关性。
所述第一特征信息为M个指纹序列的集合,且M个指纹序列的集合中的任一个指纹项可表示为(tk,hashcodek)n。所述候选列表中包含R个特征信息,该R个特征信息中的每个特征信息均为指纹序列的集合,例如:所述候选列表中的特征信息A为p个指纹序列构成的集合A,集合A中的任一个指纹项可表示为(TimeOfesti,hashcodei)p。所述相关性计算单元1304计算过程可包括:(1)采用公式Δt'=tk-TimeOffesti,依次计算所述候选列表中的每个特征信息包含的指纹项与第一特征信息包含的指纹项的时间差。(2)针对所述候选列表中的任一个特征信息,统计相同时间差的数量,例如:针对所述候选列表中的特征信息A,根据(1)的计算结果统计得到20个Δt′=20,40个Δt′=30,50个Δt′=35。(3)针对所述候选列表中的任一个特征信息,选取(2)中统计得到的最大数量表示所述候选列表中的该特征信息与第一特征信息的时间相关性;依上述例子,候选列表中的特征信息A与第一特征信息的时间相关性的度量值L=50。
根据上述(1)-(3),可计算得到所述候选列表中的R个特征信息中的每个特征信息与第一特征信息的时间相关性的度量值。
匹配单元1305,用于从所述候选列表中选取与所述第一特征信息相匹配的至少一个第二特征信息,其中,所述第二特征信息与所述第一特征信息的时间相关性大于预设阈值。
按照时间相关性的值由高至低的顺序,对所述候选列表进行排序,再从排序后的候选列表中选取至少一个与第一特征信息相匹配的第二特征信息,所述第二特征信息与所述第一特征信息的时间相关性大于预设阈值。其中,预设阈值可根据实际情况进行设定。需要说明的是,如果排序后的候选列表中的所有特征信息与第一特征信息的时间相关性均不大于预设阈值,所述匹配单元1305则认为所述预置数据库中没有与第一特征信息相匹配的特征信息,则表示无法识别第一音频文件。
图5-图8所示实施例中,在所述音频识别装置的第一种可行的实施方式中,所述采集模块101、所述计算模块102、所述识别模块103、所述获取模块104和所述结果输出模块105可以集成于同一装置中构成所述音频识别装置。
在所述音频识别装置的第二种可行的实施方式中,所述采集模块101可以位于第一分布装置中,所述计算模块102、所述识别模块103、所述获取模块104和所述结果输出模块105可以位于第二分布装置中,第一分布装置与第二分布于共同构成所述音频识别装置;或者,所述采集模块101、所述计算模块102可以位于第一分布装置中,所述识别模块103、所述获取模块104和所述结果输出模块105可以位于第二分布装置中,第一分布装置与第二分布于共同构成所述音频识别装置;或者,所述采集模块101及所述计算模块102中的时频分析单元1201和特征提取单元1202可以位于第一分布装置中,所述计算模块102中的配对处理单元1203和计算单元1204,以及所述识别模块103、所述获取模块104和所述结果输出模块105可以位于第二分布装置中,第一分布装置与第二分布于共同构成所述音频识别装置。
本发明实施例中,在接收音频识别请求时,自动采集待识别的第一音频文件,无需用户人工输入待识别的第一音频文件的基本信息,从而提升了音频识别的智能性。另外,计算所述第一音频文件的第一特征信息,基于第一特征信息从预置数据库查找相匹配的第二音频文件的属性数据,并将所述第二音频文件的属性数据作为所述第一音频文件的识别结果进行输出;本发明实施例基于特征信息进行音频识别,当音频文件确定时,该音频文件的特征信息也是确定的,基于确定的特征信息进行音频识别,提升了音频识别的准确性,同时提升了音频识别的智能性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemor,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。