code-switching论文笔记 TOWARDS CODE-SWITCHING ASR FOR END-TO-END CTC MODELS

微软语言中心+JHU

TOWARDS CODE-SWITCHING ASR FOR END-TO-END CTC MODELS

摘要:   尽管单语和多语自动语音识别(ASR)的端到端(E2E)模型已经取得了很大的进展,但就我们目前所知,还没有对E2E模型在具有挑战性的句内码转换(CS) ASR任务方面的成功研究。在本文中,我们提出了一种利用E2E连接体时间分类(CTC)模型来实现CS ASR的方法。我们使用一个框架级语言识别模型来线性调整E2E CTC模型的后验。我们以7000小时中英文单语数据和300小时CS数据作为训练数据,在Microsoft live Chinese Cortana数据上对提出的方法进行了评估。该方法只训练单语数据,不观察任何CS数据,相对错误率(WER)可降低6.3%。在单语和CS数据同时训练的情况下,该方法的相对WER改进率可达4.2%。这种方法也可以在中国测试集上保持与基线模型相当的性能。

7000 hours Chinese and English monolingual data and 300 hours CS data as the training data.
 

Introduction 

       传统上,自动语音识别(ASR)系统包含的组件包括声学、语音和语言模型,这些组件分别经过训练,每个组件都有不同的目标。端到端(E2E) ASR[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]是一个新兴的领域,因为它比传统的ASR简单。E2E系统直接将声学特征的输入序列映射到字符、音素或单词的输出序列。E2E ASR系统主要有三种:(a)连接式时间分类(CTC) [11,12], (b)基于LAS注意的编解码器网络[13,14,15,16],(c)递归神经网络(RNN)-transducer的[17]。

      上述E2E模型已成功应用于大规模单语[1、3、4、5、7、9、10、18、19、20、21、22]以及多语ASR任务中[23、24、25]。然而,成功地实现代码转换(CS) ASR是非常具有挑战性的。CS指的是说话者将两种或两种以上不同语言的单词或短语混合在一起的现象。这种现象广泛存在于粤语[26]、汉英[27]、西班牙语[28]、印地语[29]、荷兰语[30]等多语种社区。根据语言转换发生的位置,有两种类型的CS现象。一种是句内CS,即在一个话语中发生转换。另一种是句子间CS,即在句子边界处发生切换。李柯(音译)在微软语音和语言小组做研究实习生时完成了这项工作。的话语。前者的难度更大,因为混合语言在语音上的差异可能比跨语音的差异更大。

       据我们所知,在具有挑战性的句子内CS场景中没有成功的E2E工作。例如,Kim等人利用特定于语言的门控机制构建了一个多语言端到端ASR系统,但它不能处理CS场景。同样,基于bb0 s编解码器的E2E多语言模型[24],将所有语言的数据联合训练,输出为特定语言集的并集,不能解决CS问题。Seki等人利用[25]生成的语音级合成CS文本,在不能处理句子内CS的情况下,改进了编译码器模型。

       基于编解码器的模型不能很好地用于CS场景的一个潜在原因是,解码器的输出依赖于以前的输出。当前面的步骤继续从一种语言发出令牌时,由于这种依赖性,很难立即切换到另一种语言的令牌。相反,CTC模型具有输出独立性假设,这通常是不准确的,但由于当前步骤输出并不显式依赖于以前的输出,因此可能更适合处理CS场景。

        值得注意的是,以往大多数关于CS ASR的工作都是研究如何提高CS话语的性能。然而,在大多数情况下,话语主要是一种主要的单语,CS话语既包含主语又包含副语。例如,对于微软Cortana在中国收集的实时数据,大多数话语主要包含中文令牌。人们只会在不容易用中文说的单词上偶尔切换到英文(如iPhone, Cortana等)。因此,对CS ASR更好的目标应该是保持与主要语言单语系统相同的ASR准确性,同时提高CS话语的ASR性能。如果我们不知道一种CS方法会对主要语言的识别造成多大的伤害,就很难对其进行评估,而这在大多数CS ASR研究中是缺失的[26、27、28、31、29、30、32、33、34、35]。

       本文研究了对E2E CTC模型进行句内CS ASR的有效方法。研究表明,E2E CTC模型在训练数据量较大的情况下,与传统的混合深声模型性能相当[3,9]。我们的目标是提高E2E CTC系统在CS场景下的性能,同时在主要语言上保持合理的性能。在本研究中,我们提出了一种基于语言识别(LID)的方法来处理E2E CTC模型的CS ASR。该方法分别训练E2E CTC模型和LID模型,并通过相应的LID评分直接调整CTC模型的后验。我们使用贪婪解码,没有任何语言模型或词典组件。我们关注的是汉英句子内CS场景。

        本文的其余部分组织如下。在第2节中,我们介绍了ASR系统cs的相关工作。在第3节中,我们提出了将LID合并到E2E CTC模型中以处理句内CSs的方法。我们对第4节中提出的方法进行了评估,并在第5节中给出了结论。

2   RELATED WORK

      CS ASR之前的工作主要是在常规混合系统中[26,27,28,31,29,30,32,33,34,35]。传统的多通方法是首先使用语言标记语音帧,包括语言边界检测[36]和语言识别(LID)[37,38],并使用相应的单语语音识别器[34]对标记语音段进行识别。这些管道方法的ASR性能受前端语言边界检测和盖子的限制。为了解决这一问题,提出了一种无语言边界检测和LID的单遍方法[31,32,30]。[39]采用词汇和声学模型的半监督学习方法对CS ASR系统进行了改进。[40]利用语音链框架使ASR和文本到语音的合成系统能够以半监督的方式学习代码转换。此外,为了更好地识别重音,[41]提出了联合学习重音ID和声学模型。

       以上方法主要针对声学模型。CS更多地发生在口语场景中,而不是书面场景中。因此,CS文本语料库非常有限。为了解决这一问题,提出了基于语义映射的n-g语言模型[42]和词类n-g语言模型[43],以更好地对低频率、不可见的CS n-g进行建模。Sreeram等人提出了一种基于单语类的递归神经网络语言模型(RNNLM),该模型融合了CS标记器预测语言切换。Yilmaz等人使用基于RNNLM和神经机器翻译的方法生成更多的CS文本,以更好地进行语言建模。此外,还提出了基于音译的ASR性能改进方法。

3   3. METHODS
3.1. E2E CTC Models

        我们采用双向长短时记忆(LSTM)递归神经网络(RNNs)作为模型结构,CTC损失作为目标函数[11,12]。语音中的ASR输出符号通常小于输入语音帧。因此,允许重复标签和空白标记的CTC路径被用来强制输出具有与输入语音帧相同的长度。让我们表示x的语音输入序列,l与原始标签序列,πCTC路径,Θ网络参数,和B 1(左)所有可能的CTC路径扩展从l

 

3.2。带有语种LID的CTC

       在本研究中,我们建议使用LIDs来提高E2E CTC在CS语音上的表现。由于CS ASR是一项从主要语言和次要语言中识别大量输出单元的具有挑战性的任务,因此相对容易识别出这些片段来自哪种语言。如果我们能够在每一个时间步准确地预测语言,特别是对于切换的情况,我们就可以使用这些信息更好地指导原始ASR模型来处理CS场景。因此,我们可以通过从一个具有挑战性的CS ASR问题转换到一个更简单的LID任务来提高CS ASR性能。

       LID可以采用多种方法[37,45]。通常眼睑在话语或短语水平。在本研究中,我们的目标是为CS ASR建立一个框架级的LID,这样我们就可以在框架级将LID输出与CTC输出结合起来。我们使用前馈深度神经网络(DNNs)和LSTMs构建框架级的LIDs来预测主要语言和次要语言(以及静默)

       因此,我们提出了一个框架级LID和E2E CTC模型的显式组合。在图1中,我们给出了一个如何在LID的帮助下训练汉英CS发音的CS模型的例子。具体流程如下。

code-switching论文笔记 TOWARDS CODE-SWITCHING ASR FOR END-TO-END CTC MODELS_第1张图片

步骤1:通过保持网络隐藏权值,用主语言和辅助语言的单元联合替换主语言的输出目标,从主语言的CTC模型初始化CS CTC模型。

步骤2:通过使用两种语言的数据更新所有参数来训练这个CS CTC模型。

步骤3:在相同的训练数据上,用三种输出训练LID模型,逐帧预测主语言、辅助语言和静默。

步骤4:在解码过程中,如果空白符号控制当前帧,则发出空白令牌作为该帧的标签。否则,将大调和次调的后半部相乘由CTC模型输出相应语言的LID概率。然后发出这两种语言单位中后验最大的标签。

步骤5:解码假设是将上述输出标记用贪心解码折叠而成。

        基于CTC模型对初始化[10]非常敏感的经验,在第1步从主要语言的CTC模型中初始化它们对于保证CS模型仍然能够在主要语言上合理地工作是至关重要的。这也不同于常见的多语言设置,后者通常通过同等对待所有语言[46]来训练共享隐藏层。

        DNN和LSTM模型均可用于预测步骤3的帧级LID。然而,从给定的单一框架中准确预测框架是哪种语言是不可能的。因此,对于基于dnn的LID预测,我们使用一个相对较大的上下文窗口,从而提供足够的信息来预测当前帧的语言。对于基于lstm的LID预测,如果我们使用双向模型,我们应该能够很好地预测,因为双向处理可以访问整个话语。

 

        我们对微软live Cortana在中国的应用中收集到的实时语音进行了评价。在本研究中,我们只关注中文(ZH)和英文(EN)的CS场景。而我们的方法也可以应用于其他语言和超过两种语言的情况。在中国市场上,主要语言是汉语,第二语言是英语。其目标是在不牺牲汉语语音ASR准确性的前提下,提高汉英CS的性能。

       我们有两个测试集。一个是CS测试集,包含3万个汉字和英语单词(占33.8%)。另一种是只有中文的测试集,包含5万个汉字。我们把每个汉字都当作一个单词来对待,这样我们就可以报告错误率(WER)来进行评估。在训练方面,我们有单语和CS数据,其中中文Cortana数据4000小时左右,US-English Cortana数据3400小时,code switch数据300小时。

       我们使用CNTK来训练所有的CTC模型。所有的E2E CTC模型都包含6个双向LSTM层,每个方向隐藏尺寸512。我们推导了10毫秒间隔的80维对数Mel滤波器组能量,并将3个相邻的帧叠加起来,形成了CTC[18]的240维特征。基于CTC模型的后峰值,采用贪婪解码方法生成单词序列

code-switching论文笔记 TOWARDS CODE-SWITCHING ASR FOR END-TO-END CTC MODELS_第2张图片

       我们首先用单语4000小时中文数据训练一个基线CTC模型。它使用大约7k个汉字和空白作为输出。该模型仅在中文测试集中得到11.03%的WER,在CS测试集中得到58.06%的WER,如表1所示。所有的CS CTC模型都是从这个基线中文CTC模型初始化的,如第3.2节第1步所述。

       接下来,我们将构建几个CS CTC模型,其中包含中文和英文输出单元。假设我们有大约7k个汉字,我们选择大约8k个字母三元组作为英语输出。这样,我们就可以平衡中文和英文的输出。我们将中文字符和英文字母三元组合并,形成所有CS模型使用的15k输出单元。

        我们将4000学时的汉语和3400学时的英语数据结合起来,建立了第一个CS CTC模型,研究能否从单语数据中构建CS模型。遗憾的是,该模型既没有提高CS测试集的精度,也没有降低中文测试集的性能。这可能是因为我们从中文CTC模型初始化模型,使得最终的模型仍然偏向中文输出。如果没有这样的初始化,我们可以在CS测试集上有更好的性能,但是会降低中文测试集的精度,偏离我们的目标。

        接下来,我们将所有的单语数据与300小时的CS数据合并,建立第二个CS CTC模型,使该模型能够观察到CS现象。毫无意外,它显著地提高了使用30.81% WER的CS测试集的性能,在使用11.01% WER的中文测试集上也有类似的性能。

        最后,我们用300小时的CS数据建立了第三个CS CTC模型。它在CS测试集中以25.48%的WER表现最好,但在中文测试集中以21.92%的WER表现最差。显然,这种行为是不可取的。

        由于我们的目标是提高CS性能,并在中文测试集上保持可比较的性能,所以我们将在下面的小节中只介绍如何改进第一和第二CS模型

 

 

        我们同时训练了DNN和LSTM系统。DNN LID模型有6个隐藏层,每层有2048个节点。我们为DNN模型选择了一个包含41帧的上下文窗口。双向LSTM LID模型有6个隐藏层,每个层上每个方向有512个LSTM单元。根据模型类型和CS数据是否用于培训,我们有6个LID模型:只有单语数据(ZH+EN)的场景有两种类型,合并了单语和CS数据(ZH+EN+CS),只有CS数据(CS)。

       我们首先评估了六种LID模型的性能。CS测试集帧级精度如表2所示。在切换acc时,对所有开关(ZH、EN和silence之间)的总体精度(acc.)进行评估。仅在表2中ZH和EN之间发生切换的帧处计算。表2结果显示,在CS训练数据下,基于DNN和LSTM的

 

表2:CS测试集各盖帧级精度(%)。在开关acc期间,对所有开关(ZH、EN和静默之间)进行评估。仅在ZH和EN之间发生切换的帧处计算。

code-switching论文笔记 TOWARDS CODE-SWITCHING ASR FOR END-TO-END CTC MODELS_第3张图片

       LID的表现比那些没有CS数据训练的要好。我们还可以观察到,在没有CS训练数据的情况下,基于DNN的LIDs比基于LSTM的LIDs表现得更好。由于LSTM模型在训练过程中没有看到任何CS数据,因此不能很容易地切换到CS话语,因为它的记忆学习没有看到这样的模式。相反,DNN模型的逐帧处理使语言之间的切换更加容易。而在使用CS训练数据的场景中,基于LSTM的LIDs总体上优于基于DNN的LIDs。这是因为强大的LSTM模型现在在训练中观察到CS模式

4.4。通过单语数据训练CTC和LID模型的结果,

       我们评估了通过不同的LIDs调整基线CTC模型的性能。表3显示了由CS和中文测试集上的两个盖子调整的CTC模型的WERs。CTC和LIDs都使用单语ZH和EN数据进行培训。LID1为DNN模型,LID2为LSTM模型。在情商α。3设置为默认值1。结合LID1模型,我们可以将CS测试集上的WER从59.08%降低到55.38%,相对降低率为6.3%,而在中文测试中,相对降低率控制在2%以内。结合LID2模型,汉语测试几乎没有下降,CS测试集的相对WER降低了1.6%。在训练过程中没有看到CS数据的情况下对CS测试集进行了改进,证明了该方法的有效性

 

5. CONCLUSION AND FUTURE WORK

        在本研究中,我们提出了一种基于LID的方法来研究E2E CTC模型中的CS ASR。我们打算将识别大量ASR单元的挑战性问题从两种语言转换为更简单的语言识别任务,从而提高性能。该方法分别训练E2E CTC模型和LID,并利用LID的后验直接调整E2E CTC模型的后验。我们使用了7000小时的中英双语数据和300小时的CS数据,在Microsoft Chinese Cortana数据上应用该方法来提高CS性能。在训练过程中,只使用单语数据而不观察任何CS数据,该方法可以达到6.3%的相对降低WER的效果。如果在训练过程中观测到CS数据,该方法仍然可以得到4.2%的相对改进。对于这两种场景,中文测试集上的性能都被控制为与基线性能类似。

        在未来,我们计划通过框架间的加权决策进一步完善LID。我们还计划研究联合训练方法,并将该方法应用于其他E2E模型

 

 

 

 

你可能感兴趣的:(语音识别)