CN113066494B - 文本纠错模型生成方法及系统、文本纠错方法、系统、设备及介质 - Google Patents
文本纠错模型生成方法及系统、文本纠错方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN113066494B CN113066494B CN202110276017.XA CN202110276017A CN113066494B CN 113066494 B CN113066494 B CN 113066494B CN 202110276017 A CN202110276017 A CN 202110276017A CN 113066494 B CN113066494 B CN 113066494B
- Authority
- CN
- China
- Prior art keywords
- text
- entry
- voice recognition
- feature vector
- decoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012937 correction Methods 0.000 title claims abstract description 260
- 238000000034 method Methods 0.000 title claims abstract description 125
- 239000013598 vector Substances 0.000 claims abstract description 166
- 238000012549 training Methods 0.000 claims abstract description 77
- 230000008569 process Effects 0.000 claims description 47
- 239000011159 matrix material Substances 0.000 claims description 39
- 238000009826 distribution Methods 0.000 claims description 36
- 230000011218 segmentation Effects 0.000 claims description 33
- 238000001914 filtration Methods 0.000 claims description 26
- 238000013528 artificial neural network Methods 0.000 claims description 23
- 238000013507 mapping Methods 0.000 claims description 20
- 230000009466 transformation Effects 0.000 claims description 10
- 238000005315 distribution function Methods 0.000 claims description 9
- 238000003780 insertion Methods 0.000 abstract description 11
- 230000037431 insertion Effects 0.000 abstract description 11
- 238000012217 deletion Methods 0.000 abstract description 6
- 230000037430 deletion Effects 0.000 abstract description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 41
- 238000010845 search algorithm Methods 0.000 description 34
- 230000000694 effects Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 238000009499 grossing Methods 0.000 description 5
- 238000003672 processing method Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 238000013518 transcription Methods 0.000 description 4
- 230000035897 transcription Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000877 morphologic effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
Abstract
一种文本纠错模型生成方法及系统、文本纠错方法、系统、设备及介质,通过对音频数据进行语音识别,获取对应的语音识别文本;对语音识别文本进行编码,获取语音识别文本的特征向量;将参考文本的特征向量和语音识别文本的特征向量输入至解码器进行解码,并根据解码结果计算损失函数,通过优化损失函数训练生成文本纠错模型;利用文本纠错模型对待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本。本发明提供了一种针对ASR识别文本进行纠错的方案,不仅可以纠正常见的ASR识别文本中的替换类型错误,而且对于文本插入类错误、文本删除类错误也可以进行文本纠正。此外,本发明还可以使纠正后的句子更加通顺,更利于人们阅读理解。
Description
技术领域
本发明涉及语音识别技术领域,特别是涉及一种文本纠错模型生成方法及系统、文本纠错方法、系统、设备及介质。
背景技术
自动语音识别(ASR)是一项利用计算机将连续语音转写为文字的技术。随着深度学习技术的不断发展,对于一些垂直领域,目前ASR存在过高的错词率。例如在基于kaldi的语音识别系统中,解码过程使用的语言模型一般都是建立在3gram之上,在计算下一个词时只考虑前两个词的特征,从而转写出的文本可能在句子层面出现文法上的错误或者语义不连贯的情况。另一方面,在不同的领域,由于词的频率分布不同,一些常用术语容易被识别为其他发音相近的高频词汇。
为了进一步提升ASR识别的准确率,现有技术提出了一些对语音识别文本纠错的方法,其在模型结构上,工业界普遍采用的是分阶段纠错架构,通常分为错误检测、候选召回、纠错排序等阶段。分阶段模块化的设计方便各模块单独优化,落地效果比较好。但这种构架主要适用于错误的文本和正确的参考文本等长的场景,比如拼音纠错。在ASR解码的候选结果中,有大量插入或者删除的错误,句子长短不一,这很大程度限制了该方法在ASR文本纠错中的应用。此外,ASR中替换类错误,也不限于相似音的错误,而且不同词出错概率以及错词的分布也不尽相同。因此,基于相似音构建的数据集和真实ASR场景中错词分布会存在显著差异,在此基础上训练出来的模型表现会低于验证集上的表现。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种文本纠错模型生成方法及系统、文本纠错方法、系统、设备及介质,用于解决现有技术中存在的技术问题。
为实现上述目的及其他相关目的,本发明提供一种文本纠错模型生成方法,包括以下步骤:
对音频数据进行语音识别,获取对应的语音识别文本;
对所述语音识别文本进行编码,获取语音识别文本的特征向量;
将参考文本的特征向量和所述语音识别文本的特征向量输入至解码器进行解码,并根据解码结果计算损失函数,通过优化所述损失函数训练生成文本纠错模型;其中,所述参考文本是与所述音频数据对应的正确文本。
可选地,所述对所述语音识别文本进行编码,获取语音识别文本的特征向量,包括:
对获取的语音识别文本进行词条切分,获取一个或多个词条;
通过目标字典将所述一个或多个词条映射为词条编号;
利用词条嵌入矩阵对每个词条编号进行编码,获取对应的词条编号特征向量;以及利用位置嵌入矩阵对每个词条在所述语音识别文本中的位置序号进行编码,获取与所述词条编号特征向量具有相同维度的词条位置特征向量;
对所述词条编号特征向量和所述词条位置特征向量进行融合,获取所述语音识别文本的特征向量;其中,所述融合包括以下至少之一:相加、相减、拼接。
可选地,所述将参考文本的特征向量和所述语音识别文本的特征向量输入至解码器进行解码,并根据解码结果计算损失函数,通过优化所述损失函数训练生成文本纠错模型,包括:
将参考文本的特征向量和所述语音识别文本的特征向量输入至解码器,并利用所述解码器对所述语音识别文本的特征向量进行解码,获取解码结果;对所述语音识别文本的特征向量进行线性变换以及对所述参考文本进行词条切分,并通过概率分布函数计算参考文本中每个词条位置的词条概率分布;
将所述解码结果与参考文本的词条序列对齐,并基于所述参考文本的词条序列和所述词条概率分布获取参考文本中每个词条位置上的词条被预测出的概率;
根据参考文本中每个词条位置上词条的预测概率计算损失函数,并通过优化所述损失函数训练一个或多个神经网络,生成文本纠错模型。
可选地,所述对音频数据进行语音识别,获取对应的语音识别文本,包括:
利用语音识别模型对一个或多个音频数据进行语音识别和解码,获取解码词图和多条语音识别文本;
从所述解码词图中选取若干条解码路径,根据选择的若干条解码路径去掉重复的语音识别文本;
对完成去重复后的语音识别文本进行过滤,并将过滤后的语音识别文本作为最终的语音识别文本;
其中,所述过滤包括以下至少之一:过滤存在未命名字词的语音识别文本、过滤字词长度短于预设长度的语音识别文本、过滤错字率高于预设阈值的语音识别文本。
本发明还提供一种文本纠错方法,包括以下步骤:
获取待处理的一个或多个语音识别文本;
利用预先生成的文本纠错模型对所述待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本,所述文本纠错模型由上述任一项所述的文本纠错模型生成方法生成。
可选地,所述利用预先生成的文本纠错模型对待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本,包括:
利用文本纠错模型中的编码器对所述待处理的一个或多个语音识别文本进行编码,得到待处理的一个或多个语音识别文本的特征向量;
利用解码器对待处理的一个或多个语音识别文本的特征向量进行解码,并在解码过程中获取多条候选文本序列以及每条候选文本序列对应的概率;
将概率最高的候选文本序列所对应的语音识别文本作为纠错后的正确文本。
本发明还提供一种文本纠错模型生成系统,包括有:
语音识别模块,用于对音频数据进行语音识别,获取对应的语音识别文本;
编码模块,用于对所述语音识别文本进行编码,获取语音识别文本的特征向量;
解码模块,用于将参考文本的特征向量和所述语音识别文本的特征向量输入至解码器进行解码,获取对应的解码结果;其中,所述参考文本是与所述一个或多个音频数据对应的正确文本;
模型生成模块,用于根据所述解码结果计算损失函数,并通过优化所述损失函数训练生成文本纠错模型。
可选地,所述编码模块对所述语音识别文本进行编码,获取语音识别文本的特征向量的过程包括:
对获取的语音识别文本进行词条切分,获取一个或多个词条;
通过目标字典将所述一个或多个词条映射为词条编号;
利用词条嵌入矩阵对每个词条编号进行编码,获取对应的词条编号特征向量;以及利用位置嵌入矩阵对每个词条在所述语音识别文本中的位置序号进行编码,获取与所述词条编号特征向量相同维度的词条位置特征向量;
对所述词条编号特征向量和所述词条位置特征向量进行融合,获取所述语音识别文本的特征向量;其中,所述融合包括以下至少之一:相加、相减、拼接。
可选地,所述模型生成模块根据所述解码结果计算损失函数,并通过优化所述损失函数训练生成文本纠错模型的过程包括:
对所述语音识别文本的特征向量进行线性变换以及对所述参考文本进行词条切分,并通过概率分布函数计算参考文本中每个词条位置的词条概率分布;
将所述解码结果与参考文本的词条序列对齐,并基于参考文本的词条序列和所述词条概率分布获取参考文本中每个词条位置上的词条被预测出的概率;
根据参考文本中每个词条位置上词条的预测概率计算损失函数,并通过优化所述损失函数训练一个或多个神经网络,生成文本纠错模型。
本发明还提供一种文本纠错系统,包括有:
文本采集模块,用于获取待处理的一个或多个语音识别文本;
文本纠错模块,用于利用预先生成的文本纠错模型对所述待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本,所述文本纠错模型由上述中任一项所述的文本纠错模型生成方法生成。
可选地,所述文本纠错模块利用预先生成的文本纠错模型对待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本的过程包括:
利用文本纠错模型中的编码器对所述待处理的一个或多个语音识别文本进行编码,得到待处理的一个或多个语音识别文本的特征向量;
利用解码器对待处理的一个或多个语音识别文本的特征向量进行解码,并在解码过程中获取多条候选文本序列以及每条候选文本序列对应的概率;
将概率最高的候选文本序列所对应的语音识别文本作为纠错后的正确文本。
本发明还提供一种计算机设备,包括:
一个或多个处理器;和
存储有指令的一个或多个机器可读介质,当所述一个或多个处理器执行所述指令时,使得所述设备执行如上述中任意一项所述的方法。
本发明还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行所述指令时,使得设备执行如上述中任意一项所述的方法。
如上所述,本发明提供一种文本纠错模型生成方法及系统、文本纠错方法、系统、设备及介质,具有以下有益效果:通过对用于训练的一个或多个音频数据进行语音识别,获取对应的语音识别文本;对语音识别文本进行编码,获取语音识别文本的特征向量;再将参考文本的特征向量和语音识别文本的特征向量输入至解码器进行解码,并根据解码结果计算损失函数,通过优化损失函数训练生成文本纠错模型,并利用文本纠错模型对待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本;其中,参考文本是与一个或多个音频数据对应的正确文本。针对现有技术存在的问题,本发明提供了一种针对ASR(Automatic Speech Recognition,自动语音识别)识别文本进行纠错的方案,本发明不仅可以纠正常见的ASR识别文本中的替换类型错误,而且对于文本插入类错误、文本删除类错误也可以进行文本纠正。此外,本发明中的文本纠错模型还具有文本平滑的效果,使纠正后的句子更加通顺,更利于人们阅读理解。而且本发明中的文本纠错模型不仅可以应用于通用场景的文本纠错,还可以应用于垂直场景的文本纠错,并能根据具体的业务场景微调模型,可以获得更好的纠错效果。同时,利用文本纠错模型纠正后的文本长度不受输入文本长度的限制,相较于检错-纠错架构,本发明适用范围更广。
附图说明
图1为一实施例提供的文本纠错模型生成方法流程示意图;
图2为一实施例提供的文本纠错方法流程示意图;
图3为一实施例提供的构建文本纠错模型训练数据集的流程示意图;
图4为一实施例提供的训练或更新文本纠错模型的流程示意图;
图5为一实施例提供的利用文本纠错模型进行文本纠错的流程示意图;
图6为一实施例提供的文本纠错模型生成系统的硬件结构示意图;
图7为一实施例提供的文本纠错系统的硬件结构示意图;
图8为另一实施例提供的文本纠错系统的硬件结构示意图;
图9为一实施例提供的终端设备的硬件结构示意图;
图10为另一实施例提供的终端设备的硬件结构示意图。
元件标号说明
M10 语音识别模块
M20 编码模块
M30 解码模块
M40 模型生成模块
M50 文本采集模块
M60 文本纠错模块
1100 输入设备
1101 第一处理器
1102 输出设备
1103 第一存储器
1104 通信总线
1200 处理组件
1201 第二处理器
1202 第二存储器
1203 通信组件
1204 电源组件
1205 多媒体组件
1206 音频组件
1207 输入/输出接口
1208 传感器组件
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1所示,本发明提供一种文本纠错模型生成方法,包括以下步骤:
S10,对用于训练的一个或多个音频数据进行语音识别,获取对应的语音识别文本;
S20,对语音识别文本进行编码,获取语音识别文本的特征向量;
S30,将参考文本的特征向量和所述语音识别文本的特征向量输入至解码器进行解码,并根据解码结果计算损失函数,通过优化损失函数来训练一个或多个神经网络,生成文本纠错模型;其中,参考文本是与一个或多个音频数据对应的正确文本。
如图2所示,本发明还可以利用生成文本纠错模型来对语音识别文本进行管理,即提供一种文本纠错方法,包括以下步骤:
S100,获取待处理的一个或多个语音识别文本;
S200,利用预先生成的文本纠错模型对待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本。
针对现有技术存在的问题,本方法提供了一种针对ASR识别文本进行纠错的方案,本方法不仅可以纠正常见的ASR识别文本中的替换类型错误,而且对于文本插入类错误、文本删除类错误也可以进行文本纠正。此外,本方法中的文本纠错模型还具有文本平滑的效果,使纠正后的句子更加通顺,更利于人们阅读理解。而且本方法中的文本纠错模型不仅可以应用于通用场景的文本纠错,还可以应用于垂直场景的文本纠错,并能根据具体的业务场景微调模型,可以获得更好的纠错效果。同时,利用文本纠错模型纠正后的文本长度不受输入文本长度的限制,相较于检错-纠错架构,本方法适用范围更广。
在一示例性实施例中,对所述语音识别文本进行编码前,还包括:利用字符识别模型和通用语言模型对一个或多个音频数据进行语音识别,获取多条语音识别文本;从获取的多条语音识别文本中选取若干条识别路径,并基于选择的识别路径去掉重复的语音识别文本;过滤去重复后的语音识别文本,并基于过滤后的语音识别文本进行编码;其中,所述过滤包括以下至少之一:过滤存在未命名字词的语音识别文本、过滤字词长度短于预设长度的语音识别文本、过滤错字率高于预设阈值的语音识别文本。作为示例,如图3所示,例如利用一个声学模型,在一个或多个音频数据上进行语音识别;由于ASR识别出的文本,可能带有错词,所以可以获取到具有ASR识别错误特征的文本。其中,ASR(Automatic SpeechRecognition,自动语音识别)是一种通过算法并利用计算机自动将人类声音转写为文本的任务或工具。为了对错词信息充分采样,本方法可以采用效果一般的声学模型加通用语言模型进行语音识别,再从语音识别的解码词图中取前k条语音识别路径,由于不同的分词会造成不同的语音识别路径,所以,本申请实施还需要根据语音识别路径来去掉重复的句子。同时,如果参考文本或者解码结果中存在未登录词UNK,则根据错字率cer将这些词过滤掉,并将过滤后的语音识别文本与参考文本进行配对,如果解码结果中,没有完全正确配对的结果,则在解码识别列表中添加一条正确的解码识别结果;即如果从所有的参考文本中找不到一条能够与过滤后的语音识别文本进行完全正确配对的参考文本,则增加一例参考文本来进行配对,确保配对结果中至少有一对的输入语音和输出文本是相匹配的。其中,参考文本是一个或多个音频数据对应的正确文本。此外,本申请实施例还过滤掉错字率过高或者句子太短的句子。错字率过高或者句子太短,都会影响在对语音识别文件进行编码时无法对正确语义的捕捉,即会影响encoder无法对正确语义的捕捉。因此,在用训练语音文本训练一个或多个神经网络生成文本纠错模型的阶段,需要避免引入这样的噪声。本申请实施例中,错字率cer的计算方法如下:首先将语音识别结果和参考文本采用最小编辑距离方法对齐,然后计算插入、删除、替换操作的个数,用这些操作的总和除以参考文本的词条数即可得到该句子的错字率。本申请实施例中,UNK(unknown word),表示未登录词;本申请实施例在建立字典时,通常将集外词用统一的UNK标签来进行表示。
根据上述记载,在一示例性实施例中,对语音识别文本进行编码,获取语音识别文本的特征向量,包括:利用字符识别模型和通用语言模型对一个或多个音频数据进行语音识别,获取多条语音识别文本;对获取的语音识别文本进行词条切分,获取一个或多个词条;通过目标字典将所述一个或多个词条映射为词条编号;利用词条嵌入矩阵对每个词条编号进行编码,获取对应的词条编号特征向量;以及利用位置嵌入矩阵对每个词条在所述语音识别文本中的位置序号进行编码,获取与所述词条编号特征向量具有相同维度的词条位置特征向量;对所述词条编号特征向量和所述词条位置特征向量进行融合,获取所述语音识别文本的特征向量;其中,特征向量的融合包括但不限于:特征向量的相加、特征向量的相减、特征向量的拼接。作为示例,例如利用一个声学模型,在一个或多个音频数据上进行语音识别;由于ASR识别出的文本,可能带有错词,所以可以获取到具有ASR识别错误特征的文本。如图4所示,在文本纠错模型的训练阶段,图4中的w1’,w2,i1,w3,...,wn表示利用声学模型或ASR识别模型对训练音频数据进行语音识别解码得到的语音识别文本词条序列,w1’和i1表示转写错误的词条文本;其中,w1’表示正确的词条文本被替换为错误的词条文本,i1表示错误的插入。应用词条切分工具tokenizer将语音识别文本切分为词条序列,得到一个或多个词条token,然后通过预设的字典(即目标字典)将这些词条token映射为整数的词条编号ID,然后将这些词条token的ID序列采用编码器中的嵌入矩阵对将每一个词条映射到高维特征空间中的一个向量。类似地,还将词条的位置特征映射到等维度的高维特征空间,最后每个词条的特征使用这两个高维向量的和表示。即利用多层编码器中的词条嵌入矩阵对每个词条编号所对应的词条的文本进行编码,以及利用多层编码器中的位置嵌入矩阵对每个词条的文本所对应的词条位置进行编码,最后每个词条token输出的特征向量为位置向量和token向量的和。本申请实施例中,预设的字典或目标字典表示一个将词条映射到独一无二的整数的集合。token,即词条;它是指将文本切分的最小单元。对于汉字,一个字是一个词条。对于英文单词还有长串的数字,根据不同词条切分算法,有不同的切分结果。另外还有一些特殊的token,比如<sos>表示解码开始字符,<eos>表示句子结束字符。token ID,词条编号,表示每一个词条在字典中有唯一的整数词条编号。tokenizer,一种将文本切分为词条序列的工具,可以通过设置配置参数控制词条切分规则。将文本切分为词条序列的过程记为tokenization。本申请实施例中,编码器由多层结构相同的编码子模块串联组成,这些子模块之间结构相同,但网络参数彼此独立,用于提取不同抽象层次的特征。作为示例,本申请实施例中的编码器可以为3层编码结构、6层编码结构、12层编码结构。
在一示例性实施例中,还对参考文本进行编码,获取参考文本的特征向量,包括:获取一条或多条参考文本;对获取的一条或多条参考文本进行词条切分,获取一个或多个词条;通过目标字典将这一个或多个词条映射为词条编号;利用词条嵌入矩阵对每个词条编号进行编码,获取对应的词条编号特征向量;以及利用位置嵌入矩阵对每个词条在所述语音识别文本中的位置序号进行编码,获取与所述词条编号特征向量具有相同维度的词条位置特征向量;对词条编号特征向量和词条位置特征向量进行融合,获取参考文本的特征向量;其中,特征向量的融合包括但不限于:特征向量的相加、特征向量的相减、特征向量的拼接。
根据上述记载,在一示例性实施例中,基于参考文本的特征向量对所述语音识别文本的特征向量进行解码,并根据解码结果生成文本纠错模型,包括:将参考文本的特征向量和所述语音识别文本的特征向量输入至解码器,并利用解码器对语音识别文本的特征向量进行解码,获取解码结果;对语音识别文本的特征向量进行线性变换以及对参考文本进行词条切分,并通过概率分布函数softmax计算参考文本中每个词条位置的词条概率分布;将解码结果与参考文本的词条序列对齐,并基于参考文本的词条序列和词条概率分布获取参考文本中每个词条位置上的词条被预测出的概率;例如,输入至解码器中的是<sos>词条,则从参考文本中每个词条位置就对应预测词条“今”出现的概率,其余词条的预测方式依次类推。然后根据参考文本中每个词条位置上词条的预测概率计算损失函数,并通过优化损失函数训练一个或多个神经网络,生成文本纠错模型;或者根据损失函数的计算结果训练一个或多个神经网络,更新所述文本纠错模型,并将更新后的文本纠错模型作为最终的文本纠错模型。作为示例,如图4所示,在训练生成或更新文本纠错模型时,需要输入已知的参考文本,并在参考文本前面加上<sos>,使得它与解码过程保持一致,即输入参考文本:<sos>,w1,w2,w3,...,wn,应用词条切分工具tokenizer将语音识别文本切分为词条序列,得到一个或多个词条token,然后通过预设的字典(即目标字典)将这些词条token映射为整数的词条编号ID,然后将这些词条token的ID序列采用编码器中的嵌入矩阵对将每一个词条映射到高维特征空间中的一个向量。类似地,还将词条的位置特征映射到等维度的高维特征空间,最后每个词条的特征使用这两个高维向量的和表示。本申请实施例进行位置编码时,位置编号从<sos>开始算起。基于多层解码器对语音识别文本的特征向量进行解码,其中解码器由多层结构相同的解码子模块串联组成,这些子模块之间结构相同,但网络参数彼此独立,用于提取不同抽象层次的特征。作为示例,本申请实施例中的解码器可以为3层解码结构、6层解码结构、12层解码结构。对解码器的输出结果进行线性变换,再通过概率分布函数softmax计算出每个位置的词条概率分布。再将解码结果与参考文本的词条序列对齐,并基于参考文本的词条序列和词条概率分布获取参考文本中每个词条位置上的词条被预测出的概率。其中,这里的参考词条序列相对于原始参考文本序列,在结尾处多了一个<eos>文本,但参考词条序列的长度与解码器输出的序列长度一致。根据每个参考词条的预测概率,计算目标函数或损失函数,然后通过反向传播算法计算神经网络中每个参数的梯度,使用RAdam优化器对神经网络参数进行更新,生成文本纠错模型。或者根据损失函数的计算结果训练一个或多个神经网络,并通过反向传播算法计算文本纠错模型参数的梯度,最后使用优化器对文本纠错模型参数进行更新,更新文本纠错模型。本申请实施例中的优化器可以是RAdam,但在另外的实现中可以采用其他类型的优化器,比如Adam,SGD等。其中,RAdam是一种深度学习模型中的优化器,用于在模型训练中控制模型参数更新尺度。
根据上述记载,在一具体实施例中,本发明还提供了一种文本纠错方法,包括利用文本纠错模型对待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本,具体地:利用文本纠错模型中的一层或多层编码器对待处理的一个或多个语音识别文本进行编码,得到待处理的一个或多个语音识别文本的特征向量;利用文本纠错模型中的一层或多层解码器对待处理的一个或多个语音识别文本的特征向量进行解码,并在解码过程中利用束搜索算法获取多条候选文本序列以及每条候选文本序列对应的概率;在解码结束后输出概率最高的候选文本序列,将概率最高的候选文本序列所对应的语音识别文本作为纠错后的正确文本。作为示例,首先利用一个声学模型,在一个或多个待处理的音频数据上进行语音识别,得到待处理的一个或多个语音识别文本。由于ASR识别出的文本,可能带有错词,所以本申请实施例可以获取到具有ASR识别错误特征的待处理的语音识别文本。再利用文本纠错模型中的多层编码器对待处理的一个或多个语音识别文本进行编码,得到待处理的一个或多个语音识别文本的特征向量。其中,编码器的结构和编码过程参见上述实施例,本申请实施例不再进行赘述。再利用多层解码器对待处理的一个或多个语音识别文本的特征向量进行解码,并在解码过程中利用束搜索算法获取多条候选文本序列以及每条候选文本序列对应的概率。其中,解码器的结构和解码过程参见上述实施例,本申请实施例不再进行赘述。在利用文本纠错模型对待处理的语音识别文本进行纠错过程中,预先是不知道正确文本或参考文本的,这个过程与模型训练过程存在区别。且文本纠错模型的解码序列是逐个词条预测的,其中,最开始输入的词条统一为<sos>。解码的具体过程包括:在第一次解码时,解码器结合编码器的输出以及输入文本<sos>,预测第一个词条的概率。然后利用beam search算法(即束搜索算法)根据这个概率分布选取解码结果中前K条候选文本序列,作为下一轮解码输入。在第二次解码时,对于解码器上一次输出的每条文本,在句首拼接<sos>;并再结合编码器输出,共同构成当前输入文本,预测每一条输入文本在第二次解码时的候选文本序列和对应的概率分布。同时,束搜索算法会在所有候选序列中选前K条结果,作为下一次解码的输入。当预测概率最高的解码后的文本序列遇到<eos>标签时,解码停止,并输出预测概率最高的文本,作为完成纠错的纠正文本。本申请实施例中,解码结束判定条件有多种,本申请实施例采用的判据为,输出概率最高的句子以<eos>结尾时,停止解码,并输出前K条最优纠错文本。本申请实施例还可以用得分来输出候选文本,预测概率和得分之间呈正相关,某候选文本的预测概率越高,其得分也越高。即当得分最高的解码后的文本序列遇到<eos>标签时,解码停止,并输出得分最高的文本,作为完成纠错的纠正文本。作为示例,如图5所示,若K=3,则在解码终止时,束搜索(beam search)算法从多条候选句子中,选出概率最高的前3条结果。假设词表的大小为V,那么在预测下一个词时,就有V种可能。如果候选输入的句子有3条,那么经过解码器后,候选的句子就有3*V个。beamsearch算法可以高效地从这些候选结果中挑选概率最高的3条结果。其中,beam search算法,是一种基于有向图的最小路径搜索算法,从多种可能的路径中找到最优的路径。在本申请实施例中,最优路径代表这最优文本序列。
在另一具体实施例中,本发明还提供了一种文本纠错方法的具体实施过程,如图3至图5所示,包括:构建训练数据集阶段,训练文本纠错模型或更新文本纠错模型阶段,利用文本纠错模型进行文本纠正阶段。具体地,
步骤S101,利用声学模型或ASR识别模型对训练音频数据进行语音识别解码,获得具有ASR识别错误特征的文本。为了对错词信息充分采样,本申请实施例采用了一个效果一般的声学模型或ASR识别模型加通用语言模型进行解码。
步骤S102,从语音识别解码的词图中取前k条解码路径,由于不同的分词会造成不同的语音识别路径,对于这种情况,还需要去掉重复的句子。同时,同时,如果参考文本或者解码结果中存在未登录词UNK,则根据错字率cer将这些词过滤掉,并将过滤后的语音识别文本与参考文本进行配对,如果解码结果中,没有完全正确配对的结果,则在解码识别列表中添加一条正确的解码识别结果;即如果从所有的参考文本中找不到一条能够与过滤后的语音识别文本进行完全正确配对的参考文本,则增加一例参考文本来进行配对,确保配对结果中至少有一对的输入语音和输出文本是相匹配的。其中,参考文本是一个或多个音频数据对应的正确文本。
步骤S103,过滤掉错字率过高,或者句子太短的句子。错字率过高或者句子太短,都会影响编码器encoder无法对正确语义的捕捉。因此,在文本纠错模型的训练阶段或者文本纠错模型的更新阶段,需要避免引入这样的噪声。
步骤S104,输入用于训练的语音识别解码文本。由于ASR识别模型进行语音识别解码出的文本,可能带有错词。例如图4中的w1’,w2,i1,w3,...,wn表示利用声学模型或ASR识别模型对训练音频数据进行语音识别解码得到的语音识别文本词条序列,即输入的用于训练语音识别文本。w1’和i1表示转写错误的词条文本;其中,w1’表示正确的词条文本被替换为错误的词条文本,i1表示错误的插入。
步骤S105,对语音识别文本进行词条切分,得到一个或多个语音识别文本的词条。即应用词条切分工具将文本切分为词条序列,然后将这些token通过字典映射到整数ID。例如应用词条切分工具tokenizer将语音识别文本切分为词条序列,得到一个或多个词条token,然后通过预设的字典(即目标字典)将这些词条token映射为整数的词条编号ID。
步骤S106,将用于训练的词条映射为高维特征向量。即将这些词条的ID序列采用编码器中的嵌入矩阵对将每一个词条映射到高维特征空间中的一个向量。类似地,将词条的位置特征映射到等维度的高维特征空间。最后每个词条的特征使用这两个高维向量的和表示。其中,词条特征包括两部分,一是词条的文本形态特征,一是该词条在句子中位置特征。词条的文本特征通过词条的token_ID在一个参数化的二维矩阵中查找到对应的高维特征表示,该矩阵维度为[词典大小,特征向量长度]。词条位置特征通过词条在句中的位置序号,在另一个参数化的二维矩阵中查找到对应的高维特征表示,该矩阵维度为[模型输入的句子最大长度,特征向量长度]。本申请实施例中,每个词条最后表示的特征向量为前面两个向量的和。作为示例,例如利用多层编码器中的词条嵌入矩阵对每个词条编号所对应的词条的文本进行编码,以及利用多层编码器中的位置嵌入矩阵对每个词条的文本所对应的词条位置进行编码,最后每个词条token输出的特征向量为位置向量和token向量的和。
步骤S107,利用多层编码器进行编码。编码器由多层结构相同的编码子模块串联组成,这些子模块之间结构相同,但网络参数彼此独立,用于提取不同抽象层次的特征。作为示例,本申请实施例中的编码器为6层编码结构。
步骤S108,输入参考文本。ASR解码器在训练过程中需要输入已知的参考文本,且这里需要在参考文本前面加上<sos>,使得它与解码过程保持一致。作为示例,例如输入与步骤S104中语音识别文本对应的参考文本:<sos>,w1,w2,w3,...,wn。
步骤S109,将参考文本进行词条切分,得到一个或多个参考文本词条。本步骤中的词条切分方法与步骤S105中处理方法相同,只是这里切分后的词条序列多了一个特殊词条<sos>。参考文本的词条切分过程参见上述步骤S105,本步骤不再进行赘述。
步骤S110,将参考词条映射为高维特征向量。本步骤的映射与步骤S106中处理方法相同,本步骤不再进行赘述。要注意的是,本步骤在进行位置编码时,位置编号从<sos>开始算起。
步骤S111,利用多层解码器进行解码。在训练阶段,多层解码的输入包括经过多层编码器编码后的语音识别文本和参考文本对应的高维特征向量。本步骤中,解码器由多层结构相同的解码子模块串联组成,这些子模块之间结构相同,但网络参数彼此独立,用于提取不同抽象层次的特征。作为示例,本申请实施例中的解码器为6层解码结构。
步骤S112,输出层将解码器的输入先经过线性变换,再通过概率分布函数(即softmax函数)计算出每个位置的词条概率分布。
步骤S113,根据参考文本的词条序列和步骤S112输出的词条概率分布来提取参考文本中每个词条位置上的词条被预测出的概率。这里参考文本的序列与原始参考文本的序列相比,其在结尾处多了一个<eos>,它的长度与解码器输出的序列长度一致。即这里的参考文本序列为:w1,w2,w3,...,wn,<eos>。
步骤S114,根据每个参考词条的概率,计算目标函数,即神经网络的损失函数。然后通过反向传播算法计算神经网络中每个参数的梯度,使用RAdam优化器对神经网络参数进行更新,生成文本纠错模型。
步骤S115,利用文本纠错模型中的编码器Encoder对待处理的语音识别文本进行编码。本申请实施例中,提供一条正确文本或参考文本“先生早上好”的音频数据,利用ASR识别模型对该音频数据进行识别,得到“先上早上好”的语音识别文本,并将“先上早上好”作为待处理的语音识别文本。对待处理的语音识别文本进行编码,即按照步骤S105至步骤S107的处理流程进行编码。
步骤S116,利用文本纠错模型中的解码器Decoder对编码后的待处理的语音识别文本进行解码,即按照步骤S109至步骤S111的处理流程进行解码。其中,利用文本纠错模型对待处理的语音识别文本进行文本纠正过程中,预先是不知道正确文本或参考文本的,这个过程与模型训练过程存在区别。在本申请实施例中,利用文本纠错模型进行解码时,模型解码序列是逐个词条预测的,其中最开始输入的词条统一为<sos>。在第一次解码时,解码器结合编码器的输出以及输入候选文本<sos>,预测第一个词的概率。并利用beam search算法(即束搜索算法)根据这个概率分布选取解码结果中前K条所有候选序列,作为下一轮解码输入。
步骤S117,利用束搜索(beam search)算法从多条候选句子中,选出概率最高的K条结果。本申请实施例还可以用得分来输出候选文本,预测概率和得分之间呈正相关,某候选文本的预测概率越高,其得分也越高。本申请实施例中,如图5所示,若K=3时,则有:利用束搜索算法得到3个预测出的候选文本“先”、“现”、“谢”,每个候选文本的得分分别为:-0.1分、-0.8分,-0.5分。第二次解码时,在第一次预测出的三个候选文本的句首前拼接<sos>作为输入候选文本,即候选文本分别为“<sos>先”、“<sos>现”、“<sos>谢”;并结合步骤S115的编码器输出结果共同构成当前次解码的输入文本。预测每一条输入文本在第二次解码时的候选文本序列和对应的概率分布,然后利用beam search算法(即束搜索算法)根据这个概率分布选取解码结果中前3条候选文本序列,分别得到“先生”、“谢谢”、“先上”3条候选文本序列,且这3条候选文本序列对应的得分依次为:-0.3分、-0.7分,-0.9分。在下一次解码时,将上一次预测出的三个候选文本的句首前拼接<sos>形成候选输入文本,并将候选输入文本结合步骤S115的编码器输出结果共同构成当前次解码的输入文本。按照上述解码流程继续执行解码,直至解码后的文本序列遇到<eos>标签时,解码停止,并输出前3条最优纠错文本。例如在解码停止时,分别输出前3条最优纠错文本“先生早上好<eos>”、“谢谢早上好<eos>”、“先上早上好<eos>,且这3条最优纠错文本对应的得分依次为:-2.4分、-3.8分,-4.4分。利用束搜索(beam search)算法输出预测概率最高的文本,作为完成纠错的纠正文本;即输出得分为-2.4分的纠错文本“先生早上好”,将其作为待处理的语音文本“先上早上好”的纠错文本。本申请实施例中,假设词表的大小为V,那么在预测下一个词时,就有V种可能。如果候选输入的句子有3条,那么经过解码器后,候选的句子就有3*V个。而beam search算法可以高效地从这些候选结果中挑选概率最高的3条结果。其中,beam search算法,是一种基于有向图的最小路径搜索算法,从多种可能的路径中找到最优的路径。在本申请实施例中,最优路径代表这最优文本序列。
本实施例中,构建训练数据集阶段包括步骤S101至步骤S103,训练文本纠错模型或更新文本纠错模型阶段包括步骤S104至步骤S114,利用文本纠错模型进行文本纠正阶段包括步骤S115至步骤S117。
综上所述,针对现有技术存在的技术问题,本方法提供了一种针对ASR识别文本进行纠错的方案,解决了传统模型对输入输出要求等长的约束,有效的提高了文本识别准确度,并且一定程度上提升了语义的流畅性。本方法在训练中将编码器和解码器中的嵌入矩阵独立训练,同时本方法的建模粒度为词条,能够减少UNK(未登陆词)的情形。其次,本方法中文本纠错模型的训练数据可以通过ASR模型解码生成,错误分布非常接近实际场景的分布,有效缓解了训练集和测试集的差异。而且本方法不仅可以纠正常见的ASR识别文本中的替换类型错误,对于文本插入类错误、文本删除类错误也可以进行文本纠正。此外,本方法中的文本纠错模型还具有文本平滑的效果,使纠正后的句子更加通顺,更利于人们阅读理解。另外,本方法中的文本纠错模型不仅可以应用于通用场景的文本纠错,还可以应用于垂直场景的文本纠错,并能根据具体的业务场景微调模型,可以获得更好的纠错效果。同时,利用文本纠错模型纠正后的文本长度不受输入文本长度的限制,相较于检错-纠错架构,本方法适用范围更广。而且本方法中的文本纠错模型大小固定,不会随语料增加而大幅增加。此外,与现有技术中的拼音纠错相比,本方法是采用ASR对音频解码获得训练数据,可以有效缓解训练集与测试集分布不一致的问题。其次,本方法是直接输出正确结果,不需要分布输出结果;另外,本方法对输入文本和输出文本的长度没有限制。以及与现有技术中基于transformer的纠错系统相比,在训练数据集构建时,因为错词占的比率对语义理解的影响更大,所以本方法是提取前N条结果,然后再基于错词率筛选。其次,本方法中编码器和解码器的嵌入矩阵是独立训练,更适应对于错词的表示;最后,本方法的建模单元为词条,有效地缓解了纠正文本中出现未登录词UNK的情形。
如图7所示,本发明还提供一种文本纠错模型生成系统,包括有:
语音识别模块M10,用于对一个或多个音频数据进行语音识别,获取对应的语音识别文本;
编码模块M20,用于对所述语音识别文本进行编码,获取语音识别文本的特征向量;
解码模块M30,用于根据参考文本的特征向量和解码器对所述语音识别文本的特征向量进行解码;其中,所述参考文本是与所述一个或多个音频数据对应的正确文本;
模型生成模块M40,用于根据解码结果生成文本纠错模型。
如图8所示,本发明还可以利用生成文本纠错模型来对语音识别文本进行管理,即提供一种文本纠错方法,包括有:
文本采集模块M50,用于获取待处理的一个或多个语音识别文本;
文本纠错模块M60,用于利用预先生成的文本纠错模型对待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本。
针对现有技术存在的问题,本系统提供了一种针对ASR识别文本进行纠错的方案,本系统不仅可以纠正常见的ASR识别文本中的替换类型错误,而且对于文本插入类错误、文本删除类错误也可以进行文本纠正。此外,本系统中的文本纠错模型还具有文本平滑的效果,使纠正后的句子更加通顺,更利于人们阅读理解。而且本系统中的文本纠错模型不仅可以应用于通用场景的文本纠错,还可以应用于垂直场景的文本纠错,并能根据具体的业务场景微调模型,可以获得更好的纠错效果。同时,利用文本纠错模型纠正后的文本长度不受输入文本长度的限制,相较于检错-纠错架构,本系统适用范围更广。
在一示例性实施例中,对所述语音识别文本进行编码前,还包括:利用字符识别模型和通用语言模型对一个或多个音频数据进行语音识别,获取多条语音识别文本;从获取的多条语音识别文本中选取若干条识别路径,并基于选择的识别路径去掉重复的语音识别文本;过滤去重复后的语音识别文本,并基于过滤后的语音识别文本进行编码;其中,所述过滤包括以下至少之一:过滤存在未命名字词的语音识别文本、过滤字词长度短于预设长度的语音识别文本、过滤错字率高于预设阈值的语音识别文本。作为示例,如图3所示,例如利用一个声学模型,在一个或多个音频数据上进行语音识别;由于ASR识别出的文本,可能带有错词,所以可以获取到具有ASR识别错误特征的文本。其中,ASR(Automatic SpeechRecognition,自动语音识别)是一种通过算法并利用计算机自动将人类声音转写为文本的任务或工具。为了对错词信息充分采样,本系统可以采用效果一般的声学模型加通用语言模型进行语音识别,再从语音识别的解码词图中取前k条语音识别路径,由于不同的分词会造成不同的语音识别路径,所以,本申请实施还需要根据语音识别路径来去掉重复的句子。同时,如果参考文本或者解码结果中存在未登录词UNK,则根据错字率cer将这些词过滤掉,并将过滤后的语音识别文本与参考文本进行配对,如果解码结果中,没有完全正确配对的结果,则在解码识别列表中添加一条正确的解码识别结果;即如果从所有的参考文本中找不到一条能够与过滤后的语音识别文本进行完全正确配对的参考文本,则增加一例参考文本来进行配对,确保配对结果中至少有一对的输入语音和输出文本是相匹配的。其中,参考文本是一个或多个音频数据对应的正确文本。此外,本申请实施例还过滤掉错字率过高或者句子太短的句子。错字率过高或者句子太短,都会影响在对语音识别文件进行编码时无法对正确语义的捕捉,即会影响encoder无法对正确语义的捕捉。因此,在用训练语音文本训练一个或多个神经网络生成文本纠错模型的阶段,需要避免引入这样的噪声。本申请实施例中,错字率计算方法如下:首先将语音识别结果和参考文本采用最小编辑距离方法对齐,然后计算插入、删除、替换操作的个数,用这些操作的总和除以参考文本的词条数即可得到该句子的错字率。本申请实施例中,UNK(unknown word),表示未登录词;本申请实施例在建立字典时,通常将集外词用统一的UNK标签来进行表示。
根据上述记载,在一示例性实施例中,对语音识别文本进行编码,获取语音识别文本的特征向量,包括:利用字符识别模型和通用语言模型对一个或多个音频数据进行语音识别,获取多条语音识别文本;对获取的一个或多个语音识别文本进行词条切分,获取一个或多个词条;通过目标字典将这一个或多个词条映射为词条编号;利用多层编码器中的词条嵌入矩阵对每个词条编号所对应的词条的文本进行编码,以及利用多层编码器中的位置嵌入矩阵对每个词条的文本所对应的词条位置进行编码,根据词条的文本编码结果和词条的位置编码结果得到这一个或多个语音识别文本的特征向量。作为示例,例如利用一个声学模型,在一个或多个音频数据上进行语音识别;由于ASR识别出的文本,可能带有错词,所以可以获取到具有ASR识别错误特征的文本。如图4所示,在文本纠错模型的训练阶段,图4中的w1’,w2,i1,w3,...,wn表示利用声学模型或ASR识别模型对训练音频数据进行语音识别解码得到的语音识别文本词条序列,w1’和i1表示转写错误的词条文本;其中,w1’表示正确的词条文本被替换为错误的词条文本,i1表示错误的插入。应用词条切分工具tokenizer将语音识别文本切分为词条序列,得到一个或多个词条token,然后通过预设的字典(即目标字典)将这些词条token映射为整数的词条编号ID,然后将这些词条token的ID序列采用编码器中的嵌入矩阵对将每一个词条映射到高维特征空间中的一个向量。类似地,还将词条的位置特征映射到等维度的高维特征空间,最后每个词条的特征使用这两个高维向量的和表示。即利用多层编码器中的词条嵌入矩阵对每个词条编号所对应的词条的文本进行编码,以及利用多层编码器中的位置嵌入矩阵对每个词条的文本所对应的词条位置进行编码,最后每个词条token输出的特征向量为位置向量和token向量的和。本申请实施例中,预设的字典或目标字典表示一个将词条映射到独一无二的整数的集合。token,即词条;它是指将文本切分的最小单元。对于汉字,一个字是一个词条。对于英文单词还有长串的数字,根据不同词条切分算法,有不同的切分结果。另外还有一些特殊的token,比如<sos>表示解码开始字符,<eos>表示句子结束字符。token ID,词条编号,表示每一个词条在字典中有唯一的整数词条编号。tokenizer,一种将文本切分为词条序列的工具,可以通过设置配置参数控制词条切分规则。将文本切分为词条序列的过程记为tokenization。本申请实施例中,编码器由多层结构相同的编码子模块串联组成,这些子模块之间结构相同,但网络参数彼此独立,用于提取不同抽象层次的特征。作为示例,本申请实施例中的编码器可以为3层编码结构、6层编码结构、12层编码结构。
根据上述记载,在一示例性实施例中,基于参考文本的特征向量对所述语音识别文本的特征向量进行解码,并根据解码结果生成文本纠错模型,包括:输入参考文本的特征向量,并基于多层解码器对语音识别文本的特征向量进行解码;对解码结果进行线性变换,并通过概率分布函数计算每个位置的词条概率分布;基于参考文本的词条序列和所述每个位置的词条概率分布获取每个参考词条的预测概率,并根据每个参考词条的预测概率计算损失函数;根据损失函数的计算结果训练一个或多个神经网络,生成文本纠错模型;或者根据损失函数的计算结果训练一个或多个神经网络,更新所述文本纠错模型,并将更新后的文本纠错模型作为最终的文本纠错模型。作为示例,如图4所示,在训练生成或更新文本纠错模型时,需要输入已知的参考文本,并在参考文本前面加上<sos>,使得它与解码过程保持一致,即输入参考文本:<sos>,w1,w2,w3,...,wn,应用词条切分工具tokenizer将语音识别文本切分为词条序列,得到一个或多个词条token,然后通过预设的字典(即目标字典)将这些词条token映射为整数的词条编号ID,然后将这些词条token的ID序列采用编码器中的嵌入矩阵对将每一个词条映射到高维特征空间中的一个向量。类似地,还将词条的位置特征映射到等维度的高维特征空间,最后每个词条的特征使用这两个高维向量的和表示。本申请实施例进行位置编码时,位置编号从<sos>开始算起。基于多层解码器对语音识别文本的特征向量进行解码,其中解码器由多层结构相同的解码子模块串联组成,这些子模块之间结构相同,但网络参数彼此独立,用于提取不同抽象层次的特征。作为示例,本申请实施例中的解码器可以为3层解码结构、6层解码结构、12层解码结构。对解码器的输出结果进行线性变换,再通过概率分布函数softmax计算出每个位置的词条概率分布。基于参考词条序列获取每个参考词条的预测概率。其中,这里的参考词条序列相对于原始参考文本序列,在结尾处多了一个<eos>文本,但参考词条序列的长度与解码器输出的序列长度一致。根据每个参考词条的预测概率,计算目标函数或损失函数,然后通过反向传播算法计算神经网络中每个参数的梯度,使用RAdam优化器对神经网络参数进行更新,生成文本纠错模型。或者根据损失函数的计算结果训练一个或多个神经网络,并通过反向传播算法计算文本纠错模型参数的梯度,最后使用优化器对文本纠错模型参数进行更新,更新文本纠错模型。本申请实施例中的优化器可以是RAdam,但在另外的实现中可以采用其他类型的优化器,比如Adam,SGD等。其中,RAdam是一种深度学习模型中的优化器,用于在模型训练中控制模型参数更新尺度。
根据上述记载,在一示例性实施例中,利用文本纠错模型对待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本,包括:利用多层编码器对待处理的一个或多个语音识别文本进行编码,得到待处理的一个或多个语音识别文本的特征向量;利用多层解码器对待处理的一个或多个语音识别文本的特征向量进行解码,并在解码过程中利用束搜索算法获取多条候选文本序列以及每条候选文本序列对应的概率;在解码结束后输出概率最高的候选文本序列,将概率最高的候选文本序列所对应的语音识别文本作为纠错后的正确文本。作为示例,首先利用一个声学模型,在一个或多个待处理的音频数据上进行语音识别,得到待处理的一个或多个语音识别文本。由于ASR识别出的文本,可能带有错词,所以本申请实施例可以获取到具有ASR识别错误特征的待处理的语音识别文本。再利用文本纠错模型中的多层编码器对待处理的一个或多个语音识别文本进行编码,得到待处理的一个或多个语音识别文本的特征向量。其中,编码器的结构和编码过程参见上述实施例,本申请实施例不再进行赘述。利用多层解码器对待处理的一个或多个语音识别文本的特征向量进行解码,并在解码过程中利用束搜索算法获取多条候选文本序列以及每条候选文本序列对应的概率。其中,解码器的结构和解码过程参见上述实施例,本申请实施例不再进行赘述。在利用文本纠错模型对待处理的语音识别文本进行纠错过程中,预先是不知道正确文本或参考文本的,这个过程与模型训练过程存在区别。且文本纠错模型的解码序列是逐个词条预测的,其中,最开始输入的词条统一为<sos>。解码的具体过程包括:在第一次解码时,解码器结合编码器的输出以及输入文本<sos>,预测第一个词条的概率。然后利用beamsearch算法(即束搜索算法)根据这个概率分布选取解码结果中前K条候选文本序列,作为下一轮解码输入。在第二次解码时,对于解码器上一次输出的每条文本,在句首拼接<sos>;并再结合编码器输出,共同构成当前输入文本,预测每一条输入文本在第二次解码时的候选文本序列和对应的概率分布。同时,束搜索算法会在所有候选序列中选前K条结果,作为下一次解码的输入。当预测概率最高的解码后的文本序列遇到<eos>标签时,解码停止,并输出预测概率最高的文本,作为完成纠错的纠正文本。本申请实施例中,解码结束判定条件有多种,本申请实施例采用的判据为,输出概率最高的句子以<eos>结尾时,停止解码,并输出前K条最优纠错文本。本申请实施例还可以用得分来输出候选文本,预测概率和得分之间呈正相关,某候选文本的预测概率越高,其得分也越高。即当得分最高的解码后的文本序列遇到<eos>标签时,解码停止,并输出得分最高的文本,作为完成纠错的纠正文本。作为示例,如图5所示,若K=3,则在解码终止时,束搜索(beam search)算法从多条候选句子中,选出概率最高的前3条结果。假设词表的大小为V,那么在预测下一个词时,就有V种可能。如果候选输入的句子有3条,那么经过解码器后,候选的句子就有3*V个。beam search算法可以高效地从这些候选结果中挑选概率最高的3条结果。其中,beam search算法,是一种基于有向图的最小路径搜索算法,从多种可能的路径中找到最优的路径。在本申请实施例中,最优路径代表这最优文本序列。
在另一具体实施例中,提供了一种文本纠错系统,如图3至图5所示,包括:构建训练数据集阶段,训练文本纠错模型或更新文本纠错模型阶段,利用文本纠错模型进行文本纠正阶段。具体地,
步骤S101,利用声学模型或ASR识别模型对训练音频数据进行语音识别解码,获得具有ASR识别错误特征的文本。为了对错词信息充分采样,本申请实施例采用了一个效果一般的声学模型或ASR识别模型加通用语言模型进行解码。
步骤S102,从语音识别解码的词图中取前k条解码路径,由于不同的分词会造成不同的语音识别路径,对于这种情况,还需要去掉重复的句子。同时,同时,如果参考文本或者解码结果中存在未登录词UNK,则根据错字率cer将这些词过滤掉,并将过滤后的语音识别文本与参考文本进行配对,如果解码结果中,没有完全正确配对的结果,则在解码识别列表中添加一条正确的解码识别结果;即如果从所有的参考文本中找不到一条能够与过滤后的语音识别文本进行完全正确配对的参考文本,则增加一例参考文本来进行配对,确保配对结果中至少有一对的输入语音和输出文本是相匹配的。其中,参考文本是一个或多个音频数据对应的正确文本。
步骤S103,过滤掉错字率过高,或者句子太短的句子。错字率过高或者句子太短,都会影响编码器encoder无法对正确语义的捕捉。因此,在文本纠错模型的训练阶段或者文本纠错模型的更新阶段,需要避免引入这样的噪声。
步骤S104,输入用于训练的语音识别解码文本。由于ASR识别模型进行语音识别解码出的文本,可能带有错词。例如图4中的w1’,w2,i1,w3,...,wn表示利用声学模型或ASR识别模型对训练音频数据进行语音识别解码得到的语音识别文本词条序列,即输入的用于训练语音识别文本。w1’和i1表示转写错误的词条的文本;其中,w1’表示正确的词条文本被替换为错误的词条文本,i1表示错误的插入。
步骤S105,对语音识别文本进行词条切分,得到一个或多个语音识别文本的词条。即应用词条切分工具将文本切分为词条序列,然后将这些token通过字典映射到整数ID。例如应用词条切分工具tokenizer将语音识别文本切分为词条序列,得到一个或多个词条token,然后通过预设的字典(即目标字典)将这些词条token映射为整数的词条编号ID。
步骤S106,将用于训练的词条映射为高维特征向量。即将这些词条的ID序列采用编码器中的嵌入矩阵对将每一个词条映射到高维特征空间中的一个向量。类似地,将词条的位置特征映射到等维度的高维特征空间。最后每个词条的特征使用这两个高维向量的和表示。其中,词条特征包括两部分,一是词条的文本形态特征,一是该词条在句子中位置特征。词条的文本特征通过词条的token_ID在一个参数化的二维矩阵中查找到对应的高维特征表示,该矩阵维度为[词典大小,特征向量长度]。词条位置特征通过词条在句中的位置序号,在另一个参数化的二维矩阵中查找到对应的高维特征表示,该矩阵维度为[模型输入的句子最大长度,特征向量长度]。本申请实施例中,每个词条最后表示的特征向量为前面两个向量的和。作为示例,例如利用多层编码器中的词条嵌入矩阵对每个词条编号所对应的词条的文本进行编码,以及利用多层编码器中的位置嵌入矩阵对每个词条的文本所对应的词条位置进行编码,最后每个词条token输出的特征向量为位置向量和token向量的和。
步骤S107,利用多层编码器进行编码。编码器由多层结构相同的编码子模块串联组成,这些子模块之间结构相同,但网络参数彼此独立,用于提取不同抽象层次的特征。作为示例,本申请实施例中的编码器为6层编码结构。
步骤S108,输入参考文本。ASR解码器在训练过程中需要输入已知的参考文本,且这里需要在参考文本前面加上<sos>,使得它与解码过程保持一致。作为示例,例如输入与步骤S104中语音识别文本对应的参考文本:<sos>,w1,w2,w3,...,wn。
步骤S109,将参考文本进行词条切分,得到一个或多个参考文本词条。本步骤中的词条切分方法与步骤S105中处理方法相同,只是这里切分后的词条序列多了一个特殊词条<sos>。参考文本的词条切分过程参见上述步骤S105,本步骤不再进行赘述。
步骤S110,将参考词条映射为高维特征向量。本步骤的映射与步骤S106中处理方法相同,本步骤不再进行赘述。要注意的是,本步骤在进行位置编码时,位置编号从<sos>开始算起。
步骤S111,利用多层解码器进行解码。在训练阶段,多层解码的输入包括经过多层编码器编码后的语音识别文本和参考文本对应的高维特征向量。本步骤中,解码器由多层结构相同的解码子模块串联组成,这些子模块之间结构相同,但网络参数彼此独立,用于提取不同抽象层次的特征。作为示例,本申请实施例中的解码器为6层解码结构。
步骤S112,输出层将解码器的输入先经过线性变换,再通过softmax函数计算出每个位置的词条概率分布。
步骤S113,根据参考文本的词条序列和步骤S112输出的词条概率分布来提取参考文本中每个词条位置上的词条被预测出的概率。这里参考文本的序列与原始参考文本的序列相比,其在结尾处多了一个<eos>,它的长度与解码器输出的序列长度一致。即这里的参考文本序列为:w1,w2,w3,...,wn,<eos>。
步骤S114,根据每个参考词条的概率,计算目标函数,即神经网络的损失函数。然后通过反向传播算法计算神经网络中每个参数的梯度,使用RAdam优化器对神经网络参数进行更新,生成文本纠错模型。
步骤S115,利用文本纠错模型中的编码器Encoder对待处理的语音识别文本进行编码。本申请实施例中,提供一条正确文本或参考文本“先生早上好”的音频数据,利用ASR识别模型对该音频数据进行识别,得到“先上早上好”的语音识别文本,并将“先上早上好”作为待处理的语音识别文本。对待处理的语音识别文本进行编码,即按照步骤S105至步骤S107的处理流程进行编码。
步骤S116,利用文本纠错模型中的解码器Decoder对编码后的待处理的语音识别文本进行解码,即按照步骤S109至步骤S111的处理流程进行解码。其中,利用文本纠错模型对待处理的语音识别文本进行文本纠正过程中,预先是不知道正确文本或参考文本的,这个过程与模型训练过程存在区别。在本申请实施例中,利用文本纠错模型进行解码时,模型解码序列是逐个词条预测的,其中最开始输入的词条统一为<sos>。在第一次解码时,解码器结合编码器的输出以及输入候选文本<sos>,预测第一个词的概率。并利用beam search算法(即束搜索算法)根据这个概率分布选取解码结果中前K条所有候选序列,作为下一轮解码输入。
步骤S117,利用束搜索(beam search)算法从多条候选句子中,选出概率最高的K条结果。本申请实施例还可以用得分来输出候选文本,预测概率和得分之间呈正相关,某候选文本的预测概率越高,其得分也越高。本申请实施例中,如图5所示,若K=3时,则有:利用束搜索算法得到3个预测出的候选文本“先”、“现”、“谢”,每个候选文本的得分分别为:-0.1分、-0.8分,-0.5分。第二次解码时,在第一次预测出的三个候选文本的句首前拼接<sos>作为输入候选文本,即候选文本分别为“<sos>先”、“<sos>现”、“<sos>谢”;并结合步骤S115的编码器输出结果共同构成当前次解码的输入文本。预测每一条输入文本在第二次解码时的候选文本序列和对应的概率分布,然后利用beam search算法(即束搜索算法)根据这个概率分布选取解码结果中前3条候选文本序列,分别得到“先生”、“谢谢”、“先上”3条候选文本序列,且这3条候选文本序列对应的得分依次为:-0.3分、-0.7分,-0.9分。在下一次解码时,将上一次预测出的三个候选文本的句首前拼接<sos>形成候选输入文本,并将候选输入文本结合步骤S115的编码器输出结果共同构成当前次解码的输入文本。按照上述解码流程继续执行解码,直至解码后的文本序列遇到<eos>标签时,解码停止,并输出前3条最优纠错文本。例如在解码停止时,分别输出前3条最优纠错文本“先生早上好<eos>”、“谢谢早上好<eos>”、“先上早上好<eos>,且这3条最优纠错文本对应的得分依次为:-2.4分、-3.8分,-4.4分。利用束搜索(beam search)算法输出预测概率最高的文本,作为完成纠错的纠正文本;即输出得分为-2.4分的纠错文本“先生早上好”,将其作为待处理的语音文本“先上早上好”的纠错文本。本申请实施例中,假设词表的大小为V,那么在预测下一个词时,就有V种可能。如果候选输入的句子有3条,那么经过解码器后,候选的句子就有3*V个。而beam search算法可以高效地从这些候选结果中挑选概率最高的3条结果。其中,beam search算法,是一种基于有向图的最小路径搜索算法,从多种可能的路径中找到最优的路径。在本申请实施例中,最优路径代表这最优文本序列。
本实施例中,构建训练数据集阶段包括步骤S101至步骤S103,训练文本纠错模型或更新文本纠错模型阶段包括步骤S104至步骤S114,利用文本纠错模型进行文本纠正阶段包括步骤S115至步骤S117。
综上所述,针对现有技术存在的技术问题,本系统提供了一种针对ASR识别文本进行纠错的方案,解决了传统模型对输入输出要求等长的约束,有效的提高了文本识别准确度,并且一定程度上提升了语义的流畅性。本系统在训练中将编码器和解码器中的嵌入矩阵独立训练,同时本系统的建模粒度为词条,能够减少UNK(未登陆词)的情形。其次,本系统中文本纠错模型的训练数据可以通过ASR模型解码生成,错误分布非常接近实际场景的分布,有效缓解了训练集和测试集的差异。而且本系统不仅可以纠正常见的ASR识别文本中的替换类型错误,对于文本插入类错误、文本删除类错误也可以进行文本纠正。此外,本系统中的文本纠错模型还具有文本平滑的效果,使纠正后的句子更加通顺,更利于人们阅读理解。另外,本系统中的文本纠错模型不仅可以应用于通用场景的文本纠错,还可以应用于垂直场景的文本纠错,并能根据具体的业务场景微调模型,可以获得更好的纠错效果。同时,利用文本纠错模型纠正后的文本长度不受输入文本长度的限制,相较于检错-纠错架构,本系统适用范围更广。而且本系统中的文本纠错模型大小固定,不会随语料增加而大幅增加。此外,与现有技术中的拼音纠错相比,本系统是采用ASR对音频解码获得训练数据,可以有效缓解训练集与测试集分布不一致的问题。其次,本系统是直接输出正确结果,不需要分布输出结果;另外,本系统对输入文本和输出文本的长度没有限制。以及与现有技术中基于transformer的纠错系统相比,在训练数据集构建时,因为错词占的比率对语义理解的影响更大,所以本系统是提取前N条结果,然后再基于错词率筛选。其次,本系统中编码器和解码器的嵌入矩阵是独立训练,更适应对于错词的表示;最后,本系统的建模单元为词条,有效地缓解了纠正文本中出现未登录词UNK的情形。
如图6所示,本发明还提供一种文本纠错系统,包括有:
纠错数据构建模块:该模块生成纠错数据集。为了对错词充分采样,首先用一个(效果略差的)ASR模型对音频文件做识别,保存前10条结果。然后,对每条参考文本对应的候选解码结果去重,再根据错字率cer对解码结果进行初步的过滤。之后,将过滤后的解码结果与参考文本配对。如果一条参考文本对应的所有候选结果中没有完全正确的,则增加一例参考文本到参考文本的配对,确保配对中至少有一对是正确输入正确输出。
纠错模型训练模块:基于训练数据,训练文本纠错模型。本系统中的文本纠错模型和现有技术中的transformer差异有如下几点:1)本系统的模型建模单元是字,不是词;2)本系统的位置嵌入采用的是可训练参数,而不是预先计算好的三角函数。其中,本系统中的模型训练目标函数为交叉熵,优化器为RAdam。
解码模块:用于输入ASR识别的文本,采用束搜索(beam search)算法输出纠正后的文本。
在本实施例中,该系统执行上述方法,具体功能和技术效果参照上述实施例即可,此处不再赘述。
本申请实施例还提供了一种文本纠错设备,该设备用于执行以下步骤:
对一个或多个音频数据进行语音识别,获取对应的语音识别文本;
对语音识别文本进行编码,获取语音识别文本的特征向量;
基于参考文本的特征向量对语音识别文本的特征向量进行解码,并根据解码结果生成文本纠错模型;其中,参考文本是与一个或多个音频数据对应的正确文本;
利用文本纠错模型对待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本。
在本实施例中,该设备的具体功能和技术效果参照上述实施例即可,此处不再赘述。
本申请实施例还提供了一种计算机设备,该计算设备可以包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行图1所述的方法。在实际应用中,该设备可以作为终端设备,也可以作为服务器,终端设备的例子可以包括:智能手机、平板电脑、电子书阅读器、MP3(动态影像专家压缩标准语音层面3,Moving Picture Experts Group Audio Layer III)播放器、MP4(动态影像专家压缩标准语音层面4,Moving Picture Experts Group Audio Layer IV)播放器、膝上型便携计算机、车载电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等等,本申请实施例对于具体的设备不加以限制。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例的图1中数据处理方法所包含步骤的指令(instructions)。
图9为本申请一实施例提供的终端设备的硬件结构示意图。如图所示,该终端设备可以包括:输入设备1100、第一处理器1101、输出设备1102、第一存储器1103和至少一个通信总线1104。通信总线1104用于实现元件之间的通信连接。第一存储器1103可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,第一存储器1103中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述第一处理器1101例如可以为中央处理器(Central ProcessingUnit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器1101通过有线或无线连接耦合到上述输入设备1100和输出设备1102。
可选的,上述输入设备1100可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件插入接口(例如USB接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;输出设备1102可以包括显示器、音响等输出设备。
在本实施例中,该终端设备的处理器包括用于执行各设备中语音识别装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图10为本申请的另一个实施例提供的终端设备的硬件结构示意图。图10是对图9在实现过程中的一个具体的实施例。如图所示,本实施例的终端设备可以包括第二处理器1201以及第二存储器1202。
第二处理器1201执行第二存储器1202所存放的计算机程序代码,实现上述实施例中图1所述方法。
第二存储器1202被配置为存储各种类型的数据以支持在终端设备的操作。这些数据的示例包括用于在终端设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。第二存储器1202可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
可选地,第二处理器1201设置在处理组件1200中。该终端设备还可以包括:通信组件1203,电源组件1204,多媒体组件1205,音频组件1206,输入/输出接口1207和/或传感器组件1208。终端设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
处理组件1200通常控制终端设备的整体操作。处理组件1200可以包括一个或多个第二处理器1201来执行指令,以完成上述图1所示方法的全部或部分步骤。此外,处理组件1200可以包括一个或多个模块,便于处理组件1200和其他组件之间的交互。例如,处理组件1200可以包括多媒体模块,以方便多媒体组件1205和处理组件1200之间的交互。
电源组件1204为终端设备的各种组件提供电力。电源组件1204可以包括电源管理系统,一个或多个电源,及其他与为终端设备生成、管理和分配电力相关联的组件。
多媒体组件1205包括在终端设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件1206被配置为输出和/或输入语音信号。例如,音频组件1206包括一个麦克风(MIC),当终端设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部语音信号。所接收的语音信号可以被进一步存储在第二存储器1202或经由通信组件1203发送。在一些实施例中,音频组件1206还包括一个扬声器,用于输出语音信号。
输入/输出接口1207为处理组件1200和外围接口模块之间提供接口,上述外围接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
传感器组件1208包括一个或多个传感器,用于为终端设备提供各个方面的状态评估。例如,传感器组件1208可以检测到终端设备的打开/关闭状态,组件的相对定位,用户与终端设备接触的存在或不存在。传感器组件1208可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与终端设备间的距离。在一些实施例中,该传感器组件1208还可以包括摄像头等。
通信组件1203被配置为便于终端设备和其他设备之间有线或无线方式的通信。终端设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个实施例中,该终端设备中可以包括SIM卡插槽,该SIM卡插槽用于插入SIM卡,使得终端设备可以登录GPRS网络,通过互联网与服务器建立通信。
由上可知,在图10实施例中所涉及的通信组件1203、音频组件1206以及输入/输出接口1207、传感器组件1208均可以作为图9实施例中的输入设备的实现方式。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (12)
1.一种文本纠错模型生成方法,其特征在于,包括以下步骤:
对音频数据进行语音识别,获取对应的语音识别文本;
对所述语音识别文本进行编码,获取语音识别文本的特征向量;
将参考文本的特征向量和所述语音识别文本的特征向量输入至解码器进行解码,并根据解码结果计算损失函数,通过优化所述损失函数训练生成文本纠错模型;其中,所述参考文本是与所述音频数据对应的正确文本;
所述对所述语音识别文本进行编码,获取语音识别文本的特征向量,包括:
对获取的语音识别文本进行词条切分,获取一个或多个词条;
通过目标字典将所述一个或多个词条映射为词条编号;
利用词条嵌入矩阵对每个词条编号进行编码,获取对应的词条编号特征向量;以及利用位置嵌入矩阵对每个词条在所述语音识别文本中的位置序号进行编码,获取与所述词条编号特征向量具有相同维度的词条位置特征向量;
对所述词条编号特征向量和所述词条位置特征向量进行融合,获取所述语音识别文本的特征向量;其中,所述融合包括以下至少之一:相加、相减、拼接。
2.根据权利要求1所述的文本纠错模型生成方法,其特征在于,所述将参考文本的特征向量和所述语音识别文本的特征向量输入至解码器进行解码,并根据解码结果计算损失函数,通过优化所述损失函数训练生成文本纠错模型,包括:
将参考文本的特征向量和所述语音识别文本的特征向量输入至解码器,并利用所述解码器对所述语音识别文本的特征向量进行解码,获取解码结果;
对所述语音识别文本的特征向量进行线性变换以及对所述参考文本进行词条切分,并通过概率分布函数计算参考文本中每个词条位置的词条概率分布;
将所述解码结果与参考文本的词条序列对齐,并基于所述参考文本的词条序列和所述词条概率分布获取参考文本中每个词条位置上的词条被预测出的概率;
根据参考文本中每个词条位置上词条的预测概率计算损失函数,并通过优化所述损失函数训练一个或多个神经网络,生成文本纠错模型。
3.根据权利要求1所述的文本纠错模型生成方法,其特征在于,所述对音频数据进行语音识别,获取对应的语音识别文本,包括:
利用语音识别模型对一个或多个音频数据进行语音识别和解码,获取解码词图和多条语音识别文本;
从所述解码词图中选取若干条解码路径,根据选择的若干条解码路径去掉重复的语音识别文本;
对完成去重复后的语音识别文本进行过滤,并将过滤后的语音识别文本作为最终的语音识别文本;
其中,所述过滤包括以下至少之一:过滤存在未命名字词的语音识别文本、过滤字词长度短于预设长度的语音识别文本、过滤错字率高于预设阈值的语音识别文本。
4.一种文本纠错方法,其特征在于,包括以下步骤:
获取待处理的一个或多个语音识别文本;
利用预先生成的文本纠错模型对所述待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本,所述文本纠错模型由权利要求1至3中任一项所述的文本纠错模型生成方法生成。
5.根据权利要求4所述的文本纠错方法,其特征在于,所述利用预先生成的文本纠错模型对待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本,包括:
利用文本纠错模型中的编码器对所述待处理的一个或多个语音识别文本进行编码,得到待处理的一个或多个语音识别文本的特征向量;
利用解码器对待处理的一个或多个语音识别文本的特征向量进行解码,并在解码过程中获取多条候选文本序列以及每条候选文本序列对应的概率;
将概率最高的候选文本序列所对应的语音识别文本作为纠错后的正确文本。
6.一种文本纠错模型生成系统,其特征在于,包括有:
语音识别模块,用于对音频数据进行语音识别,获取对应的语音识别文本;
编码模块,用于对所述语音识别文本进行编码,获取语音识别文本的特征向量;
解码模块,用于将参考文本的特征向量和所述语音识别文本的特征向量输入至解码器进行解码,获取对应的解码结果;其中,所述参考文本是与所述一个或多个音频数据对应的正确文本;
模型生成模块,用于根据所述解码结果计算损失函数,并通过优化所述损失函数训练生成文本纠错模型;
所述编码模块对所述语音识别文本进行编码,获取语音识别文本的特征向量,包括:
对获取的语音识别文本进行词条切分,获取一个或多个词条;
通过目标字典将所述一个或多个词条映射为词条编号;
利用词条嵌入矩阵对每个词条编号进行编码,获取对应的词条编号特征向量;以及利用位置嵌入矩阵对每个词条在所述语音识别文本中的位置序号进行编码,获取与所述词条编号特征向量具有相同维度的词条位置特征向量;
对所述词条编号特征向量和所述词条位置特征向量进行融合,获取所述语音识别文本的特征向量;其中,所述融合包括以下至少之一:相加、相减、拼接。
7.根据权利要求6所述的文本纠错模型生成系统,其特征在于,所述编码模块对所述语音识别文本进行编码,获取语音识别文本的特征向量的过程包括:
对获取的语音识别文本进行词条切分,获取一个或多个词条;
通过目标字典将所述一个或多个词条映射为词条编号;
利用词条嵌入矩阵对每个词条编号进行编码,获取对应的词条编号特征向量;以及利用位置嵌入矩阵对每个词条在所述语音识别文本中的位置序号进行编码,获取与所述词条编号特征向量相同维度的词条位置特征向量;
对所述词条编号特征向量和所述词条位置特征向量进行融合,获取所述语音识别文本的特征向量;其中,所述融合包括以下至少之一:相加、相减、拼接。
8.根据权利要求7所述的文本纠错模型生成系统,其特征在于,所述模型生成模块根据所述解码结果计算损失函数,并通过优化所述损失函数训练生成文本纠错模型的过程包括:
对所述语音识别文本的特征向量进行线性变换以及对所述参考文本进行词条切分,并通过概率分布函数计算参考文本中每个词条位置的词条概率分布;
将所述解码结果与参考文本的词条序列对齐,并基于参考文本的词条序列和所述词条概率分布获取参考文本中每个词条位置上的词条被预测出的概率;
根据参考文本中每个词条位置上词条的预测概率计算损失函数,并通过优化所述损失函数训练一个或多个神经网络,生成文本纠错模型。
9.一种文本纠错系统,其特征在于,包括有:
文本采集模块,用于获取待处理的一个或多个语音识别文本;
文本纠错模块,用于利用预先生成的文本纠错模型对所述待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本,所述文本纠错模型由权利要求1至3中任一项所述的文本纠错模型生成方法生成。
10.根据权利要求9所述的文本纠错系统,其特征在于,所述文本纠错模块利用预先生成的文本纠错模型对待处理的一个或多个语音识别文本进行文本纠错,获取纠错后的正确文本的过程包括:
利用文本纠错模型中的编码器对所述待处理的一个或多个语音识别文本进行编码,得到待处理的一个或多个语音识别文本的特征向量;
利用解码器对待处理的一个或多个语音识别文本的特征向量进行解码,并在解码过程中获取多条候选文本序列以及每条候选文本序列对应的概率;
将概率最高的候选文本序列所对应的语音识别文本作为纠错后的正确文本。
11.一种计算机设备,其特征在于,包括:
一个或多个处理器;和
存储有指令的一个或多个机器可读介质,当所述一个或多个处理器执行所述指令时,使得所述设备执行如权利要求1-3中任意一项所述的方法。
12.一个或多个机器可读介质,其特征在于,其上存储有指令,当由一个或多个处理器执行所述指令时,使得设备执行如权利要求1-3中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110276017.XA CN113066494B (zh) | 2021-03-15 | 2021-03-15 | 文本纠错模型生成方法及系统、文本纠错方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110276017.XA CN113066494B (zh) | 2021-03-15 | 2021-03-15 | 文本纠错模型生成方法及系统、文本纠错方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113066494A CN113066494A (zh) | 2021-07-02 |
CN113066494B true CN113066494B (zh) | 2024-03-08 |
Family
ID=76560736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110276017.XA Active CN113066494B (zh) | 2021-03-15 | 2021-03-15 | 文本纠错模型生成方法及系统、文本纠错方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113066494B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113744713A (zh) * | 2021-08-12 | 2021-12-03 | 北京百度网讯科技有限公司 | 一种语音合成方法及语音合成模型的训练方法 |
CN113539246B (zh) * | 2021-08-20 | 2022-10-18 | 贝壳找房(北京)科技有限公司 | 语音识别方法和装置 |
CN113990293A (zh) * | 2021-10-19 | 2022-01-28 | 京东科技信息技术有限公司 | 语音识别方法及装置、存储介质、电子设备 |
CN114333797B (zh) * | 2021-12-31 | 2024-09-06 | 思必驰科技股份有限公司 | 音频转文本模型训练方法、电子设备和存储介质 |
CN114510925A (zh) * | 2022-01-25 | 2022-05-17 | 森纵艾数(北京)科技有限公司 | 一种中文文本纠错方法、系统、终端设备及存储介质 |
CN118471201B (zh) * | 2024-07-09 | 2024-09-20 | 电子科技大学 | 一种高效自适应面向语音识别引擎的热词纠错方法与系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188353A (zh) * | 2019-05-28 | 2019-08-30 | 百度在线网络技术(北京)有限公司 | 文本纠错方法及装置 |
CN110852087A (zh) * | 2019-09-23 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 中文纠错方法和装置、存储介质及电子装置 |
CN111126072A (zh) * | 2019-12-13 | 2020-05-08 | 北京声智科技有限公司 | 一种Seq2Seq模型训练方法、装置、介质和设备 |
CN111523306A (zh) * | 2019-01-17 | 2020-08-11 | 阿里巴巴集团控股有限公司 | 文本的纠错方法、装置和系统 |
CN112084301A (zh) * | 2020-08-11 | 2020-12-15 | 网易有道信息技术(北京)有限公司 | 文本修正模型的训练方法及装置、文本修正方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107293296B (zh) * | 2017-06-28 | 2020-11-20 | 百度在线网络技术(北京)有限公司 | 语音识别结果纠正方法、装置、设备及存储介质 |
-
2021
- 2021-03-15 CN CN202110276017.XA patent/CN113066494B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523306A (zh) * | 2019-01-17 | 2020-08-11 | 阿里巴巴集团控股有限公司 | 文本的纠错方法、装置和系统 |
CN110188353A (zh) * | 2019-05-28 | 2019-08-30 | 百度在线网络技术(北京)有限公司 | 文本纠错方法及装置 |
CN110852087A (zh) * | 2019-09-23 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 中文纠错方法和装置、存储介质及电子装置 |
CN111126072A (zh) * | 2019-12-13 | 2020-05-08 | 北京声智科技有限公司 | 一种Seq2Seq模型训练方法、装置、介质和设备 |
CN112084301A (zh) * | 2020-08-11 | 2020-12-15 | 网易有道信息技术(北京)有限公司 | 文本修正模型的训练方法及装置、文本修正方法及装置 |
Non-Patent Citations (1)
Title |
---|
Research on Chinese Text Error Correction Based on Sequence Model;Jianyong Duan;2019 international conference on Asian language processing(IALP);第154-159页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113066494A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113066494B (zh) | 文本纠错模型生成方法及系统、文本纠错方法、系统、设备及介质 | |
US11314921B2 (en) | Text error correction method and apparatus based on recurrent neural network of artificial intelligence | |
KR102382499B1 (ko) | 번역 방법, 타깃 정보 결정 방법, 관련 장치 및 저장 매체 | |
CN108899013B (zh) | 语音搜索方法、装置和语音识别系统 | |
CN110288980A (zh) | 语音识别方法、模型的训练方法、装置、设备及存储介质 | |
CN112528637B (zh) | 文本处理模型训练方法、装置、计算机设备和存储介质 | |
CN106570180B (zh) | 基于人工智能的语音搜索方法及装置 | |
CN105336322A (zh) | 多音字模型训练方法、语音合成方法及装置 | |
CN105575386A (zh) | 语音识别方法和装置 | |
US8849668B2 (en) | Speech recognition apparatus and method | |
CN114580382A (zh) | 文本纠错方法以及装置 | |
CN116884391B (zh) | 基于扩散模型的多模态融合音频生成方法及装置 | |
CN113948066B (zh) | 一种实时转译文本的纠错方法、系统、存储介质和装置 | |
Shi et al. | Watch it twice: Video captioning with a refocused video encoder | |
EP4273855A1 (en) | Speech recognition method and apparatus, and storage medium | |
CN112017643B (zh) | 语音识别模型训练方法、语音识别方法及相关装置 | |
CN111832318A (zh) | 单语句自然语言处理方法、装置、计算机设备及可读存储介质 | |
CN114817465A (zh) | 一种用于多语言语义理解的实体纠错方法及智能设备 | |
CN114420104A (zh) | 自动生成字幕的方法及其相关产品 | |
CN117877460A (zh) | 语音合成方法、装置、语音合成模型训练方法、装置 | |
CN114417827A (zh) | 文本上下文处理方法、装置、电子设备和存储介质 | |
CN116522962A (zh) | 用于视频翻译的方法、装置、电子设备和介质 | |
CN112380850A (zh) | 错别字识别方法、装置、介质及电子设备 | |
CN114281925A (zh) | 文本处理方法、装置、设备以及计算机可读存储介质 | |
Gurunath Shivakumar et al. | Confusion2Vec 2.0: Enriching ambiguous spoken language representations with subwords |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |