专利名称:一种用于音频内容识别的同步方法
技术领域:
本发明涉及数字信号处理、音频信号处理及软件技术,具体地说涉及一种用于音
频信息内容识别的同步方法。
背景技术:
随着计算机网络和现代通信技术的发展,多媒体信息的容量得到了飞速的增加。 多媒体信息已经成了人们日常生活中不可或缺的一部分。 音频在多媒体信息中占有相当大的比例,因此对音频信息的识别也就有了实际的 意义。 在特征维数存储空间有限的条件下,得到两个音频后,为了识别两个音频信息是 否相同,对接下来的信息进行提取特征。为了使有公共部分的音乐片段,能够提取出共有 的音乐片段的特征,以作度量,就需要对两个音频同步,即假如两个是大致相同的音频内容 的话,但是由于起始时间上不是完全一致,为了提取信息特征时采用相同的成分,就需要先 对两段音频同步,使二者有共同的参考点或参考点组,即对相似的,但长度大小又不同的音 频,找到共有的音频段去处理。它们之间应该有同步点使二音频对应起来。同步点一般在 特征突变位置时,比较好标记。 在此之前,已有数种提取节拍的尝试。在中华人民共和国国家知识产权局的公开 专利200610108649. 0中公开了拍子提取及检测设备和方法、音乐同步显示设备和方法,其 利用检测输入音乐信号的声谱图中,功率谱的急剧变化来提取拍子,计算自相关来推算节 拍值。公开专利200480008226. 0中公开了一种拍子分析装置和拍子分析方法,其根据从分 析数据提取来的声音信号的电平信息,以规定的单位时间区间的帧作为处理单元,检测出 在规定电平以上的峰值位置,并求该帧区间中的各峰值位置之间的间隔,将发生频度高的 峰值间隔决定为拍子。 上述专利中的节奏提取,主要为了获得音乐的拍子,得到整段音乐的节拍,主要针 对的是音乐信号。
发明内容
本发明的目的在于克服现有技术的不足,提供一种为了识别两个音频信息的异 同,将两个音频同步的方法。该方法既适用于音乐信息的识别中,又适用于语音信息的识 别。 实现本发明目的技术方案是一种用于音频内容识别的同步方法,该方法包括下 列 步骤 步骤1提取两个音频信号的频域或时域的特征点;
步骤2将两个音频的特征点分别组成特征点组; 步骤3对两个特征点组进行匹配,找到匹配点,将二者在匹配点上开始同步。
音频文件的识别中存在两种不同情况,其中之一是两个不同的音频文件的同步问 题,毫无疑问,两个完全不同的音频文件,无论如何都不可能达到同步,但是我们也可以认 为,他们任何时候都是同步的,只是同步后的内容不同,因此,本发明中的特征点组匹配后 得到的匹配点就可以作为其同步点,只是后续的特征提取所得到的特征不同而已。另一种 情况是两个基本相同的文件的同步问题,可以认为有公共部分的两个文件,其一定可以找 到相同的点,这个点之后的同样大小的部分则可以认为是这两个音频文件所共有的部分。 这样一来,有共有部分的音频文件就可以看作是同步了,同步点之后的就可以认为是相同 的内容了。 本发明中的特征点组通过提取频域或时域特征点进行组合的方式来实现,可以用 于音乐信息和语音信息的识别中的同步。 作为本发明的进一步改进,所述步骤1中,采用以帧为单位,计算归一化能量差的 方式提取特征点。 作为本发明的进一步改进,所述步骤2中,选取帧间能量差最大的若干点组成特 征点组。 作为本发明的进一步改进,所述步骤3中,可由特征点组之间的时间差做参考同 步特征,即如果音频a中参考点之间的时间差和b中参考点之间的时间差相同或者在允许 的误差范围内,则可以认为a中某个参考点和b中某个参考点构成了 a和b的同步点。
本发明中,所述提取两个音频信号的频域特征点步骤中,具体包括以下步骤
将音频段以帧为单位转化到频域,经过梳状滤波器组滤波,并进行归一化;
选取帧间能量差最大的特征点组成特征点组。对于和某个滤波器中心频率有共鸣 或相近的地方,信号将有较大的增幅导致能量激增。
本发明中,所述步骤1中,具体包括以下步骤 将音频以帧为单位进行处理,计算各帧能量,计算能量差,并归一化; 选取较大的能量差的点组成特征点组。由于音频信号在时域中是缓慢变化的信
号。但是在节奏突变处,将有明显的跳动,导致前后两帧能量有较大的反差,这些点可形成
特征点组。 本发明中,所述步骤3可以采用下列方式 —种是把相比较的两个音频中较第一音频的特征点组分成两半,分别取最大值得 到假设参考点,然后从另一特征点组中采取比较时间差t的方式搜索,使其在合理误差范 围内从而决定是否同步。 另一种方法是首先经过量化器,将时间差映射为一组字符串S,每一个字符和其它 字符所代表的时间差数值,有一定的交叠,以保证合理的误差允许度,然后把较第一音频分 成两半,分别选取合适的子字符串S" S2,利用查找字符子串的方式从较第二音频字符串S 中搜索子串S" S2,根据搜索结果来判别是否同步以及相应同步点。 本发明主要目的是用作音频同步,并不需要提取节奏,这也是本发明和之前所提 到的专利很大的不同。本发明不仅仅适用于音乐信号,对语音信号也同样适用,解决了两端 起始端有出入的音频信号的同步问题。
图1两端大致相同而又没有同步的两个音频 图2本发明实施例1的流程图 图3本发明实施例1中第一种同步匹配方法的流程图 图4本发明实施例1中第二种同步匹配方法的流程图 图5本发明实施例1中的第一音频特征点输出 图6本发明实施例1中的第二音频特征点输出 图7本发明实施例2中特征点提取的流程图 图8本发明实施例3中特征点提取和筛选流程图 图9本发明实施例3中的第一音频特征点输出 图10本发明实施例3中的第二音频特征点输出
具体实施例方式以下将参考附图来描述本发明的具体实施方式
。
实施例1 本实施例是基于提取音频文件中的频域特征点的同步方法。 如图1所示,两个进行内容比较识别的音频,第一音频和第二音频。 如图2所示,对第一音频和第二音频的数据分别进行下列步骤IO—步骤13的处理。 步骤10对音频数据预加重,去除一些环境噪音;以帧为单位对音频信号进行处
理,将原音频段分割成以帧为单位,并进行加帧窗的处理; 步骤11分帧后的时域数据转化到频域根据帧大小,通过N点FFT运算,把来到的 每一帧的数据,变换到频率域,然后输出。这样原始信号就变成一帧帧的频域数值,而帧号 就相当于某种意义上的时间轴,此时的输出信号既和时间相关,又和频率相关。
步骤12特征点的提取 步骤120将数据首先经过梳状滤波器组滤波,然后进行能量提取和量化,接着是 计算能量变化率;音频信号经过梳状滤波器,由于梳状滤波器平均的散布在频率域上,所以 通过后的每帧能量和所分析信号的谐波有很大关系,而当节奏突变时,必将导致这一帧信 号能量相比于前一帧有较大的变化。本发明要得到的就是这种畸变点。
步骤121提取经过滤波器后的各路信号的能量; 步骤122把上步骤得到的多路信号的能量进行量化,使得量化后的信号能量E的 范围在0到l之间。 步骤123把当前帧的能量E减去上一帧的本路信号的能量E得到这一路的能量差 输出,把各路信号能量差相加后输出。输出的信号如图5和图6所示。
步骤13特征点组筛选在上步骤输出数据中选出M个最大值,并记录其帧 号位置,作为M个特征点,M可根据音频大小调整,音频越长相应M也越大,由此得
到第 一 音频的特征点组石=(",0,(^O,",",…,"av V)〉,第二音频的特征点组 T^^;"),04,O,","…,(^,^》,其中Xi为此帧和前一帧能量差值,、为此帧帧号本
发明中的特征点并不是实际意义上的一个音频数据点,而是指第几帧。 步骤14将两个特征点组7;-((X,0,(x2,0,0^3),…,(、,^》,7;-((^),02,o,o;A),…,o^,、》进行同步匹配。
同步匹配具体可以采用两种方式,其一种方式如图3所示 步骤141将两个音频文件中第一音频的M工个特征点,按顺序分成前后个数 相等的两部分,即每个部分含有M/2个特征点;S卩,假设进行同步匹配的两个特征
点组为7;-((x,,o,(x2"2),(x3"3),r2={(x;"),(x2,"(44)"."(42,42)}。
同时假设第一音频的长度<第二音频的长度,于是有M工<M2,那么L被分为
二 ((11,^),C^2,^2),…,(XaV2,^^2)〉 ,^2 = ((XaV2+"^V2+1),(XaV2+2,、/2+2),…,(XjIV、))。 步骤142计算出前M/2个点中的最大值点^ = (xsl, tsl),并以其作为一个假设 同步点,同理也计算出后半部的最大值X《二 (x《,tj,作为第二假设同步点。即分别找出 前、后M/2个点中Xi的最大值,为xsl, xs2,并取出其之后相邻N-l个特征点组成Tsl = {(xsl,
tsl) , (Xsl+1, tsl+1) , , (Xsi+n, tsl+N) } , Ts2 — { (Xs2, ts2) , (Xs2+1, ts2+1) , , (Xs2+n, ts2+n) }。 此
处我们假设的N没有超出范围,即Xsl, X《,之后的N可以取到。 步骤143计算Xsl之后的各特征点和Xsl之间的时间差,以及计算Xs2之后的各特征 点和Xs2之间的时间差;由于我们知道特征点的帧号,那么两个特征点的帧号之差就相当于 他们之间的时间间隔。 步骤144在两个音频中的第二音频特征组T2中,以第一个特征点X'工=(x' 15 t'》开始,找出它之后相邻的N-l个特征点之间时间差并和第一音频中相邻参考点组L ={(xsl, tsl), (xsl+1, tsl+1),, (xsl+N, tsl+N)}之时间差比较,看是否相同,若连续几个都 相同或者误差比较小,则认为找到了同步点,即第二音频中的当前特征点X' 1=(x' p t'》和第一音频中假设同步点L构成了一组同步点,同时第一音频同步点L之后相 邻的其他特征点与第二音频中当前特征点X'工之后的特征点一起组成了一个同步点组。 若没有,从第二音频中第二个参考点X' 2继续遍历。g卩以L的X' 1=(x' 》 开始选取N个构成Kx' pt'》,(x' 2,t' 2),...,(x' N,t' N)}和L比较,即若 (tw-ti)-(t' j+1_t' j),等于0或在规定误差内,其中si《i < sl+N,l《j <N。那么 可以认为L = (xsl, tsl), X' ! = (x' p t'》构成了同步点,Tsl = {(xsl, tsl), (xsl+1,
tsl+1),…,(Xsl+N, tsl+N)}和{(X' "t'》,(X'2,t'2),…,(X'N,t' wM构成同步点
组。若不符合条件,继续以以t2的X' 2=(x' 2,t' 2)开始选取N个构成Kx' 2,t' 2),
(X'3,t'3),…,(X'N+1,t'N+1)}和L比较,以此类推,直到找到满足符合条件的X' j。 步骤145若第二音频t2中的所有参考点《,…,Z^遍历完以后,没有找到符合条件 的点,则再从第二音频T2中第一个特征点X'工开始,对第二个假设同步点Xs2作同样遍历 操作。 步骤146如果两次遍历都没有找到,那么这两段音频极有可能不同,无法同 步,此时,我们把音频l最大特征点max(L, Xs2}和音频L的最大特征点max^^,Z」 max^,…J^M乍为同步点给出。
其另一种方法如图4所示 步骤147提取第二音频特征点组T2的M工个特征点中的相邻的特征点之间的差值, 得到各相邻特征点之间的时间差。 步骤148将时间差进行量化处理,输出一串Mrl长的字符串P,其中不同的字母去
8代表不同大小的量化间隔,并保存映射表。 步骤149在较第一音频的特征点组1\中,筛选出前M乂2,和后M/2个特征点中最 大值L = (xsl, tsl), Xs2 = (xs2, tj,并将它们作为两个假设同步点,分别将其之后相邻的 N-l个特征点之差送入量化设备,分别得到两个N-1长字符串Pl, P2。 步骤150将Mrl长字符串P和N-l长字符串PI进行字符串匹配,在Mrl长字符 串P中寻找和P1相匹配的子串,并进行定位。字符串匹配可以用简单串匹配算法,或KMP 算法,BM算法,RK算法,Z算法等常用算法或硬件设备来实现。 步骤151若未找到匹配串,则将字符串P和P2进行字符串匹配,在字符串P中寻 找和P2相匹配的子串,并进行定位。 若找到相同的字符串则说明找到同步位置,并将字符串设备中输出的定位点作为 同步点,字符串PI或P2为同步点组。 若仍然未找到,把音频特征点组1\最大特征点和音频特征点组12的最大特征点作
为假同步点给出。
实施例2 本实施例中,与上例的不同之处在于,特征点的提取的方法不同,本实施例中采用
相邻帧间相位特征突变来提取参考点。 如图7所示,特征点的提取的方法 步骤124对每帧的频域相位分别进行计算; 步骤125计算相邻帧之间的相位差,滤除相位差在某阈值以下的点,输出至特征 点组筛选13。
实施例3 本实施例是基于提取音频文件中的时域特征点的同步方法,特征点提取和特征点 组筛选与实施例l不同。 如图8所示,假设我们获得的是两个wav的PCM数据,对两个音频数据分别进行下 列步骤20 —步骤23的处理。 步骤20对音频数据预加重,去除一些环境噪音;以帧为单位对音频信号进行处 理,将原音频段分割成以帧为单位,并进行加窗的处理; 步骤21计算帧信号能量,并将此帧信号能量和前一帧信号的能量值相减后,并归 一化,然后输出;输出信号如图9和IO所示。
步骤22把负值全部置零; 步骤23特征点组筛选指定控制参数M,控制最大值筛选器获取前M个最大值, 获得M个特征点,并记录其位置,得到两个音频的特征点组L = {(Xl, t》,(x2, t2), (x3,
t3),... , (XM,tM)},T2 = KX'"'》,(X' 2,t' 2),(X' 3,t' 3),…,(X' M,t' M) }, 其中Xi为此帧和前一帧能量差值,ti为此帧帧号和前一帧号之差,即为此帧和前一帧的时 间差。
权利要求
一种用于音频内容识别的同步方法,其特征是,该方法包括下列步骤步骤1提取两个音频信号的频域或时域的特征点;步骤2将两个音频的特征点分别组成特征点组;步骤3对两个特征点组进行匹配,找到匹配点,将二者在匹配点上开始同步。
2. 根据权利要求1所述的同步方法,其特征是,所述步骤1中,采用以帧为单位,计算归一化能量差的方式提取特征点;所述步骤2中,选取帧间能量差最大的若干点组成特征点组;所述步骤3中,采用特征点组之间的时间差作为参考同步特征。
3. 根据权利要求1所述的同步方法,其特征是,所述步骤1中进一步包括下列步骤步骤10对音频数据预加重,去除一些环境噪音;以帧为单位对音频信号进行处理,将原音频段分割成以帧为单位,并进行加窗的处理;步骤11分帧后的时域数据转化到频域根据帧大小,通过N点FFT运算,把来到的每一帧的数据,变换到频率域,然后输出;步骤12特征点的提取。
4. 根据权利要求1所述的同步方法,其特征是,所述步骤1中进一步包括下列步骤步骤20对音频数据预加重,去除一些环境噪音;以帧为单位对音频信号进行处理,将原音频段分割成以帧为单位,并进行加窗的处理;步骤21计算帧信号能量,并将此帧信号能量和前一帧信号的能量值相减后输出;步骤22把负值全部置零;步骤23特征点组筛选指定控制参数M,控制最大值筛选器获取前M个最大值,获得M个特征点,并记录其位置,得到两个音频的特征点组k 二((x,o, o2,o, o3,o, , k={(x;";),(^"2),o;,4)"."(、2,42)},其中x丄为此帧和前一帧能量差值,ti为此帧帧号和前一帧号之差,即为此帧和前一帧的时间差。
5. 根据权利要求3或4所述的同步方法,其特征是,所述步骤2中进一步包括下列步骤分别在两个音频的特征点中选出M个最大值,并记录其帧号位置,作为M个特征点,M可根据音频长短调节,得到第一音频的特征点组7i-(",0,"2,","3,^),…,C^,,^W,第二音频的特征点组^={(1;"),02,4),(^,4),...,(^2,42)},其中Xi为此帧和前一帧能量差值,、为此帧帧号和前一帧号之差,即为此帧和前一帧的时间差。
6 根据权利要求3所述的同步方法,其特征是,上述步骤12中进一步包括步骤120将数据首先经过梳状滤波器组滤波,然后进行能量提取和量化,接着是计算能量变化率;步骤121提取经过滤波器后的各路信号的能量;步骤122把上步骤得到的多路信号的能量进行量化,使得量化后的信号能量E的范围在0到1之间;步骤123把当前帧的能量E减去上一帧的本路信号的能量E得到这一路的能量差输出,把各路信号能量差相加后输出。
7. 根据权利要求3所述的同步方法,其特征是,上述步骤12中进一步包括步骤124对每帧的频域相位分别进行计算;步骤125计算相邻帧之间的相位差,滤除相位差在某阈值以下的点,输出至特征点组筛选。
8. 根据权利要求5所述的同步方法,其特征是,所述步骤3中进一步包括下列步骤将两个特征点组7;-((x^),(x2,f2),(x3,f3),…,( ,、))和:r2Mo;"),(x;,o,(4f;),…,(;^,42》进行同步匹配。
9. 根据权利要求6或7所述的同步方法,其特征是,上述步骤3中进一步包括步骤141假设第一音频的长度<第二音频的长度,将第一音频特征组1\的M工个特征点,按顺序分成前后个数相等的两部分,每个部分含有M乂2个特征点,第一音频特征点组1\被分为两个特征点组二((Xl,0,C^2"2),…,(^m,/2,,AV2)〉禾口71 WJC ,一" i,2", /2+",、-^"+2,(m,/2+2/,…,、 ,,'A^"'步骤142计算出前M/2个点中的最大值^ = G^,tJ,并以其作为一个假设同步点,计算出后半部的最大值L = (xs2, t《),作为第二假设同步点;步骤143计算特征点Xsl之后的各特征点和特征点Xsl之间的时间差,以及计算特征点Xs2之后的各特征点和特征点Xs2之间的时间差;步骤144在第二音频特征组L中,以第一个特征点X' = (x' 》开始,找出它之后相邻的N-1特征点之间时间差并和第一音频中相邻参考点组L = {(xsl, tsl), (xsl+1,tsl+1),... , (xsl+N,tsl+N)}之时间差比较,看是否相同的,若连续几个都相同或者误差比较小,第二音频中的当前特征点X' 1=(x' 》和第一音频中假设同步点U勾成了一组同步点,同时第一音频同步点Xsl之后相邻的其他特征点与第二音频中当前特征点X'工之后的特征点一起组成了一个同步点组;若没有,从第二音频中第二个参考点X' 2继续遍历;步骤145若二音频1~2中的所有参考点《,…,X^遍历完以后,没有找到符合条件的点,则再从第二音频T2中第一个特征点X'工开始,对第二个假设同步点Xs2作同样遍历操作;步骤146如果对同步点Xsl和同步点Xs2的遍历都没有找到,把音频1\最大特征点max{Xsl,Xs2}和音频T2的最大特征点111扱{《,..^^2}作为同步点给出。
10. 根据权利要求6或7所述的同步方法,其特征是,上述步骤3中进一步包括步骤147提取较第二音频特征点组L的M工个特征点中的相邻的特征点之间的差值,得到各相邻特征点之间的时间差;步骤148将时间差进行量化处理,输出一串Mrl长的字符串P,其中不同的字母去代表不同大小的量化间隔,保存映射表;步骤149在较第一音频的特征点组1\中,筛选出前M乂2,和后M/2个特征点中最大值Xsl = (xsl, tsl) , Xs2 = (xs2, ts2),,并将它们作为两个假设同步点,计算相邻特征点之间时间差,并将N-l个时间差送入量化设备,分别得到两个N-l长字符串Pl, P2 ;步骤150将M「1长字符串P和N-l长字符串PI进行字符串匹配,在M「1长字符串P中寻找和P1相匹配的子串,并进行定位;步骤151若未找到匹配串,则将字符串P和P2进行字符串匹配,在字符串P中寻找和P2相匹配的子串,并进行定位;若找到相同的字符串则说明找到同步位置,并将字符串设备中输出的定位点作为同步点,字符串PI或P2为同步点组;若仍然未找到,把音频特征点组L最大特征点和音频特征点组L的最大特征点作为假同步点给出。
全文摘要
本发明提供一种用于识别音频的同步方法,该方法既适用于音乐信息的识别中,又适用于语音信息的识别。实现本发明目的技术方案是一种用于音频内容识别的同步方法,该方法包括下列步骤步骤1提取两个音频信号的频域或时域的特征点;步骤2将两个音频的特征点分别组成特征点组;步骤3对两个特征点组进行匹配,找到匹配点,将二者在匹配点上开始同步。
文档编号G10H1/00GK101763848SQ200810243580
公开日2010年6月30日 申请日期2008年12月23日 优先权日2008年12月23日
发明者严荣荣, 曹辉, 杨光, 王宏宇 申请人:王宏宇