发明名称 一种乐器信号的分类方法
摘要 一种乐器信号的分类方法,属于电子信息技术领域,包括相空间重构模块,主成分分析模块,特征提取模块和柔性神经树模块。特征在于实施步骤是对不同乐器样本信号产生的时间序列进行相空间重构,通过主成分分析去除冗余信息,达到降维目的,再通过分析各种乐器特性,采用概率密度函数来刻画各个乐器在相空间中的差异,最后,采用柔性神经树模型作为分类器来进行分类,它能够有效的解决人工神经网络结构的高度依赖性问题,可以使单个乐器的分类准确率最高达到了98.7%。
申请公布号 CN103761965B 申请公布日期 2016.05.25
申请号 CN201410008533.4 申请日期 2014.01.09
申请人 太原科技大学 发明人 郭一娜;王志社;郅逍遥;王晓梅;李临生
分类号 G10L15/08(2006.01)I 主分类号 G10L15/08(2006.01)I
代理机构 太原市科瑞达专利代理有限公司 14101 代理人 王思俊
主权项 一种乐器信号的分类方法,通过采用包括相空间重构模块、主成分分析模块、特征提取模块和柔性神经树模块对各种乐器信号进行特征提取,然后经过分类器进行分类,其特征在于实施步骤是:第一步、将采集到的乐器样本信号进行相空间重构,主要确定样本信号的延迟时间和嵌入维数,包括下列步骤:设某个乐器信号样本的一维时间序列为x=(x<sub>1</sub>,x<sub>2</sub>,...,x<sub>K</sub>)<sup>T</sup>,延迟时间设为τ,建立一个m维的嵌入空间Y,将x映射到该嵌入空间中,则重构的相空间的向量为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><mi>Y</mi><mo>=</mo><mrow><mo>(</mo><msub><mi>y</mi><mn>1</mn></msub><mo>,</mo><msub><mi>y</mi><mn>2</mn></msub><mo>,</mo><mn>...</mn><mo>,</mo><msub><mi>y</mi><mi>n</mi></msub><mo>)</mo></mrow><mo>=</mo></mrow></mtd></mtr><mtr><mtd><mfenced open = "(" close = ")"><mtable><mtr><mtd><mrow><mi>x</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>x</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd><mtd><mn>...</mn></mtd><mtd><mrow><mi>x</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>x</mi><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>&tau;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>x</mi><mrow><mo>(</mo><mn>2</mn><mo>+</mo><mi>&tau;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mn>...</mn></mtd><mtd><mrow><mi>x</mi><mrow><mo>(</mo><mi>n</mi><mo>+</mo><mi>&tau;</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mrow></mrow></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mrow></mrow></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mrow></mrow></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mrow><mi>x</mi><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mo>(</mo><mi>m</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>&tau;</mi><mo>)</mo></mrow></mtd><mtd><mrow><mi>x</mi><mrow><mo>(</mo><mn>2</mn><mo>+</mo><mo>(</mo><mi>m</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>&tau;</mi><mo>)</mo></mrow></mtd><mtd><mn>...</mn></mtd><mtd><mrow><mi>x</mi><mrow><mo>(</mo><mi>n</mi><mo>+</mo><mo>(</mo><mi>m</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>&tau;</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mtd></mtr></mtable><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000933356930000011.GIF" wi="1446" he="375" /></maths>其中,K为音频时间序列x的长度;相空间中相矢量的个数n=K‑(m‑1)τ(n=1,2,...,N),(1)、平均互信息法确定最佳延迟时间τ选取平均互信息法来确定最佳的延迟时间τ:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>I</mi><mrow><mo>(</mo><mi>&tau;</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>P</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>,</mo><msub><mi>x</mi><mrow><mi>n</mi><mo>+</mo><mi>&tau;</mi></mrow></msub><mo>)</mo></mrow><msub><mi>log</mi><mn>2</mn></msub><mfrac><mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>,</mo><msub><mi>x</mi><mrow><mi>n</mi><mo>+</mo><mi>&tau;</mi></mrow></msub><mo>)</mo></mrow></mrow><mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>)</mo></mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>n</mi><mo>+</mo><mi>&tau;</mi></mrow></msub><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000933356930000012.GIF" wi="1286" he="158" /></maths>其中P(x<sub>n</sub>,x<sub>n+τ</sub>)为重构图中的联合分布概率,P(x<sub>n</sub>),P(x<sub>n+τ</sub>)为边缘分布概率,选取I(τ)的第一个局部极小值的τ作为最佳延迟时间;(2)、虚假近邻点法确定嵌入维数m在m维相空间中,对任意的相矢量y<sub>n</sub>(i)={x(i),x(i+τ),...,x[i+(m‑1)τ]}都有一个某距离内的最近临点y<sub>n</sub><sup>NN</sup>(i),且两点间距离为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>D</mi><mi>m</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>=</mo><mo>|</mo><mo>|</mo><msub><mi>y</mi><mi>n</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>-</mo><msubsup><mi>y</mi><mi>n</mi><mrow><mi>N</mi><mi>N</mi></mrow></msubsup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000933356930000013.GIF" wi="796" he="109" /></maths>D<sub>m</sub>(i)是个较小的量,当相空间的嵌入维数从m维增加到m+1维时,这两个相点的距离就会发生变化,设在这种情形下相邻距离为D<sub>m+1</sub>(i),则有:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msubsup><mi>D</mi><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow><mn>2</mn></msubsup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mi>D</mi><mi>m</mi><mn>2</mn></msubsup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>+</mo><mo>|</mo><mo>|</mo><mi>x</mi><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mi>&tau;</mi><mi>m</mi><mo>)</mo></mrow><mo>-</mo><msup><mi>x</mi><mrow><mi>N</mi><mi>N</mi></mrow></msup><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mi>&tau;</mi><mi>m</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000933356930000021.GIF" wi="1188" he="109" /></maths>通过给出一定的阈值来判断哪些点是虚假近邻点,令<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>&Delta;D</mi><mi>m</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>m</mi><mo>)</mo></mrow><mo>=</mo><msqrt><mfrac><mrow><msubsup><mi>D</mi><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow><mn>2</mn></msubsup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>-</mo><msubsup><mi>D</mi><mi>m</mi><mn>2</mn></msubsup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow><mrow><msubsup><mi>D</mi><mi>m</mi><mn>2</mn></msubsup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow></mfrac></msqrt><mo>=</mo><mfrac><mrow><mo>|</mo><mo>|</mo><msub><mi>y</mi><mrow><mi>n</mi><mo>+</mo><mi>&tau;</mi><mi>m</mi></mrow></msub><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mi>&tau;</mi><mi>m</mi><mo>)</mo></mrow><mo>-</mo><msubsup><mi>y</mi><mrow><mi>n</mi><mo>+</mo><mi>&tau;</mi><mi>m</mi></mrow><mrow><mi>N</mi><mi>N</mi></mrow></msubsup><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mi>&tau;</mi><mi>m</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow><mrow><msub><mi>D</mi><mi>m</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000933356930000022.GIF" wi="1503" he="189" /></maths>其中ΔD<sub>m</sub>(i,m)表示m维的最近临点的距离相对于m+1维时的变化量,如果ΔD<sub>m</sub>(i,m)≥10%,则说明近邻点是虚假的,对m维空间中的每一个相矢量依次判别其近邻点是否是虚假的,计算虚假近邻点占全部相矢量的比例,当虚假近邻点的比例小于5%时,认为相空间轨迹已经完全打开,此时的m即为最佳嵌入维数;(3)、相空间重构确定延迟时间τ和嵌入维数m后,可以由原始的一维时间序列x=(x<sub>1</sub>,x<sub>2</sub>,...,x<sub>K</sub>)<sup>T</sup>延迟重构得到嵌入向量x<sub>m</sub>=(x<sub>t</sub>,x<sub>t‑τ</sub>,...,x<sub>t‑(m‑1)τ</sub>)<sup>T</sup>,这些向量确定了m维的嵌入空间Y上的一个点,不同时间点的各延迟量就在m维空间中产生了一系列这样的点,从而构成了反映原始系统信息的m×n阶的相空间重构矩阵A;第二步、将重构后的乐器样本信号进行主成分分析,剔除冗余信息,达到降维的效果:R=E(AA<sup>T</sup>),RV=VΛ,其中A为经过相空间重构后得到的m×n阶矩阵,R为m个分量的自相关矩阵,V为R的m×m阶特征向量矩阵,其列向量是R的正交归一化的特征向量;Λ为R的特征对角矩阵,λ<sub>i</sub>(i=1,2,...,m)为第i个对角线上的元素;构造m个不相关的新变量Y=V<sup>T</sup>A,Y={y<sub>1</sub>,y<sub>2</sub>,...,y<sub>m</sub>}<sup>T</sup>,对λ<sub>i</sub>(i=1,2,...,m)按降序排列后,取前面p个较大特征值所对应的特征向量,得到降维后p×n阶向量矩阵B,其中p≥3;第三步、将主成分分析处理后所得到的矩阵B进行特征提取,提取的是概率密度函数的特征值:我们假设样本数据的区域G是一个以x为中心,边长为h的极小立方体,首先定义一个kernel函数:<img file="FDA0000933356930000031.GIF" wi="1028" he="167" />则所求的概率密度函数为:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>p</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mi>N</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mfrac><mn>1</mn><msup><mi>h</mi><mi>m</mi></msup></mfrac><mi>k</mi><mrow><mo>(</mo><mfrac><mrow><mi>x</mi><mo>-</mo><msub><mi>x</mi><mi>n</mi></msub></mrow><mi>h</mi></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000933356930000032.GIF" wi="1107" he="143" /></maths>其中,N为样本点个数,n=1,2,...,N,m为数据维数,k(u)为定义的kernel函数,由此得到一个m×n阶的矩阵,对其逐行采样后,组成m×c阶的特征集合H,其中c<n;第四步、采用柔性神经树模型作为乐器识别模块的分类器,来训练神经网络:柔性神经树模型中采用的计算流程如下:首先设定柔性神经树的初始结构,再根据得到的特征集合H和设定的初始结构优化并训练出一个模糊分类模型,该模型中包含两种类型的指令:柔性神经元指令和终端指令,柔性神经元指令用于树结构的非叶子节点连接其子树,终端指令则是各输入特征,函数指令集合和终端指令集合表示如下:S=F∪T={+<sub>2</sub>,+<sub>3</sub>,…,+<sub>N</sub>}∪{z<sub>1</sub>,z<sub>2</sub>,…,z<sub>n</sub>}   (8)其中+<sub>i</sub>(2,3,...,N)表示非叶子节点指令,该非叶子节点有i个输入,即有i个输入变量;z<sub>1</sub>,z<sub>2</sub>,...z<sub>n</sub>表示叶子节点指令,此叶子节点无输入变量;采用高斯函数作为柔性激励函数:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msub><mi>j</mi><mi>i</mi></msub><mo>,</mo><msub><mi>b</mi><mi>i</mi></msub><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>e</mi><mrow><mo>-</mo><msup><mrow><mo>(</mo><mfrac><mrow><mi>z</mi><mo>-</mo><msub><mi>j</mi><mi>i</mi></msub></mrow><msub><mi>b</mi><mi>i</mi></msub></mfrac><mo>)</mo></mrow><mn>2</mn></msup></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000933356930000041.GIF" wi="854" he="118" /></maths>其中,j<sub>i</sub>和b<sub>i</sub>是在柔性神经树的创建过程中随机产生的可调节的参数,适应度函数是除指令集之外另一个需要事前确定的问题,选择均方根误差作为适应度函数。
地址 030024 山西省太原市万柏林区瓦流路66号