发明名称 一种基于SOM算法的音频指纹提取方法
摘要 本发明涉及一种使用于音乐检索系统的音频指纹提取方法。该发明属于基于内容的音乐检索技术领域,具体为一种基于SOM(自组织特征映射)算法的音频指纹提取方法。本发明主要完成在音频指纹系统中实现音频指纹的提取功能,本方法首先将时域音频信号转化为频域信号,然后提取频域信号的能量信息,最后获得相关音频特征。为了减少音频特征的数据量,减少存储音频所需的存储空间,提高数据的检索效率,采用了SOM算法实现对音频特征数据的降维处理。本发明能够有效的在移动嵌入式设备上运行实现,具有执行速度快、指纹数据量较少、音频检索速度快等特点。
申请公布号 CN104050259A 申请公布日期 2014.09.17
申请号 CN201410266868.6 申请日期 2014.06.16
申请人 上海大学 发明人 余小清;汪文根;熊玮;万旺根;王牧昕
分类号 G06F17/30(2006.01)I;G10L25/48(2013.01)I 主分类号 G06F17/30(2006.01)I
代理机构 上海上大专利事务所(普通合伙) 31205 代理人 何文欣
主权项 一种基于SOM算法的音频指纹提取方法,其特征在于具体步骤如下:步骤1  将输入的音频信号转化为单声道:对输入的音频信号做基本的预处理,将音频信号数据归一化,提取标准的PCM音频信号对其做判断,如果此音频信号不是单声道,则将此音频信号数据转换为单声道;步骤2  将音频信号统一到8kHz采样率:判断转换后的音频信号的采样率是否大于8kHz,如果大于8kHz,则通过FIR滤波器将其降采样到8kHz;步骤3  重叠分帧并加汉明窗:将归一化后的音频信号进行重叠分帧,每帧帧长为0.256秒,按照相邻帧重叠率为31/32做分帧处理,然后对处理后的音频信号加汉明窗;步骤4  FFT时频变换:对分帧的音频信号进行时频变换,通过2048位的FFT变换来实现该转换,最终获得2048位的频域系数;步骤5  获取低1024位特征数据:考虑4kHz以下的能量点作为该指纹的音频特征,将2048位的频域系数中的低1024位系数作为该指纹的音频特征数据;步骤6  计算特征数据的SOM特征:其步骤为将获取的低位的1024位特征值<img file="741818dest_path_image001.GIF" wi="101" he="26" />初始化为向量<img file="2014102668686100001dest_path_image002.GIF" wi="19" he="21" />,设所选择的帧数为<img file="658958dest_path_image003.GIF" wi="22" he="19" />,故每位均为<img file="376378dest_path_image003.GIF" wi="22" he="19" />维,即<img file="2014102668686100001dest_path_image004.GIF" wi="309" he="33" />同时初始化<img file="771588dest_path_image005.GIF" wi="83" he="24" />的权值向量<img file="2014102668686100001dest_path_image006.GIF" wi="55" he="30" />(可依照经验选取):<img file="767051dest_path_image007.GIF" wi="420" he="33" />分别对<img file="2014102668686100001dest_path_image008.GIF" wi="29" he="30" />和<img file="589514dest_path_image006.GIF" wi="55" he="30" />按照式(1)和式(2)进行归一化处理得到结果<img file="794230dest_path_image009.GIF" wi="30" he="28" />和<img file="2014102668686100001dest_path_image010.GIF" wi="58" he="33" />:<img file="993130dest_path_image011.GIF" wi="90" he="61" />(1)其中:<img file="2014102668686100001dest_path_image012.GIF" wi="266" he="54" />归一化权值向量<img file="848960dest_path_image013.GIF" wi="137" he="61" />(2)其中:<img file="2014102668686100001dest_path_image014.GIF" wi="319" he="54" />从向量<img file="842323dest_path_image002.GIF" wi="19" he="21" />中选取样本<img file="534336dest_path_image008.GIF" wi="29" he="30" />及其对应权值向量样本<img file="271348dest_path_image015.GIF" wi="26" he="30" />,按照式(3)计算其欧式距离<img file="2014102668686100001dest_path_image016.GIF" wi="21" he="28" />:<img file="981684dest_path_image017.GIF" wi="319" he="54" />(3)<u>其中:<i>n</i></u><u>为</u>迭代次数,<img file="2014102668686100001dest_path_image018.GIF" wi="49" he="29" />表示第<i><u>n</u></i><u>次</u>迭代所对应的权值;通过式(4)计算欧式距离最小的标准,来获取输出矩阵<img file="411528dest_path_image019.GIF" wi="29" he="27" />,从而实现矩阵的降维过程;<b><img file="2014102668686100001dest_path_image020.GIF" wi="303" he="46" /></b>                (4)其中<img file="590837dest_path_image021.GIF" wi="101" he="27" />,<img file="dest_path_image022.GIF" wi="29" he="27" />和<img file="865960dest_path_image023.GIF" wi="29" he="28" />为满足式(4)的特征向量和权值向量,由此构成新的降维矩阵;按照式(5)更新参数<img file="dest_path_image024.GIF" wi="16" he="21" />,通过式(6)更新权值向量<img file="696382dest_path_image025.GIF" wi="21" he="28" />;<b><img file="dest_path_image026.GIF" wi="184" he="49" /></b>                        (5)<img file="969231dest_path_image027.GIF" wi="334" he="30" />(6)其中<img file="698153dest_path_image021.GIF" wi="101" he="27" />,<i>n</i>表示迭代次数;按照式(7)对更新后的权值向量<img file="776967dest_path_image025.GIF" wi="21" he="28" />重新进行归一化处理;<b><img file="dest_path_image028.GIF" wi="137" he="61" /></b>                          (7)其中<img file="461895dest_path_image021.GIF" wi="101" he="27" />判断输出矩阵的大小是否等于32个向量,如果等于则结束迭代,如果大于则回到<u>3</u><u>)中</u>继续迭代;步骤7  相邻帧比对,获得二进制指纹:由步骤6中的7),当输出矩阵的大小等于32个向量,将最终获得的32个特征值设为<img file="233542dest_path_image029.GIF" wi="49" he="28" />,依据公式(8)计算相邻帧之间指纹的符号差异,作为最终的存储数据<img file="dest_path_image030.GIF" wi="46" he="28" />,就的到了二进制指纹;<b><img file="121864dest_path_image031.GIF" wi="221" he="56" /></b><img file="dest_path_image032.GIF" wi="109" he="24" />(8)其中<i>M</i>为子帧内数据的个数,这里为32。
地址 200444 上海市宝山区上大路99号