文件匹配方法、装置、电子设备和计算机可读存储介质与流程

未命名 08-15 阅读:104 评论:0


1.本技术属于计算机技术领域,尤其涉及一种文件匹配方法、装置、电子设备和计算机可读存储介质。


背景技术:

2.文件匹配是指对相关联的两个文件进行匹配,例如将字幕文件与音频、视频等文件进行匹配。
3.相关技术中,文件匹配通常是通过文件的名称、时长等属性信息进行匹配。一些情况下,用户可以对文件的属性信息进行更改,导致文件匹配时准确性较低。


技术实现要素:

4.本技术实施例提供一种文件匹配方法、装置、电子设备和计算机可读存储介质,可以解决相关技术中文件匹配时准确性较低的问题。
5.本技术实施例第一方面提供一种文件匹配方法,包括:分别获取待匹配的两个文件的指纹信息,所述指纹信息用于通过不同的标识描述对应文件中不同文件内容的分布情况;对所述两个文件的指纹信息进行比对,得到每种标识的匹配结果;根据所述匹配结果,确定所述两个文件之间文件内容的匹配分数。
6.本技术实施例第二方面提供的一种文件匹配装置,包括:获取单元,用于分别获取待匹配的两个文件的指纹信息,所述指纹信息用于通过不同的标识描述对应文件中不同文件内容的分布情况;比对单元,用于对所述两个文件的指纹信息进行比对,得到每种标识的匹配结果;确定单元,用于根据所述匹配结果,确定所述两个文件之间文件内容的匹配分数。
7.本技术实施例第三方面提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述文件匹配方法的步骤。
8.本技术实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述文件匹配方法的步骤。
9.本技术实施例第五方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中所述的文件匹配方法。
10.在本技术的实施方式中,通过分别获取待匹配的两个文件的指纹信息,其中,指纹信息用于通过不同的标识描述对应文件中不同文件内容的分布情况,然后,对两个文件的指纹信息进行比对,得到每种标识的匹配结果,并根据匹配结果,确定两个文件之间文件内容的匹配分数,使得文件匹配可以根据不同文件内容的分布情况确定匹配分数,对于文件内容相同而属性信息不同的文件,或者文件内容不同而属性信息相同的文件,匹配分数都可以更准确地反映两个文件之间的匹配程度,因此可以提高文件匹配时的准确性。
附图说明
11.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
12.图1是本技术实施例提供的一种文件匹配方法的实现流程示意图;
13.图2是本技术实施例提供的一种字幕指纹的生成方法的具体实现流程示意图;
14.图3是本技术实施例提供的步骤s203的具体实现流程示意图;
15.图4是本技术实施例提供的更新标识的具体实现流程示意图;
16.图5是本技术实施例提供的一种音频指纹的生成方法的具体实现流程示意图;
17.图6是本技术实施例提供的人声分离的具体实现流程示意图;
18.图7是本技术实施例提供的进行采样点和时间段的匹配的具体实现流程示意图;
19.图8是本技术实施例提供的根据每个采样点的振幅,确定目标时间段的具体实现流程示意图;
20.图9是本技术实施例提供的步骤s103的具体实现流程示意图;
21.图10是本技术实施例提供的调整匹配分数的第一具体流程示意图;
22.图11是本技术实施例提供的调整匹配分数的第二具体流程示意图;
23.图12是本技术实施例提供的一种文件匹配装置的结构示意图;
24.图13是本技术实施例提供的电子设备的结构示意图。
具体实施方式
25.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护。
26.相关技术中,文件匹配通常是通过文件的名称、时长等属性信息进行匹配。一些情况下,用户可以对文件的属性信息进行更改,导致容易将文件内容相同而属性信息不同的文件确认为不关联的文件,或者将文件内容不同而属性信息相同的文件确认为相关联的文件,文件匹配时准确性较低。
27.鉴于此,本技术提出一种文件匹配方法,能够可以根据不同文件内容的分布情况确定匹配分数,使得匹配分数都可以更准确地反映两个文件之间的匹配程度,能够提高文件匹配时的准确性。
28.为了说明本技术的技术方案,下面通过具体实施例来进行说明。
29.图1示出了本技术实施例提供的一种文件匹配方法的实现流程示意图,该方法可以应用于电子设备上,可适用于需提高将文件匹配时的准确性的情形。
30.在本技术的实施方式中,上述电子设备可以为计算机、手机、车载设备、音视频播放设备(或称为播放器)等智能设备,对此本技术不做限制。
31.具体的,上述文件匹配方法可以包括以下步骤s101至步骤s103。
32.步骤s101,分别获取待匹配的两个文件的指纹信息。
33.其中,待匹配的两个文件是指需要进行文件匹配的两个文件。在本技术的实施方式中,上述两个文件可以为相同类型或不同类型的文件,具体可以为视频文件、音频文件、字幕文件等,对此本技术不做限制。
34.具体的,电子设备可以将用户在电子设备上选中的两个文件作为待匹配的两个文件。电子设备也可以将特定文件作为其中一个文件,并将多个候选文件依次作为另一个文件,从而为特定文件匹配相关联的文件。例如,可以将视频文件作为其中一个文件,将多个字幕文件依次作为另一个文件,从而在多个字幕文件中为视频文件匹配相关联的字幕文件。对此本技术不做限制。
35.应理解,每个文件可以包括不同的文件内容,例如,字幕文件可以包括字幕部分和非字幕部分,视频文件和音频文件可以包括人声部分和背景声(非人声)部分。在本技术的实施方式中,指纹信息可用于通过不同的标识描述对应文件中不同文件内容的分布情况。
36.具体而言,若两个文件中包括字幕文件,指纹信息可用于通过不同的标识描述字幕文件中字幕部分与非字幕部分的分布情况。若两个文件中包括音视频文件时,指纹信息用于通过不同的标识描述所述音视频文件中人声部分与背景声部分的分布情况。
37.其中,上述标识可以由数字、字母、汉字等符号组成。例如,视频文件的指纹信息可以由“0”和“1”组成,其中,视频文件的总时长可以被划分为多个时间段,“0”用于标识人声部分所在的时间段,“1”用于标识背景声部分所在的时间段。又例如,字幕文件的指纹信息可以由“0”和“1”组成,字幕文件的总时长可以被划分为多个时间段,“0”用于标识字幕部分所在的时间段,“1”用于标识非字幕部分所在的时间段。
38.步骤s102,对两个文件的指纹信息进行比对,得到每种标识的匹配结果。
39.其中,匹配结果可以表示两个文件中相关联的文件内容之间的匹配程度。例如,两个字幕文件的字幕部分为相关联的文件内容,字幕文件的字幕部分和视频文件的人声部分为相关联的文件内容。
40.具体的,可以将两个文件的指纹信息中的标识逐位进行比对,得到每种标识的匹配结果。若两个文件的指纹信息在同一位置上的标识相同,可以对该相同的标识的计数结果进行更新(例如,增加1),逐位比对后,可以得到每种标识的计数结果,进而将每种标识的计数结果作为对应的匹配结果。
41.步骤s103,根据匹配结果,确定两个文件之间文件内容的匹配分数。
42.在本技术的实施方式中,根据每种标识的匹配结果,可以分析两个文件相关联的文件内容之间的匹配程度,进而分析两个文件之间的匹配程度。两个文件之间文件内容的匹配分数可以该表征两个文件之间的匹配程度。应理解,匹配分数与两个文件之间的匹配程度可以呈正相关,也即,匹配分数越高,则两个文件之间的匹配程度越高。
43.在本技术的实施方式中,通过分别获取待匹配的两个文件的指纹信息,其中,指纹信息用于通过不同的标识描述对应文件中不同文件内容的分布情况,然后,对两个文件的指纹信息进行比对,得到每种标识的匹配结果,并根据匹配结果,确定两个文件之间文件内容的匹配分数,使得文件匹配可以根据不同文件内容的分布情况确定匹配分数,对于文件内容相同而属性信息不同的文件,或者文件内容不同而属性信息相同的文件,匹配分数都可以更准确地反映两个文件之间的匹配程度,因此可以提高文件匹配时的准确性。
44.下面对上述文件匹配方法以具体实施方式进行详细说明。
45.首先,电子设备可以分别获取待匹配的两个文件的指纹数据。
46.在本技术的实施方式中,上述指纹数据可以通过不同的数据字段记录不同的信息。具体的,上述指纹数据可以包括上述指纹信息、校验信息,还可以包括指纹信息的总长度、指纹数据的数据源、跳变沿的个数等其他信息。其中,校验信息可以包括指纹数据的版本标识和对指纹信息进行加密得到的校验值中的至少一项。跳变沿是指相邻的标识为不同标识。
47.示例性的,上述指纹数据可以包括“version”、“isaudio”、“transitionedge”、“length”、“checksums”和“data”六个数据字段。其中,“version”可以表示指纹数据的版本标识。“isaudio”可以表示指纹数据的数据源,即指纹信息为视频文件的指纹信息(或称为音频指纹)还是字幕文件的指纹信息(或称为字幕指纹)。“transitionedge”可以表示跳变沿的个数,跳变沿是指相邻的标识为不同标识,在一段指纹信息中有0变为1,即从非字幕部分跳变到字幕部分或者从背景声部分跳变到人声部分,可记为一个跳变沿。“length”可以表示指纹信息的总长度。“checksums”可以表示对指纹信息进行加密得到的校验值,具体的,该校验值可以是通过md5信息摘要算法对指纹信息进行加密得到的校验值,也可以是通过其他校验算法生成的校验值,可用于确保传输过程中指纹信息不会被更改。“data”可以表示指纹信息。
48.一些实施方式中,上述指纹信息可以具体指字幕指纹,字幕指纹可用于通过不同的标识描述字幕文件中字幕部分与非字幕部分的分布情况。
49.具体的,请参考图2,字幕指纹的获取过程可以包括以下步骤s201至步骤s205。
50.步骤s201,获取目标时长的待处理字幕文件。
51.其中,待处理字幕文件为需要提取字幕指纹的文件。
52.应理解,待处理字幕文件中记录有至少一段字幕,该至少一段字幕通常按照时间顺序进行排序,每一段字幕可以对应一段时长。目标时长为待处理字幕文件对应的总时长。
53.例如,上述待处理字幕文件为视频的字幕文件,目标时长可以为视频的总时长,待处理字幕文件内每一段字幕对应视频中的一个视频片段。又例如,上述待处理字幕文件为歌曲(音频)的字幕文件,目标时长可以为歌曲的总时长,待处理字幕文件内每一段字幕对应音频中的一个音频片段。
54.在本技术的实施方式中,电子设备可以将用户在电子设备上选中的文件作为待处理字幕文件,也可以提取视频文件中的字幕流,得到待处理字幕文件。对于待处理字幕文件的获取方式,本技术不做限制。
55.步骤s202,对待处理字幕文件进行解析,得到待处理字幕文件中每段字幕的起始时间和结束时间。
56.在本技术的实施方式中,每一段字幕可以对应目标时长内的一段时长,通过对待处理字幕文件进行解析,可以得到每段字幕开始的起始时间和每段字幕结束的结束时间,也即得到每段字幕对应的时长的起始时间点和结束时间点。
57.一些实施方式中,上述待处理字幕文件可以记录有每段字幕的起始时间和结束时间,此时,电子设备可以提取待处理字幕文件中记录的信息,得到每段字幕的起始时间和结束时间。另一些实施方式中,待处理字幕文件的文件内容(也即字幕)可以按照特定编码规则进行编码,电子设备也可以通过按照编码规则,分析每一段字幕的开始时间和结束时间。
对此本技术不做限制。
58.步骤s203,获取预设的粒度。
59.其中,粒度可用于表征时间单元的时间长度。时间单元为生成字幕指纹时时间所用的基本单位。
60.在本技术的实施方式中,目标时长可以包括若干个连续的时间单元。应当理解的是,粒度越大,时间单元的时间长度越长,则目标时长包含的时间单元数量越少;粒度越小,时间单元的时间长度越短,则目标时长包含的时间单元数量越多。相应的,目标时长包含的时间单元数量越多,则字幕指纹更加细致,字幕指纹用于字幕匹配时准确性更高;目标时长包含的时间单元数量越少,则字幕指纹更加简单,字幕指纹用于字幕匹配时效率更高。
61.具体而言,粒度可以表示一秒内单元时间的个数,也即,一秒的时长可以被划分为多少个单元时间。
62.需要说明的是,上述粒度的取值可以根据实际需要进行调整。一些实施方式中,电子设备可以获取用户设置的粒度,该粒度可以由用户根据字幕匹配时所需要的准确度需求或字幕匹配的效率需求进行设置。另一些实施方式中,电子设备也可以根据目标时长的长度对粒度进行调整,目标时长越短,则粒度的取值可以更小。对此本技术不进行限制。
63.步骤s204,根据起始时间、结束时间,以及粒度,确定目标时长内字幕所在的时间单元。
64.在本技术的实施方式中,在待处理字幕文件中,目标时长内的时间单元可以分为字幕所在的时间单元与非字幕所在的时间单元。
65.例如,当待处理字幕文件为歌曲音频的字幕文件时,前奏、间奏、尾奏部分对应的时间段属于非字幕所在的时间单元,人声部分对应的时间段属于字幕所在的时间单元。又例如,当待处理字幕文件为视频的字幕文件时,人声部分对应的时间段属于字幕所在的时间单元,非人声部分对应的时间段属于非字幕所在的时间单元。
66.应理解,基于粒度可以将目标时长划分为若干个时间单元,基于起始时间和结束时间,可以分析目标时长内各个时间单元中是否包含字幕,和/或所包含的字幕的占比,进而可以确定目标时长内字幕所在的时间单元。
67.例如,当时间单元中包含字幕的占比大于占比阈值,则可以确定该时间单元为字幕所在的时间单元。
68.步骤s205,对字幕所在的时间单元和目标时长内的其他时间单元分别以不同的标识进行编码,得到字幕指纹。
69.其中,其他时间单元为目标时长内字幕所在的时间单元以外的时间单元,也即,非字幕所在的时间单元。
70.在本技术的实施方式中,对字幕所在的时间单元和目标时长内的其他时间单元分别以不同的标识进行编码,所得到的字幕指纹中,字幕所在的时间单元对应的标识可以表征待处理字幕文件中字幕的分布情况,而其他时间单元对应的标识可以表征待处理字幕文件中非字幕的分布情况。进而,字幕指纹可以用于对待处理字幕文件与其他文件进行匹配,也即实现两个文件之间的字幕匹配。
71.下面对上述字幕指纹的生成方法以具体实施方式进行详细说明。
72.首先,电子设备可以获取目标时长的初始字幕文件,并将初始字幕文件转码为目
标格式,得到待处理字幕文件。
73.其中,初始字幕文件可以为需要提取字幕指纹的字幕文件。目标格式可以为电子设备对字幕文件进行解析时所要求的编码格式。
74.由于不同的字幕文件编码格式不同,因此,电子设备可以加载并分析初始字幕文件的编码格式。若初始字幕文件的编码格式为目标格式,则可以将初始字幕文件作为待处理字幕文件,对其进行解析。若初始字幕文件的编码格式为目标格式以外的其他格式,则可以将初始字幕文件转码为目标格式,得到待处理字幕文件。
75.示例性的,如果初始字幕文件是文本字幕格式(srt、smi、ass、pjs、stl等)的文件,电子设备可以识别出对应的编码格式,并将其转码为utf-8格式(目标格式)。同样的,如果初始字幕文件是图形字幕格式(idx、sub等)的文件,电子设备可以识别出对应的编码格式并转码为utf-8格式(目标格式)。当然,目标格式还可以为utf-16格式、utf-32格式等格式,对此本技术不进行限制。
76.如此,可以使待处理字幕文件满足电子设备解析时所要求的编码格式。进而电子设备可以对待处理字幕文件进行解析,得到待处理字幕文件中每段字幕的起始时间和结束时间。
77.得到起始时间和结束时间之后,如图3所示,在本技术的一些实施方式中,上述步骤s203可以包括以下步骤s301至步骤s302。
78.步骤s301,将起始时间和结束时间分别与粒度相除并取整,得到每段字幕的起始标识和结束标识。
79.在本技术的实施方式中,对起始时间和结束时间分别与粒度相除得到的商进行取整,可以得到每段字幕的起始标识和结束标识。此时,起始标识可以表示字幕开始的时间单元,结束标识可以表示字幕结束的时间单元。
80.考虑到起始时间、结束时间和粒度之间的时间单位可能不同,为了便于起始标识和结束标识取的取整,在将起始时间和结束时间分别与粒度相除之前,可以为起始时间、结束时间、粒度统一时间单位。
81.例如,假设起始时间starttime的时间单位及结束时间endtime的时间单位均为毫秒,所设置的粒度granularity=n,表示将1s分成n段,则起始标识start可以为starttime/(1000/granularity)的整数值、结束标识end可以为endtime/(1000/granularity)的整数值。其中,n为大于0的正整数。
82.步骤s302,将起始标识与结束标识之间的时间单元确认为字幕所在的时间单元。
83.由于起始标识可以表示字幕开始的时间单元,结束标识可以表示字幕结束的时间单元,因此,电子设备可以将同一段字幕对应的起始标识与结束标识之间的时间单元确认为对应字幕所在的时间单元。
84.为了保证字幕所在的时间单元的准确性,一些实施方式中,如图4所示,在步骤s301之后,上述字幕指纹的生成方法还可以包括以下步骤s401至步骤s402。
85.步骤s401,确定目标时长中每个时间单元内字幕的占比。
86.换而言之,电子设备可以确定每个时间单元内字幕的时长与时间单元的总时长的比值,得到每个时间单元内字幕的占比。
87.步骤s402,根据占比,对起始标识和/或结束标识进行更新。
88.具体而言,当占比大于或等于占比阈值时,说明对应的时间单元内字幕的时长较长,当占比小于占比阈值时,说明对应的时间单元内字幕的时长较短。根据占比,可以对起始标识和/或结束标识进行更新,使得所有字幕的时长较长的时间单元均可以被确认为字幕所在的时间单元。
89.其中,上述占比阈值可以根据实际情况进行调整。示例性的,可以将占比阈值设置为50%(0.5),此时,当占比大于占比阈值时,说明对应的时间单元内字幕的时长相较于非字幕的时长更长,当占比小于或等于占比阈值时,说明对应的时间单元内字幕的时长相较于非字幕的时长更短。
90.在本技术的一些实施方式中,电子设备可以在起始标识对应的时间单元内占比小于或等于占比阈值时,对起始标识进行更新。
91.具体的,电子设备可以将起始时间与粒度相除得到的商与起始标识作差,得到第一差值,若第一差值大于占比阈值,则确认起始标识对应的时间单元内所述占比小于或等于占比阈值。
92.示例性的,假设起始时间starttime的时间单位为毫秒,占比阈值为50%时,所设置的粒度granularity=n,表示将1s分成n段,若
93.starttime/(1000.0/granularity)

start》0.5,说明起始标识start所对应的时间单元内字幕的占比小于或等于占比阈值,则可以对起始标识start的取值加一,由此可以将上述占比小于或等于占比阈值的时间单元确认为其他时间单元。
94.在本技术的另一些实施方式中,电子设备可以在结束标识对应的时间单元内占比大于占比阈值,或者,结束标识对应的时间单元内占比为零时,对结束标识进行更新。
95.具体的,电子设备可以将结束时间与粒度相除得到的商与结束标识作差,得到第二差值。若第二差值大于占比阈值,则确认结束标识对应的时间单元内占比大于占比阈值。
96.示例性的,假设结束时间endtime的时间单位为毫秒,占比阈值为50%,所设置的粒度granularity=n,表示将1s分成n段,若
97.endtime/(1000.0/granularity)

end》0.5,说明结束标识end所对应的时间单元内字幕的占比大于占比阈值,则可以对结束标识end的取值加一,由此可以将上述占比大于占比阈值的时间单元确认为字幕所在的时间单元。
98.并且,电子设备可以计算结束时间与粒度相除得到的商与结束标识之间的余数,若余数为零,则确认结束标识对应的时间单元内占比为零。
99.示例性的,假设结束时间endtime的时间单位为毫秒,若
100.endtime%(1000/granularity)=0,说明结束标识end所对应的时间单元内不存在字幕,则可以对结束标识end的取值减一,由此可以将上述不存在字幕的时间单元确认为其他时间单元。
101.相应的,电子设备可以对待处理字幕文件内其他时间单元以第一标识进行编码,对待处理字幕文件内字幕所在的时间单元以第二标识进行编码。
102.其中,第一标识与第二标识不同。应理解的是,上述第一标识与第二标识可以为基于数字、字母、汉字或其他符号生成的标识。例如,上述第一标识可以为“0”,第二标识可以为“1”。
103.在本技术的实施方式中,通过对目标时长的待处理字幕文件进行解析,得到待处
理字幕文件中每段字幕的起始时间和结束时间,根据起始时间、结束时间,以及预设的粒度,确定所述目标时长内字幕所在的时间单元,并对字幕所在的时间单元和目标时长内的其他时间单元分别以不同的标识进行编码,得到字幕指纹,使得字幕指纹中的标识可以描述待处理字幕文件中字幕部分与非字幕部分的分布情况,将字幕指纹用于对待处理字幕文件与其他文件进行匹配时,可以提高字幕文件与其他文件进行匹配时的准确性。
104.另一些实施方式中,上述指纹信息可以具体指音频指纹,音频指纹可用于通过不同的标识描述所述音视频文件中人声部分与背景声部分的分布情况。
105.具体的,如图5所示,音频指纹的获取过程可以包括以下步骤s501至步骤s503。
106.步骤s501,获取目标时长的待处理媒体文件。
107.其中,待处理媒体文件为需要提取音频指纹的媒体文件,具体可以为视频文件、音频文件或其他具有音频流的媒体文件。目标时长为待处理媒体文件对应的总时长。
108.在本技术的实施方式中,待处理媒体文件中的音频可以包括人声部分和非人声部分(或称为背景声部分)。以歌曲(音频)文件为例,人声部分以外的如前奏、间奏、尾奏部分属于非人声部分。
109.在本技术的实施方式中,电子设备可以将用户在电子设备上选中的媒体文件作为待处理媒体文件,也可以在需要为网络上的媒体文件进行比对时,下载需要比对的媒体文件,得到待处理媒体文件。对于待处理媒体文件的获取方式,本技术不做限制。
110.步骤s502,根据待处理媒体文件,确定目标时长内人声部分所在的目标时间段。
111.在本技术的一些实施方式中,上述待处理媒体文件可以包含音频流,电子设备可以提取待处理媒体文件中的音频流,以确定目标时长内人声部分所在的目标时间段。例如,当上述待处理媒体文件为视频文件时,电子设备可以读取视频文件里的帧数据,保留音频包(即音频流),并丢弃视频包、字幕包及其他类型的数据包。
112.具体的,目标时长可以被划分成一个或多个时间段。时间段的划分方式可以为均等划分或其他特定划分方式,对此本技术不做限制。电子设备基于音频流中每个时间段内的振幅、音色等参数,可以分析每个时间段内的音频流为人声部分还是非人声部分,进而可以确认人声部分所在的目标时间段。
113.步骤s503,对目标时间段和目标时长内的其他时间段分别以不同的标识进行编码,得到音频指纹。
114.其中,其他时间段为目标时长内目标时间段以外的时间段,也即,非人声部分所在的时间段。
115.在本技术的实施方式中,对目标时间段和目标时长内的其他时间段分别以不同的标识进行编码,所得到的音频指纹中,人声部分所在的目标时间段对应的标识可以表征待处理媒体文件中人声部分的分布情况,而其他时间段对应的标识可以表征待处理媒体文件中非人声部分的分布情况。
116.待处理媒体文件与其他文件中人声部分及非人声部分的分布情况越相似,则待处理媒体文件与其他文件匹配度越高。或者,待处理媒体文件中人声部分与其他文件中字幕部分的分布情况越相似,且非人声部分与其他文件中非字幕部分的分布情况越相似,则待处理媒体文件与其他文件匹配度越高。进而,音频指纹可以用于对待处理媒体文件与其他文件进行匹配。
117.在本技术的实施方式中,通过根据目标时长的待处理媒体文件,确定目标时长内人声部分所在的目标时间段,并对人声部分所在的目标时间段和目标时长内的其他时间段分别以不同的标识进行编码,得到音频指纹,使得音频指纹可以描述待处理媒体文件中人声部分的分布情况,将音频指纹用于对待处理媒体文件与其他文件进行匹配时,可以依据人声部分的分布情况进行匹配,提高了媒体文件与其他文件(如字幕文件)进行匹配时的准确性。
118.下面对上述字幕指纹的生成方法以具体实施方式进行详细说明。
119.在本技术的实施方式中,电子设备可以对待处理媒体文件进行解析,得到目标时长内各个采样点的振幅,并根据每个采样点的振幅,确定目标时长内的目标时间段。
120.本技术对采样点的采样频率不进行限制,例如,可以每1秒内进行8000次采样,使得采样频率达到8000hz。通过对待处理媒体文件进行解析,可以得到每个采样点的振幅。基于振幅,可以确定各个采样点的振幅是否在人声的理论振幅范围内,进而可以确认对应的采样点是否属于人声部分的采样点,进而可分析人声部分所在的目标时间段。
121.为了便于对待处理媒体文件进行目标时间段的分析,电子设备可以对待处理媒体文件进行人声分离,得到人声部分的音频数据,并根据音频数据,确定目标时长内的所述目标时间段。
122.具体的,电子设备通过分析音频流中的人声部分和非人声部分,保留人声部分,可以实现待处理媒体文件的人声分离,得到人声部分的音频数据。所得到的音频数据的总时长同样可以为目标时长,即与待处理媒体文件的总时长相同。
123.在本技术的实施方式中,上述人声分离可以通过多种方式实现。
124.具体的,一些实施方式中,如图6所示,上述人声分离可以具体包括以下步骤s601至步骤s602。
125.步骤s601,对待处理媒体文件进行解码,得到初始调制数据。
126.其中,初始调制数据可以指通过脉冲编码调制(pulse code modulation,pcm)处理得到的数据,初始调制数据可以记录有前述每个采样点的振幅等参数。
127.具体的,在获取到待处理媒体文件之后,电子设备可以提取待处理媒体文件中的音频流,得到初始的音频数据,然后将初始的音频数据压入队列中,等待电子设备上的解码线程读取。解码线程读取队列中初始的音频数据之后,可以进行解码,将其解码成float类型的pcm数据,得到初始调制数据。解码线程所使用的解码方式可以为现有的用于进行音频数据和pcm数据之间转换的方式,对此本技术不进行限制。
128.步骤s602,对初始调制数据进行人声分离,得到音频数据。
129.具体的,可以采用音乐分离器spleeterpp开源软件对初始调制数据进行人声分离。该开源软件可以支持对pcm数据进行人声分离,得到人声部分的音频数据,以及非人声部分的音频数据。
130.由于上述开源软件对所处理的pcm数据有一定的限制,在一些实施方式中,电子设备可以在得到初始调制数据之后,对初始调制数据进行预处理,得到预处理后的调制数据。
131.其中,预处理后的调制数据的采样频率、位深,以及振幅的幅值范围中至少一项满足人声分离所需的分离条件。其中,采样频率表示每秒内采样点的个数,单位为hz。位深是指pcm数据中使用多少位的二进制数据来存储每个采样点的音频信息。振幅的幅值范围也
即涵盖所有采样点的振幅的区间范围。分离条件是指人声分离所使用的软件或算法要求的采样频率、位深,和/或,振幅的幅值范围。应理解,当分离条件仅对采样频率、位深,和振幅的幅值范围中的一项参数进行要求时,电子设备可以对初始调制数据进行对应参数的预处理,使得预处理后的调制数据的对应参数满足分离条件。当分离条件对采样频率、位深,和振幅的幅值范围中的多项参数进行要求时,电子设备可以对初始调制数据进行每一项参数的预处理,使得预处理后的调制数据的多项参数均满足分离条件。
132.具体的,一些实施方式中,电子设备可以通过对初始调制数据进行重采样,改变采样频率和位深。示例性的,由于上述开源软件所支持的pcm数据为8k、16k或32k,16位的pcm数据,电子设备可以通过对初始调制数据进行重采样,得到采样频率为8000hz、位深为16位的预处理后的调制数据。
133.另一些实施方式中,由于上述开源软件的输入和输出均为float[-1,1]的类型,因此,电子设备可以通过归一化的方式,将每个采样点的振幅除以所有采样点中幅值最大的采样点的振幅,将每个采样点的振幅映射到[-1,1],使得振幅的幅值范围落在[-1,1]之间。
[0134]
具体的,初始调制数据可以为16位深的数据,振幅通过
[0135]
[-32768,32767]之间的任意值表示,电子设备可以将每个采样点的振幅除以所有采样点中幅值最大的采样点的振幅,使得每个采样点的振幅都在幅值范围[-1,1]之间。
[0136]
如此,不仅能满足上述开源软件的分离条件,同时,能更好地将采样点的幅值的分布范围均匀化,无论原始的待处理媒体数据中振幅大小(也即音量大小)如何,都能调整至适中的振幅。
[0137]
相应的,基于上述开源软件得到音频数据之后,电子设备可以对音频数据进行重处理,以使处理后得到的音频数据中振幅的幅值范围与初始调制数据中振幅的幅值范围一致。
[0138]
具体的,对于上述开源软件输出的float[-1,1]类型的数据,可以进行反归一化,重新映射到[-32768,32767]之间,得到用于提取音频指纹的调制数据(即前述音频数据)。
[0139]
另一些实施方式中,上述人声分离也可以通过神经网络模型或其他人声分离算法实现,上述神经网络模型包括但不限于卷积神经网络模型(convolutional neural networks,cnn)、循环神经网络模型(recurrent neural network,rnn)、深度神经网络模型(deep neural network,dnn),对此本技术不进行限制。
[0140]
以通过神经网络模型进行人声分离为例,电子设备可以通过重采样、归一化等方式,使得预处理后的调制数据满足神经网络模型的输入要求,然后将预处理后的调制数据输入至神经网络模型,得到神经网络模型输出的音频数据。电子设备同样可以对神经网络模型输出的音频数据进行重处理,得到用于提取音频指纹的调制数据(即前述音频数据)。
[0141]
相应的,上述音频数据中记录有每个采样点的振幅,基于每个采样点的振幅,可以确定目标时间段。
[0142]
具体的,为了便于音频指纹的提取,终端设备可以对音频数据进行采样点和时间段的匹配。
[0143]
具体的,如图7所示,在得到人声部分的音频数据之后,音频指纹的生成方法还可以包括以下步骤s701至步骤s702。
[0144]
步骤s701,获取音频指纹所需的第一采样频率。
[0145]
具体的,上述第一采样频率可以为用于提取音频指纹的pcm数据的采样频率,也可以是用户设置的采样频率。
[0146]
步骤s702,按照采样点的时间顺序,将采样点划分至对应的时间段内,以使目标时长的每个时间段内的第二采样频率与第一采样频率一致。
[0147]
具体的,每个时间段的时长可以根据实际情况进行设置。电子设备可以将按照时间顺序划分至每个时间段内,使得单个时间段内包含的采样点数量能够满足使第二采样频率与第一采样频率一致的条件。
[0148]
示例性的,假设上述第一采样频率为8000hz,每个时间段的时长为1s,则按照采样点的时间顺序,可以将每8000个采样点作为1s的采样点,如此每一个时间段的第二采样频率同样为8000hz。
[0149]
完成采样点和时间段的匹配之后,电子设备可以基于采样点的振幅以及每个采样点所属的时间段,确定其中人声部分所在的确定时间段。
[0150]
具体的,通过分析某个时间段内的各个采样点的振幅是否在人声的理论振幅范围内,可以确定该时间段是否为人声部分所在的确定时间段。
[0151]
考虑到待处理媒体文件中人声部分的分布通常较为复杂,在一些实施方式中,如图8所示,上述根据每个采样点的振幅,确定目标时间段,可以包括以下步骤s801至步骤s804。
[0152]
步骤s801,根据每个采样点的振幅,确定音频数据中波峰所在的波峰采样点。
[0153]
应理解,音频数据可以通过波形数据表示,基于相邻采样点的振幅,可以分析波形数据中的波峰,进而将波峰所在的采样点确认为波峰采样点。
[0154]
步骤s802,对于目标时长的每个时间段,将振幅的大小属于对应时间段内前n%的波峰采样点作为目标采样点。
[0155]
具体的,对某一个时间段,电子设备可以对该时间段内的各个波峰采样点按照振幅的大小进行排序,将该时间段内振幅前n%大的波峰采样点作为该时间段内的目标采样点。
[0156]
其中,n大于0,具体取值可以根据实际情况进行调整。例如,如果希望更准确地确定目标时间段,n的取值可以较大,例如取75%,进而可以参考更多的波峰采样点确定目标时间段。又例如,如果希望确定目标时间段的运算效率更快,n的取值可以较小,例如取10%,进而可以利用适量的波峰采样点确定目标时间段,减少电子设备的运算量。为了平衡准确性和运算效率,在本技术地实施方式中,n可以取25。
[0157]
步骤s803,对于每个时间段,计算对应时间段内所有目标采样点的振幅的均值。
[0158]
步骤s804,将目标时长中均值大于振幅阈值的时间段作为人声部分所在的目标时间段。
[0159]
具体的,对于某一个时间段内所有目标采样点的振幅,可以计算该时间段对应的振幅的均值。将均值与振幅阈值进行比对。如果某一时间段对应的振幅的均值超过该振幅阈值,说明该时间段内有人声,可以将其确认为人声部分所在的目标时间段。
[0160]
其中,振幅阈值可以根据人声的理论振幅进行设置,例如可以设置为400。
[0161]
相应的,电子设备可以通过不同的标识对人声部分所在的目标时间段和其他时间段进行标识。所使用的标识可以为基于数字、字母、汉字或其他符号生成的标识。例如,可以
将人声部分所在的目标时间段标识为“0”,其他时间段标识为“1”,得到音频指纹。应理解,此时,该音频指纹可以表征人声部分在音频中的分布情况。
[0162]
相应的,在分别获取待匹配的两个文件的指纹信息之后,电子设备还可以根据校验信息,对两个文件的指纹数据进行校验。
[0163]
具体的,一些实施方式中,可以将两个文件的指纹数据的版本标识进行比对。若两个文件的指纹数据的版本标识相同,说明两个文件生成指纹信息时采用的方式一致,可以通过指纹信息进行文件匹配,此时,电子设备可以对两个文件的指纹信息进行比对,得到每种标识的匹配结果,并根据匹配结果,确定两个文件之间文件内容的匹配分数。若两个文件的指纹数据的版本标识不相同,说明两个文件生成指纹信息时采用的方式不一致,此时,电子设备可以结束文件匹配,并向用户输出提示信息。
[0164]
另一些实施方式中,可以对两个文件的指纹信息的校验值分别进行校验,如果指纹信息的校验值校验通过,说明指纹信息在传输过程中未被更改,此时,电子设备可以对两个文件的指纹信息进行比对,得到每种标识的匹配结果,并根据匹配结果,确定两个文件之间文件内容的匹配分数。如果指纹信息的校验值校验未通过,说明指纹信息在传输过程中被更改,此时可以丢弃获取到的指纹数据并重新获取新的指纹数据。
[0165]
完成校验后,电子设备可以执行前述步骤s102至步骤s103。
[0166]
一些实施方式中,在步骤s102中,若两个文件的文件时长相同,说明两个文件的指纹数据的长度相同,则电子设备可以对两个文件的指纹信息直接进行比对。
[0167]
若两个文件的文件时长不同,说明两个文件的指纹数据的长度不同,此时,电子设备可以根据第一文件的文件时长,确定第二文件的指纹信息中的目标指纹信息,然后,将第一文件的指纹信息与目标指纹信息进行比对,得到匹配结果。其中,第一文件为两个文件中时长较短的文件,第二文件为两个文件中时长较长的文件,目标指纹信息的时长与第一文件的文件时长相同。
[0168]
也就是说,如果两个文件的文件时长不同,则可以将时长较短的第一文件的指纹信息和第二文件中指纹信息的一部分进行比对。例如,可以从第二文件的指纹信息中截取与第一文件的文件时长相同的目标指纹信息,与第一文件的指纹信息进行比对,得到匹配结果。
[0169]
一些实施方式中,在前述步骤s103中,可以通过对每种标识的匹配结果进行加权融合,得到匹配分数。每种标识的匹配结果在进行加权融合时的融合权重可以为预设的默认权重。
[0170]
一些实施方式中,为了提高文件匹配的准确性,电子设备可以对上述融合权重进行调整。具体的,如图9所示,上述步骤s103可以具体包括以下步骤s901至步骤s904。
[0171]
步骤s901,根据两个文件的指纹信息,确定每个文件的少数因子。
[0172]
其中,少数因子为对应文件中文件内容占比低于占比阈值的文件内容的标识,文件内容占比即对应的文件内容与所有文件内容的比值。占比阈值可以根据实际情况进行设置。
[0173]
示例性的,假设上述占比阈值为40%,上述指纹信息通过“0”和“1”两种标识分别标识两种文件内容,当“0”或者“1”的占比小于40%,则将该小于“40%”的标识作为少数因子。例如,当指纹信息中“0”的占比小于40%,表示标识“0”对应的文件内容占比低于40%,
那么标识“0”就是这段指纹信息的少数因子。
[0174]
步骤s902,获取每种标识的默认权重。
[0175]
具体的,默认权重是匹配结果融合时的初始权重。电子设备可以获取用户对每种标识设置的默认权重,也可以根据标识的种类数将1均等分为若干份,得到每种标识的默认权重。例如当标识为两种时,两种标识的默认权重可以分别为0.5、0.5。
[0176]
可以理解的是,不同标识的默认权重可以相同或不同,本技术对此本作限制。
[0177]
步骤s903,若两个文件的少数因子相同,则增大少数因子的默认权重,得到少数因子的融合权重。
[0178]
在本技术的实施方式中,若两个文件的少数因子不相同,说明两个文件中文件内容的分布情况基本不同,此时,电子设备可以将默认权重作为融合权重,并根据融合权重,对匹配结果进行加权融合,得到匹配分数。
[0179]
例如,若上述指纹信息通过“0”和“1”两种标识分别标识两种文件内容,且默认权重为0.5,则可以将标识“0”的匹配结果与0.5相乘,将标识“1”的匹配结果与0.5相乘,将得到的两个乘积相加,得到匹配分数。
[0180]
若两个文件的少数因子相同,说明两个文件中文件内容的分布情况基本相同,为了提高文件匹配的准确性,可以增大少数因子的默认权重,得到少数样子的融合权重。
[0181]
步骤s904,根据融合权重,对匹配结果进行加权融合,得到匹配分数。
[0182]
此时,利用调整后的融合权重对匹配结果进行加权融合,可以使匹配分数更多地参考少数因子,即更多地参考占比较少的文件内容,进而使得匹配分数更好地反映两个文件的文件内容之间的一致性。
[0183]
例如,若上述指纹信息通过“0”和“1”两种标识分别标识两种文件内容,且默认权重为0.5,且少数因子均为“0”,则可以将“0”的融合权重由0.5调整至0.6,还可以将“1”的融合权重适应性地调整为0.4,则可以将标识“0”的匹配结果与0.6相乘,将标识“1”的匹配结果与0.4相乘,将得到的两个乘积相加,得到匹配分数。
[0184]
应理解,上述图9所示的过程为通过少数因子进行一次匹配的过程。
[0185]
考虑到两个文件的指纹信息的总长度可能不相同,对于总长度较长的指纹信息,超过另一指纹信息的部分在文件匹配时是不匹配,如图10所示,在一些实施方式中,完成一次匹配之后,也即在步骤s904之后,可以基于步骤s1001至步骤s1002对匹配分数进行调整。
[0186]
步骤s1001,计算两个文件中指纹信息的总长度之间的第一比值。
[0187]
具体的,可以将两个文件中较长的指纹信息的总长度与较短的指纹信息的总长度相除,得到上述第一比值,也可以将两个文件中较短的指纹信息的总长度与较长的指纹信息的总长度相除,得到上述第一比值,对此本技术不进行限制。
[0188]
步骤s1002,根据第一比值,对匹配分数进行调整。
[0189]
如此,可以使调整后的匹配分数能够参考两个文件的指纹信息之间总长度的差异。
[0190]
作为一种示例,可以将第一比值与步骤s203得到的匹配分数相乘,得到调整后的匹配分数。作为另一种示例,可以将第一比值和匹配分数进行归一化,然后对两个归一化得到的数值相加,得到调整后的匹配分数。对此本技术不进行限制。
[0191]
应理解,上述图10所示的过程为通过指纹信息的总长度进行一次匹配的过程。
[0192]
考虑到在对短视频文件(即视频时长低于预设时长的视频文件)进行匹配时,指纹信息的总长度相近,且指纹信息较短,容易发生错误匹配的情况。在一些实施方式中,如图11所示,完成一次匹配之后,也即在步骤s904之后,可以基于步骤s1101至步骤s1103对匹配分数进行调整。
[0193]
步骤s1101,获取两个文件的指纹信息中跳变沿的出现频率。
[0194]
其中,跳变沿可以表示指纹信息内相邻的标识为不同标识。具体的,电子设备可以获取指纹数据中记录的跳变沿的总个数,将总个数与对应文件的总时长相除,得到跳变沿的出现频率。
[0195]
步骤s1102,若出现频率低于频率阈值,则计算出现频率与频率阈值的第二比值。
[0196]
步骤s1103,根据第二比值,对匹配分数进行调整。
[0197]
其中,频率阈值可以根据实际情况进行设置。
[0198]
如果出现频率大于或等于频率阈值,说明两个文件出现不同文件内容的跳变的频率较高,表示上述匹配分数可以较好地表示两个文件中文件内容的一致性,此时,电子设备可以不对匹配分数进行调整。
[0199]
如果出现频率低于频率阈值,说明两个文件出现不同文件内容的跳变的频率较低,此时,电子设备可以计算出现频率与频率阈值的第二比值,并基于根据第二比值,对匹配分数进行调整,使得匹配分数能够参考两个文件的指纹信息之间跳变沿的不同。
[0200]
示例性的,可以分别计算两个文件的指纹信息中跳变沿的出现频率,将其中低于频率阈值的出现频率与频率阈值相除,得到第二比值,然后将第二比值与匹配分数相除,得到调整后的匹配分数。
[0201]
例如,上述频率阈值可以设置为每30分钟100个跳变沿,当指纹信息的跳变沿的出现频率超过每30分钟100个时,电子设备不做处理,当指纹信息的跳变沿的出现频率低于每30分钟100个时,假设跳变沿的出现频率为每30分钟50个,电子设备可以计算出现频率与频率阈值之间的第二比值0.5,将0.5与匹配分数相乘,得到调整后的匹配分数。
[0202]
应理解,上述图11所示的过程为通过指纹信息的跳变沿进行一次匹配的过程。
[0203]
为了使匹配分数更好地实现精准的文件匹配,本技术的一些实施方式中,可以结合图9、图10以及图11所描述的三种匹配过程,确定最终的匹配分数。
[0204]
具体而言,电子设备可以基于图9所示的步骤s901至步骤s904,通过少数因子进行第一次匹配,得到匹配分数。然后,基于图10所示的步骤s1001至步骤s1002,通过指纹信息的总长度进行第二次匹配,以对匹配分数进行调整,得到第一次调整后的匹配分数。接着,基于图11所示的步骤s1101至步骤s1102,通过指纹信息的跳变沿进行第三次匹配,以对第一次调整后的匹配分数进行调整,得到第二次调整后的匹配分数。第二次调整后的匹配分数也即最终用于文件匹配的匹配分数。
[0205]
上述匹配分数可以应用于不同的场景中。
[0206]
一些实施方式中,在得到匹配分数之后,可以将匹配分数大于或等于预设分数的两个文件进行融合。
[0207]
具体的,基于指纹数据记录的数据源,可以分析两个文件是否为不同数据源的文件,如果两个文件为不同数据源的文件,且匹配分数大于或等于预设分数,则可以对两个文件进行融合。例如,两个文件分别为视频文件和字幕文件,且两个文件匹配分数大于或等于
预设分数,则可以对两个文件进行融合,得到包含字幕流的视频文件。
[0208]
另一些实施方式中,在得到匹配分数之后,可以对多个候选文件中,与特定文件的匹配分数大于或等于预设分数的候选文件进行推荐。例如,上述特定文件为视频文件,上述多个候选文件为多个字幕文件,电子设备计算每个字幕文件分别与该视频文件之间的匹配分数,可以将匹配分数大于或等于预设分数的字幕文件推荐给用户。
[0209]
如此,上述匹配分数可以用于字幕推荐、视频字幕融合、音频字幕融合等不同的场景,满足用户的不同需求。
[0210]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为根据本技术,某些步骤可以采用其它顺序进行。
[0211]
如图12所示为本技术实施例提供的一种文件匹配装置1200的结构示意图,所述文件匹配装置1200配置于电子设备上。
[0212]
具体的,所述文件匹配装置1200可以包括:
[0213]
获取单元1201,用于分别获取待匹配的两个文件的指纹信息,所述指纹信息用于通过不同的标识描述对应文件中不同文件内容的分布情况;
[0214]
比对单元1202,用于对所述两个文件的指纹信息进行比对,得到每种标识的匹配结果;
[0215]
确定单元1203,用于根据所述匹配结果,确定所述两个文件之间文件内容的匹配分数。
[0216]
在本技术的一些实施方式中,上述确定单元1203可以具体用于:根据所述两个文件的指纹信息,确定每个文件的少数因子,所述少数因子为对应文件中文件内容占比低于占比阈值的文件内容的标识;获取每种标识分别对应的默认权重;若所述两个文件的少数因子相同,则增大所述少数因子的默认权重,得到所述少数因子的融合权重;根据所述融合权重,对所述匹配结果进行加权融合,得到所述匹配分数。
[0217]
在本技术的一些实施方式中,上述确定单元1203还可以具体用于:计算所述两个文件中指纹信息的总长度之间的第一比值;根据所述第一比值,对所述匹配分数进行调整。
[0218]
在本技术的一些实施方式中,上述确定单元1203还可以具体用于:获取所述两个文件的指纹信息中跳变沿的出现频率,所述跳变沿表示所述指纹信息内相邻的标识为不同标识;若所述出现频率低于频率阈值,则计算所述出现频率与所述频率阈值的第二比值;根据所述第二比值,对所述匹配分数进行调整。
[0219]
在本技术的一些实施方式中,上述确定单元1203还可以具体用于:若所述两个文件的少数因子不相同,则将所述默认权重作为所述融合权重;根据所述融合权重,对所述匹配结果进行加权融合,得到所述匹配分数。
[0220]
在本技术的一些实施方式中,上述获取单元1201还可以具体用于:获取待匹配的两个文件的指纹数据,所述指纹数据包括所述指纹信息以及校验信息,所述校验信息包括所述指纹数据的版本标识和对所述指纹信息进行加密得到的校验值中的至少一项;上述文件匹配装置1200还可以包括校验单元,用于根据所述校验信息,对所述两个文件的指纹数据进行校验。
[0221]
在本技术的一些实施方式中,上述比对单元1202可以具体用于:若所述两个文件
的文件时长不同,则根据第一文件的文件时长,确定第二文件的指纹信息中的目标指纹信息,其中,所述第一文件为所述两个文件中时长较短的文件,所述第二文件为所述两个文件中时长较长的文件,所述目标指纹信息的时长与所述第一文件的文件时长相同;将所述第一文件的指纹信息与所述目标指纹信息进行比对,得到所述匹配结果。
[0222]
需要说明的是,为描述的方便和简洁,上述文件匹配装置1200的具体工作过程,可以参考图1至图11所述方法的对应过程,在此不再赘述。
[0223]
如图13所示,为本技术实施例提供的一种电子设备的示意图。具体的,电子设备13可以包括:处理器130、存储器131以及存储在所述存储器131中并可在所述处理器130上运行的计算机程序132,例如文件内容的匹配程序。所述处理器130执行所述计算机程序132时实现上述各个文件匹配方法实施例中的步骤,例如图1所示的步骤s101至s103。或者,所述处理器130执行所述计算机程序132时实现上述各装置实施例中各模块/单元的功能,例如图12所示的获取单元1201、比对单元1202和确定单元1203。
[0224]
所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器131中,并由所述处理器130执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备中的执行过程。
[0225]
例如,所述计算机程序可以被分割成:获取单元、比对单元和确定单元。各单元具体功能如下:获取单元,用于分别获取待匹配的两个文件的指纹信息,所述指纹信息用于通过不同的标识描述对应文件中不同文件内容的分布情况;比对单元,用于对所述两个文件的指纹信息进行比对,得到每种标识的匹配结果;确定单元,用于根据所述匹配结果,确定所述两个文件之间文件内容的匹配分数。
[0226]
所述电子设备可包括,但不仅限于,处理器130、存储器131。本领域技术人员可以理解,图13仅仅是电子设备的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
[0227]
所称处理器130可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0228]
所述存储器131可以是所述电子设备的内部存储单元,例如电子设备的硬盘或内存。所述存储器131也可以是所述电子设备的外部存储设备,例如所述电子设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器131还可以既包括所述电子设备的内部存储单元也包括外部存储设备。所述存储器131用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器131还可以用于暂时地存储已经输出或者将要输出的数据。
[0229]
需要说明的是,为描述的方便和简洁,上述电子设备的结构还可以参考方法实施例中对结构的具体描述,在此不再赘述。
[0230]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功
能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0231]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0232]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对各个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0233]
在本技术所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0234]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0235]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0236]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0237]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。

技术特征:
1.一种文件匹配方法,其特征在于,包括:分别获取待匹配的两个文件的指纹信息,所述指纹信息用于通过不同的标识描述对应文件中不同文件内容的分布情况;对所述两个文件的指纹信息进行比对,得到每种标识的匹配结果;根据所述匹配结果,确定所述两个文件之间文件内容的匹配分数。2.如权利要求1所述的文件匹配方法,其特征在于,所述根据所述匹配结果,确定所述两个文件之间文件内容的匹配分数,包括:根据所述两个文件的指纹信息,确定每个文件的少数因子,所述少数因子为对应文件中文件内容占比低于占比阈值的文件内容的标识;获取每种标识分别对应的默认权重;若所述两个文件的少数因子相同,则增大所述少数因子的默认权重,得到所述少数因子的融合权重;根据所述融合权重,对所述匹配结果进行加权融合,得到所述匹配分数。3.如权利要求2所述的文件匹配方法,其特征在于,在所述根据所述融合权重,对所述匹配结果进行加权融合,得到所述匹配分数之后,还包括:计算所述两个文件中指纹信息的总长度之间的第一比值;根据所述第一比值,对所述匹配分数进行调整。4.如权利要求2所述的文件匹配方法,其特征在于,在所述根据所述融合权重,对所述匹配结果进行加权融合,得到所述匹配分数之后,还包括:获取所述两个文件的指纹信息中跳变沿的出现频率,所述跳变沿表示所述指纹信息内相邻的标识为不同标识;若所述出现频率低于频率阈值,则计算所述出现频率与所述频率阈值的第二比值;根据所述第二比值,对所述匹配分数进行调整。5.如权利要求2所述的文件匹配方法,其特征在于,在所述根据所述两个文件的指纹信息,确定每个文件的少数因子之后,所述文件匹配方法还包括:若所述两个文件的少数因子不相同,则将所述默认权重作为所述融合权重;根据所述融合权重,对所述匹配结果进行加权融合,得到所述匹配分数。6.如权利要求1至5任意一项所述的文件匹配方法,其特征在于,所述对所述两个文件的指纹信息进行比对,得到每种标识的匹配结果,包括:若所述两个文件的文件时长不同,则根据第一文件的文件时长,确定第二文件的指纹信息中的目标指纹信息,其中,所述第一文件为所述两个文件中时长较短的文件,所述第二文件为所述两个文件中时长较长的文件,所述目标指纹信息的时长与所述第一文件的文件时长相同;将所述第一文件的指纹信息与所述目标指纹信息进行比对,得到所述匹配结果。7.如权利要求1至5任意一项所述的文件匹配方法,其特征在于,所述分别获取待匹配的两个文件的指纹信息,包括:获取待匹配的两个文件的指纹数据,所述指纹数据包括所述指纹信息以及校验信息,所述校验信息包括所述指纹数据的版本标识和对所述指纹信息进行加密得到的校验值中的至少一项;
在所述分别获取待匹配的两个文件的指纹信息之后,所述文件匹配方法还包括:根据所述校验信息,对所述两个文件的指纹数据进行校验。8.一种文件匹配装置,其特征在于,包括:获取单元,用于分别获取待匹配的两个文件的指纹信息,所述指纹信息用于通过不同的标识描述对应文件中不同文件内容的分布情况;比对单元,用于对所述两个文件的指纹信息进行比对,得到每种标识的匹配结果;确定单元,用于根据所述匹配结果,确定所述两个文件之间文件内容的匹配分数。9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述文件匹配方法的步骤。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述文件匹配方法的步骤。

技术总结
本申请适用于计算机技术领域,提供了一种文件匹配方法、装置、电子设备和计算机可读存储介质。其中,上述文件匹配方法包括:分别获取待匹配的两个文件的指纹信息,所述指纹信息用于通过不同的标识描述对应文件中不同文件内容的分布情况;对所述两个文件的指纹信息进行比对,得到每种标识的匹配结果;根据所述匹配结果,确定所述两个文件之间文件内容的匹配分数。本申请的实施例可以提高文件匹配的准确性。性。性。


技术研发人员:苑鹏飞 邓志明
受保护的技术使用者:迅雷计算机(深圳)有限公司
技术研发日:2023.04.24
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐