CN109087645B - 一种解码网络生成方法、装置、设备及可读存储介质 - Google Patents
一种解码网络生成方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN109087645B CN109087645B CN201811244331.4A CN201811244331A CN109087645B CN 109087645 B CN109087645 B CN 109087645B CN 201811244331 A CN201811244331 A CN 201811244331A CN 109087645 B CN109087645 B CN 109087645B
- Authority
- CN
- China
- Prior art keywords
- level network
- node
- phoneme
- slot
- triphone
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000003780 insertion Methods 0.000 claims description 43
- 230000037431 insertion Effects 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 18
- 230000011218 segmentation Effects 0.000 claims description 13
- 238000002372 labelling Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 235000019580 granularity Nutrition 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010891 electric arc Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research 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/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- 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/26—Speech to text systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Acoustics & Sound (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
- Machine Translation (AREA)
Abstract
本申请实施例提供了一种解码网络生成方法、装置、设备及可读存储介质,本申请将可枚举的受限说法通过编写语法的形式表达,并获取该形成的语法文本,语法文本中包含至少一槽,与每一槽对应的至少一词条,以及每一槽的位置信息,进一步通过解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络,用于对本地语音识别过程中,受限说法的词条进行识别。进一步,由于本申请获取的语法文本中包含每一槽的位置信息,且可以根据槽的位置信息及槽对应的词条来生成解码网络,后续若需要新增词条,可以根据该新增词条所属的槽的位置信息,便捷的将新增词条插入解码网络中,实现解码网络方便、快速的更新。
Description
技术领域
本申请涉及语音识别技术领域,更具体地说,涉及一种解码网络生成方法、装置、设备及可读存储介质。
背景技术
随着移动互联网时代的来临,语音识别作为人机交互的重要入口,已经受到越来越多公司和厂商的重视,特别是在嵌入式端应用领域,语音交互已经成为一种必须的功能手段。
相比于常规的语音识别,对于本地语音识别有其独有的特点,即本地语音识别的需求集中在命令词等受限说法上,其涵盖了日常生活和工作的许多方面。本地语音识别需要针对可枚举的受限说法进行识别,为此需要预先构建可适用于本地语音识别的解码网络,以便对可枚举的受限说法进行识别。
发明内容
有鉴于此,本申请提供了一种解码网络生成方法、装置、设备及可读存储介质,用于生成适用于本地语音识别的解码网络,从而实现对可枚举的受限说法进行识别的目的。
为了实现上述目的,现提出的方案如下:
一种解码网络生成方法,包括:
获取语法文本,所述语法文本中包含至少一槽,与每一槽对应的至少一词条,以及每一槽的位置信息;
解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络。
优选地,槽的位置信息包括槽在词级网络中的节点位置;所述解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络,包括:
解析所述语法文本以生成词级网络,所述词级网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应槽的词条的分词结果,每一有向弧上标注一个分词;
将所述词级网络中每一有向弧上标注的分词替换为分词对应的发音信息;
根据每一有向弧上标注的发音信息所包含的语音单元,将所述词级网络扩展为语音单元级网络,所述语音单元级网络中每一有向弧上标注有一个语音单元,所述语音单元级网络作为所述解码网络。
优选地,所述语音单元为音素,所述语音单元级网络为音素级网络,该方法还包括:
根据所述音素级网络中每一有向弧上标注的音素,将所述音素级网络扩展为三音素级网络,所述三音素级网络中每一有向弧上标注有按照预设的三音素拼接规则所拼接成的三音素,所述三音素级网络作为所述解码网络。
优选地,所述解析所述语法文本以生成词级网络,包括:
解析所述语法文本以生成初步的词级网络,所述初步的词级网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应槽的词条,每一有向弧上标注一个词条;
针对所述初步的词级网络中每一有向弧,将其拆分成串联的n个有向弧,n为所述有向弧上标注的词条的分词数量,n个分词依序标注在拆分后的n个有向弧上。
优选地,所述解析所述语法文本以生成初步的词级网络,包括:
解析所述语法文本以生成槽网络,所述槽网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应的槽;
根据所述语法文本中包含的每一槽对应的词条,将所述槽网络扩展为初步的词级网络,初步的词级网络为对槽网络中每一槽填充对应的词条后的结果。
优选地,还包括:
记录每一槽在所述音素级网络中的左右节点位置,以及,
记录每一槽在所述三音素级网络中的左右节点位置。
优选地,还包括:
响应对指定槽添加目标词条的指令,在所述音素级网络中所述指定槽对应节点位置间添加所述目标词条的音素;
根据添加目标词条的音素后的音素级网络,在所述三音素级网络中插入所述目标词条的音素。
优选地,所述响应对指定槽添加目标词条的指令,在所述音素级网络中所述指定槽对应节点位置间添加所述目标词条的音素,包括:
在词典中查找所述目标词条的音素串;
确定所述指定槽在所述音素级网络中对应的左右节点位置;
在所述音素级网络中,所述指定槽的左右节点位置间插入所述目标词条的音素串。
优选地,所述在所述音素级网络中,所述指定槽的左右节点位置间插入所述目标词条的音素串,包括:
若所述目标词条的音素串包含的音素个数大于1,则获取所述音素级网络当前最大节点编号;
在所述音素级网络中所述指定槽的左右节点位置间插入新节点,以在所述指定槽的左节点、插入的新节点和所述指定槽的右节点构成的节点串的有向弧上标注所述音素串,插入的新节点从所述音素级网络当前最大节点编号之后开始编号。
优选地,还包括:
记录所述三音素级网络中每一节点的身份信息,所述身份信息包括节点的出弧上前两个音素在音素级网络中的位置信息;
所述根据添加目标词条的音素后的音素级网络,在所述三音素级网络中插入所述目标词条的音素,包括:
获取所述指定槽在所述三音素网络中的左节点集合和右节点集合;
遍历所述左节点集合中每一节点,将当前遍历到节点作为待处理节点,获取所述待处理节点的身份信息;
从所述目标词条的音素串中,获取首个处理状态为未处理的音素在音素级网络中的位置信息,其中,音素被获取后其处理状态由未处理变更为已处理;
在三音素级网络中,为所述待处理节点新增一条出弧,弧上标注由所述待处理节点的身份信息中位置信息对应的两个音素,及获取的首个未处理的音素依序组成的三音素;
在三音素级网络中查找是否存在与新增的出弧的终止节点的身份信息相同的节点;
若存在,则返回存在的节点,作为新增的出弧的终止节点;
若不存在,则新增一个节点作为新增的出弧的终止节点,将新增的出弧上标注的后两个音素在音素级网络中的位置信息作为所述新增的节点的身份信息,所述新增的节点从所述三音素级网络当前最大节点编号之后开始编号,且所述三音素级网络当前最大节点编号自增1;
判断所述目标词条的音素串中是否还存在未处理的音素;
若是,将所述新增的出弧的终止节点作为新的待处理节点,返回至所述获取所述待处理节点的身份信息的步骤;
若否,将所述新增的出弧的终止节点添加至所述指定槽在所述三音素级网络中的右节点集合中,并根据所述指定槽在音素级网络中的右节点的出弧,在所述三音素级网络中扩展所述新增的出弧的终止节点的出弧。
一种解码网络生成装置,包括:
语法文本获取单元,用于获取语法文本,所述语法文本中包含至少一槽,与每一槽对应的至少一词条,以及每一槽的位置信息;
语法文本解析单元,用于解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络。
优选地,槽的位置信息包括槽在词级网络中的节点位置;所述语法文本解析单元包括:
词级网络生成单元,用于解析所述语法文本以生成词级网络,所述词级网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应槽的词条的分词结果,每一有向弧上标注一个分词;
发音信息替换单元,用于将所述词级网络中每一有向弧上标注的分词替换为分词对应的发音信息;
语音单元级网络生成单元,用于根据每一有向弧上标注的发音信息所包含的语音单元,将所述词级网络扩展为语音单元级网络,所述语音单元级网络中每一有向弧上标注有一个语音单元,所述语音单元级网络作为所述解码网络。
优选地,所述语音单元为音素,所述语音单元级网络为音素级网络,该装置还包括:
三音素级网络生成单元,用于根据所述音素级网络中每一有向弧上标注的音素,将所述音素级网络扩展为三音素级网络,所述三音素级网络中每一有向弧上标注有按照预设的三音素拼接规则所拼接成的三音素,所述三音素级网络作为所述解码网络。
优选地,所述词级网络生成单元包括:
第一词级网络生成子单元,用于解析所述语法文本以生成初步的词级网络,所述初步的词级网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应槽的词条,每一有向弧上标注一个词条;
第二词级网络生成子单元,用于针对所述初步的词级网络中每一有向弧,将其拆分成串联的n个有向弧,n为所述有向弧上标注的词条的分词数量,n个分词依序标注在拆分后的n个有向弧上。
优选地,所述第一词级网络生成子单元包括:
槽网络生成单元,用于解析所述语法文本以生成槽网络,所述槽网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应的槽;
词条填充单元,用于根据所述语法文本中包含的每一槽对应的词条,将所述槽网络扩展为初步的词级网络,初步的词级网络为对槽网络中每一槽填充对应的词条后的结果。
优选地,还包括:
第一槽位置记录单元,用于记录每一槽在所述音素级网络中的左右节点位置,以及,
第二槽位置记录单元,用于记录每一槽在所述三音素级网络中的左右节点位置。
优选地,还包括:
音素级网络插入单元,用于响应对指定槽添加目标词条的指令,在所述音素级网络中所述指定槽对应节点位置间添加所述目标词条的音素;
三音素级网络插入单元,用于根据添加目标词条的音素后的音素级网络,在所述三音素级网络中插入所述目标词条的音素。
优选地,所述音素级网络插入单元包括:
音素串查找单元,用于在词典中查找所述目标词条的音素串;
指定槽位置确定单元,用于确定所述指定槽在所述音素级网络中对应的左右节点位置;
音素串插入单元,用于在所述音素级网络中,所述指定槽的左右节点位置间插入所述目标词条的音素串。
优选地,所述音素串插入单元包括:
音素级网络最大节点获取单元,用于若所述目标词条的音素串包含的音素个数大于1,则获取所述音素级网络当前最大节点编号;
节点插入单元,用于在所述音素级网络中所述指定槽的左右节点位置间插入新节点,以在所述指定槽的左节点、插入的新节点和所述指定槽的右节点构成的节点串的有向弧上标注所述音素串,插入的新节点从所述音素级网络当前最大节点编号之后开始编号。
优选地,还包括:
节点身份信息记录单元,用于记录所述三音素级网络中每一节点的身份信息,所述身份信息包括节点的出弧上前两个音素在音素级网络中的位置信息;
所述三音素级网络插入单元包括:
第一三音素级网络插入子单元,用于获取所述指定槽在所述三音素网络中的左节点集合和右节点集合;
第二三音素级网络插入子单元,用于遍历所述左节点集合中每一节点,将当前遍历到节点作为待处理节点,获取所述待处理节点的身份信息;
第三三音素级网络插入子单元,用于从所述目标词条的音素串中,获取首个处理状态为未处理的音素在音素级网络中的位置信息,其中,音素被获取后其处理状态由未处理变更为已处理;
第四三音素级网络插入子单元,用于在三音素级网络中,为所述待处理节点新增一条出弧,弧上标注由所述待处理节点的身份信息中位置信息对应的两个音素,及获取的首个未处理的音素依序组成的三音素;
第五三音素级网络插入子单元,用于在三音素级网络中查找是否存在与新增的出弧的终止节点的身份信息相同的节点;
第六三音素级网络插入子单元,用于在所述第五三音素级网络插入子单元的查找结果为存在时,返回存在的节点,作为新增的出弧的终止节点;
第七三音素级网络插入子单元,用于在所述第五三音素级网络插入子单元的查找结果为不存在时,新增一个节点作为新增的出弧的终止节点,将新增的出弧上标注的后两个音素在音素级网络中的位置信息作为所述新增的节点的身份信息,所述新增的节点从所述三音素级网络当前最大节点编号之后开始编号,且所述三音素级网络当前最大节点编号自增1;
第八三音素级网络插入子单元,用于判断所述目标词条的音素串中是否还存在未处理的音素;
第九三音素级网络插入子单元,用于在所述第八三音素级网络插入子单元的判断结果为是时,将所述新增的出弧的终止节点作为新的待处理节点,返回至所述获取所述待处理节点的身份信息的步骤;
第十三音素级网络插入子单元,用于在所述第八三音素级网络插入子单元的判断结果为否时,将所述新增的出弧的终止节点添加至所述指定槽在所述三音素级网络中的右节点集合中,并根据所述指定槽在音素级网络中的右节点的出弧,在所述三音素级网络中扩展所述新增的出弧的终止节点的出弧。
一种解码网络生成设备,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如上所述的解码网络生成方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的解码网络生成方法的各个步骤。
从上述的技术方案可以看出,本申请实施例提供的解码网络生成方法,将可枚举的受限说法通过编写语法的形式表达,并获取该形成的语法文本,语法文本中包含至少一槽,与每一槽对应的至少一词条,以及每一槽的位置信息,进一步通过解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络,用于对本地语音识别过程中,受限说法的词条进行识别。
进一步,由于本申请获取的语法文本中包含每一槽的位置信息,且可以根据槽的位置信息及槽对应的词条来生成解码网络,后续若需要新增词条,可以根据该新增词条所属的槽的位置信息,便捷的将新增词条插入解码网络中,实现解码网络方便、快速的更新。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示例了一种基于BNF规则的命令词文法规则示意图;
图2为本申请实施例公开的一种解码网络生成方法流程图;
图3示例了一种语法文本示意图;
图4示例了另一种语法文本示意图;
图5示例了一种槽网络示意图;
图6示例了一种初步的词级网络示意图;
图7示例了一种词级网络示意图;
图8示例了另一种词级网络示意图;
图9示例了又一种语法文本示意图;
图10示例了又一种词级网络示意图;
图11示例了又一种词级网络示意图;
图12示例了一种音素级网络示意图;
图13示例了一种三音素级网络示意图;
图14示例了一种插入目标词条后的音素级网络示意图;
图15示例了一种插入目标词条后的三音素级网络示意图;
图16为本申请实施例公开的一种解码网络生成装置结构示意图;
图17为本申请实施例公开的一种解码网络生成设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了实现生成用于本地语音识别的解码网络,本案发明人首先提出了一种基于BNF(Backus-Naur Form)巴克斯范式规则的命令词语法文本,参见图1,其示例了一种基于BNF规则的命令词文法规则示意图。
其中,<>代表槽,可以定义若干不同名称的槽,每个槽可以有多种词条,不同词条之间通过“|”分开。并且,通过<start>之后的“|[]{}”等抽象符号集来组织各个槽。每个槽通过hash运算计算得到唯一的hash值,并在磁盘上存储hash值与该hash值对应槽的所有词条。通过解析图1示例的语法文本,可以生成由各槽的词条的发声信息组成的解码网络,用于对可枚举的受限说法进行识别。
但是,进一步使用发现,提出的上述基于BNF规则的命令词语法文本的格式过于复杂,尤其是<start>之后的“|[]{}”等抽象符号集的组合意义非常容易出错,对于初学者不熟悉BNF相关规则,很容易出错,学习门槛过高。并且,当需要对某个槽增加新的词条时,需要对该槽的内容进行整体替换,即将更新后的槽的词条全部覆盖掉磁盘中该槽的原有词条,这种全量更新方式更新效率过低。
基于上述痛点,本案发明人进一步研究,最终提供了一种全新的解决方案,能够实现简单快速的编辑语法文本,以及便捷的将新增词条插入解码网络中,实现解码网络方便、快速的更新。本申请方案可以应用于具备数据处理能力的电子设备,如智能终端、服务器、云平台等。接下来结合附图2,对本申请的解码网络生成方案进行介绍,如图2所示,该方法包括:
步骤S100、获取语法文本,该语法文本包含至少一槽,与每一槽对应的至少一词条,以及每一槽的位置信息。
具体地,本申请预先规定了语法文本生成规则,即该语法文本需要包含至少一槽,同时还要包含每一槽对应的至少一词条,以及,每一槽的位置信息。其中,不同槽可以对应不同的词条。槽的位置信息用于指示在生成解码网络过程,各槽对应的词条的标注位置。基于该槽的位置信息,能够确定在生成的最终的解码网络中每一槽的位置。
可以理解的是,语法文本可以按照预先设定的规则编写,其中槽的表示方式可以预先设定,如使用<>表示槽,或使用其它符号标记。每一槽对应的各词条可以按照预先设定的方式表示,如同一槽的不同词条之间通过“|”、“,”其它符号分开。每一槽的位置信息可以使用网络中不同节点进行限定,如使用槽所在两个节点的节点编号来表示槽的位置信息,或采用其他方式表示。显然,语法文本的编辑格式本申请不做严格限定,可以由用户设定,只要保证语法文本包含槽,每一槽对应的至少一词条,以及每一槽的位置信息即可。
参见图3,其示例了一种语法文本示意图。
定义生成的语法文本的命名为ABC1.0。图3示例了一种语法文本的格式规范,如下:
以#开头的行表示注释行;
以<开头的行表示槽所在的行,可以从中提取槽名称和对应的词条列表,多个词条之间通过|隔开;
以数字开头的行表示槽的位置信息,从中可提取槽的左节点位置编号和右节点位置编号,以及槽的名称。
步骤S110、解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络。
基于上述介绍的语法文本,可以对其进行解析,从而根据语法文本中每一槽的位置信息及每一槽对应的各词条,生成解码网络,作为本地语音识别使用。
本申请实施例提供的解码网络生成方法,将可枚举的受限说法通过编写语法的形式表达,并获取该形成的语法文本,语法文本中包含至少一槽,与每一槽对应的至少一词条,以及每一槽的位置信息,进一步通过解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络,用于对本地语音识别过程中,受限说法的词条进行识别。
进一步,由于本申请获取的语法文本中包含每一槽的位置信息,且可以根据槽的位置信息及槽对应的词条来生成解码网络,后续若需要新增词条,可以根据该新增词条所属的槽的位置信息,便捷的将新增词条插入解码网络中,实现解码网络方便、快速的更新。
接下来的实施例中,介绍上述步骤S110,解析所述语法文本以生成解码网络的过程。
一种可选的方式下,可以基于语法文本先生成词级网络,进一步将词级网络中分词替换为对应的发音信息,以得到语音单元级网络,作为解码网络。
对于语法文本中槽的位置信息,其可以是槽在词级网络中的节点位置。步骤S110的过程具体可以包括:
A1、解析所述语法文本以生成词级网络。
其中,所述词级网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应槽的词条的分词结果,每一有向弧上标注一个分词。
可选的,本步骤可以按照如下方式实现:
A11、解析所述语法文本以生成初步的词级网络,所述初步的词级网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应槽的词条,每一有向弧上标注一个词条。
具体地,在生成初步的词级网络之前,可以先根据语法文本生成槽网络,进而根据槽对应的词条,扩展为初步的词级网络。该过程可以包括:
A111、解析所述语法文本以生成槽网络,所述槽网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应的槽。
参照图4,其示例了另一种语法文本示意图。
其中,包含两个槽,分别为<who>和<something>,第一个槽对应的词条包括“我是”,第二槽对应的词条包括:“中国人”、“安徽人”。第一个槽的位置为节点编号1-2之间,第二个槽的位置为节点编号2-3之间。
则解析图4示例的语法文本,生成的槽网络可以如图5所示。
在节点1和2之间的有向弧上,标注槽<who>,在节点2和3之间的有向弧上,标注槽<something>。
进一步可选的,可以在槽网络的开头和结尾添加节点,由添加的节点和最近邻节点之间的有向弧上标注静音槽<s>。通过引入静音槽<s>,模拟用户在说话时开头和结尾所存在的停顿静音。如图5示例的,在槽网络开头添加节点1,结尾添加节点4,由节点1和节点2之间,以及节点3和节点4之间的有向弧上标注静音槽<s>。
A112、根据所述语法文本中包含的每一槽对应的词条,将所述槽网络扩展为初步的词级网络,初步的词级网络为对槽网络中每一槽填充对应的词条后的结果。
具体地,仍以上述图4示例的语法文本为例,在图5示例的槽网络的基础上,对每个槽添加对应的词条,结果如图6所示。
其中,静音槽<s>对应的词条可以默认设置为sil。槽<who>对应的词条为“我是”,槽<something>对应的词条有两个,为了保证一条有向弧上标注一个词条,可以从节点2和3之间引入两条有向弧,分别标注“中国人”和“安徽人”。
A12、针对所述初步的词级网络中每一有向弧,将其拆分成串联的n个有向弧,n为所述有向弧上标注的词条的分词数量,n个分词依序标注在拆分后的n个有向弧上。
以上述图6示例的初步的词级网络为例,针对其中每一有向弧,按照其上标注的词条的分词数量,进行有向弧的拆分。其中节点1和2之间的词条为“我是”,可以将其拆分为“我”和“是”两个分词,因此可以将节点1和2之间的有向弧拆分为串联的两个有向弧,依序标注“我”和“是”。同理,对初步的词级网络中节点2和3之间的有向弧进行拆分,最终拆分后的结果如图7所示。
A2、将所述词级网络中每一有向弧上标注的分词替换为分词对应的发音信息。
具体地,可以查找已有的分词与发音信息的对应关系,从而确定词级网络中每一有向弧上标注的分词对应的发音信息,将词级网络中分词替换为对应的发音信息。
以图7示例的词级网络为例,将其中各分词替换为对应的发音信息,结果如图8所示。
需要说明的是,若存在分词的发音有多种的情况,则需要将分词的每一种发音都进行标注,定义分词的发音有n种,则在分词所在弧对应的两个节点之间,新增n-1条弧,该新增的n-1条弧和已有的1条弧共计n条弧,分别标注分词的n种发音信息,保证每条弧上标注分词的一种发音信息。
为了便于理解,通过一个具体示例说明:
针对图9示例的语法文本示意图,其词级网络如图10所示。其中,分词“好”和“吗”都是多音字,以“好”为例,其存在四种发音信息,分别为“sil-h-ao4”、“h-ao4”、“sil-h-ao3”、“h-ao3”。则针对图10示例的词级网络,将其中的分词替换为对应的发音信息之后,得到结果如图11所示。图11中,分词“好”和“吗”均替换为对应的多种发音信息,且每一种发音信息标注在单独的一条有向弧上。
A3、根据每一有向弧上标注的发音信息所包含的语音单元,将所述词级网络扩展为语音单元级网络,所述语音单元级网络中每一有向弧上标注有一个语音单元,所述语音单元级网络作为所述解码网络。
其中,发音信息可以按照不同粒度划分为不同的语音单元,如语音单元可以是音素,或音节等粒度。
本步骤中,将词级网络中每一有向弧上标注的发音信息,按照语音单元为粒度进行划分,从而将词级网络扩展成语音单元级网络,该语音单元级网络中每一有向弧上标注一个语音单元。
在将词级网络扩展成语音单元级网络的同时,进一步可以记录每一槽在语音单元级网络中的左右节点位置。
接下来的实施例中,以语音单元为音素进行说明,对应的语音单元级网络为音素级网络。
以图11示例的词级网络为例,将其扩展为音素级网络后的结果如图12所示。
同时,可以记录槽<who>在音素级网络中的左节点位置为1,右节点位置为3;槽<feel>在音素级网络中的左节点位置为3,右节点位置为6;槽<tone>在音素级网络中的左节点位置为6,右节点位置为13。
需要说明的是,根据语音识别引擎的不同原理,可以将音素级网络作为语音识别的解码网络。进一步地,现有的部分语音识别引擎在进行识别时,是以三音素为单元进行识别的,因此本实施例可以进一步将上述音素级网络扩展为三音素级网络,作为解码网络。其中,三音素由连续的三个单音素组成,其考虑了上下文的关系,从而提高了语音识别的准确度。三音素可以表示为如t-iy+n的形式。
在上述实施例的基础上,本申请实施例还可以进一步将音素级网络扩展为三音素级网络。具体地:
可以根据所述音素级网络中每一有向弧上标注的音素,将所述音素级网络扩展为三音素级网络,所述三音素级网络中每一有向弧上标注有按照预设的三音素拼接规则所拼接成的三音素。扩展后得到的三音素级网络可以作为解码网络。
如图13,其示例了对图12中的音素级网络扩展后的三音素级网络示意图。
进一步地,在将音素级网络扩展为三音素级网络的同时,还可以记录每一槽在三音素级网络中的左右节点位置。
以图13为例,可以记录槽<who>在三音素级网络中的左节点位置为0,右节点位置为2;槽<feel>在三音素级网络中的左节点位置为2,右节点位置包括:16、10、8、11;槽<tone>在三音素级网络中的左节点位置包括:16、10、8、11,右节点位置包括:35、26、28、33。
扩展后的三音素级网络中,槽的左右节点不再唯一,其数目由相应节点在音素级网络中入弧数目决定。节点的入弧可以理解为,指向节点的有向弧。
扩展后的三音素级网络中,槽的每一左节点或每一右节点的出弧数目都等于相应节点在音素级网络中的出弧数目。以图13中槽<feel>在三音素级网络中的右节点16、10、8、11为例,其在图12示例的音素级网络中相应的节点为节点6,节点6的出弧数目有4条,因此三音素级网络中的节点16、10、8、11中每一个节点的出弧数目也是4条。
再进一步的,还可以记录三音素级网络中每一节点的身份信息,身份信息包括节点的出弧上前两个音素在音素级网络中的位置信息。其中,节点的出弧是指从节点发出的有向弧。
通过记录三音素级网络中每一节点的身份信息,可以便于后续对三音素级网络进行更新时使用。
接下来的实施例中,介绍一种对三音素级网络进行更新的方式。具体地,以向三音素级网络中插入新词条的更新方式为例进行说明。
本申请示例的方案还可以包括:
B1、响应对指定槽添加目标词条的指令,在所述音素级网络中所述指定槽对应节点位置间添加所述目标词条的音素。
B2、根据添加目标词条的音素后的音素级网络,在所述三音素级网络中插入所述目标词条的音素。
具体地,当需要对某一个槽的词条进行插入更新时,可以下发对指定槽添加目标词条的指令。本实施例可以响应该指令,首先在音素级网络中指定槽对应节点位置间添加目标词条的音素。进而,根据添加后的音素级网络,在三音素级网络中插入目标词条的音素。
首先,介绍B1的实现过程,具体可以包括:
B11、在词典中查找所述目标词条的音素串。
B12、确定所述指定槽在所述音素级网络中对应的左右节点位置。
具体地,前述实施例中已经介绍过,在生成音素级网络的过程中,可以同时记录每一槽在音素级网络中的左右节点位置。基于此,本步骤中可以查询记录,从而确定指定槽在音素级网络中对应的左右节点位置。
B13、在所述音素级网络中,所述指定槽的左右节点位置间插入所述目标词条的音素串。
其中,音素级网络中每一有向弧上标注一个音素,因此可以判断目标词条的音素串中包含的音素的个数是否大于1,如果不大于1,也即仅有一个音素,则可以在指定槽的左右节点位置之间新增一条有向弧,并在该新增的有向弧上标注目标词条的音素。
进一步,如果音素串中包含的音素的个数大于1,则说明需要在音素级网络中增加新的节点。为了保证网络中节点编号的一致性,可以获取音素级网络当前最大节点编号。进一步,在音素级网络中指定槽的左右节点位置间插入新节点,以在指定槽的左节点、插入的新节点和指定槽的右节点构成的节点串的有向弧上标注目标词条的音素串,且插入的新节点从前述获取的音素级网络当前最大节点编号之后开始编号。
可以理解的是,定义上述插入新节点的个数为x,则指定槽的左节点、插入的新节点和指定槽的右节点构成的节点串共包含x+1条有向弧,该x+1应等于目标词条的音素串中包含音素的个数,也即,插入新节点的个数比目标词条的音素串中包含音素的个数少1。
需要说明的是,如果目标词条存在多个音素串,则针对每个音素串均进行上述处理,最终相当于在指定槽的左右节点位置间插入多条节点路径,且插入节点路径的条数等于目标词条的音素串的个数。
接下来通过一个示例说明:
假设需要在图12示例的音素级网络中,槽<feel>对应的词条列表中新增目标词条“不好”。
首先,查找目标词条“不好”的音素串为:“b u4 h ao3”。
进一步,确定槽<feel>在音素级网络中对应的左节点为3和右节点为6。以及,音素级网络当前最大节点编号为20。
再进一步,在音素级网络中节点3和6之间插入4-1=3个新节点,新节点编号从21开始递增,即插入的3个新节点分别为节点21-23。由节点3、节点21-23、节点6依序连接有向弧,且在有向弧上分别标注:b、u4、h、ao3,最终得到的插入后的音素级网络如图14所示。
进一步,介绍上述B2的实现过程。为了实现B2向三音素级网络中插入目标词条的音素的过程,需要参考前述已经介绍的,在生成三音素级网络时所记录的三音素级网络中每一节点的身份信息,也即节点的出弧上前两个音素在音素级网络中的位置信息。接下来,对B2的实现过程进行展开说明,具体可以包括:
B21、获取所述指定槽在所述三音素网络中的左节点集合和右节点集合。
具体地,前述实施例中已经介绍过,在生成三音素级网络的过程中,可以同时记录每一槽在三音素级网络中的左右节点位置。基于此,本步骤中可以查询记录,从而确定指定槽在三音素级网络中对应的左右节点位置。
B22、遍历所述左节点集合中每一节点,将当前遍历到节点作为待处理节点。
B23、获取所述待处理节点的身份信息。
B24、从所述目标词条的音素串中,获取首个处理状态为未处理的音素在音素级网络中的位置信息。
其中,音素被获取后其处理状态由未处理变更为已处理。也即,音素串中的各音素的初始状态为未处理,当某个音素被获取后,其处理状态变更为已处理。也即,每执行一次B24,音素串中一个音素由未处理变更为已处理。且,音素串中已处理的音素前的音素均为已处理状态。
B25、在三音素级网络中,为所述待处理节点新增一条出弧,弧上标注由所述待处理节点的身份信息中位置信息对应的两个音素,及获取的首个未处理的音素依序组成的三音素。
具体地,待处理节点的身份信息包含待处理节点的出弧上前两个音素在音素级网络中的位置信息,因此可以基于该前两个音素在音素级网络中的位置信息,在音素级网络中查找该前两个音素,并将查找到的该前两个音素及上一步骤获取的首个未处理的音素,依序组成三音素,标注在待处理节点新增的出弧上。
B26、在三音素级网络中查找是否存在与新增的出弧的终止节点的身份信息相同的节点;若存在,执行B27,若不存在,执行B28。
具体地,上一步骤中从待处理节点新增一条出弧,对于该出弧,其终止节点可能在三音素级网络中已经存在,也可能不存在,为此本步骤中需要查找三音素级网络中是否存在与新增的出弧的终止节点的身份信息相同的节点,若存在,则说明出弧的终止节点已经存在于三音素级网络中,若不存在,则说明出弧的终止节点不存在于三音素级网络中,需要新增一个节点。
B27、返回存在的节点,作为新增的出弧的终止节点。
B28、新增一个节点作为新增的出弧的终止节点,将新增的出弧上标注的后两个音素在音素级网络中的位置信息作为所述新增的节点的身份信息,所述新增的节点从所述三音素级网络当前最大节点编号之后开始编号,且所述三音素级网络当前最大节点编号自增1。
具体地,在B26判断不存在时,可以首先获取三音素级网络当前最大节点编号,进而对于新增的节点从该三音素级网络当前最大节点编号之后开始编号,且三音素级网络当前最大节点编号自增1。
B29、判断所述目标词条的音素串中是否还存在未处理的音素;若是,执行B210,若否,执行B211。
B210、将所述新增的出弧的终止节点作为新的待处理节点,返回至B23步骤。
具体地,如果目标词条的音素串中还存在未处理的音素,则需要对该其重复执行上述处理过程,也即需要返回至B23步骤。
B211、将所述新增的出弧的终止节点添加至所述指定槽在所述三音素级网络中的右节点集合中,并根据所述指定槽在音素级网络中的右节点的出弧,在所述三音素级网络中扩展所述新增的出弧的终止节点的出弧。
具体地,如果目标词条的音素串中不存在未处理的音素,则说明已经将目标词条的音素串全部添加到三音素级网络中。并且,最后一条新增的出弧上标注的是目标词条的音素串中最后一个音素,该最后一条新增的出弧的终止节点可以作为指定槽在三音素级网络中的右节点,因此可以将其添加到指定槽在所述三音素级网络中的右节点集合中。
进一步地,由于指定槽在音素级网络中的右节点存在出弧信息,因此对于三音素级网络中最后一条新增的出弧的终止节点,需要扩展其出弧。对于出弧的添加方式与上文添加方式相同,此处不再赘述。
为了便于理解,接下来通过一个具体示例说明:
在上一示例的基础上,已经将槽<feel>对应的新增目标词条“不好”的音素添加至音素级网络中,得到图14示例的结果。进一步地,将槽<feel>对应的新增目标词条“不好”的音素添加至三音素级网络中。
首先可以获取到的是,三音素级网络当前最大节点编号maxTriphoneNodeID=39。槽<feel>在三音素级网络中的左节点编号triphoneLeftIDArr={2},右节点编号triphoneRightIDArr={16,10,8,11}。槽<feel>在音素级网络中的左节点编号phoneLeftID=3,右节点编号phoneRightID=6。
遍历triphoneLeftIDArr,仅包含节点2,将其作为待处理节点,获取节点2的身份信息,包括:节点2的出弧上第一个音素在音素级网络中的位置信息:Phone1comeFrom=(1,0);表示节点2的出弧上第一个音素_u出自音素级网络节点1的第0条出弧(弧的编号从0开始)。
Phone2comeFrom=(2,0);表示节点2的出弧上第二个音素uo3出自音素级网络节点2的第0条出弧。
从目标词条的音素串“b u4 h ao3”中,获取首个未处理的音素b在音素级网络中的位置信息,定义为Phone3comeFrom:
Phone3comeFrom=(3,4);表示节点2的出弧上第三个音素b出自音素级网络节点3的第4条出弧。
在三音素级网络中,为节点2新增一条出弧,弧上标注三音素:_u-uo3+b。
在三音素级网络中查找是否存在与新增出弧的终止节点的身份信息相同的节点,也即是否存在已有节点的身份信息中,前两个音素的位置信息为Phone2comeFrom=(2,0)和Phone3comeFrom=(3,4)。最终确定不存在,因此,新增一个节点,其编号为39+1=40,三音素级网络当前最大节点编号自增1。新增节点40作为新增出弧的终止节点。将Phone2comeFrom=(2,0)变更为Phone1comeFrom=(2,0),将Phone3comeFrom=(3,4)变更为Phone2comeFrom=(3,4),该变更后的Phone1comeFrom=(2,0)和Phone2comeFrom=(3,4)作为节点40的身份信息。
判断目标词条的音素串中还存在未处理的音素,针对未处理的音素按照上述处理方式处理,会在三音素级网络中插入新节点41、42和43。至此,将目标词条的音素串全部添加到三音素级网络中。节点43属于目标词条对应槽<feel>在三音素级网络中的新增右节点,将其添加到triphoneRightIDArr={16,10,8,11}中,变成triphoneRightIDArr={16,10,8,11,43}。
进一步,根据槽<feel>在音素级网络中的右节点phoneRightID=6的出弧,在三音素级网络中扩展节点43的出弧。
由于音素级网络中phoneRightID=6的出弧有四条,因此三音素级网络中节点43的出弧也有四条。遍历音素级网络中phoneRightID=6的每条出弧,为三音素级网络中节点43添加相应的三音素出弧,弧的添加方式同上。最终得到的更新后的三音素级网络如图15所示。
可以理解的是,假设新增的目标词条有N种发音方式,则在音素级网络中指定槽的左右节点中会添加N条节点路径。假设三音素级网络中指定槽的triphoneLeftIDArr大小为L,triphoneRightIDArr的大小为R,在指定槽中新增目标词条有N种发音方式,则triphoneLeftIDArr种每个节点都会增加N条出弧,每条出弧会产生一个右节点,并添加到triphoneRightIDArr中,所以triphoneRightIDArr的大小最多增加N*L。
并且,添加到triphoneRightIDArr中的每个右节点的出弧数目,与triphoneRightIDArr中原有右节点的出弧数目相同。
此外,定义三音素级网络中指定槽为slotX,其后接的槽是slotY,则添加到triphoneRightIDArr中的每个右节点的所有出弧,均位于slotY的左右节点数组之间。
综上分析,本申请提供的方案,其语法文本的格式更加简单,对于初学者更加容易上手,降低了编写门槛。
并且,本申请生成编码网络的过程,从槽、词级、音素级、三音素级层级结构依次扩展,粒度从大到小,逻辑更清晰。
进一步地,使用本申请方案对槽对应的词条进行更新时,能够根据更新词条对应槽的位置信息,实现增量更新,避免了全量更新,其效率更高。
再进一步地,在对槽对应的词条进行更新时,通过查找解码网络中是否存在相同身份信息的节点,能够避免新增相同身份信息的节点,也即实现了节点的优化合并,解码网络结构更加简单。
下面对本申请实施例提供的解码网络生成装置进行描述,下文描述的解码网络生成装置与上文描述的解码网络生成方法可相互对应参照。
参见图16,其示例了一种解码网络生成装置结构示意图。如图16所示,解码网络生成装置可以包括:
语法文本获取单元11,用于获取语法文本,所述语法文本中包含至少一槽,与每一槽对应的至少一词条,以及每一槽的位置信息;
语法文本解析单元12,用于解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络。
可选的,槽的位置信息可以包括槽在词级网络中的节点位置,则语法文本解析单元可以包括:
词级网络生成单元,用于解析所述语法文本以生成词级网络,所述词级网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应槽的词条的分词结果,每一有向弧上标注一个分词;
发音信息替换单元,用于将所述词级网络中每一有向弧上标注的分词替换为分词对应的发音信息;
语音单元级网络生成单元,用于根据每一有向弧上标注的发音信息所包含的语音单元,将所述词级网络扩展为语音单元级网络,所述语音单元级网络中每一有向弧上标注有一个语音单元,所述语音单元级网络作为所述解码网络。
可选的,上述语音单元可以包括音素、音节等,以语音单元为音素为例,对应的语音单元级网络为音素级网络,则本申请的装置还可以包括:
三音素级网络生成单元,用于根据所述音素级网络中每一有向弧上标注的音素,将所述音素级网络扩展为三音素级网络,所述三音素级网络中每一有向弧上标注有按照预设的三音素拼接规则所拼接成的三音素,所述三音素级网络作为所述解码网络。
可选的,上述词级网络生成单元可以包括:
第一词级网络生成子单元,用于解析所述语法文本以生成初步的词级网络,所述初步的词级网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应槽的词条,每一有向弧上标注一个词条;
第二词级网络生成子单元,用于针对所述初步的词级网络中每一有向弧,将其拆分成串联的n个有向弧,n为所述有向弧上标注的词条的分词数量,n个分词依序标注在拆分后的n个有向弧上。
可选的,上述第一词级网络生成子单元可以包括:
槽网络生成单元,用于解析所述语法文本以生成槽网络,所述槽网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应的槽;
词条填充单元,用于根据所述语法文本中包含的每一槽对应的词条,将所述槽网络扩展为初步的词级网络,初步的词级网络为对槽网络中每一槽填充对应的词条后的结果。
可选的,本申请的装置还可以包括:
第一槽位置记录单元,用于记录每一槽在所述音素级网络中的左右节点位置,以及,
第二槽位置记录单元,用于记录每一槽在所述三音素级网络中的左右节点位置。
可选的,本申请的装置还可以包括:
音素级网络插入单元,用于响应对指定槽添加目标词条的指令,在所述音素级网络中所述指定槽对应节点位置间添加所述目标词条的音素;
三音素级网络插入单元,用于根据添加目标词条的音素后的音素级网络,在所述三音素级网络中插入所述目标词条的音素。
可选的,上述音素级网络插入单元可以包括:
音素串查找单元,用于在词典中查找所述目标词条的音素串;
指定槽位置确定单元,用于确定所述指定槽在所述音素级网络中对应的左右节点位置;
音素串插入单元,用于在所述音素级网络中,所述指定槽的左右节点位置间插入所述目标词条的音素串。
可选的,上述音素串插入单元可以包括:
音素级网络最大节点获取单元,用于若所述目标词条的音素串包含的音素个数大于1,则获取所述音素级网络当前最大节点编号;
节点插入单元,用于在所述音素级网络中所述指定槽的左右节点位置间插入新节点,以在所述指定槽的左节点、插入的新节点和所述指定槽的右节点构成的节点串的有向弧上标注所述音素串,插入的新节点从所述音素级网络当前最大节点编号之后开始编号。
可选的,本申请的装置还可以包括:节点身份信息记录单元,用于记录所述三音素级网络中每一节点的身份信息,所述身份信息包括节点的出弧上前两个音素在音素级网络中的位置信息。基于此,上述三音素级网络插入单元可以包括:
第一三音素级网络插入子单元,用于获取所述指定槽在所述三音素网络中的左节点集合和右节点集合;
第二三音素级网络插入子单元,用于遍历所述左节点集合中每一节点,将当前遍历到节点作为待处理节点,获取所述待处理节点的身份信息;
第三三音素级网络插入子单元,用于从所述目标词条的音素串中,获取首个处理状态为未处理的音素在音素级网络中的位置信息,其中,音素被获取后其处理状态由未处理变更为已处理;
第四三音素级网络插入子单元,用于在三音素级网络中,为所述待处理节点新增一条出弧,弧上标注由所述待处理节点的身份信息中位置信息对应的两个音素,及获取的首个未处理的音素依序组成的三音素;
第五三音素级网络插入子单元,用于在三音素级网络中查找是否存在与新增的出弧的终止节点的身份信息相同的节点;
第六三音素级网络插入子单元,用于在所述第五三音素级网络插入子单元的查找结果为存在时,返回存在的节点,作为新增的出弧的终止节点;
第七三音素级网络插入子单元,用于在所述第五三音素级网络插入子单元的查找结果为不存在时,新增一个节点作为新增的出弧的终止节点,将新增的出弧上标注的后两个音素在音素级网络中的位置信息作为所述新增的节点的身份信息,所述新增的节点从所述三音素级网络当前最大节点编号之后开始编号,且所述三音素级网络当前最大节点编号自增1;
第八三音素级网络插入子单元,用于判断所述目标词条的音素串中是否还存在未处理的音素;
第九三音素级网络插入子单元,用于在所述第八三音素级网络插入子单元的判断结果为是时,将所述新增的出弧的终止节点作为新的待处理节点,返回至所述获取所述待处理节点的身份信息的步骤;
第十三音素级网络插入子单元,用于在所述第八三音素级网络插入子单元的判断结果为否时,将所述新增的出弧的终止节点添加至所述指定槽在所述三音素级网络中的右节点集合中,并根据所述指定槽在音素级网络中的右节点的出弧,在所述三音素级网络中扩展所述新增的出弧的终止节点的出弧。
本申请实施例提供的解码网络生成装置可应用于解码网络生成设备,如PC终端、云平台、服务器及服务器集群等。可选的,图17示出了解码网络生成设备的硬件结构框图,参照图17,解码网络生成设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
获取语法文本,所述语法文本中包含至少一槽,与每一槽对应的至少一词条,以及每一槽的位置信息;
解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的程序,所述程序用于:
获取语法文本,所述语法文本中包含至少一槽,与每一槽对应的至少一词条,以及每一槽的位置信息;
解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (18)
1.一种解码网络生成方法,其特征在于,包括:
获取语法文本,所述语法文本中包含至少一槽,与每一槽对应的至少一词条,以及每一槽的位置信息,所述位置信息用于指示槽对应的词条在生成的解码网络中的标注位置;
解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络。
2.根据权利要求1所述的方法,其特征在于,槽的位置信息包括槽在词级网络中的节点位置;所述解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络,包括:
解析所述语法文本以生成词级网络,所述词级网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应槽的词条的分词结果,每一有向弧上标注一个分词;
将所述词级网络中每一有向弧上标注的分词替换为分词对应的发音信息;
根据每一有向弧上标注的发音信息所包含的语音单元,将所述词级网络扩展为语音单元级网络,所述语音单元级网络中每一有向弧上标注有一个语音单元,所述语音单元级网络作为所述解码网络。
3.根据权利要求2所述的方法,其特征在于,所述语音单元为音素,所述语音单元级网络为音素级网络,该方法还包括:
根据所述音素级网络中每一有向弧上标注的音素,将所述音素级网络扩展为三音素级网络,所述三音素级网络中每一有向弧上标注有按照预设的三音素拼接规则所拼接成的三音素,所述三音素级网络作为所述解码网络。
4.根据权利要求2所述的方法,其特征在于,所述解析所述语法文本以生成词级网络,包括:
解析所述语法文本以生成初步的词级网络,所述初步的词级网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应槽的词条,每一有向弧上标注一个词条;
针对所述初步的词级网络中每一有向弧,将其拆分成串联的n个有向弧,n为所述有向弧上标注的词条的分词数量,n个分词依序标注在拆分后的n个有向弧上。
5.根据权利要求4所述的方法,其特征在于,所述解析所述语法文本以生成初步的词级网络,包括:
解析所述语法文本以生成槽网络,所述槽网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应的槽;
根据所述语法文本中包含的每一槽对应的词条,将所述槽网络扩展为初步的词级网络,初步的词级网络为对槽网络中每一槽填充对应的词条后的结果。
6.根据权利要求3所述的方法,其特征在于,还包括:
记录每一槽在所述音素级网络中的左右节点位置,以及,
记录每一槽在所述三音素级网络中的左右节点位置。
7.根据权利要求6所述的方法,其特征在于,还包括:
响应对指定槽添加目标词条的指令,在所述音素级网络中所述指定槽对应节点位置间添加所述目标词条的音素;
根据添加目标词条的音素后的音素级网络,在所述三音素级网络中插入所述目标词条的音素。
8.根据权利要求7所述的方法,其特征在于,所述响应对指定槽添加目标词条的指令,在所述音素级网络中所述指定槽对应节点位置间添加所述目标词条的音素,包括:
在词典中查找所述目标词条的音素串;
确定所述指定槽在所述音素级网络中对应的左右节点位置;
在所述音素级网络中,所述指定槽的左右节点位置间插入所述目标词条的音素串。
9.根据权利要求8所述的方法,其特征在于,所述在所述音素级网络中,所述指定槽的左右节点位置间插入所述目标词条的音素串,包括:
若所述目标词条的音素串包含的音素个数大于1,则获取所述音素级网络当前最大节点编号;
在所述音素级网络中所述指定槽的左右节点位置间插入新节点,以在所述指定槽的左节点、插入的新节点和所述指定槽的右节点构成的节点串的有向弧上标注所述音素串,插入的新节点从所述音素级网络当前最大节点编号之后开始编号。
10.根据权利要求7所述的方法,其特征在于,还包括:
记录所述三音素级网络中每一节点的身份信息,所述身份信息包括节点的出弧上前两个音素在音素级网络中的位置信息;
所述根据添加目标词条的音素后的音素级网络,在所述三音素级网络中插入所述目标词条的音素,包括:
获取所述指定槽在所述三音素网络中的左节点集合和右节点集合;
遍历所述左节点集合中每一节点,将当前遍历到节点作为待处理节点,获取所述待处理节点的身份信息;
从所述目标词条的音素串中,获取首个处理状态为未处理的音素在音素级网络中的位置信息,其中,音素被获取后其处理状态由未处理变更为已处理;
在三音素级网络中,为所述待处理节点新增一条出弧,弧上标注由所述待处理节点的身份信息中位置信息对应的两个音素,及获取的首个未处理的音素依序组成的三音素;
在三音素级网络中查找是否存在与新增的出弧的终止节点的身份信息相同的节点;
若存在,则返回存在的节点,作为新增的出弧的终止节点;
若不存在,则新增一个节点作为新增的出弧的终止节点,将新增的出弧上标注的后两个音素在音素级网络中的位置信息作为所述新增的节点的身份信息,所述新增的节点从所述三音素级网络当前最大节点编号之后开始编号,且所述三音素级网络当前最大节点编号自增1;
判断所述目标词条的音素串中是否还存在未处理的音素;
若是,将所述新增的出弧的终止节点作为新的待处理节点,返回至所述获取所述待处理节点的身份信息的步骤;
若否,将所述新增的出弧的终止节点添加至所述指定槽在所述三音素级网络中的右节点集合中,并根据所述指定槽在音素级网络中的右节点的出弧,在所述三音素级网络中扩展所述新增的出弧的终止节点的出弧。
11.一种解码网络生成装置,其特征在于,包括:
语法文本获取单元,用于获取语法文本,所述语法文本中包含至少一槽,与每一槽对应的至少一词条,以及每一槽的位置信息,所述位置信息用于指示槽对应的词条在生成的解码网络中的标注位置;
语法文本解析单元,用于解析所述语法文本,根据每一槽的位置信息及每一槽对应的各词条,生成解码网络。
12.根据权利要求11所述的装置,其特征在于,槽的位置信息包括槽在词级网络中的节点位置;所述语法文本解析单元包括:
词级网络生成单元,用于解析所述语法文本以生成词级网络,所述词级网络包含若干节点及节点之间的有向弧,两个节点间的有向弧上标注有与所述两个节点的节点位置对应槽的词条的分词结果,每一有向弧上标注一个分词;
发音信息替换单元,用于将所述词级网络中每一有向弧上标注的分词替换为分词对应的发音信息;
语音单元级网络生成单元,用于根据每一有向弧上标注的发音信息所包含的语音单元,将所述词级网络扩展为语音单元级网络,所述语音单元级网络中每一有向弧上标注有一个语音单元,所述语音单元级网络作为所述解码网络。
13.根据权利要求12所述的装置,其特征在于,所述语音单元为音素,所述语音单元级网络为音素级网络,该装置还包括:
三音素级网络生成单元,用于根据所述音素级网络中每一有向弧上标注的音素,将所述音素级网络扩展为三音素级网络,所述三音素级网络中每一有向弧上标注有按照预设的三音素拼接规则所拼接成的三音素,所述三音素级网络作为所述解码网络。
14.根据权利要求13所述的装置,其特征在于,还包括:
第一槽位置记录单元,用于记录每一槽在所述音素级网络中的左右节点位置,以及,
第二槽位置记录单元,用于记录每一槽在所述三音素级网络中的左右节点位置。
15.根据权利要求14所述的装置,其特征在于,还包括:
音素级网络插入单元,用于响应对指定槽添加目标词条的指令,在所述音素级网络中所述指定槽对应节点位置间添加所述目标词条的音素;
三音素级网络插入单元,用于根据添加目标词条的音素后的音素级网络,在所述三音素级网络中插入所述目标词条的音素。
16.根据权利要求15所述的装置,其特征在于,还包括:
节点身份信息记录单元,用于记录所述三音素级网络中每一节点的身份信息,所述身份信息包括节点的出弧上前两个音素在音素级网络中的位置信息;
所述三音素级网络插入单元包括:
第一三音素级网络插入子单元,用于获取所述指定槽在所述三音素网络中的左节点集合和右节点集合;
第二三音素级网络插入子单元,用于遍历所述左节点集合中每一节点,将当前遍历到节点作为待处理节点,获取所述待处理节点的身份信息;
第三三音素级网络插入子单元,用于从所述目标词条的音素串中,获取首个处理状态为未处理的音素在音素级网络中的位置信息,其中,音素被获取后其处理状态由未处理变更为已处理;
第四三音素级网络插入子单元,用于在三音素级网络中,为所述待处理节点新增一条出弧,弧上标注由所述待处理节点的身份信息中位置信息对应的两个音素,及获取的首个未处理的音素依序组成的三音素;
第五三音素级网络插入子单元,用于在三音素级网络中查找是否存在与新增的出弧的终止节点的身份信息相同的节点;
第六三音素级网络插入子单元,用于在所述第五三音素级网络插入子单元的查找结果为存在时,返回存在的节点,作为新增的出弧的终止节点;
第七三音素级网络插入子单元,用于在所述第五三音素级网络插入子单元的查找结果为不存在时,新增一个节点作为新增的出弧的终止节点,将新增的出弧上标注的后两个音素在音素级网络中的位置信息作为所述新增的节点的身份信息,所述新增的节点从所述三音素级网络当前最大节点编号之后开始编号,且所述三音素级网络当前最大节点编号自增1;
第八三音素级网络插入子单元,用于判断所述目标词条的音素串中是否还存在未处理的音素;
第九三音素级网络插入子单元,用于在所述第八三音素级网络插入子单元的判断结果为是时,将所述新增的出弧的终止节点作为新的待处理节点,返回至所述获取所述待处理节点的身份信息的步骤;
第十三音素级网络插入子单元,用于在所述第八三音素级网络插入子单元的判断结果为否时,将所述新增的出弧的终止节点添加至所述指定槽在所述三音素级网络中的右节点集合中,并根据所述指定槽在音素级网络中的右节点的出弧,在所述三音素级网络中扩展所述新增的出弧的终止节点的出弧。
17.一种解码网络生成设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1-10中任一项所述的解码网络生成方法的各个步骤。
18.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-10中任一项所述的解码网络生成方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811244331.4A CN109087645B (zh) | 2018-10-24 | 2018-10-24 | 一种解码网络生成方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811244331.4A CN109087645B (zh) | 2018-10-24 | 2018-10-24 | 一种解码网络生成方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109087645A CN109087645A (zh) | 2018-12-25 |
CN109087645B true CN109087645B (zh) | 2021-04-30 |
Family
ID=64844003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811244331.4A Active CN109087645B (zh) | 2018-10-24 | 2018-10-24 | 一种解码网络生成方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109087645B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110322884B (zh) * | 2019-07-09 | 2021-12-07 | 科大讯飞股份有限公司 | 一种解码网络的插词方法、装置、设备及存储介质 |
CN111475535B (zh) * | 2020-03-09 | 2024-02-06 | 咪咕文化科技有限公司 | 数据存储、访问方法及装置 |
CN112466291B (zh) * | 2020-10-27 | 2023-05-05 | 北京百度网讯科技有限公司 | 语言模型的训练方法、装置和电子设备 |
CN116168703B (zh) * | 2023-04-24 | 2023-07-21 | 北京探境科技有限公司 | 一种语音识别方法、装置、系统、计算机设备及存储介质 |
CN116168687B (zh) * | 2023-04-24 | 2023-07-21 | 北京探境科技有限公司 | 一种语音数据处理方法、装置、计算机设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004334193A (ja) * | 2003-05-01 | 2004-11-25 | Microsoft Corp | 音声認識および自然言語理解のための複合統計/ルール・ベース文法モデルを有するシステム |
CN102982811B (zh) * | 2012-11-24 | 2015-01-14 | 安徽科大讯飞信息科技股份有限公司 | 一种基于实时解码的语音端点检测方法 |
CN103077714B (zh) * | 2013-01-29 | 2015-07-08 | 华为终端有限公司 | 信息的识别方法和装置 |
CN105161095B (zh) * | 2015-07-29 | 2017-03-22 | 百度在线网络技术(北京)有限公司 | 语音识别语法树的构图方法及装置 |
CN107785013A (zh) * | 2016-08-24 | 2018-03-09 | 中兴通讯股份有限公司 | 语音控制方法及装置 |
KR20180087942A (ko) * | 2017-01-26 | 2018-08-03 | 삼성전자주식회사 | 음성 인식 방법 및 장치 |
CN108288467B (zh) * | 2017-06-07 | 2020-07-14 | 腾讯科技(深圳)有限公司 | 一种语音识别方法、装置及语音识别引擎 |
CN107480118B (zh) * | 2017-08-16 | 2024-05-31 | 科大讯飞股份有限公司 | 文本编辑方法及装置 |
CN108305634B (zh) * | 2018-01-09 | 2020-10-16 | 深圳市腾讯计算机系统有限公司 | 解码方法、解码器及存储介质 |
-
2018
- 2018-10-24 CN CN201811244331.4A patent/CN109087645B/zh active Active
Non-Patent Citations (3)
Title |
---|
《自然语言理解中并列名词歧义消解及其在智能仪器设计领域的应用》;严羽;《万方数据》;20111130;全文 * |
Representation learing for text-level discourse parsing;Yangfei Ji;《Proceedings of the 52nd annual meeting of the association for computational linguistics>》;20141231;全文 * |
语音关键词识别中的置信度研究;李文昕;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130615;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109087645A (zh) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109087645B (zh) | 一种解码网络生成方法、装置、设备及可读存储介质 | |
CN108305634B (zh) | 解码方法、解码器及存储介质 | |
CN107016994B (zh) | 语音识别的方法及装置 | |
CN110610700B (zh) | 解码网络构建方法、语音识别方法、装置、设备及存储介质 | |
CN111292740B (zh) | 语音辨识系统及其方法 | |
US20150348542A1 (en) | Speech recognition method and system based on user personalized information | |
CN111341293B (zh) | 一种文本语音的前端转换方法、装置、设备和存储介质 | |
CN112562640A (zh) | 多语言语音识别方法、装置、系统及计算机可读存储介质 | |
CN111462777B (zh) | 关键词检索方法、系统、移动终端及存储介质 | |
CN114141179A (zh) | 基于智能语音交互的公园导览与景区介绍系统 | |
CN113553847A (zh) | 用于对地址文本进行解析的方法、装置、系统和存储介质 | |
CN112133285B (zh) | 语音识别方法、装置、存储介质和电子设备 | |
CN113823265A (zh) | 一种语音识别方法、装置和计算机设备 | |
KR100372850B1 (ko) | 통역 장치 및 그 방법 | |
KR100542757B1 (ko) | 음운변이 규칙을 이용한 외래어 음차표기 자동 확장 방법및 그 장치 | |
US20040034519A1 (en) | Dynamic language models for speech recognition | |
KR20120052591A (ko) | 연속어 음성인식 시스템에서 오류수정 장치 및 방법 | |
CN111611793B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110750967A (zh) | 一种发音的标注方法、装置、计算机设备和存储介质 | |
CN114548093A (zh) | 自然语言处理方法、装置、设备、介质及程序产品 | |
CN113838456A (zh) | 音素提取方法、语音识别方法、装置、设备及存储介质 | |
CN111489742B (zh) | 声学模型训练方法、语音识别方法、装置及电子设备 | |
CN114283786A (zh) | 语音识别方法、装置及计算机可读存储介质 | |
CN111652005A (zh) | 汉语与乌尔都语同步互译系统及方法 | |
CN112560497B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |