发明名称 基于混合支持向量机的说话人识别方法
摘要 本发明涉及一种基于混合支持向量机的说话人识别的方法,是为每个说话人建立一个混合支持向量机模型,首先对每个说话人的语音进行特征提取,然后将每个说话人的所有训练样本数据采用聚类方法进行分区,每个区训练出一个支持向量机,在训练支持向量机的过程中,正样本为该说话人在这个分区里面的样本,负样本为冒认者的语音特征向量;在识别阶段,一条新的语句的每帧的得分值要综合所有支持向量机的输出,可以分别采用距离和概率两种方式得到。本发明有益的效果是:采用多个支持向量机混合的方法,在说话人识别上获得比采用单个支持向量机更好性能,同时其性能也优于相同高斯分量数目的高斯混合模型。
申请公布号 CN100570711C 申请公布日期 2009.12.16
申请号 CN200510061954.4 申请日期 2005.12.13
申请人 浙江大学 发明人 杨莹春;吴朝晖;雷震春
分类号 G10L17/00(2006.01)I;G10L15/08(2006.01)I;G10L15/00(2006.01)I 主分类号 G10L17/00(2006.01)I
代理机构 杭州九洲专利事务所有限公司 代理人 陈继亮
主权项 1、一种基于混合支持向量机的说话人识别的方法,其特征在于:为每个说话人建立一个混合支持向量机模型,首先对每个说话人的语音进行特征提取,然后将每个说话人的所有训练样本数据采用聚类方法进行分区,每个区训练出一个支持向量机,在训练支持向量机的过程中,正样本为该说话人在这个分区里面的样本,负样本为冒认者的语音特征向量;在识别阶段,一条新的语句的每帧的得分值要综合所有支持向量机的输出,可以分别采用距离和概率两种方式得到;该方法步骤如下:3.1)、语音预处理:语音预处理分为采样量化,去零漂,预加重和加窗四个部分;3.2)、语音帧上的特征提取:采用线性预测系数倒谱的提取,先求取语音信号的线性预测系数(LPC),然后计算语音信号的倒谱特征;3.3)、说话人的支持向量机混合模型,对说话人的所有支持向量机的输出进行组合:3.3.1)、在线性可分情况下:设线性可分样本集为(xi,yi),i=1,...,n,x∈Rd,y∈{+1,-1}是类别标号,d维空间中线性判别函数的一般形式为g(x)=w·x+b,分类面方程为:w·x+b=0将判别函数归一化,使两类所有样本都满足|g(x)|≥1,即使离分类面最近的样本|g(x)|=1,这样分类间隔等于2/||w||,使得间隔最大等价于使||w||最小;而要求分类线对所有样本正确分类,就是要求它满足:yi(w·xi+b)-1≥0,i=1,2,...,n满足上述条件且使得||w||2最小的分类面就是最优分类面,其对偶问题为:<maths id="math0001" num="0001" ><math><![CDATA[ <mrow> <munder> <mi>max</mi> <mi>&alpha;</mi> </munder> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>&alpha;</mi> <mi>i</mi> </msub> <mo>-</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>&alpha;</mi> <mi>i</mi> </msub> <msub> <mi>&alpha;</mi> <mi>j</mi> </msub> <msub> <mi>y</mi> <mi>i</mi> </msub> <msub> <mi>y</mi> <mi>j</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow>]]></math></maths><maths id="math0002" num="0002" ><math><![CDATA[ <mrow> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>y</mi> <mi>i</mi> </msub> <msub> <mi>&alpha;</mi> <mi>i</mi> </msub> <mo>=</mo> <mn>0</mn> </mrow>]]></math></maths>αi≥0,i=1,2,...,n求解α*得为最优解,则权系数是训练样本向量的线性组合:<maths id="math0003" num="0003" ><math><![CDATA[ <mrow> <msup> <mi>w</mi> <mo>*</mo> </msup> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msubsup> <mi>&alpha;</mi> <mi>i</mi> <mo>*</mo> </msubsup> <msub> <mi>y</mi> <mi>i</mi> </msub> <msub> <mi>x</mi> <mi>i</mi> </msub> </mrow>]]></math></maths>最优分类函数是:<maths id="math0004" num="0004" ><math><![CDATA[ <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>sgn</mi> <mrow> <mo>(</mo> <msup> <mi>w</mi> <mo>*</mo> </msup> <mo>&CenterDot;</mo> <mi>x</mi> <mo>+</mo> <mi>b</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>sgn</mi> <mrow> <mo>(</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msubsup> <mi>&alpha;</mi> <mi>i</mi> <mo>*</mo> </msubsup> <msub> <mi>y</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>&CenterDot;</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>+</mo> <msup> <mi>b</mi> <mo>*</mo> </msup> <mo>)</mo> </mrow> <mo>;</mo> </mrow>]]></math></maths>3.3.2)、在线性不可分的情况下,增加一个松弛项ξi≥0,分类条件变成yi(w·xi+b)-1+ξi≥0i=1,2,...n最优分类面问题演化为求取下列函数的极小值:<maths id="math0005" num="0005" ><math><![CDATA[ <mrow> <mi>&phi;</mi> <mrow> <mo>(</mo> <mi>w</mi> <mo>,</mo> <mi>&xi;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mrow> <mo>(</mo> <mi>w</mi> <mo>&CenterDot;</mo> <mi>w</mi> <mo>)</mo> </mrow> <mo>+</mo> <mi>C</mi> <mrow> <mo>(</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>&xi;</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow>]]></math></maths>其中C为常数,控制错分样本惩罚的程度;进一步用内积K(x,s′)代替最优分类面中的点积,相当于把原特征空间变换到了某一新的特征空间,优化函数变成:<maths id="math0006" num="0006" ><math><![CDATA[ <mrow> <munder> <mi>max</mi> <mi>&alpha;</mi> </munder> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>&alpha;</mi> <mi>i</mi> </msub> <mo>-</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>&alpha;</mi> <mi>i</mi> </msub> <msub> <mi>&alpha;</mi> <mi>j</mi> </msub> <msub> <mi>y</mi> <mi>i</mi> </msub> <msub> <mi>y</mi> <mi>j</mi> </msub> <mi>K</mi> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <msub> <mrow> <mo>,</mo> <mi>y</mi> </mrow> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow>]]></math></maths>相应的判别函数变成:<maths id="math0007" num="0007" ><math><![CDATA[ <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>sgn</mi> <mrow> <mo>(</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msubsup> <mi>&alpha;</mi> <mi>i</mi> <mo>*</mo> </msubsup> <msub> <mi>y</mi> <mi>i</mi> </msub> <mi>K</mi> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>+</mo> <msup> <mi>b</mi> <mo>*</mo> </msup> <mo>)</mo> </mrow> <mo>;</mo> </mrow>]]></math></maths>第四步、说话人识别:说话人识别可分为说话人确认和说话人辨认两方面;A)、在说话人确认中,对于一条新的语句,经过特征提取后得到一个特征向量序列,利用说话人的支持向量机混合模型对每帧的特征向量进行打分,然后取所有帧的得分的平均值S作为此语句的得分,并将S与某个阈值T相比较,若S>T,则接受这条语句是此说话人所说的,否则拒绝,即认为这个说话人是冒认者;B)、在说话人辨别中,这条语句对于所有的说话人模型都进行评分,对于某个说话人来说,首先将语句的每帧的特征向量采用这个说话人的支持向量混合模型进行计分,语句所有帧得分的平均值作为这条语句在这个说话人模型上的得分,这样对每个说话人进行评分后,取最大的那个得分的说话人作为此语句的说话人。
地址 310027浙江省杭州市西湖区浙大路38号浙江大学计算机学院曹光彪东楼505室