一种基于条件生成式对抗网络的语种识别分类方法
技术领域
本发明属于语种识别技术领域,具体涉及一种基于条件生成式对抗网络的语种识别分类方法。
背景技术
语种识别(Language Identification,LID)是指自动判定给定的语音片段,从该语音片段的语音信号中提取各语种的差异信息,判断语言种类的过程。
传统的语种识别系统可分为前端特征提取和后端模型两个部分。在常用的语种识别系统中,前端特征主要采用及移位差分倒谱特征(Shift Delta Cepstrum,SDC),后端的语种模型一般使用支持向量以及全差异空间方法进行建模,
近几年,深度神经网络(Deep Neural Networks,DNN)模型在语种识别任务上得到快速发展。一方面在前端特征提取层面,利用DNN模型强大的特征抽取能力,提取了语音信号的深度瓶颈特征(Deep Bottleneck Feature,DBF)。另一方面从后端模型域出发,提出基于DNN的全差异空间(Total Variability,TV)的建模策略。接着,有研究者们将二者相结合,提出了DBF-DNN TV语种识别系统,取得了更优的性能:首先利用DNN模型的隐含层输出提取DBF,再结合DNN模型输出层的后验概率,在后端采用基于DNN的TV方法进行建模的方法提取全差异因子i-vector,接着利用i-vector训练得到逻辑回归分类器,这是目前语种识别领域的主流系统。然而在这个系统中后端的逻辑回归分类器过于简单,并没有充分挖掘出不同语种i-vector的差异性。
近年来,生成式对抗网络(Generative Adversarial Nets,GAN)已经成为人工智能学界一个热门的研究方向。其基本思想源自博弈论的二人零和博弈的启发,即二人的利益之和为零,一方的所得正是另一方的所失。生成式对抗网络由一个生成模型和一个判别模型构成。其中,生成模型模拟真实数据样本的分布,并生成新的数据样本;判别模型是一个二分类器,判别输入是真实数据还是生成的样本。生成模型和判别模型均可以采用深度神经网络。GAN在语种识别领域可以有两方面的应用,一方面GAN作为生成模型,提取具有鉴别性和鲁棒性的语种相关的特征;另一方面GAN作为分类器。可以提高分类的泛化性能。GAN的优化过程是一个极小极大博弈(Minimax game)问题,优化目标是达到纳什均衡,使生成模型估测到数据样本的分布。广泛应用在图像和视觉计算、语音和语言处理、棋类比赛等领域。但是,目前将GAN用于语种识别领域的研究罕见报道,而且目前的语种识别系统中的分类器过于简单,并没有充分挖掘出不同语种特征的差异性。
发明内容
本发明的目的在于,为解决现有的语种识别分类方法存在上述缺陷,本发明提出了一种基于条件生成式对抗网络的语种识别分类方法,采用DBF-DNN系统提取i-vector,将条件生成式对抗网络(Conditional Generative Adversarial Nets,CGAN)作为一种新型的分类器用于语种识别任务中,替换了DBF-DNN系统中的逻辑回归分类器,取得了更优的性能。
为了实现上述目的,本发明提供了一种基于条件生成式对抗网络的语种识别分类方法,该方法具体包括:
步骤1)利用现有的DBF-DNN语种识别系统,获得训练集的i-vector和测试集的i-vector;
步骤2)建立并训练生成模型G和判别模型D,构建CGAN分类器;
步骤3)训练CGAN分类器,获得训练后的CGAN分类器;
步骤4)将待识别的语种特征输入至训练后的CGAN分类器的判别模型D中,判定其语种类别,并统计语种类别的数目。
作为上述技术方案的改进之一,步骤1)中,如图1所示,现有的DBF-DNN TV系统具体包括:
T矩阵训练模块,用于根据训练语音获得自动语音识别神经网络ASR DNN和全差异矩阵T;具体地,先用大量的英语语料训练一个自动语音识别神经网络(Automatic SpeechRecognition Deep Neural Networks,ASR DNN),再提取训练语音的底层声学特征,将底层声学特征作为训练数据,将其输入至ASR DNN,利用公式(1)、(2)分别计算Nc(u)和Fc(u),同时训练T矩阵,获得全差异矩阵T;其中,训练语音包括若干语种数据;训练T矩阵时,各语种数据混合训练,不区分语种;
其中,Nc(u)为语音u在ASR DNN最后一层第c个节点的0阶统计量;Fc(u)为语音u在ASR DNN最后一层第c个节点的1阶统计量;ut为语音u的第t帧声学特征,p(c|ut)为语音u的第t帧声学特征ut输入到ASR DNN后最后一层第c个节点输出的后验概率;语音u共有共L帧;yt为第t帧DBF特征,DBF特征是ASR DNN网络的中间层输出的值;yt T是yt的转置。
i-vector提取模块,用于获得测试的i-vector和训练的i-vector;具体地,对测试语音提取底层声学特征,将测试语音中提取的底层声学特征输入至ASR DNN,由公式(1)和(2)分别计算并获得测试语音的0阶统计量N1(u)、1阶统计量F1(u);再根据公式(3)计算得到测试的i-vector:
w1(u)=(I+TtΣ-1N1(u)T)-1TtΣ-1F1(u) (3)
其中,w1(u)为测试的i-vector;Σ是对角协方差矩阵;I为单位矩阵;T为全差异矩阵;Tt为全差异矩阵T的转置;N1(u)为测试语音的0阶统计量;F1(u)为测试语音的1阶统计量。其中,Σ和T均由测试语音中提取的底层声学特征、ASR DNN参数计算获得,其中,ASRDNN参数包括权重和偏置。
对训练语音提取底层声学特征,将训练语音中提取的底层声学特征输入至ASRDNN,由公式(1)、(2)分别计算训练语音的0阶统计量N2(u)、1阶统计量F2(u),再根据公式(4)计算得到测试的i-vector;
w2(u)=(I+TtΣ-1N2(u)T)-1TtΣ-1F2(u) (4)
其中,w2(x)训练的i-vector;Σ是对角协方差矩阵;I为单位矩阵;T为全差异矩阵;Tt为全差异矩阵T的转置;N2(u)为训练语音的0阶统计量;F2(u)为训练语音的1阶统计量。其中,Σ和T均由训练语音中提取的底层声学特征、ASR DNN参数计算获得,ASR DNN参数包括权重和偏置:
和分类模块,用于训练逻辑回归分类器,并将测试的i-vector输入训练后的逻辑回归分类器中,获得各语种类别的后验概率值,判定语种类别;具体地,将训练i-vector输入到逻辑回归分类器中进行训练,获得训练后的逻辑回归分类器;再将测试i-vector输入到训练后的逻辑回归分类器中,获得各语种类别的后验概率值,通过上述后验概率值进行语种类别的判定,并统计语种数目。
作为上述技术方案的改进之一,步骤1)具体包括:利用现有的DBF-DNN语种识别系统中的i-vector提取模块,获得训练集的i-vector和测试集的i-vector。
作为上述技术方案的改进之一,步骤2)提到的CGAN分类器包括:一个生成模型G和一个判别模型D。生成模型G和判别模型D均为神经网络结构,其中,生成模型G和判别模型D的参数均采用Adam随机梯度下降算法进行更新。其中,G为卷积神经网络(Convolutionalneural network,CNN)模型,包括:两个CNN层,卷积核均为5*5,通道数分别为64和1;输入层为49维的真样本real i-vector和100维的噪声数据,输出为49维假样本false i-vector。D为CNN模型,包括:一个卷积层,卷积核为3*3,通道数为128。输入是49维真样本real i-vector和49维假样本false i-vector,输出层是15个节点,第1个节点表示真假,对应输出层使用sigmoid激活函数和binary_crossentropy误差函数;其余节点表示所属类别,对应输出层使用softmax和crossentropy误差函数。
作为上述技术方案的改进之一,步骤2)中,构建CGAN分类器具体包括:
在训练生成模型G时,保持判别模型D不变;根据公式(5)、(6)(7),采用Adam算法,最大化目标函数V1,直到目标函数V1收敛;
V1=VV1+VI1 (5)
其中,VV1为生成模型G的验证目标函数,用于验证输入到判别模型的i-vector是真样本还是假样本;VI1为生成模型G的判定目标函数,用于判定输入到判别模型的i-vector属于哪一个语种类别;具体地,VV1和VI1的优化目标函数为:
其中,
为最小化生成模型G的验证目标函数,在训练生成模型G时,当输入的i-vector是G生成的假样本时,则希望判别模型判为真,即取生成模型G的验证目标函数的最小值;
为最大化判别模型G的判定目标函数,在训练生成模型G时,当输入的i-vector是G生成的假样本时,则希望判别模型能正确的判定语种类别,即取生成模型G的判定目标函数的最大值;
E表示期望;z为噪声信号;c为真i-vector;G(z,c)为假i-vector,即生成模型的输出;D(c,G(z,c))为输入真i-vector c和假i-vector G(z,c)时,判别模型输出的真假信息;k为类别信息;D(k|(c,G(z,c)))为在输入真i-vector c和假i-vector G(z,c)时,判别模型输出的类别信息;
在训练判别模型D时,保持训练后的生成模型G不变;根据公式(8)、(9)和(10)采用Adam算法,最大化目标函数V2,直到目标函数V2收敛;
V2=VV2+VI2 (8)
其中,VV2为判别模型D的验证目标函数,用于验证输入到判别模型的i-vector是真样本还是假样本;VI2为判别模型D的判定目标函数,用于判定输入到判别模型的i-vector属于哪一个语种类别;具体地,VV2和VI2的优化目标函数为:
其中,
为最大化判别模型D的验证目标函数;在训练判别模型D时,当输入的i-vector是真样本时,则希望判别模型判为真;当输入的i-vector是G生成的假样本时,则希望判别模型判为假,即取判别模型D的验证目标函数的最大值;
为最大化判别模型D的判定目标函数,在训练判别模型D时,无论输入的i-vector是G生成的假样本或者是真样本,都希望判别模型能正确的判定语种类别,即取判别模型D的判定目标函数的最大值。
将训练后的生成模型G和判别模型D进行构建,并交替训练G和D直到对应的目标函数收敛,获得CGAN分类器。
作为上述技术方案的改进之一,步骤4)中的待识别的语种特征为步骤1)获得的测试集i-vector。
作为上述技术方案的改进之一,步骤4)具体包括:
将训练集的i-vector输入CGAN分类器中进行训练,获得训练后的CGAN分类器;再将测试集的i-vector输入到训练后的CGAN分类器的判别模型D中,获得各语种类别的后验概率值,对应的获得其最大概率值,根据该最大概率值,进行语种类别的判定,并统计语种数目。
基于上述的语种识别分类方法,本发明还提供了一种分类装置,其包括:
提取模块,用于获得训练集的i-vector和测试集的i-vector;
构建模型模块,用于构建CGAN分类器;
训练模块,用于训练CGAN分类器;
和分类模块,用于获得待识别的语种特征的语种类别,并统计语种数目。
作为上述技术方案的改进之一,所述提取模块具体包括:
利用现有的DBF-DNN语种识别系统,对测试语音提取底层声学特征,将测试语音中提取的底层声学特征输入至ASR DNN,由公式(1)和(2)分别计算并获得测试语音的0阶统计量N1(u)、1阶统计量F1(u);再根据公式(3)计算得到测试的i-vector:
w1(u)=(I+TtΣ-1N1(u)T)-1TtΣ-1F1(u) (3)
其中,w1(u)为测试的i-vector;Σ是对角协方差矩阵;I为单位矩阵;T为全差异矩阵;Tt为全差异矩阵T的转置;N1(u)为测试语音的0阶统计量;F1(u)为测试语音的1阶统计量。其中,Σ和T均由测试语音中提取的底层声学特征、ASR DNN参数计算获得,其中,ASRDNN参数包括权重和偏置。
对训练语音提取底层声学特征,将训练语音中提取的底层声学特征输入至ASRDNN,由公式(1)、(2)分别计算训练语音的0阶统计量N2(u)、1阶统计量F2(u),再根据公式(4)计算得到测试的i-vector;
w2(u)=(I+TtΣ-1N2(u)T)-1TtΣ-1F2(u) (4)
其中,w2(x)训练的i-vector;Σ是对角协方差矩阵;I为单位矩阵;T为全差异矩阵;Tt为全差异矩阵T的转置;N2(u)为训练语音的0阶统计量;F2(u)为训练语音的1阶统计量。其中,Σ和T均由训练语音中提取的底层声学特征、ASR DNN参数计算获得,ASR DNN参数包括权重和偏置。
作为上述技术方案的改进之一,构建模型模块具体包括:
在训练生成模型G时,保持判别模型D不变;根据公式(5)、(6)(7),采用Adam算法,最大化目标函数V1,直到目标函数V1收敛;
V1=VV1+VI1 (5)
其中,VV1为生成模型G的验证目标函数,用于验证输入到判别模型的i-vector是真样本还是假样本;VI1为生成模型G的判定目标函数,用于判定输入到判别模型的i-vector属于哪一个语种类别;具体地,VV1和VI1的优化目标函数为:
其中,
为最小化生成模型G的验证目标函数,在训练生成模型G时,当输入的i-vector是G生成的假样本时,则希望判别模型判为真,即取生成模型G的验证目标函数的最小值;
为最大化判别模型G的判定目标函数,在训练生成模型G时,当输入的i-vector是G生成的假样本时,则希望判别模型能正确的判定语种类别,即取生成模型G的判定目标函数的最大值;
E表示期望;z为噪声信号;c为真i-vector;G(z,c)为假i-vector,即生成模型的输出;D(c,G(z,c))为输入真i-vector c和假i-vector G(z,c)时,判别模型输出的真假信息;k为类别信息;D(k|(c,G(z,c)))为在输入真i-vector c和假i-vector G(z,c)时,判别模型输出的类别信息;
在训练判别模型D时,保持训练后的生成模型G不变;根据公式(8)、(9)和(10)采用Adam算法,最大化目标函数V2,直到目标函数V2收敛;
V2=VV2+VI2 (8)
其中,VV2为判别模型D的验证目标函数,用于验证输入到判别模型的i-vector是真样本还是假样本;VI2为判别模型D的判定目标函数,用于判定输入到判别模型的i-vector属于哪一个语种类别;具体地,VV2和VI2的优化目标函数为:
其中,
为最大化判别模型D的验证目标函数;在训练判别模型D时,当输入的i-vector是真样本时,则希望判别模型判为真;当输入的i-vector是G生成的假样本时,则希望判别模型判为假,即取判别模型D的验证目标函数的最大值;
为最大化判别模型D的判定目标函数,在训练判别模型D时,无论输入的i-vector是G生成的假样本或者是真样本,都希望判别模型能正确的判定语种类别,即取判别模型D的判定目标函数的最大值。
将训练后的生成模型G和判别模型D进行构建,并交替训练G和D直到对应的目标函数收敛,获得CGAN分类器。
作为上述技术方案的改进之一,训练模块具体包括:
将训练集的i-vector输入CGAN分类器中进行训练,获得训练后的CGAN分类器。
作为上述技术方案的改进之一,分类模块具体包括:
将测试集的i-vector输入到训练后的CGAN分类器的判别模型D中,获得各语种类别的后验概率值,对应的获得其最大概率值,根据该最大概率值,进行语种类别的判定,并统计语种数目。
本发明的优点在于:
本发明将CGAN应用于半监督分类任务,有两点好处,首先CGAN分类器构建简单,只需要对最初的GAN的结构稍作改动,就可以完成建模过程。其次本发明将目标函数拆分成验证目标函数和判定目标函数,充分挖掘出不同语种特征的差异性,增强了CGAN分类器的泛化性能,有效的提高了语种识别系统的性能。
附图说明
图1是本发明的一种基于条件生成式对抗网络的语种识别分类方法的流程图;
图2是本发明的一种基于条件生成式对抗网络的语种识别分类方法中步骤1)的现有的DBF-DNN语种识别系统的结构示意图。
具体实施方式
如图2所示,本发明提供了一种基于条件生成式对抗网络的语种识别分类方法,该方法具体包括:
步骤1)利用现有的DBF-DNN语种识别系统,获得训练集的i-vector和测试集的i-vector;
步骤2)建立并训练生成模型G和判别模型D,构建CGAN分类器;
步骤3)训练CGAN分类器,获得训练后的CGAN分类器;
步骤4)将待识别的语种特征输入至训练后的CGAN分类器的判别模型D中,判定其语种类别,并统计语种类别的数目。
作为上述技术方案的改进之一,步骤1)中,如图1所示,现有的DBF-DNN语种识别系统,具体包括:
T矩阵训练模块,用于根据训练语音获得自动语音识别神经网络ASR DNN和全差异矩阵T;具体地,先用大量的英语语料训练一个自动语音识别神经网络(Automatic SpeechRecognition Deep Neural Networks,ASR DNN),再提取训练语音的底层声学特征,将底层声学特征作为训练数据,将其输入至ASR DNN,利用公式(1)、(2)分别计算Nc(u)和Fc(u),同时训练T矩阵,获得全差异矩阵T;其中,训练语音包括若干语种数据;训练T矩阵时,各语种数据混合训练,不区分语种;
其中,Nc(u)为语音u在ASR DNN最后一层第c个节点的0阶统计量;Fc(u)为语音u在ASR DNN最后一层第c个节点的1阶统计量;ut为语音u的第t帧声学特征,p(c|ut)为语音u的第t帧声学特征ut输入到ASR DNN后最后一层第c个节点输出的后验概率;语音u共有共L帧;yt为第t帧DBF特征,DBF特征是ASR DNN网络的中间层输出的值;yt T是yt的转置。
i-vector提取模块,用于获得测试的i-vector和训练的i-vector;具体地,对测试语音提取底层声学特征,将测试语音中提取的底层声学特征输入至ASR DNN,由公式(1)和(2)分别计算并获得测试语音的0阶统计量N1(u)、1阶统计量F1(u);再根据公式(3)计算得到测试的i-vector:
w1(u)=(I+TtΣ-1N1(u)T)-1TtΣ-1F1(u) (3)
其中,w1(u)为测试的i-vector;Σ是对角协方差矩阵;I为单位矩阵;T为全差异矩阵;Tt为全差异矩阵T的转置;N1(u)为测试语音的0阶统计量;F1(u)为测试语音的1阶统计量。其中,Σ和T均由测试语音中提取的底层声学特征、ASR DNN参数计算获得,其中,ASRDNN参数包括权重和偏置。
对训练语音提取底层声学特征,将训练语音中提取的底层声学特征输入至ASRDNN,由公式(1)、(2)分别计算训练语音的0阶统计量N2(u)、1阶统计量F2(u),再根据公式(4)计算得到测试的i-vector;
w2(u)=(I+TtΣ-1N2(u)T)-1TtΣ-1F2(u) (4)
其中,w2(x)训练的i-vector;Σ是对角协方差矩阵;I为单位矩阵;T为全差异矩阵;Tt为全差异矩阵T的转置;N2(u)为训练语音的0阶统计量;F2(u)为训练语音的1阶统计量。其中,Σ和T均由训练语音中提取的底层声学特征、ASR DNN参数计算获得,ASR DNN参数包括权重和偏置:
和分类模块,用于训练逻辑回归分类器,并将测试的i-vector输入训练后的逻辑回归分类器中,获得各语种类别的后验概率值,判定语种类别;具体地,将训练i-vector输入到逻辑回归分类器中进行训练,获得训练后的逻辑回归分类器;再将测试i-vector输入到训练后的逻辑回归分类器中,获得各语种类别的后验概率值,通过上述后验概率值进行语种类别的判定,并统计语种数目。
作为上述技术方案的改进之一,步骤1)具体包括:利用现有的DBF-DNN语种识别系统中的i-vector提取模块,获得训练集的i-vector和测试集的i-vector。
作为上述技术方案的改进之一,步骤2)提到的CGAN分类器包含一个生成模型G和一个判别模型D。生成模型G和判别模型D均为神经网络结构,其中,生成模型G和判别模型D的参数均采用Adam随机梯度下降算法进行更新。其中,G为卷积神经网络(Convolutionalneural network,CNN)模型,包括:两个CNN层,卷积核均为5*5,通道数分别为64和1;输入层为49维的真样本real i-vector和100维的噪声数据,输出为49维假样本false i-vector。D为CNN模型,包括:一个卷积层,卷积核为3*3,通道数为128。输入是49维真样本real i-vector和49维假样本false i-vector,输出层是15个节点,第1个节点表示真假,对应输出层使用sigmoid激活函数和binary_crossentropy误差函数;其余节点表示所属类别,对应输出层使用softmax和crossentropy误差函数。其中,在传统GAN的训练过程中,生成模型G的输入是噪声,判别模型D的输入是假样本或者是真样本;而在本实施例的CGAN分类器的训练过程中,生成模型G和判别模型D的输入都加入了条件信息真样本real i-vector。
作为上述技术方案的改进之一,步骤2)中,构建CGAN分类器具体包括:
在训练生成模型G时,保持判别模型D不变;根据公式(5)、(6)(7),采用Adam算法,最大化目标函数V1,直到目标函数V1收敛;
V1=VV1+VI1 (5)
其中,VV1为生成模型G的验证目标函数,用于验证输入到判别模型的i-vector是真样本还是假样本;VI1为生成模型G的判定目标函数,用于判定输入到判别模型的i-vector属于哪一个语种类别;具体地,VV1和VI1的优化目标函数为:
其中,为最小化生成模型G的验证目标函数,在训练生成模型G时,当输入的i-vector是G生成的假样本时,则希望判别模型判为真,即取生成模型G的验证目标函数的最小值;为最大化判别模型G的判定目标函数,在训练生成模型G时,当输入的i-vector是G生成的假样本时,则希望判别模型能正确的判定语种类别,即取生成模型G的判定目标函数的最大值;
E表示期望;z为噪声信号;c为真i-vector;G(z,c)为假i-vector,即生成模型的输出;D(c,G(z,c))为输入真i-vector c和假i-vector G(z,c)时,判别模型输出的真假信息;k为类别信息;D(k|(c,G(z,c)))为在输入真i-vector c和假i-vector G(z,c)时,判别模型输出的类别信息;
在训练判别模型D时,保持训练后的生成模型G不变;根据公式(8)、(9)和(10)采用Adam算法,最大化目标函数V2,直到目标函数V2收敛;
V2=VV2+VI2 (8)
其中,VV2为判别模型D的验证目标函数,用于验证输入到判别模型的i-vector是真样本还是假样本;VI2为判别模型D的判定目标函数,用于判定输入到判别模型的i-vector属于哪一个语种类别;具体地,VV2和VI2的优化目标函数为:
其中,
为最大化判别模型D的验证目标函数;在训练判别模型D时,当输入的i-vector是真样本时,则希望判别模型判为真;当输入的i-vector是G生成的假样本时,则希望判别模型判为假,即取判别模型D的验证目标函数的最大值;
为最大化判别模型D的判定目标函数,在训练判别模型D时,无论输入的i-vector是G生成的假样本或者是真样本,都希望判别模型能正确的判定语种类别,即取判别模型D的判定目标函数的最大值。
将训练后的生成模型G和判别模型D进行构建,并交替训练G和D直到对应的目标函数收敛,获得CGAN分类器。
作为上述技术方案的改进之一,步骤4)中的待识别的语种特征为步骤1)获得的测试集i-vector。
作为上述技术方案的改进之一,步骤4)具体包括:
将训练集的i-vector输入CGAN分类器中进行训练,获得训练后的CGAN分类器;再将测试集的i-vector输入到训练后的CGAN分类器的判别模型D中,获得各语种类别的后验概率值,对应的获得其最大概率值,根据该最大概率值,进行语种类别的判定,并统计语种数目。
基于上述的语种识别分类方法,本发明还提供了一种分类装置,其包括:
提取模块,用于获得训练集的i-vector和测试集的i-vector;
构建模型模块,用于构建CGAN分类器;
训练模块,用于训练CGAN分类器;
和分类模块,用于获得待识别的语种特征的语种类别,并统计语种数目。
作为上述技术方案的改进之一,所述提取模块具体包括:
利用现有的DBF-DNN语种识别系统,对测试语音提取底层声学特征,将测试语音中提取的底层声学特征输入至ASR DNN,由公式(1)和(2)分别计算并获得测试语音的0阶统计量N1(u)、1阶统计量F1(u);再根据公式(3)计算得到测试的i-vector:
w1(u)=(I+TtΣ-1N1(u)T)-1TtΣ-1F1(u) (3)
其中,w1(u)为测试的i-vector;Σ是对角协方差矩阵;I为单位矩阵;T为全差异矩阵;Tt为全差异矩阵T的转置;N1(u)为测试语音的0阶统计量;F1(u)为测试语音的1阶统计量。其中,Σ和T均由测试语音中提取的底层声学特征、ASR DNN参数计算获得,其中,ASRDNN参数包括权重和偏置。
对训练语音提取底层声学特征,将训练语音中提取的底层声学特征输入至ASRDNN,由公式(1)、(2)分别计算训练语音的0阶统计量N2(u)、1阶统计量F2(u),再根据公式(4)计算得到测试的i-vector;
w2(u)=(I+TtΣ-1N2(u)T)-1TtΣ-1F2(u) (4)
其中,w2(x)训练的i-vector;Σ是对角协方差矩阵;I为单位矩阵;T为全差异矩阵;Tt为全差异矩阵T的转置;N2(u)为训练语音的0阶统计量;F2(u)为训练语音的1阶统计量。其中,Σ和T均由训练语音中提取的底层声学特征、ASR DNN参数计算获得,ASR DNN参数包括权重和偏置。
作为上述技术方案的改进之一,构建模型模块具体包括:
在训练生成模型G时,保持判别模型D不变;根据公式(5)、(6)(7),采用Adam算法,最大化目标函数V1,直到目标函数V1收敛;
V1=VV1+VI1 (5)
其中,VV1为生成模型G的验证目标函数,用于验证输入到判别模型的i-vector是真样本还是假样本;VI1为生成模型G的判定目标函数,用于判定输入到判别模型的i-vector属于哪一个语种类别;具体地,VV1和VI1的优化目标函数为:
其中,
为最小化生成模型G的验证目标函数,在训练生成模型G时,当输入的i-vector是G生成的假样本时,则希望判别模型判为真,即取生成模型G的验证目标函数的最小值;
为最大化判别模型G的判定目标函数,在训练生成模型G时,当输入的i-vector是G生成的假样本时,则希望判别模型能正确的判定语种类别,即取生成模型G的判定目标函数的最大值;
E表示期望;z为噪声信号;c为真i-vector;G(z,c)为假i-vector,即生成模型的输出;D(c,G(z,c))为输入真i-vector c和假i-vector G(z,c)时,判别模型输出的真假信息;k为类别信息;D(k|(c,G(z,c)))为在输入真i-vector c和假i-vector G(z,c)时,判别模型输出的类别信息;
在训练判别模型D时,保持训练后的生成模型G不变;根据公式(8)、(9)和(10)采用Adam算法,最大化目标函数V2,直到目标函数V2收敛;
V2=VV2+VI2 (8)
其中,VV2为判别模型D的验证目标函数,用于验证输入到判别模型的i-vector是真样本还是假样本;VI2为判别模型D的判定目标函数,用于判定输入到判别模型的i-vector属于哪一个语种类别;具体地,VV2和VI2的优化目标函数为:
其中,
为最大化判别模型D的验证目标函数;在训练判别模型D时,当输入的i-vector是真样本时,则希望判别模型判为真;当输入的i-vector是G生成的假样本时,则希望判别模型判为假,即取判别模型D的验证目标函数的最大值;
为最大化判别模型D的判定目标函数,在训练判别模型D时,无论输入的i-vector是G生成的假样本或者是真样本,都希望判别模型能正确的判定语种类别,即取判别模型D的判定目标函数的最大值。
将训练后的生成模型G和判别模型D进行构建,并交替训练G和D直到对应的目标函数收敛,获得CGAN分类器。
作为上述技术方案的改进之一,训练模块具体包括:
将训练集的i-vector输入CGAN分类器中进行训练,获得训练后的CGAN分类器。
作为上述技术方案的改进之一,分类模块具体包括:
将测试集的i-vector输入到训练后的CGAN分类器的判别模型D中,获得各语种类别的后验概率值,对应的获得其最大概率值,根据该最大概率值,进行语种类别的判定,并统计语种数目。
本实施例中,在获得语种类别和语种数目之后,语种识别的测试标准主要采用平均检测代价(average cost,Cavg)和错误率(Error Rate,ER)来评价。计算过程还将提到虚警率和漏警率。这些指标从不同角度反映了语种识别系统性能的好坏,它们都是越小越好。Cavg的定义如下:
PNon-Target=(1-PTarget-POut=of-Set)/(NL-1) (12)
其中,NL为目标语种数目,LT表示目标语种,PMiss(LT)表示目标语种为LT时的漏检率。PFA(LT,LN)是目标语种为LT时的虚警率;CMiss和CFA分别是漏检和虚警的惩罚因子,PTarget为目标语种的先验概率。PNon-Target为非目标语种的先验概率。POut-of-Set为集外语种的先验概率。在本实施例中,POut-of-Set为0。设定CMiss=CFA=1,PTarget=0.5
本实施例中的实验只考虑闭集测试的情况,因此,POut-of-Set为0。设定CMiss=CFA=1,PTarget=0.5。
具体实验结果如表1所示。表中列出了在不同时长测试语音下的评价指标错误率(Error Rate,ER)、平均检测代价(Average Cost,Cavg)的变化情况。它们都是越小越好。表中DBF DNN-TV_LOG为现有的DBF-DNN语种识别系统,采用的是逻辑回归分类器。DBF-DNN-TV_CGAN为用现有的DBF-DNN语种识别系统提取i-vector,采用的是CGAN分类器。从表1中可以看出,采用CGAN分类器,能有效提升语种识别系统的性能,Cavg和ER都有一定程度的提升。
表1基线系统与CGAN系统的性能对比
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。