基于表征学习的中文自动语音识别文本修复方法及系统

文档序号:32445506发布日期:2022-12-06 23:56阅读:39来源:国知局
1.本发明涉及一种语音识别技术,特别涉及一种基于表征学习的中文自动语音识别文本修复方法及系统。
背景技术
::2.asr(automaticspeechrecognition,自动语音识别,asr)在工业系统中起到了越来越重要的作用,但是在音频转录时,不可避免的噪音会导致转录生成的文本与真实内容有所差异。因此,asr转录之后的文本修复就是一个非常重要的步骤。在asr文本修复的过程中,有两个问题值得被关注:第一转录过程中,噪音或者其他因素会影响语音的质量,导致转录出现错字漏字现象;第二转录后的文本不包含标点符号,大大降低了转录文本的可读性,增大了处理文本的难度。3.不管应用在词级别或句级别,中文纠错都是一个非常重要的任务,该任务是为了解决文本中错字问题。中文纠错可以用到许多自然语言处理的任务中,例如光学字符识别和文章评分任务。中文纠错是一个非常具有挑战性的问题,为了更好的解决中文纠错的问题,必须具备像人一样的语言理解能力。常见的中文错误分为两种:第一种是形近字错误,即错误的字和正确的字是字形方面的差别,这种错误常发生在光学字符识别领域。另一种是音近字错误,即错误的字和正确的字是拼音方面的差别,该错误往往出现在语音识别asr领域。4.标点符号预测或标点符号修复指的是利用计算机对无标点文本进行标点修复预测,使预测之后的文本相比于之前的文本更加具有可读性,符合自身语义。目前针对标点符号预测的公开数据集为iwslt数据集,该数据集是针对英文语音转写,中文标点符号预测或者中文标点符号修复比英文的更加困难。首先,中文和英文有天然的区别,英文每个词都有空格隔开,而且中文中每个字都有多种含义,即中文字的多义性。其次,中文标点相比于英文标点更加丰富且多变,这也增大了中文标点预测任务的难度,迄今在中文标点符号预测并没有好的进展。所以不管是在数据集方面或者语言模型方面,中文标点符号预测有很大的研究空间。技术实现要素:5.针对中文自动语音识别后纠错难问题,提出了一种基于表征学习的中文自动语音识别文本修复方法及系统。6.本发明的技术方案为:一种基于表征学习的中文自动语音识别文本修复方法,中文自动语音识别出的中文送入bert中文分词器进行编码后输出词向量,词向量送入中文标点符号预测模型进行标点符号预测,首先词向量分别通过字编码嵌入、拼音嵌入和字形嵌入编码和解码后送入transformer网络,transformer网络对字编码嵌入、拼音嵌入和字形嵌入进行自注意力机制的学习,整合字编码嵌入层、拼音嵌入层和字形嵌入层的信息的同时将嵌入层的维度拉伸成分类模块输入的维度,分类模块输出每个字的之后最大概率的标点符号的类别;中文标点符号预测模型输出带有标点符号的句子送入到中文纠错模型中进行纠错,在中文纠错模型中输入句子先使用基于词表的分词器得到字符嵌入和位置编码嵌入,同时输入句子送入双向lstm的网络编码器中得到字音嵌入和笔画嵌入,将字符嵌入、位置编码嵌入、字音嵌入和字形嵌入进入融合嵌入后,送入基于transformer结构的中文纠错网络中,得到修复后的文本。7.一种基于表征学习的中文自动语音识别文本修复系统,为中文标点符号预测模型和中文纠错模型封装成一个端到端的中文文本修复模型,输入的中文文本送中文标点符号预测模型,中文标点符号预测模型输出的带有标点符号的句子送中文纠错模型纠错,获得修复后的文本;8.所述中文标点符号预测模型包括bert中文分词器、roberta预测模型、chinesebert预测模型、transformer网络和分类模块;9.所述bert中文分词器:对输入的中文文本中的每一个中文词进行编码从而获得词向量;10.所述roberta预测模型:将词向量编码成通过预训练任务得到的字编码向量,即获得字编码嵌入;11.所述chinesebert预测模型:提取词向量的字音特征和字形特征,得到拼音嵌入和字形嵌入;12.所述transformer网络:对字编码嵌入、拼音嵌入和字形嵌入进行自注意力机制的学习,整合字编码嵌入层、拼音嵌入层和字形嵌入层的信息的同时将嵌入层的维度拉伸成分类模块输入的维度;13.所述分类模块:由两层线性层和两层dropout层来进行叠加,预测每一个字符编码对于标点分类的概率,输出每个字的之后最大概率的标点符号的类别;14.所述中文纠错模型采用plome模型。15.优选的,所述roberta预测模型采用动态掩码替换原bert模型中的静态掩码和取消bert模型中的下文预测任务,采用的掩码策略包括0%掩码、15%掩码以及30%掩码。16.优选的,所述chinesebert预测模型中拼音嵌入:通过开源工具获取每个字的拼音,将每个字的拼音通过一层宽度为二的cnn网络进行卷积,然后通过最大池化层获得拼音嵌入;17.字形嵌入:使用三种中文字体的字形图片,每一个字形图片的大小为24*24,每个字的三种中文字体组合成24*24*3的张量,然后使用全卷积神经网络对张量进行拉伸形成字形嵌入。18.优选的,所述transformer网络注意力机制的核心公式如下式所示:19.式中:q是查询矩阵;k是注意力机制关注的信息;v是原始输入值通过线性变化之后的矩阵,用来保存输入特征,q与k的转置kt进行点乘计算出对于q在v上的注意力权重;dk是多头注意力机制算法中的head大小,利用进行尺度化的目的是避免q与kt的点积太大,一旦点积过大时,经过softmax函数进行反向传播的梯度计算,将结果平滑到0-1区间。20.优选的,所述中文纠错模型输入包括四个嵌入层:字符嵌入、位置嵌入、拼音嵌入和笔画嵌入,通过查找表和预训练分词器,获得字符嵌入和位置嵌入;采用bilstm编码器用来表示拼音嵌入和笔画嵌入,字符嵌入、位置嵌入、拼音嵌入和笔画嵌入输出通过融合嵌入融合后,送入12层的transformer后得到输出。21.一种基于表征学习的中文自动语音识别文本修复系统训练方法,包括如下步骤:22.1)选择数据集,选择lc中文新闻数据集、json版社区问答数据集以及sighan2015cscdatasets三个数据集;23.2)对样本数据集进行预处理,对中文标点符号数据集中的文本标点符号异常情况进行清洗,其次去除中文标点符号数据集中bert预测模型编码器不能识别的字符,最后使用bert预测模型对中文标点符号数据集中的文本进行词向量的编码,作为微调预测模型的输入;24.3)训练阶段,分别对中文标点符号预测模型以及对中文纠错模型进行训练,在训练两个模型的同时,提取两个模型最终得到的嵌入层输出的相对距离,将该距离进行平均归一化处理,同时加入到两个模型自身训练时的损失中,达到两个模型同步训练。25.进一步,所述lc中文新闻数据集以及json版社区问答数据集作为中文标点符号预测模型训练的数据集,所述sighan2015cscdatasets作为中文纠错模型训练的数据集,数据集按训练识别要求分为训练集、验证集和测试集。26.进一步,所述中文标点符号预测模型的训练,具体包括以下步骤:27.a01、将预处理好的中文文本输入到bert中文分词器中,bert中文分词器将每一个中文进行编码,并且给每句话的起末位置添加标志符,这样就对之后每一次输入的编码的长度进行固定;28.a02、将得到的词向量分别输入到roberta预测模型和chinesebert预测模型中,roberta预测模型将词向量编码成通过预训练任务得到的字编码向量,即字编码嵌入,字编码向量包含字与字之间的关系以便后续的下游任务;chinesebert预测模型提取词向量的包括字音特征和字形特征的中文特征,得到拼音嵌入和字形嵌入,通过roberta预测模型和chinesebert预测模型,得到三个嵌入层:字编码嵌入、拼音嵌入和字形嵌入;29.a03、transformer网络对三个嵌入层进行自注意力机制的学习,整合三个嵌入层的信息的同时将嵌入层的维度拉伸成之后分类模块输入的维度;30.a04、将整合好的嵌入层输入至分类模型,该分类模型预测每一个字符编码对于空、逗号、句号和问号的概率,输出每个字的之后最大概率的标点符号的类别,至此,中文标点符号预测任务完成;31.在训练过程中,超参数的设置如下:batch_szie设置为16,epochs设置为12,learning_rate设置为3e-5,优化器使用的adamw优化器,训练指标选择准确率、召回率、f1-score分数和auc值四个指标进行评估;32.带权重的损失值被定义为:33.34.式中:式中:为样本数据集中第n个样本的标签yn的权重,表示为weigh[yn]表示标签yn的权重,yn≠ignoreindex,ignoreindex表示选择忽略标签的索引值,表示样本数据集中第n个样本,其标签为yn,n为样本数据集的大小。[0035]进一步,所述中文纠错模型的训练,具体包括如下步骤:[0036]b01、将样本数据集输入到中文纠错模型中,使用基于词表的分词器来得到字符嵌入层和位置编码嵌入层;[0037]b02、将样本数据集输入到双向lstm的网络编码器中,得到字音嵌入层和笔画嵌入层;[0038]b03、将字符嵌入层、位置编码嵌入层、字音嵌入层和字形嵌入层行混淆整合,整合好的向量包含了四个嵌入层的综合信息即融合嵌入;[0039]b04、将整合好的向量输入到基于transformer结构的中文纠错网络中,得到纠错后的文本。[0040]本发明的有益效果在于:本发明基于表征学习的中文自动语音识别文本修复方法及系统,基本bert的中文标点符号预测模型,相比于现有的中文标点符号模型,本发明使用了更高效的roberta预测模型,对原bert预测模型进行微调,并且使用transformer来整合特征嵌入,是目前较为完整且高效的中文标点符号预测任务的方法和系统;提出的文本纠错模型中,使用双向lstm结构提取了字音和笔画特征的嵌入层,借助于双向lstm的记忆能力更好地解决了长程依赖问题;提出的模型将中文标点符号和中文纠错模型两个任务进行结合,形成了一个端到端的中文asr输出本文修复系统,从两个角度完全解决asr输出文本的错误,提高语音文本的正确率。附图说明[0041]图1为本发明表征学习的普通话asr输出文本修复方法流程图;[0042]图2为本发明方法中文标点符号预测模型中拼音嵌入模型示意图;[0043]图3为本发明方法中文标点符号预测模型中字形嵌入模型示意图;[0044]图4为本发明方法中文标点符号预测模型示意图;[0045]图5为本发明方法中文文本纠错模型示意图。具体实施方式[0046]下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。[0047]如图1所示,本实施例公开的一种表征学习的普通话asr输出文本修复方法,主要由两个部分构成——中文标点符号预测模型和中文纠错模型。[0048]首先,将asr识别输出的中文结果输入到中文标点符号预测模型,该模型是在bert预训练模型的基础上针对中文标点符号预测任务完成微调后的模型。由中文标点符号预测模型输出带有标点符号的句子。之后,将带有标点符号的句子输入到中文纠错模型中,最后得到修复后的中文文本结果。本实施例中,中文标点符号预测模型和中文纠错模型被封装成一个端到端的中文文本修复模型。[0049]以下分别介绍上述两个模型的主要结构:[0050]第一、中文标点符号预测模型[0051]目前中文标点符号预测并没有非常系统的方法,仅使用bert来进行预测的效果并不好。因此,本发明提出了基于bert的中文标点符号预测模型。相比于原生的bert,中文标点符号预测模型的主要改进的地方有三个:[0052]1)使用roberta模型来替代bert模型。roberta模型的特点是采用动态掩码替换原来bert模型中的静态掩码和取消bert模型中的下文预测任务。即,在roberta模型中,首先将数据集复制多份,对相同数据进行不同的随机掩码策略,使相同的数据在不同的训练轮数的掩码位置是不一样的。本实施例中,主要采用的掩码策略有三种:0%掩码、15%掩码以及30%掩码。[0053]2)为了提高机器对语言的理解能力,提取出了字音和字形两个额外的中文特征,其中,字音的嵌入表示为拼音嵌入(pinyinembedding),字形的嵌入表示为字形嵌入(glyphembedding)。下面是得到拼音嵌入以及字形嵌入的方法:[0054]拼音嵌入:通过开源工具获取每个字的拼音,将每个字的拼音通过一层宽度为二的cnn网络进行卷积,然后通过最大池化层获得拼音嵌入,如图2所示。[0055]字形嵌入:使用三种中文字体(隶书、行楷和仿宋)的字形图片,每一个字形图片的大小为24*24,每个字的三种中文字体组合成24*24*3的张量,然后使用全卷积神经网络对张量进行拉伸形成字形嵌入,如图3所示。[0056]3)roberta模型在得到了数据中字音特征和字形特征的嵌入之后,将生成的嵌入层的输出送入编码器和解码器的层数都为一的transformer网络中,使用transformer网络的自注意力机制来整合输入信息。本实施例中,注意力机制的核心公式如下式所示:[0057][0058]式中:q是查询矩阵;k是注意力机制关注的信息;v是原始输入值通过线性变化之后的矩阵,用来保存输入特征,q与k的转置kt进行点乘计算出对于q在v上的注意力权重;dk是多头注意力机制算法中的head大小,利用进行尺度化的目的是避免q与kt的点积太大,因为一旦点积过大时,经过softmax函数的梯度就会很小。[0059]本发明采用softmax函数的优点是:便于反向传播的梯度计算,同时将结果平滑到0-1区间。最开始的q、k、v是相通的,是字音嵌入层和字形嵌入层相加的结果。q、k、v也是模型所需要训练优化的参数。[0060]transformer网络的输出输入到分类模块。本实施例中,分类模块由两层线性层和两层dropout层来进行叠加,通过分类模型预测每一个字符编码对于四个分类的概率,输出每个字的之后最大概率的标点符号的类别,其中,四个分类的标签分别为空、逗号、句号和问号,其中,非线性函数使用relu函数。最后,分类模块使用softmax函数输出得到结果。本实施例公开的中文标点符号预测模型的结构如图4所示。[0061]第二、中文纠错模型:[0062]本实施例中,中文纠错模型中将基于字表的表征提取方法应用于中文拼写校正任务,旨在通过结合拼音信息和汉字的笔画特征,提高模型学习汉字之间关系的能力,从而使模型能够更精确地判别句子中的错误。该模型的输入包括四个主要的嵌入层:字符(character)嵌入、位置(position)嵌入、拼音(pin-yin)嵌入和笔画(strokes)嵌入。通过查找表(lookuptable)和预训练分词器,快速获得两个基本嵌入层‑‑字符嵌入和位置嵌入。接下来,bilstm编码器(encoder)被用来表示拼音嵌入和笔画嵌入,由于bilstm的记忆能力,它们包含了上下文敏感的信息。笔画嵌入中包含更多关于中文相似性的信息,这比在中文标点符号预测中的字形嵌入更有利于中文纠错任务。字符嵌入、位置嵌入、拼音嵌入和笔画嵌入输出通过融合嵌入(fusionembedding)融合后,送入12层的transformer后得到输出,如图5所示。[0063]对上述中文标点符号预测模型以及中文纠错模型的训练具体包括以下步骤:[0064]步骤1、选择数据集。本发明选择了三个比较合适的数据集——lc中文新闻数据集、json版社区问答数据集以及sighan2015cscdatasets。[0065]lc中文新闻数据集:该数据集的每一条数据都由两个部分构成。第一个部分是新闻的简介或者题目,用来概述该条新闻,一般句子长度是20个字以下。第二个部分是新闻的完整内容,每条句子超过一百个字以上。该数据集分为训练集、验证集和测试集,训练集的大小为10万余条,验证集和测试集数量为1万余条。由于数据集的内容涉及范围较广并且数据量较为充足,常作为中文自然语言处理任务的数据集;[0066]json版社区问答数据集:含有410万余条预先过滤过的、高质量问题和回复。每个问题属于一个话题,共计2.8万个话题。从1400万个原始问答中,筛选出至少获得3个点赞以上的回答,从而获得高质量的数据集。除了每个问题对应一个话题、问题的描述、一个或多个回复外,每个回复还带有点赞数、回复id、回复者的标签。数据去重并分成三个部分:训练集大小为412万条,验证集和测试集为6.8万条。该数据集相比于lc中文新闻数据集包含更多的中文标点符号,可以提高本发明在中文标点符号预测任务中的正确率。[0067]lc中文新闻数据集以及json版社区问答数据集作为对中文标点符号预测模型进行训练的中文标点符号数据集。[0068]sighan2015cscdatasets:该数据集格式与json版社区问答数据集类似,即键值对的格式,因此转为json格式文件后可以提高后续处理的效率。该数据集的训练集大小为15万条,测试集和验证集分别为14万条,每条数据包括original_text、wrong_ids和correct_text三个部分。original_text表示带有错误的句子,wrong_ids表示original_text中的错误的字的索引,correct_text则表示正确的句子。sighan2015cscdatasets作为中文纠错的常用数据集,本实施例中,利用该数据集对中文纠错模型进行训练。[0069]步骤2、对样本数据集进行预处理。由于使用的中文标点符号数据集并不是整理好的数据集。在中文标点符号预测中,需要保证数据集的干净整齐,比如不能存在多个标点符号相连、句子开头不能是标点符号等异常情况,因此需要对中文标点符号数据集中的文本进行清洗。其次需要去除中文标点符号数据集中bert预训练模型编码器不能识别的字符,比如韩文等外文、生僻字以及特殊符号。中文标点符号数据集清洗完之后,使用bert预训练模型对中文标点符号数据集中的文本进行词向量的编码,作为微调预训练模型的输入。[0070]步骤3、训练阶段,分为对中文标点符号预测模型的训练以及对中文纠错模型的训练。[0071]对于中文标点符号预测模型的训练,本发明使用roberta-wwm和chinesebert两个预训练模型,针对中文标点符号任务进行微调,具体包括以下步骤:[0072]步骤3a01、将预处理好的中文文本输入到bert中文分词器中,该bert中文分词器可以将每一个中文进行编码,并且可以给每句话的起末位置添加标志符,这样就对之后每一次输入的编码的长度进行固定。本实施例选择的词向量长度是512。[0073]步骤3a02、将得到的词向量分别输入到roberta-wwm预训练模型和chinesebert预训练模型中。roberta-wwm预训练模型将词向量编码成通过预训练任务得到的字编码向量,即字编码嵌入,相比较之前的词向量而言,字编码向量包含了更多字与字之间的关系以便后续的下游任务。chinesebert预训练模型提取词向量的中文特征——字音特征和字形特征,得到拼音嵌入和字形嵌入。通过roberta-wwm预训练模型和chinesebert预训练模型,得到了三个嵌入层——字编码嵌入、拼音嵌入和字形嵌入。[0074]步骤3a03、transformer网络对三个嵌入层进行自注意力机制的学习,整合三个嵌入层的信息的同时将嵌入层的维度拉伸成之后分类模块输入的维度。[0075]步骤3a04、将整合好的嵌入层输入至分类模型,该分类模型可以预测每一个字符编码对于四个分类(空、逗号、句号和问号)的概率,输出每个字的之后最大概率的标点符号的类别。至此,中文标点符号预测任务完成。根据前人预训练模型的效果和经验以及结合实际的消融实验效果来看,增加额外的中文特征嵌入可以提高模型对语言的理解能力,并且对于下游任务(此处的下游任务即使中文标点符号预测任务)起到了积极的作用,即将两个嵌入和原始的roberta训练的嵌入进行结合,来增加模型对中文字与字之间关联性识别,从而识别两字之间是否需要打标点符号。[0076]在训练过程中,超参数的设置如下:batch_szie设置为16,epochs设置为12,learning_rate设置为3e-5,优化器使用的adamw优化器,训练指标选择准确率、召回率、f1-score分数和auc值四个指标来进行评估。[0077]中文纠错模型采用plome模型,对于中文纠错模型的训练,该模型的训练过程具体如下:[0078]步骤3b01、将样本数据集输入到模型中,使用基于词表的分词器来得到字符嵌入层和位置编码嵌入层;[0079]步骤3b02、将样本数据集输入到双向lstm的网络编码器中,得到字音嵌入层和笔画嵌入层。[0080]步骤3b03、将字符嵌入层、位置编码嵌入层、字音嵌入层和字形嵌入层行混淆整合,整合好的向量包含了四个嵌入层的综合信息即融合嵌入;[0081]步骤3b04、将整合好的向量输入到基于transformer结构的中文纠错网络中,得到纠错后的文本。[0082]步骤3c01、在训练两个模型的同时,我们提取两个模型最终得到的嵌入层输出的相对距离,将该距离进行平均归一化处理,同时加入到两个模型自身训练时的损失中,达到两个模型同步训练的效果。[0083]本实施例公开的中文纠错模型也实现了多个错误点的纠错效果。训练过程的超参数设置中,本发明将batch_szie设置为32,epochs设置为10,learning_rate设置为5e-5,优化器采用的是adam权重下降优化器,评估指标选择最小损失值、模型准确率以及f1-score分数。[0084]在损失函数方面,本发明着重考虑中文标点符号预测任务中的损失函数。由于中文标点符号预测任务为多分类任务,并且选用的中文标点符号数据集中存在严重的样本不均衡的问题,即数据集中句号数量远大于问号和逗号的数量,因此使用的损失函数的是带标签权重的负对数似然函数,该损失函数可以将数据集中各个标签的权重加入到优化中,缓解样本不均衡的问题。带权重的损失值可以被定义为:[0085][0086]式中:式中:为样本数据集中第n个样本的标签yn的权重,表示为weigh[yn]表示标签yn的权重,yn≠ignoreindex,ignoreindex表示选择忽略标签的索引值,表示样本数据集中第n个样本,其标签为yn,n为样本数据集的大小。[0087]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1