CN114187902A - 一种基于ac自动机热词增强的语音识别方法和系统 - Google Patents
一种基于ac自动机热词增强的语音识别方法和系统 Download PDFInfo
- Publication number
- CN114187902A CN114187902A CN202210103668.3A CN202210103668A CN114187902A CN 114187902 A CN114187902 A CN 114187902A CN 202210103668 A CN202210103668 A CN 202210103668A CN 114187902 A CN114187902 A CN 114187902A
- Authority
- CN
- China
- Prior art keywords
- node
- automaton
- matching
- decoding
- current
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000008569 process Effects 0.000 claims abstract description 28
- 230000007246 mechanism Effects 0.000 claims abstract description 11
- 230000011218 segmentation Effects 0.000 claims description 31
- 230000009467 reduction Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 description 4
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- 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
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3343—Query execution using phonetics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- 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
-
- 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
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
-
- 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
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
-
- 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
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
- G10L2015/0631—Creating reference templates; Clustering
-
- 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
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L2015/081—Search algorithms, e.g. Baum-Welch or Viterbi
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明提出了一种基于AC自动机热词增强的语音识别方法和系统,属于语音识别技术领域。分别构建以字和词为单元的语言模型,用于生成解码图;获取热词表,以语言模型中的字和词作为字典,对热词表中的每一个热词进行分词,构建AC自动机;在语音识别的解码路径搜索过程中构建令牌结构体,用于存储解码图上的当前解码路径的所有结点指针和总代价、AC自动机上的当前匹配路径的结点指针和该结点的缩小代价值;令牌结构体随着解码图中当前时刻解码的结点进行传递;将解码图中当前结点输出的识别结果与AC自动机动态匹配,在动态匹配过程中建立缓存机制,根据匹配结果更新总代价值,最终代价最小的路径为目标路径,输出语音识别结果。
Description
技术领域
本发明涉及语音识别技术领域,具体涉及一种基于AC自动机热词增强的语音识别方法和系统。
背景技术
语音识别技术在生产环境中经常被应用于各个特定领域。每个领域都有其特定的专有名词,通用场景的语音识别系统很难准确识别这些专有名词。热词增强是指根据用户提供的专有名词热词,提升语音识别结果中热词的识别率。
现有技术中,传统语音识别系统解决热词识别的方式主要是采用将热词融合到语言模型中的方式,这种方式无法对热词表进行修改,一旦修改,就需要重新构建设置训练语言模型;另一种方式是将识别结果与热词表中的热词一一进行匹配的方式,匹配时间长,效率低,且热词增多会成倍增加识别速度,热词增强的效果非常有限。
发明内容
为了解决上述技术问题,本发明提出了一种基于AC自动机热词增强的语音识别方法和系统,使用AC自动机结构存储热词表,AC自动机中的字典树结构能很好地与解码过程中的路径搜索方法相适应,方便对热词表进行调整,热词识别精度高,识别速度快。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个目的在于提供一种基于AC自动机热词增强的语音识别方法,包括以下步骤:
步骤1:分别构建以字和词为单元的语言模型,将待识别语音作为语音识别系统的输入,由语言模型生成解码图;
步骤2:获取热词表,以语言模型中的字和词作为字典,对热词表中的每一个热词进行分词,构建基于热词的AC自动机;
步骤3:在语音识别的解码路径搜索过程中建立令牌结构体,用于存储解码图上的当前解码路径的所有结点指针和总代价、AC自动机上的当前匹配路径的结点指针和该结点的缩小代价值;令牌结构体随着解码图中当前时刻解码的结点进行传递;
将解码图中当前结点输出的识别结果与基于热词的AC自动机动态匹配,若匹配成功,则对解码图中当前解码路径的总代价进行更新,使更新后的总代价降低;若匹配失败,则解码图中当前解码路径的总代价不变;
解码图中的不同解码路径形成竞争机制,最终代价最小的路径为目标路径,输出语音识别结果。
本发明的第二个目的在于提供一种基于AC自动机热词增强的语音识别系统,包括:
语言模型模块,其融合有以字为单元的语言模型和以词为单位的语言模型;
解码图生成模块,其用于生成待识别语音对应的解码图;
AC自动机构建模块,其用于获取热词表,以语言模型模块中的字和词作为字典,对热词表中的每一个热词进行分词,得到基于热词的AC自动机;
令牌结构体模块,其用于存储解码图上的当前解码路径的所有结点指针和总代价、以及AC自动机上的当前匹配路径的结点指针和该结点的缩小代价值;
解码图搜索模块,其用于将解码图中当前结点输出的识别结果与基于热词的AC自动机动态匹配,若匹配成功,则对解码图中当前解码路径的总代价进行更新,使更新后的总代价降低;若匹配失败,则解码图中当前解码路径的总代价不变;
语音识别输出模块,其用于将解码图搜索模块中代价最小的路径作为目标路径,输出目标路径对应的语音识别结果。
与现有技术相比,本发明的优势在于:
1. 本发明使用AC自动机结构存储热词表,其中的字典树结构能很好地与解码过程中的路径搜索方法适应,实现解码图与AC自动机同步搜索,速度快,几乎不影响到识别速度;利用AC自动机中结点的fail指针结构,在当前热词匹配失败的情况下,快速跳转到相同后缀的另一个热词并进行匹配,减少了计算量。
2. 本发明在语音识别的解码路径搜索过程中建立缓存机制,用于缓存当前结点对应的输出边已匹配过的AC自动机结点指针,避免在同一时刻,多次在AC自动机中搜索相同热词,减少计算量,提升热词匹配的速度。此外,还在令牌结构体中记录了历史缩小的代价数值,能够在匹配失败时快速恢复当前路径的总代价,不对识别结果造成负面影响。
3. 本发明在传统的以词为单元的语言模型中融合了以字为单元的语言模型,确保了热词都能被分词为语言模型中出现过的字或词,保证解码图中会出现包含热词分词组合的路径,解决了对于语言模型中不存在的词,热词功能无法生效的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据一示例性实施例示出的AC自动机结构;
图2是根据一示例性实施例示出的基于AC自动机热词增强的语音识别方法的流程示意图;
图3是根据一示例性实施例示出的一种解码图结构;
图4是根据一示例性实施例示出的AC自动机中部分字典树结构。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明提出的一种基于AC自动机热词增强的语音识别方法,主要包括以下步骤:
一、分别构建以字和词为单元的语言模型,将待识别语音作为语音识别系统的输入,由语言模型生成解码图。本发明中,在传统的以词为单元的语言模型中融合了以字为单元的语言模型,确保了热词都能被分词为语言模型中出现过的字或词,保证解码图中会出现包含热词分词组合的路径,解决了对于语言模型中不存在的词,热词功能无法生效的问题。
二、获取热词表,以语言模型中的字和词作为字典,对热词表中的每一个热词进行分词,构建基于热词的AC自动机。
本发明采用AC自动机结构存储热词表,能很好地与解码过程中的路径搜索方法适应,实现解码图与AC自动机同步搜索。AC自动机构建方法为:
步骤2.1:以语言模型中的字和词作为字典,对热词表中的每一个热词进行分词处理,在分词过程中,首先以词为单位进行分词,若无法以词为单位,则再以字为单位进行分词。例如,针对热词“浙江人”,首先以词为单位进行分词,“浙江”这个词在字典中出现过,则将“浙江人”分为“浙江”和“人”,且“浙江”无需继续分词;而“人”无法以词为单位,因此以字为单位进行分词。针对“我要我觉得”,首先以词为单位进行分词,“我要”、“要我”、“我要我”均无法以词为单位进行分词,因此需要以字为单位进行分词,最终分为“我”、“要”、“我”、“觉得”。
分词后,标记分词处理后的每一个词或者字在对应热词中的位置。例如,针对热词“浙江人”的分词结果“浙江”和“人”,“浙江”处于第1个位置,“人”处于第2个位置。
步骤2.2:根据分词结果,将处于第j个位置的词或者字作为AC自动机的第j层的一个结点,若字典中存在完整的热词,则将该热词作为第一层的一个结点;将第j层结点的next指针连接第j+1层结点,有共同前缀的词对应的结点共用一个父结点,且第一层的所有结点连接根结点。该步骤需要遍历热词表中的所有热词。
例如,针对热词“浙江人”的分词结果“浙江”和“人”,将“浙江”作为第一层的一个结点,将“人”作为第二层的一个结点。因为字典中存在完整的热词“浙江人”,因此将“浙江人”也作为第一层的一个结点。
步骤2.3:若存在相同的分词,则将最长分词后缀的结点的fail指针指向其余最长分词后缀的结点。例如,针对“ABCD”、“BCD”、“CD”三个热词,存在相同的热词“C”,“BCD”是“ABCD”的最长分词后缀,“CD”是“BCD”的最长分词后缀,因此,将“ABCD”中的结点“C”的fail指针指向“BCD”中的结点“C”,并将“BCD”中的结点“C”的fail指针指向“CD”中的结点“C”。
根据步骤2.1至步骤2.3,得到构建好的AC自动机。例如,按照上述分词方法,图1示出了“浙江杭州”、“浙江人”、“杭州西湖”三个热词对应的AC自动机。所述的AC自动机中每一个结点对应一个预设的(0-1]之间的代价比例,例如第一层的代价比例为0.9,第二层的代价比例为0.8,或者也可以对第一层中的不同结点设置不同的代价比例,例如第一层中的“浙江”的代价比例为0.92,“浙江人”的代价比例为0.72,“杭州”的代价比例为0.85,第二层同理。
三、在语音识别的解码路径搜索过程中建立令牌结构体,用于存储解码图上的当前解码路径的所有结点指针和总代价、AC自动机上的当前匹配路径的结点指针和该结点的缩小代价值;令牌结构体随着解码图中当前时刻解码的结点进行传递。
如图2所示,将解码图中当前结点输出的识别结果与基于热词的AC自动机动态匹配,若匹配成功,则对解码图中当前解码路径的总代价进行更新,使更新后的总代价降低;若匹配失败,则解码图中当前解码路径的总代价不变;解码图中的不同解码路径形成竞争机制,最终代价最小的路径为目标路径,输出语音识别结果。
语音识别解码的过程是一个在解码图上搜索代价最小的路径的过程。本发明步骤一生成的解码图中的每一个结点有若干输出边,每一条边上有输入标签和输出标签,输出标签表示的就是当前时刻识别出的文字,即识别结果。
以图3示出的解码图为例,圆圈是解码图的结点,解码图的每条边上都有输入标签和输出标签,每一个结点可能对应有若干输出边。在动态匹配过程中,需要将解码图中当前结点的每一条输出边对应的识别结果分别与基于热词的AC自动机动态匹配。
以图3中的待识别语音“浙江杭州旅游”为例,当接收到语音“杭州”的这一时刻,系统识别到的拼音可能是“hangzhou”、“hanzhou”、“hangzhuo”,但是输出标签都是“杭州”。比如,说的标准一点,“hangzhou”的代价可能为1(代价越低,说明发音越接近这个拼音,那么这个拼音所在的路径增加的总代价就会越小,越可能成为最优路径),“hanzhou”和“hangzhuo”的代价可能是10。
在本发明的一项具体实施中,所述的动态匹配具体为:
首先,判断解码图当前结点的令牌结构体中是否存在AC自动机结点指针;
第一种情况,存在AC自动机结点的指针,将其定义为结点a,则将解码图当前结点的所有输出边与AC自动机结点a的next指针所指结点进行匹配;
第二种情况,不存在AC自动机结点指针,则将解码图当前结点的所有输出边与AC自动机第一层结点进行匹配;
之后,判断匹配结果;
若第一种情况或者第二种情况下匹配成功,则计算AC自动机上的当前匹配路径的结点所对应的缩小代价值v_i=q*(1-pi),其中q表示解码图当前边的固有代价,pi表示AC自动机上当前匹配的第i层结点对应的代价比例,v_i表示AC自动机上的当前匹配路径的结点所对应的缩小代价;将AC自动机中匹配的结点指针和缩小代价存储到解码图当前结点的令牌中,并对输出边对应的当前解码路径的总代价进行更新,更新后的总代价Q’=Q -v_i,Q为更新之前的总代价;若匹配结果为热词的结尾,则清空令牌中存储的AC自动机中匹配结点对应的历史缩小代价;若匹配结果不是热词的结尾,则保留令牌中存储的内容并传递至解码图中待匹配的下一结点;
若第一种情况下匹配失败,则从AC自动机结点a的fail指针所指结点的下一层结点进行匹配,恢复部分历史缩小代价,作为第一种情况判断匹配结果;若AC自动机结点a不存在fail指针,则与AC自动机第一层结点进行匹配,作为第二种情况判断匹配结果;
若第二种情况下匹配失败,说明AC自动机中不存在与当前结点输出边的识别结果相匹配的热词,解码图中当前解码路径的总代价不变,将当前令牌结构体传递至解码图中待匹配的下一结点。
更具体的,参考图2所示的动态匹配流程:
步骤3.1:在解码的某一个时刻,检查当前时刻解码图的令牌结构体中是否存有AC自动机结点指针,如果有,为了方便表述,对AC自动机结点记为结点a,执行步骤3.2,如果没有,则执行步骤3.3。
步骤3.2:将解码图当前结点出发的所有边的识别结果,与AC自动机对应结点a的下一层结点匹配,如果匹配成功,则执行步骤3.4,如果匹配失败,则执行步骤3.5。
步骤3.3:将解码图当前结点出发的所有边的识别结果,与AC自动机第一层的结点相匹配,如果匹配成功,则执行步骤3.4,如果匹配失败,则执行步骤3.6。
步骤3.4:按照AC自动机中匹配成功的结点存储的代价比例,对解码图当前边的解码路径总代价进行缩小,将缩小的代价值和AC自动机结点指针存储在令牌结构体中,之后执行步骤3.7。
步骤3.5:将AC自动机结点a改为fail指针指向的结点,也就是说,将fail指针指向的结点作为新的AC自动机结点a,返回步骤3.2,并恢复部分缩小代价。若AC自动机结点a不存在fail指针,本实施例可将其理解为fail指向的结点为AC自动机根结点,返回步骤3.3。
步骤3.6:按照解码图的正常解码结果,不对总代价进行更新,即不执行热词相关操作,之后执行步骤3.8。
步骤3.7:若当前的字为热词的结尾,则清空令牌结构体中存储的AC自动机中匹配结点对应的历史缩小代价;若匹配结果不是热词的结尾,则保留所有令牌结构体中的内容;之后执行步骤3.8。
步骤3.8:将当前令牌结构体传递至解码图中待匹配的下一结点。
在本发明的一项具体实施中,在同一个时刻,解码图中可能存在多个路径匹配到相同的热词(例如图3中的三条边的匹配结果均为“杭州”),本发明基于此建立了缓存机制,用于存储解码图当前结点对应的输出边已匹配过的AC自动机结点指针,可避免在同一时刻多次在AC自动机中搜索相同热词。在执行动态匹配时,优先搜索缓存中是否有与解码图当前边匹配的AC自动机结点,如果有则直接使用;如果没有则正常搜索AC自动机,并加入缓存。本发明通过设置上述缓存机制,避免在同一时刻,多次在AC自动机中搜索相同热词,减少计算量,提升热词匹配的速度。例如,在对图3中进行第一条输出边的匹配时,将匹配结果对应的AC自动机结点指针记入缓存中,再执行第二条和第三条边的匹配之前,可直接读取第一条边的匹配结果,避免执行三次重复的“杭州”匹配过程。步骤3.5所述的恢复部分缩小代价,具体为:
在令牌结构体中创建列表,用于存储每次匹配成功AC自动机中的一个结点时对应的缩小代价,得到历史缩小代价表[v_1, v_2,…, v_n],其中n表示当前在AC自动机中已经匹配到第n层的结点,v_n表示第n层结点对应的历史缩小代价;
当AC自动机中第n+1层的结点匹配失败时,则返回AC自动机中第n层结点的fail指针所指结点,假设所指结点处于AC自动机第m层,m<n,则恢复历史缩小代价表中的前n-m个代价值,更新当前解码路径的总代价Q’=Q+ sum([v_1, v_2,…, v_(n-m)])。
本发明在令牌结构体中记录了历史缩小的代价数值,能够在匹配失败时快速恢复当前路径的总代价,不对识别结果造成负面影响。
结合图3和图4,图3为上述介绍的一种解码图示例,图4是AC自动机中部分字典树结构,假设解码图中的当前需要匹配的结点为结点2,需要遍历结点2的所有输出边并记录每一条路径的代价。由于在解码图结点1到结点2的过程中已经匹配到了AC自动机中的结点“浙江”,若不存在缓存机制,则解码图结点2中的三条边都要按照AC自动机中的【中部、人、旅游、杭州】顺序遍历4步才能匹配到AC自动机中的“杭州”一词,工作量大,速度慢。本发明引入的缓存机制,能够在解码图结点2第一条边的匹配过程中将匹配得到的“杭州”记入缓存中,之后两条边就可以直接从缓存中读取到“杭州”,节省了两次遍历时间。
与前述的一种基于AC自动机热词增强的语音识别方法的实施例相对应,本申请还提供了一种一种基于AC自动机热词增强的语音识别系统的实施例,其包括:
语言模型模块,其融合有以字为单元的语言模型和以词为单位的语言模型;
解码图生成模块,其用于生成待识别语音对应的解码图;
AC自动机构建模块,其用于获取热词表,以语言模型模块中的字和词作为字典,对热词表中的每一个热词进行分词,得到基于热词的AC自动机;
令牌结构体模块,其用于存储解码图上的当前解码路径的所有结点指针和总代价、以及AC自动机上的当前匹配路径的结点指针和该结点的缩小代价值;
解码图搜索模块,其用于将解码图中当前结点输出的识别结果与基于热词的AC自动机动态匹配,若匹配成功,则对解码图中当前解码路径的总代价进行更新,使更新后的总代价降低;若匹配失败,则解码图中当前解码路径的总代价不变;
语音识别输出模块,其用于将解码图搜索模块中代价最小的路径作为目标路径,输出目标路径对应的语音识别结果。
本实施例中,所述的AC自动机构建模块包括:
分词单元,其用于以语言模型模块中的字和词作为字典,对热词表中的每一个热词进行分词处理,在分词过程中,首先以词为单位进行分词,若无法以词为单位,则再以字为单位进行分词;标记分词处理后的每一个词或者字在对应热词中的位置;
结点与指针构建模块,其用于根据分词单元的分词结果,将处于第j个位置的词或者字作为AC自动机的第j层的一个结点,若字典中存在完整的热词,则将该热词作为第一层的一个结点;将第j层结点的next指针连接第j+1层结点,有共同前缀的词对应的结点共用一个父结点,且第一层的所有结点连接根结点;若存在相同的分词,则将最长分词后缀的结点的fail指针指向其余最长分词后缀的结点。
本实施例中,所述的解码图搜索模块包括:
第一判断单元,其用于判断解码图当前结点的令牌结构体中是否存在AC自动机结点指针;
第一匹配单元,其用于根据第一判断单元的判断结果执行匹配过程;
若存在AC自动机结点a的指针,则将解码图当前结点的所有输出边与AC自动机结点a的next指针所指结点进行匹配;若不存在AC自动机结点指针,则将解码图当前结点的所有输出边与AC自动机第一层结点进行匹配;
第二判断单元,其用于判断第一匹配单元的匹配结果;
若存在或不存在AC自动机结点a的指针的情况下,第一匹配单元匹配成功,则计算AC自动机上的当前匹配路径的结点所对应的缩小代价值;将AC自动机中匹配的结点指针和缩小代价存储到解码图当前结点的令牌结构体中,并对输出边对应的当前解码路径的总代价进行更新;若匹配结果为热词的结尾,则清空令牌结构体中存储的AC自动机中匹配结点对应的历史缩小代价;若匹配结果不是热词的结尾,则保留所有令牌结构体中存储的内容并传递至解码图中待匹配的下一结点;
若存在AC自动机结点a的指针的情况下,第一匹配单元匹配失败,则从AC自动机结点a的fail指针所指结点的下一层结点进行匹配,恢复部分历史缩小代价,返回第二判断单元的初始判断过程,依然作为存在AC自动机结点a的指针情况进行判断;若AC自动机结点a不存在fail指针,则与AC自动机第一层结点进行匹配,返回第二判断单元的初始判断过程,作为不存在AC自动机结点a的指针情况进行判断;
若不存在AC自动机结点a的指针的情况下,第一匹配单元匹配失败,说明AC自动机中不存在与当前结点输出边的识别结果相匹配的热词,解码图中当前解码路径的总代价不变,将当前令牌结构体传递至解码图中待匹配的下一结点。
对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为解码图搜索模块,可以是或者也可以不是物理上分开的。另外,在本发明中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的模块或单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现,以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。
为了更加直观地展示本发明的实施效果,本实施例在专业领域数据集上进行了热词增强的实验,数据集大小为500个句子,热词为专业领域的专业名词。采用语音识别系统中普遍使用的字错率和实时率作为评价指标。
字错率=(错字数+少字数+多字数)/标注字数
实时率=语音识别耗费的时间/音频时长
表1 实验结果
从表1示出的实验结果可以看出,本发明的热词增强方法使语音识别系统在专业领域上获得了更好的识别率。而且,添加大量的热词也能够保证语音识别的速度所受影响极小。
以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (9)
1.一种基于AC自动机热词增强的语音识别方法,其特征在于,包括以下步骤:
步骤1:分别构建以字和词为单元的语言模型,将待识别语音作为语音识别系统的输入,由语言模型生成解码图;
步骤2:获取热词表,以语言模型中的字和词作为字典,对热词表中的每一个热词进行分词,构建基于热词的AC自动机;
步骤3:在语音识别的解码路径搜索过程中建立令牌结构体,用于存储解码图上的当前解码路径的所有结点指针和总代价、AC自动机上的当前匹配路径的结点指针和该结点的缩小代价值;令牌结构体随着解码图中当前时刻解码的结点进行传递;
将解码图中当前结点输出的识别结果与基于热词的AC自动机动态匹配,若匹配成功,则对解码图中当前解码路径的总代价进行更新,使更新后的总代价降低;若匹配失败,则解码图中当前解码路径的总代价不变;
解码图中的不同解码路径形成竞争机制,最终代价最小的路径为目标路径,输出语音识别结果。
2.根据权利要求1所述的基于AC自动机热词增强的语音识别方法,其特征在于,所述的AC自动机构建方法为:
步骤2.1:以语言模型中的字和词作为字典,对热词表中的每一个热词进行分词处理,在分词过程中,首先以词为单位进行分词,若无法以词为单位,则再以字为单位进行分词;标记分词处理后的每一个词或者字在对应热词中的位置;
步骤2.2:根据分词结果,将处于第j个位置的词或者字作为AC自动机的第j层的一个结点,若字典中存在完整的热词,则将该热词作为第一层的一个结点;将第j层结点的next指针连接第j+1层结点,有共同前缀的词对应的结点共用一个父结点,且第一层的所有结点连接根结点;遍历热词表中的所有热词;
步骤2.3:若存在相同的分词,则将最长分词后缀的结点的fail指针指向其余最长分词后缀的结点,得到构建好的AC自动机。
3.根据权利要求2所述的基于AC自动机热词增强的语音识别方法,其特征在于,所述的AC自动机中每一个结点对应一个预设的(0-1]之间的代价比例。
4.根据权利要求1所述的基于AC自动机热词增强的语音识别方法,其特征在于,解码图中的每一个结点有若干输出边,每一条边对应一种识别结果,在所述的动态匹配过程中,需要将解码图中当前结点的每一条输出边对应的识别结果分别与基于热词的AC自动机动态匹配,所述的动态匹配具体为:
首先,判断解码图当前结点的令牌结构体中是否存在AC自动机结点指针;
第一种情况,存在AC自动机结点指针,记为结点a,则将解码图当前结点的所有输出边与AC自动机结点a的next指针所指结点进行匹配;
第二种情况,不存在AC自动机结点指针,则将解码图当前结点的所有输出边与AC自动机第一层结点进行匹配;
之后,判断匹配结果;
若第一种情况或者第二种情况下匹配成功,则计算AC自动机上的当前匹配路径的结点所对应的缩小代价值;将AC自动机中匹配的结点指针和缩小代价存储到解码图当前结点的令牌结构体中,并对输出边对应的当前解码路径的总代价进行更新;若匹配结果为热词的结尾,则清空令牌结构体中存储的AC自动机中匹配结点对应的历史缩小代价;若匹配结果不是热词的结尾,则将令牌结构体传递至解码图中待匹配的下一结点;
若第一种情况下匹配失败,则从AC自动机结点a的fail指针所指结点的下一层结点进行匹配,恢复部分历史缩小代价,作为第一种情况判断匹配结果;若AC自动机结点a不存在fail指针,则与AC自动机第一层结点进行匹配,作为第二种情况判断匹配结果;
若第二种情况下匹配失败,说明AC自动机中不存在与当前结点输出边的识别结果相匹配的热词,解码图中当前解码路径的总代价不变,将当前令牌结构体传递至解码图中待匹配的下一结点。
5.根据权利要求4所述的基于AC自动机热词增强的语音识别方法,其特征在于,在动态匹配过程中建立缓存机制,所述的缓存机制用于存储解码图当前结点对应的输出边已匹配过的AC自动机结点指针;
在对解码图当前结点的输出边执行动态匹配之前,首先判断缓存中是否存在已匹配过的AC自动机结点指针,若存在,则直接获取已匹配的结果,若不存在,则自动搜索AC自动机。
6.根据权利要求4所述的基于AC自动机热词增强的语音识别方法,其特征在于,在动态匹配过程中,所述的恢复部分历史缩小代价具体为:
在令牌结构体中创建列表,用于存储每次匹配成功AC自动机中的一个结点时对应的缩小代价,得到历史缩小代价表[v_1, v_2,…, v_n],其中n表示当前在AC自动机中已经匹配到第n层的结点,v_n表示第n层结点对应的历史缩小代价;
当AC自动机中第n+1层的结点匹配失败时,则返回AC自动机中第n层结点的fail指针所指结点,假设所指结点处于AC自动机第m层,m<n,则恢复历史缩小代价表中的前n-m个代价值,更新当前解码路径的总代价。
7.一种基于AC自动机热词增强的语音识别系统,其特征在于,用于实现权利要求1所述的语音识别方法,所述的语音识别系统包括:
语言模型模块,其融合有以字为单元的语言模型和以词为单位的语言模型;
解码图生成模块,其用于生成待识别语音对应的解码图;
AC自动机构建模块,其用于获取热词表,以语言模型模块中的字和词作为字典,对热词表中的每一个热词进行分词,得到基于热词的AC自动机;
令牌结构体模块,其用于存储解码图上的当前解码路径的所有结点指针和总代价、以及AC自动机上的当前匹配路径的结点指针和该结点的缩小代价值;
解码图搜索模块,其用于将解码图中当前结点输出的识别结果与基于热词的AC自动机动态匹配,若匹配成功,则对解码图中当前解码路径的总代价进行更新,使更新后的总代价降低;若匹配失败,则解码图中当前解码路径的总代价不变;
语音识别输出模块,其用于将解码图搜索模块中代价最小的路径作为目标路径,输出目标路径对应的语音识别结果。
8.根据权利要求7所述的基于AC自动机热词增强的语音识别系统,其特征在于,所述的AC自动机构建模块包括:
分词单元,其用于以语言模型模块中的字和词作为字典,对热词表中的每一个热词进行分词处理,在分词过程中,首先以词为单位进行分词,若无法以词为单位,则再以字为单位进行分词;标记分词处理后的每一个词或者字在对应热词中的位置;
结点与指针构建模块,其用于根据分词单元的分词结果,将处于第j个位置的词或者字作为AC自动机的第j层的一个结点,若字典中存在完整的热词,则将该热词作为第一层的一个结点;将第j层结点的next指针连接第j+1层结点,有共同前缀的词对应的结点共用一个父结点,且第一层的所有结点连接根结点;若存在相同的分词,则将最长分词后缀的结点的fail指针指向其余最长分词后缀的结点。
9.根据权利要求7所述的基于AC自动机热词增强的语音识别系统,其特征在于,所述的解码图搜索模块包括:
第一判断单元,其用于判断解码图当前结点的令牌结构体中是否存在AC自动机结点指针;
第一匹配单元,其用于根据第一判断单元的判断结果执行匹配过程;
若存在AC自动机结点a的指针,则将解码图当前结点的所有输出边与AC自动机结点a的next指针所指结点进行匹配;若不存在AC自动机结点指针,则将解码图当前结点的所有输出边与AC自动机第一层结点进行匹配;
第二判断单元,其用于判断第一匹配单元的匹配结果;
若第一匹配单元匹配成功,则计算AC自动机上的当前匹配路径的结点所对应的缩小代价值;将AC自动机中匹配的结点指针和缩小代价存储到解码图当前结点的令牌结构体中,并对输出边对应的当前解码路径的总代价进行更新;若匹配结果为热词的结尾,则清空令牌结构体中存储的AC自动机中匹配结点对应的历史缩小代价;若匹配结果不是热词的结尾,则将令牌结构体传递至解码图中待匹配的下一结点;
若存在AC自动机结点a的指针的情况下,第一匹配单元匹配失败,则从AC自动机结点a的fail指针所指结点的下一层结点进行匹配,恢复部分历史缩小代价,返回第二判断单元的初始判断过程,依然作为存在AC自动机结点a的指针情况进行判断;若AC自动机结点a不存在fail指针,则与AC自动机第一层结点进行匹配,返回第二判断单元的初始判断过程,作为不存在AC自动机结点a的指针情况进行判断;
若不存在AC自动机结点a的指针的情况下,第一匹配单元匹配失败,说明AC自动机中不存在与当前结点输出边的识别结果相匹配的热词,解码图中当前解码路径的总代价不变,将当前令牌结构体传递至解码图中待匹配的下一结点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210103668.3A CN114187902A (zh) | 2022-01-28 | 2022-01-28 | 一种基于ac自动机热词增强的语音识别方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210103668.3A CN114187902A (zh) | 2022-01-28 | 2022-01-28 | 一种基于ac自动机热词增强的语音识别方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114187902A true CN114187902A (zh) | 2022-03-15 |
Family
ID=80545819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210103668.3A Pending CN114187902A (zh) | 2022-01-28 | 2022-01-28 | 一种基于ac自动机热词增强的语音识别方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114187902A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117475998A (zh) * | 2023-12-28 | 2024-01-30 | 慧言科技(天津)有限公司 | 基于lora微调辅助的语音唤醒快速自适应方法 |
-
2022
- 2022-01-28 CN CN202210103668.3A patent/CN114187902A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117475998A (zh) * | 2023-12-28 | 2024-01-30 | 慧言科技(天津)有限公司 | 基于lora微调辅助的语音唤醒快速自适应方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3767516A1 (en) | Named entity recognition method, apparatus, and computer-readable recording medium | |
CN106537370B (zh) | 在存在来源和翻译错误的情况下对命名实体鲁棒标记的方法和系统 | |
CN107526967B (zh) | 一种风险地址识别方法、装置以及电子设备 | |
JP3152871B2 (ja) | ラティスをキーとした検索を行う辞書検索装置および方法 | |
US20040243408A1 (en) | Method and apparatus using source-channel models for word segmentation | |
CN110543574A (zh) | 一种知识图谱的构建方法、装置、设备及介质 | |
WO2016127677A1 (zh) | 地址结构化方法及装置 | |
WO2012095696A2 (en) | Text segmentation with multiple granularity levels | |
CN108197116B (zh) | 一种中文文本分词的方法、装置、分词设备及存储介质 | |
WO2008107305A2 (en) | Search-based word segmentation method and device for language without word boundary tag | |
JP2002215619A (ja) | 翻訳文書からの翻訳文抽出方法 | |
CN111444330A (zh) | 提取短文本关键词的方法、装置、设备及存储介质 | |
WO2016138773A1 (zh) | 基于图的地址知识处理方法及装置 | |
CN109117470B (zh) | 一种评价文本信息的评价关系提取方法及装置 | |
CN108875743B (zh) | 一种文本识别方法及装置 | |
CN109657053A (zh) | 多文本摘要生成方法、装置、服务器及存储介质 | |
CN113177412A (zh) | 基于bert的命名实体识别方法、系统、电子设备及存储介质 | |
CN111832299A (zh) | 一种中文分词系统 | |
CN113326702B (zh) | 语义识别方法、装置、电子设备及存储介质 | |
JP3992348B2 (ja) | 形態素解析方法および装置、並びに日本語形態素解析方法および装置 | |
US20230153534A1 (en) | Generating commonsense context for text using knowledge graphs | |
US20230094730A1 (en) | Model training method and method for human-machine interaction | |
CN113033204A (zh) | 信息实体抽取方法、装置、电子设备和存储介质 | |
CN107256212A (zh) | 中文搜索词智能切分方法 | |
CN110020429B (zh) | 语义识别方法及设备 |
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 |