基于DNN模型和支持向量机模型的说话人个数估计方法与流程

文档序号:12736582阅读:来源:国知局

技术特征:

1.一种基于DNN模型和支持向量机模型的说话人个数估计方法,其特征在于,分为模型训练阶段和说话人个数估计阶段两个阶段,包括以下步骤:

1)模型训练阶段;模型训练阶段分为DNN模型训练阶段和支持向量机SVM模型训练阶段两个阶段;具体包括以下步骤:

1‐1)DNN模型训练阶段:获取N个说话人的训练语音数据,提取每条训练语音数据的特征,设置DNN模型的层数和节点数,对DNN模型进行训练,得到DNN模型参数;

1‐2)支持向量机SVM模型训练阶段:获取M个说话人的训练语音数据,提取M个说话人的训练语音数据的特征,输入到步骤1‐1)得到的DNN模型中,产生M组说话人各自对应的N维特征,得到M个说话人的各自对应的SVM模型;

2)说话人个数估计阶段,具体包括以下步骤:

2‐1)获取待测语音数据,对待测语音数据进行预处理,得到待测语音数据对应的梅尔倒谱特征及其一阶、二阶导数,共60维;

2‐2)将步骤2‐1)得到的每条待测语音数据的梅尔倒谱特征输入到步骤1‐1)得到的DNN模型中,每条待测语音数据的60维梅尔倒谱特征对应得到DNN模型的输出层输出的该条待测语音数据的N个输出概率,将得到的每条待测语音数据的N个输出概率组成该条待测语音数据的N维特征;

2‐3)将步骤2‐2)得到的任意一条待测语音数据的N维特征依次输入到步骤1‐2)得到的M个说话人各自对应的对应的SVM模型中,每个SVM模型对该条待测语音数据进行评分,根据每个SVM模型评分结果判断该条待测语音数据对应的说话人和SVM模型所对应的M个说话人的相近程度,得分最高的SVM模型即为该条待测语音数据所对应的类别,该SVM模型所对应的说话人即为该条待测语音数据的近似说话人;

2‐4)重复步骤2‐3),将所有待测语音数据的N维特征分别输入M个SVM模型中,对所有待测语音数据进行分类,得到的类别总个数Q即为估计得到的待测语音数据的说话人个数,Q≤M。

2.如权利要求1所述的方法,其特征在于,所述步骤1-2)DNN模型训练阶段,具体包括以下步骤:

1‐1‐1)获取N个说话人的训练语音数据;对训练语音数据进行预处理,提取每条训练语音数据的梅尔倒谱特征及其一阶、二阶导数,总共60维;

1‐1‐2)设置DNN模型的层数和节点数;

DNN模型分为输入层、隐含层和输出层三个层次;其中,输入层对应步骤1‐1‐1)得到的每条训练语音数据的梅尔倒谱特征及其一阶、二阶导数,共60维,则输入层节点数设置为60个;输出层的节点数等于所需识别的说话人个数N,每个节点的输出分别对应每个说话人的概率;隐含层用于自动提取不同层次的特征,每层隐含层的节点数代表该层隐含层所提取的特征的维度;

1‐1‐3)对DNN模型进行训练,得到DNN模型参数;

根据步骤1‐1‐1)得到的N个说话人的训练语音数据的梅尔倒谱特征及一阶、二阶导数,对DNN模型进行训练,得到DNN模型参数;DNN模型参数包括相邻两层的连接权重和每个节点的偏置;

相邻两层的连接权重,表达式如式(1)所示:

式中,Wi,i+1为有Pi行、Pi+1列的矩阵,其中表示DNN模型第i层的第m个节点和第i+1层的第n个节点的连接权重;

每个节点的偏置,表达式如式(2)所示:

<mrow> <msub> <mi>B</mi> <mi>j</mi> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msubsup> <mi>b</mi> <mn>1</mn> <mi>j</mi> </msubsup> </mtd> </mtr> <mtr> <mtd> <msubsup> <mi>b</mi> <mn>2</mn> <mi>j</mi> </msubsup> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msubsup> <mi>b</mi> <mi>k</mi> <mi>j</mi> </msubsup> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msubsup> <mi>b</mi> <msub> <mi>P</mi> <mi>j</mi> </msub> <mi>j</mi> </msubsup> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mn>4</mn> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

式中,表示DNN模型第j层中第k个节点的偏置;

对DNN模型先进行非监督训练:把DNN模型中每相邻的两层组成一个受限玻尔兹曼机,利用对比散度CD算法对每个受限玻尔兹曼机分别进行训练;依次训练所有的受限玻尔兹曼机,得到DNN模型参数的初始值;再进行监督训练:使用非监督训练得到的DNN模型参数初始值,利用后向传播算法对DNN模型参数进行精确调整,得到DNN模型参数的最终值。

3.如权利要求1所述的方法,其特征在于,所述步骤1-3)支持向量机SVM模型训练阶段,具体包括以下步骤:

1‐2‐1)获取M个说话人的训练语音数据,对M个说话人的训练语音数据进行预处理,得到M个说话人的训练语音数据对应的梅尔倒谱特征及一阶、二阶导数,共60维;

1‐2‐2)将步骤1‐2‐1)得到的M个说话人的训练语音数据对应的60维梅尔倒谱特征分别输入到步骤1‐1)得到的DNN模型中,每个说话人的训练语音数据的60维梅尔倒谱特征对应得到DNN模型的输出层输出的的该说话人的N个输出概率,将得到的每个说话人的N个输出概率组成该说话人的N维特征,共产生M组说话人各自对应的N维特征;

1‐2‐3)将M个说话人中第i个说话人的训练语音数据作为一类,i∈1~M,类别标签定为1;其余M‐1个说话人作为另一类,类别标签定为‐1,得到二分类SVM模型;根据步骤1‐2‐2)得到的M组说话人各自对应的N维特征及类别标签,对二分类SVM模型进行训练,得到第i个说话人的SVM模型;

1‐2‐4)重复步骤1‐2‐3),让i的取值分别从1到M,最终得到M个说话人的各自对应的SVM模型,共M个。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1