当前位置: 首页 > 专利查询>清华大学专利>正文

基于交叉熵的音频指纹快速搜索方法技术

技术编号:4268489 阅读:441 留言:0更新日期:2012-04-11 18:40
基于交叉熵的音频指纹快速搜索方法,属于音频指纹搜索技术领域,其特征在于,利用共分量高斯混合模型来描述音频指纹,并且用交叉熵来衡量音频指纹间的距离,然后用广义动态时序比对方法,以滑动窗方式将用户指定音频段与输入音频流进行指纹比较,判断该音频流中是否包含有指定音频段。本发明专利技术具有能大大地减少距离计算次数,而且还能适应于多种音频失真情况,错误率相对于使用L1距离降低了三分之一的优点,已完成软件实现并在仿真实验中予以测试。

【技术实现步骤摘要】

本专利技术涉及一种,可以实现合理的跳跃式比 对,达到从大量音频数据中进行高效准确的搜索的目的。
技术介绍
音频指纹是指音频自身的基于内容的低维表示(一段音频被表示成一个低维特 征矢量),不同内容的音频有不同的指纹。音频指纹技术有着广泛的应用背景,包括基于内 容的音频辨识和检索,版权管理等领域。现阶段已经存在很多不同的算法。这些算法主要在以下几点有区别1.音频特征的选取,如音频短时频谱的均值、方差、谱中心、基音等。2.指纹模型的构造,如矢量量化码本,高斯混合模型等。3.音频指纹对比所用的距离算法,如欧氏距离,马氏距离等4.检索算法,如线性比对,最近邻比对等。优秀的音频指纹搜索方法应该能够在音频信号由于压缩、传输等造成一定的失真 之后,仍然能够进行正确比对,并且满足计算的时间复杂度要求。专利技术目的本专利技术提出了种对失真有更好稳健性,对距离度量具有更广的适应性的基于交叉 熵的音频指纹快速搜索方法。本专利技术的特征在于是在计算机中依次按以下步骤实现的步骤(1)计算机初始化设置共分量高斯混合模型生成模块,基于共分量高斯混合模型的音频指纹提取 模块,广义动态时序比对模块,其中所述共分量高斯混合模型生成模块,使用事先采集好的约100个小时的音频数 据,进行最大似然参数估计,创建一个共分量高斯混合模型;所述音频指纹提取模块,基于所述共分量高斯混合模型提取音频指纹,并且用交 叉熵衡量音频指纹间距离;所述广义动态时序比对模块,以滑动窗方式将用户指定音频段与输入音频流进行 指纹比较,判断音频流中是否包含有指定音频段。步骤(2)按以下步骤创建一个共分量高斯混合模型步骤(2. 1)事先采集好约100个小时的音频数据。经过短时傅立叶分析,以10毫 秒为一帧提取一个倒谱特征矢量。步骤(2. 2)利用步骤(2. 1)得到的倒谱特征矢量集,进行最大似然参数估计,创建 一个共分量高斯混合模型。该模型包含M个高斯分布作为其分量,以及M个权重系数,M的 取值为512 {(0产),yi(u),E 产)}1 = 1, ..., 其中ii严,E,表示第i个高斯分量的均值矢量和协方差矩阵,表示第i个高斯分量的权重系数,i = 1,…,M,上标u标识此共分量高斯混合模型。步骤(3)按以下步骤对用户指定音频段进行预处理步骤(3. 1)向计算机输入用户指定音频段c,时间长度为几秒,经过短时傅立叶 分析,以10毫秒为一帧提取一个倒谱特征矢量。这样,音频段c用一个倒谱特征矢最序列 {x^ln.!, .^来表示,w表示音频段C的帧数,n = 1,…,W表示音频段C的各帧的序号, 上标C标识此音频段C。步骤(3. 2)按下式计算共分量高斯混合模型的第i个高斯分量在音频段c的第n 帧的权重系数%,:),11 = 1,-,ff 其中i = l,M, j = 1,…,M为共分量高斯混合模型的高斯分量的编号, Ni(x| !!严,乙严)表示均值矢量为^产),协方差矩阵为E产)的高斯分布概率密度函数。按下式计算第i个高斯分量在音频段c中各帧的权重系数的算术平均值,用。严 表不 计算得到的各个高斯分量的权重系数的算术平均值组成一个矢量{>严} i = !,..., , 将该矢量作为音频段c的低维表示_音频指纹。步骤(4)以滑动窗方式将用户指定音频段c与被测试音频流s进行指纹比较步骤(4. 1)在设定的小时数内,向计算机输入被测试音频流s,经过短时傅立叶分 析,以10毫秒为一帧提取一个倒谱特征矢量。这样,被测试音频流s用一个倒谱特征矢量 序列Ixt^tM,…^来表示,T为被测试音频流s的帧数,t = 1,…,T表示音频流s的各 帧的序号,上标s标识此音频流s。步骤(4. 2)按下式计算共分量高斯混合模型的第i个高斯分量在音频流s的第t帧的权重系数1,…,T: 二 j 其中i = l,M, j = 1,…,M为共分最高斯混合模型的高斯分量的编号。 Ni(x| !!严,乙严)表示均值矢量为^产),协方差矩阵为E产)的高斯分布概率密度函数。步骤(4.3)设置1 = 1。步骤(4. 4)如果1+W-1 > T,则退出。步骤(4.5)将音频流s从第1帧开始的长度为W的一个窗内的音频段lxt(s)}t = !,以下称音频段S(1),与音频段C进行指纹距离计算。首先,按下式计算得到音频段sa)的指纹 即第i个高斯分量在音频段sQ)中各帧的权重系数的算术平均值作为音频段的音频指纹的第i维。然后,按下式计算出音频段sa)的指纹1>严1)}1 = 1,...,8(与音频段(3的指纹1>产、 ...,M之间交叉熵距离 如果da(l) ( 6,则判断音频流s从第1帧开始包含了音频段C,其中e为一个 预设检测阈值,取0. 01。接着令1 = 1+1,回到步骤(4. 4)继续搜索音频流s的剩下部分是 否还包含有音频段c。如果(^(1) > 0,则按下式计算出一个跳跃步长 其中A为一个预设偏移量,取0.001或0.005,」表示向下取整。接着令1 = 1+ t L_skip,回到步骤(4. 4)继续搜索音频流s的剩下部分是否还包含有音频段c。本专利技术的特征点在于1 建立共分量高斯混合模型(CCGMM,Common Component Gaussian MixturoModel)来描述音频指纹,并且选用交叉熵衡量音频指纹间的距离。交叉熵距离度量 具有更好的对低速率音频压缩、回响干扰、D/A和A/D转换等失真的更好的稳健性。2.提出广义动态时序比对技术,不仅适用于传统的L1距离,而且适用于交叉熵距 离,以及其他任意距离函数为凸函数的距离度量。测试表明,本专利技术使用偏移量为0.005的交叉熵距离相对线性逐帧计算可以减 少93. 47%的距离计算次数,并且在多种失真下,本专利技术的错误率相对使用L1距离降低了 31. 7%。附图说明图1 基于交叉熵的音频指纹搜索方法的原理图。图2 基于交叉熵的音频指纹搜索方法的程序流程图。具体实施例方式本专利技术具体包括三个模块,共分量高斯混合模型生成模块,基于共分量高斯混合 模型的音频指纹提取模块,广义动态时序比对模块。各模块的具体说明如下。共分量高斯混合模型生成模块首先,事先采集好约100个小时的音频数据。经过短时傅产叶分析,以10毫秒为 一帧提取一个倒谱特征矢量。然后,利用上述得到的倒谱特征矢量集,进行最大似然参数估计,创建一个共分量 高斯混合模型。该模型包含M个高斯分布作为其分量,以及M个权重系数,M的取值为512 其中i;严,E严表示第i个高斯分量的均值矢量和协方差矩阵,《产)表示第i 个高斯分量的权重系数,i = 1,…,M。上标u标识此共分量高斯混合模型。音频指纹提取模块现有技术常常是通过简单的矢量量化得到特征矢量或是直方图作为音频指纹。本 专利技术使用基于共分量高斯混合模型计算出的音频段的各帧的权重系数的算术平均值作为 音频段的指纹。在指纹搜索系统中,有两处地方需要调用音频指纹提取模块。用户指定音频段的指纹提取对于用户指定音频段c,时间长度为几秒,经过短时傅立叶分析,以10毫秒为一帧 提取一个倒谱特征矢量。这样,音频段c用一个倒谱特征矢量序列{、(’彳^^来表示,评 表示音频段c的帧数,n = 1,…,W表示音频段c的各帧的序号。上标c本文档来自技高网...

【技术保护点】
基于交叉熵的音频指纹快速搜索方法,其特征在于,是在计算机中依次按以下步骤实现的:步骤(1)计算机初始化:设置:共分量高斯混合模型生成模块,基于共分量高斯混合模型的音频指纹提取模块,广义动态时序比对模块,其中:所述共分量高斯混合模型生成模块,使用事先采集好的约100个小时的音频数据,进行最大似然参数估计,创建一个共分量高斯混合模型;所述音频指纹提取模块,基于所述共分量高斯混合模型提取音频指纹,并且用交叉熵衡量音频指纹间距离;所述广义动态时序比对模块,以滑动窗方式将用户指定音频段(4)以滑动窗方式将用户指定音频段c与被测试音频流s进行指纹比较:步骤(4.1)在设定的小时数内,向计算机输入被测试音频流s,经过短时傅立叶分析,以10毫秒为一帧提取一个倒谱特征矢量。这样,被测试音频流s用一个倒谱特征矢量序列{x↓[t]↑[(s)]}t=1,...,T来表示,T为被测试音频流s的帧数,t=1,…,T表示音频流s的各帧的序号,上标s标识此音频流s。步骤(4.2)按下式计算共分量高斯混合模型的第i个高斯分量在音频流s的第t帧的权重系数ω↓[i,t]↑[(s)],t=1,…,T:ω↓[i,t]↑[(s)]=ω↓[i]↑[(u)]N↓[i](x↓[t]↑[(s)]|μ↓[i]↑[(u)],Σ↓[i]↑[(u)])/*ω↓[j]↑[(u)]N↓[j](x↓[t]↑[(s)]|μ↓[j]↑[(u)],Σ↓[j]↑[(u)])其中i=1,…,M,j=1,…,M为共分量高斯混合模型的高斯分量的编号。N↓[i](x|μ↓[i]↑[(u)],∑↓[i]↑[(u)])表示均值矢量为μ↓[i]↑[(u)],协方差矩阵为∑↓[i]↑[(u)]的高斯分布概率密度函数。步骤(4.3)设置l=1。步骤(4.4)如果l+W-1>T,则退出。步骤(4.5)将音频流s从第l帧开始的长度为W的一个窗内的音频段{x↓[t]↑[(s)]}t=l,...,l+W-1,以下称音频段s↑[(l)],与音频段c进行指纹距离计算。首先,按下式计算得到音频段s↑[(l)]的指纹ω↓[i]↑[(s,l)]=1/W*ω↓[i,t]↑[(s)],即第i个高斯分量在音频段s↑[(l)]中各帧的权重系数的算术平均值作为音频段s↑[(l)]的音频指纹的第i维。然后,按下式计算出音频段s↑[(l)]的指纹{ω↓[i]↑[(s,l)]}i=1,...,M与音频段c的指纹{ω↓[i]↑[(c)]...

【技术特征摘要】
基于交叉熵的音频指纹快速搜索方法,其特征在于,是在计算机中依次按以下步骤实现的步骤(1)计算机初始化设置共分量高斯混合模型生成模块,基于共分量高斯混合模型的音频指纹提取模块,广义动态时序比对模块,其中所述共分量高斯混合模型生成模块,使用事先采集好的约100个小时的音频数据,进行最大似然参数估计,创建一个共分量高斯混合模型;所述音频指纹提取模块,基于所述共分量高斯混合模型提取音频指纹,并且用交叉熵衡量音频指纹间距离;所述广义动态时序比对模块,以滑动窗方式将用户指定音频段与输入音频流进行指纹比较,判断音频流中是否包含有指定音频段。步骤(2)按以下步骤创建一个共分量高斯混合模型步骤(2.1)事先采集好约100个小时的音频数据。经过短时傅立叶分析,以10毫秒为一帧提取一个倒谱特征矢量。步骤(2.2)利用步骤(2.1)得到的倒谱特征矢量集,进行最大似然参数估计,创建一个共分量高斯混合模型。该模型包含M个高斯分布作为其分量,以及M个权重系数,M的取值为512{ωi(u),μi(u),∑i(u)}i=1,...,M其中μi(u),∑i(u)表示第i个高斯分量的均值矢量和协方差矩阵,ωi(u)表示第i个高斯分量的权重系数,i=1,…,M,上标u标识此共分量高斯混合模型。步骤(3)按以下步骤对用户指定音频段进行预处理步骤(3.1)向计算机输入用户指定音频段c,时间长度为几秒,经过短时傅立叶分析,以10毫秒为一帧提取一个倒谱特征矢量。这样,音频段c用一个倒谱特征矢量序列{xn(c)}n=1,...,W来表示,W表示音频段c的帧数,n=1,…,W表示音频段c的各帧的序号,上标c标识此音频段c。步骤(3.2)按下式计算共分量高斯混合模型的第i个高斯分量在音频段c的第n帧的权重系数ωi,n(c),n=1,…,W <mrow><msubsup> <mi>&omega;</mi> <mrow><mi>i</mi><mo>,</mo><mi>n</mi> </mrow> <mrow><mo>(</mo><mi>c</mi><mo>)</mo> </mrow></msubsup><mo>=</mo><mfrac> <mrow><msubsup> <mi>&omega;</mi> <mi>i</mi> <mrow><mo>(</mo><mi>u</mi><mo>)</mo> </mrow></msubsup><msub> <mi>N</mi> <mi>i</mi></msub><mrow> <mo>(</mo> <msubsup><mi>x</mi><mi>n</mi><mrow> <mo>(</mo> <mi>c</mi> <mo>)</mo></mrow> </msubsup> <mo>|</mo> <msubsup><mi>&mu;</mi><mi>i</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>,</mo> <msubsup><mi>&Sigma;</mi><mi>i</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>)</mo></mrow> </mrow> <mrow><munderover> <mi>&Sigma;</mi> <mrow><mi>j</mi><mo>=</mo><mn>1</mn> </mrow> <mi>M</mi></munderover><msubsup> <mi>&omega;</mi> <mi>j</mi> <mrow><mo>(</mo><mi>u</mi><mo>)</mo> </mrow></msubsup><msub> <mi>N</mi> <mi>j</mi></msub><mrow> <mo>(</mo> <msubsup><mi>x</mi><mi>n</mi><mrow> <mo>(</mo> <mi>c</mi> <mo>)</mo></mrow> </msubsup> <mo>|</mo> <msubsup><mi>&mu;</mi><mi>j</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>,</mo> <msubsup><mi>&Sigma;</mi><mi>j</mi><mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo></mrow> </msubsup> <mo>)</mo></mrow> </mrow></mfrac> </mrow>其中i=1,…,M,j=1,…,M为共分量高斯混合模型的高斯分量的编号,Ni(x|μi(u),∑i(u))表示均值矢量为μi(u),协方差矩阵为∑i(u)的高斯分布概率密度函数。按下式计算第i个高斯分量在音频段c中各帧的权重系数的算术平均值,用ωi(c)表示 <mrow><msubsup> <mi>&omega;</mi> <mi>i</mi> <mrow><mo>(</mo><mi>c</mi><mo>)</mo> </mrow></msubsup><mo>=</mo><mfrac> <mn>1</mn> <mi>W</mi></mfrac><munderover> <mi>&Sigma;</mi> <mrow><mi>n</mi><mo>=</mo><mn>1</mn> </mrow> <mi>W</mi></munderover><msubsup> <mi>&omega;</mi> <mrow><mi>i</mi><mo>,</mo><mi>n</mi> </mrow> <mrow><mo>(</mo><mi>c</mi><mo>)</mo> </mrow></msubsup><mo>,</mo> </mrow>计算得到的各个高斯分量的权重系数的算术平均值组成一个矢量{ωt(c)}i=1,...,M,将该矢量作为音频段c的低维表示一音频指纹。步骤(4)以滑动窗方式将用户指定音频段c与被测试音频流s进行指纹比较步骤(4.1)在设定的小时数内,向计算机输入被测试音频流s,经过短时傅立叶分析,以10毫秒为一帧提取一个倒谱特征矢量。这样,被测试音频流s用一个倒谱特征矢量序列{xt(s)}t=1,...,T来表示,T为被测试音频流s的帧数,t=1,…,T表示音频流s的各帧的序号,上标s标识此音频流s。步骤(4.2)按下式计算共分量高斯混合模型的第i个高斯分量在音频流s的第t帧的权重系数ωi,t(s),t=1,…,T <mrow><msubsup> <mi>&omega;</mi> <mrow><mi>i</mi><mo>,</mo><mi>t</mi> </mrow> <mrow><mo>(</mo><mi>s</mi><mo>)</mo> </mrow></msubsup><mo>=</mo><mfrac> <mrow><msubsup> <mi>&omega;</mi> <mi>i</mi> <mrow><mo>(</mo><mi>u</mi><mo...

【专利技术属性】
技术研发人员:欧智坚林晖
申请(专利权)人:清华大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1