CN105096944A - 语音识别方法及装置 - Google Patents
语音识别方法及装置 Download PDFInfo
- Publication number
- CN105096944A CN105096944A CN201510427908.5A CN201510427908A CN105096944A CN 105096944 A CN105096944 A CN 105096944A CN 201510427908 A CN201510427908 A CN 201510427908A CN 105096944 A CN105096944 A CN 105096944A
- Authority
- CN
- China
- Prior art keywords
- array
- mark
- probability score
- tree
- pronunciation information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000013011 mating Effects 0.000 claims description 36
- 230000003203 everyday effect Effects 0.000 claims description 18
- 238000003491 array Methods 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 2
- 238000005755 formation reaction Methods 0.000 claims description 2
- 238000004904 shortening Methods 0.000 abstract description 2
- 240000002853 Nelumbo nucifera Species 0.000 description 7
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 7
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 7
- 238000010276 construction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000035622 drinking Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000008267 milk Substances 0.000 description 1
- 235000013336 milk Nutrition 0.000 description 1
- 210000004080 milk Anatomy 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 235000013618 yogurt Nutrition 0.000 description 1
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/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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Machine Translation (AREA)
- Character Discrimination (AREA)
Abstract
本发明公开了一种语音识别方法及装置,其中所述方法包括:根据语音信息识别得到发音信息;根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分;其中,所述查分树信息包括与文字对应的多个节点,每个节点至少包括当前节点与子节点之间的存储位置偏移量;根据所述概率得分选择文字识别结果,作为最终的识别结果。本发明实施例通过在启动时直接根据当前节点与子节点之间的存储位置偏移量加载语言模型查分树,这样大大的缩短了启动时间。
Description
技术领域
本发明实施例涉及语音识别技术领域,尤其涉及一种语音识别方法及装置。
背景技术
在嵌入式语音识别领域,语音识别结果由声学模型和语言模型两部分决定。而语言模型有着十分重要的作用,例如,当“北戴河”和“被带河”发音相似,声学模型的得分相差无几,这时就需要使用语言模型来进一步决定哪一个词是语言中会用到的。也就是说,语言模型解决了语音识别中对自然语言顺序的评测问题。
如图1所示,为现有技术中提供的语音识别方法,主要包括以下步骤:
S11、从硬盘上读取语言模型资源,资源以节点的方式存储;
其中,每个节点对应一个字,每个节点由节点信息(包括所对应的字或词、孩子信息,例如孩子节点对应的字以及孩子数目),概率列表(ProbList)(存储概率),回退概率列表(BackOff)三部分组成;即如下表一所示:
表一
S12、根据读取的语言模型资源构建多叉查分树;
构建查分树的过程,具体是:将语言模型资源加载到缓存之后,节点的存储地址发生了变化,因此每个节点只知道自身的孩子节点是哪个字,而不知道其存储地址,因此需要根据每个节点中记录的孩子节点信息,逐一查询其孩子节点的存储地址,并添加至父节点中,从而建立查分树。
S13、加载声学模型和其他语音识别的资源;
S14、接收输入的语音信息,使用维特比算法进行解码;
S15、在解码的过程中,使用声学模型进行语音识别,得到发音信息,并根据发音信息查询语言模型的多叉查分树进行查分;
S16、获得语言模型的识别结果;
S17、输出识别结果,释放资源。
但是,现有的语音识别方法在读取语言模型资源之后,需要对语言模型资源进行动态的加载,构建多叉查分树,这个过程十分浪费时间,导致识别效率较低。
发明内容
本发明实施例提供一种语音识别方法及装置,能够大大的缩短启动时间。
第一方面,本发明实施例提供了一种语音识别方法,包括:
根据语音信息识别得到发音信息;
根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分;其中,所述查分树信息包括与文字对应的多个节点,每个节点至少包括当前节点与子节点之间的存储位置偏移量;
根据所述概率得分选择文字识别结果,作为最终的识别结果。
第二方面,本发明实施例还提供一种语音识别装置,包括:
发音信息获取模块,用于根据语音信息识别得到发音信息;
概率得分查询模块,用于根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分;其中,所述查分树信息包括与文字对应的多个节点,每个节点至少包括当前节点与子节点之间的存储位置偏移量;
文字识别模块,用于根据所述概率得分选择文字识别结果,作为最终的识别结果。
本发明实施例的技术方案,直接根据当前节点与子节点之间的存储位置偏移量来存储语言模型查分树,无需在启动时动态构建语言模型查分树,这样大大的缩短了启动时间。
附图说明
图1为现有技术提供的语音识别方法的流程示意图;
图2A为本发明实施例一提供的语音识别方法的流程示意图;
图2B为本发明实施例一提供的语音识别方法中的第一种查分子树结构示意图;
图2C为本发明实施例一提供的语音识别方法中的第二种查分子树结构示意图;
图2D为本发明实施例一提供的语音识别方法中的第三种查分子树结构示意图;
图2E为本发明实施例一提供的语音识别方法中的第四种查分子树结构示意图;
图3为本发明实施例二提供的语音识别装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
本发明实施例提供的语音识别方法的执行主体,可为本发明实施例提供的语音识别装置,或者集成了所述语音识别装置的终端设备(例如,智能手机、平板电脑等),该语音识别装置可以采用硬件或软件实现。
实施例一
图2A为本发明实施例一提供的语音识别方法的流程示意图,如图2A所示,具体包括:
S21、根据语音信息识别得到发音信息;
具体的,用户可在本发明实施例提供的语音识别装置中输入语音信息,例如,可在语音识别装置中的输入栏设置一个语音录音按钮,用户通过点击上述语音录音按钮,即可启动录音功能,对用户说话进行录音,从而获取到所述语音信息。然后通过预先加载的声学模型和语音识别资源对所述语音信息进行识别处理,即可得到需要的发音信息。例如,如果用户想要输入的语音为“北戴河”,则通过上述识别过程可获得的发音信息为“beidaihe”。
S22、根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分;其中,所述查分树信息包括与文字对应的多个节点,每个节点至少包括当前节点与子节点之间的存储位置偏移量;
其中,所述查分树信息与语言模型资源类似,包括文字对应的多个节点,其中,每个节点至少包括当前节点与子节点之间的存储位置偏移量。除此之外,所述查分树还可以包括每个节点的存储概率(ProbList,即当前节点出现的概率)、当前节点退回的概率(BackOff)以及对应子节点的数目。子节点即孩子节点。父节点与子节点之间是会同时出现的文字组合,例如,“北京”,“京”的节点即为“北”节点的父节点。存储位置偏移量具体是节点与子节点各自存储位置之间的距离。
具体的,预先将语言模型的查分树信息直接写入语言模型资源中,这样初始化上就不需要动态的构建语言模型的查分树资源,而是把动态构建起来的查分树的指针信息当成偏移量写入语言模型资源中,即提前离线构建好语言模型查分树。将当前节点与子节点之间的存储位置偏移量直接写入语言模型资源,所述查分树信息如下述表二所示。在启动加载时,根据查分树信息将离线建立好的语言模型查分树直接进行加载。
表二
当将查分树信息加载到缓存中时,节点之间的存储相对距离不会发生变化,因此,可以基于初始节点的存储位置以及与其他节点的偏移量,确定其他节点的存储位置。
根据上述表二的信息即可将语音模型查分树加载到线上,根据发音信息查询所述查分树。例如,通过上述步骤S21得到的发音信息为“beidaihe”,首先在所述查分树的根节点(RootProbList)中查询发音信息“beidaihe”中“he”对应的文字节点,包含多个例如“荷”、“喝”,“河”等,如图2B所示,然后在各个“he”对应的文字节点的子节点中查询“dai”对应的文字节点,也包含多个例如“带”、“戴”、“待”等,查询各“dai”对应的文字节点的ProbList和BackOff中“daihe”对应的概率得分,例如得到如下表三所示的结果:
表三
ProbList | BackOff | |
戴荷 | 1% | 98% |
带荷 | 1% | 98% |
待荷 | 1% | 98% |
戴河 | 99% | 1% |
带河 | 80% | 5% |
待河 | 60% | 30% |
戴喝 | 1% | 99% |
带喝 | 1% | 98% |
待喝 | 70% | 7% |
则通过上述表三,可得到“荷”对应的子节点“戴”、“带”和“待”下的文字节点的退回概率BackOff均高于60%,比较高,而ProbList均低于60%,比较低,则“荷”对应的子树被退回。同理,“河”对应的子节点“戴”、“带”和“待”下的文字节点的ProbList均高于60%,而BackOff均低于60%,则“河”对应的子树保留。“喝”对应的子节点“待”下的文字节点的ProbList高于60%,而BackOff低于60%,则“喝”对应的子节点“待”保留,而“喝”对应的子节点“戴”和“带”的ProbList均低于60%,而BackOff均高于60%,“喝”对应的子节点“戴”和“带”被退回。通过上述选择过程最终可得到的结果如图2C和图2D所示的两个子树。
在所2C和图2D所示的子树的基础上,根据发音信息中的“beidaihe”中的“bei”,再次查询“dai”对应的各文字节点的子节点,也包含多个,例如“被”、“北”和“背”等。
查询各“bei”对应的文字节点的ProbList和BackOff中“beidaihe”对应的概率得分,例如得到如下表四所示的结果:
表四
ProbList | BackOff | |
背戴河 | 30% | 70% |
被戴河 | 60% | 15% |
北戴河 | 99% | 1% |
背带河 | 5% | 90% |
被带河 | 1% | 95% |
北带河 | 30% | 91% |
北待河 | 1% | 90% |
被待河 | 1% | 98% |
背待河 | 2% | 90% |
背待喝 | 1% | 99% |
北待喝 | 1% | 91% |
被待喝 | 1% | 97% |
则通过上述表四,可得到“戴”对应的子节点“北戴河”和“被戴河”下的文字节点的ProbList均高于60%,而BackOff均低于60%,则“戴”对应的子节点“北戴河”和“被戴河”保留,而“戴”对应的子节点“背戴河”的文字节点的BackOff均高于60%,而ProbList均低于60%,“戴”对应的子节点“背戴河”被退回。同理,可得出,“待”和“带”对应的子树均被退回。通过上述选择过程最终可得到的结果如图2E所示。
S23、根据所述概率得分选择文字识别结果,作为最终的识别结果。
同样以上述步骤S23为例,最终得到的识别结果为“北戴河”和“被戴河”,对应的概率得分分别为99%和60%,则可按照得分多少,将得分高的文字识别结果放在前边显示,得分低的文字识别结果在显示的原则,同时将它们返回给用户,即将“北戴河”“被戴河”同时返回给用户,以供用户选择。也可只将得分最高的返回给用户,即将“北戴河”返回给用户。
本实施例,无需在启动时动态构建语言模型查分树,通过当前节点与子节点之间的存储位置偏移量来预先记录语言模型查分树,则需要加载时,可直接根据节点之间存储位置偏移量将查分树加载至缓存中,无需动态建立,这样大大的缩短了启动时间。
示例性的,为了更快的查询,可在根据所述发音信息查询加载的语言模型查分树,确定与所述发音信息匹配的文字识别结果的概率得分之前增加如下步骤:
根据所述发音信息在缓存中存储的常用词序列和/或记录的历史查询的文字识别结果中查询与所述发音信息匹配的文字识别结果的概率得分;
如果在所述缓存中不存在与所述发音信息匹配的文字识别结果的概率得分,则触发在所述语言模型查分树中进行查询的操作。
其中,所述常用词序列中包含了人们生活中经常用户到的一些词汇和热词,例如,包括旅游景点的名称、各省市直辖市自治区的地名、网络名人的名字、歌曲名字等等,将这些常用词汇之间放在缓存中,可以大大提高查询效率。
还可将历史查询的文字识别结果纪录在缓存中,当用户再次输入相同的语音信息时,可直接从缓存中返回给用户,同样节省了查询时间。
由于目前使用的语言模型资源尺寸都比较大,即使是经过裁剪的语言模型,也占用了很大的内存,且经过裁剪还会影响查询效率,为进一步节省内存,本发明实施例将现有的语言模型查分树进行转换,转换为一种更加节约内存的语言模型。具体的,在根据所述发音信息在缓存中的常用词序列中查询与所述发音信息匹配的文字识别结果的概率得分之前进一步增加如下操作,以便形成常用词序列:
将所述语言模型查分树中单个文字出现的概率得分高于设定门限值的单个文字及其概率得分,形成第一数组;
将所述语言模型查分树中至少两个文字构成的文字组合的概率得分高于设定门限值的文字组合及其概率得分,形成第二数组;
将所述第一数组和第二数组作为所述常用词序列进行存储。
具体的,将所述语言模型查分树中根节点中包含的部分单个文字或者所有单个文字及其对应的概率得分以数组的形式进行存储。将所述语言模型查分树中父节点以及各子节点对应的文字组合及其概率得分也以数组的形式进行存储。本实施例通过设置设定门限值,可去除所述语言模型查分树中包含的低概率的单个文字和文字组合,以提高查询效率。
举例来说,所述语言模型查分树中根节点中包含的文字包括“北”、“京”、“河”、“荷”、“喝”等,对应的存储概率分别为P1、P2、P3、P4、P5,具体可采用二维数组来实现,其存储形式如下表五所示:
表五
文字 | 北 | 京 | 河 | 荷 | 喝 | …… |
出现概率 | P1 | P2 | P3 | P4 | P5 | …… |
同理,对于所述语言模型查分树中父节点以及各子节点对应的文字组合及其概率得分也可以二维数组的形式进行存储,例如如下表六所示,为二元文字的组合:
表六
文字组合 | 北京 | 南京 | 戴河 | 花荷 | 待喝 | …… |
出现概率 | P6 | P7 | P8 | P9 | P10 | …… |
在后续查询时,可直接从上述数组中进行查询。
示例性的,为了进一步提高查询效率,可通过定位表快速定位要查询的目标区域,具体的可在将所述第一数组和第二数组作为所述常用词序列进行存储之后进一步增加如下步骤:
根据预定规则将所述第二数组中的多个文字组合分为有序序列数组和无序序列数组,所述有序序列数组中包含至少两个子数组,各子数组中存储有相同特征值的多个文字组合;
将所述无序序列数组中的概率得分,以及起始位置和/或终止位置,以及各子数组的特征值、起始位置和/或终止位置存储在定位表中;
其中,预定规则可根据具体的场景进行设定,对于不同的场景有不同的划分规则,可更好的更快速的匹配到合适的文字识别结果。具体的,可将所述二元文字组合中第一文字对应的标识值右移第一指定位数与第二文字对应的标识值左移第二指定位数的和作为特征值K,将特征值为K的二元文字组合的个数大于或等于预设数值的二元文字组合归为有序序列数组;将特征值为K的二元文字组合的个数小于预设数值的二元文字组合归为无序序列数组。
例如,对于二元文字组合可采用公式一计算得到有序序列数组和无序序列数组,首先计算二元文字组合的特征值K:
K=M1>>3+M2<<13
其中,第一指定位数取值为3,第二指定位数取值为13,“>>”为右移符号,“<<”为左移符号,M1为第一文字对应的标识值,M2为第二文字对应的标识值。
将特征值为K的二元文字组合的个数大于或等于预设数值的二元文字组合归为有序序列数组;将特征值为K的二元文字组合的个数小于预设数值的二元文字组合归为无序序列数组。
标识值是能够唯一标识文字的数值,例如典型的,以ASCII编码标识各文字时,文字的ASCII码数值即为标识值。将文字的标识值进行左移和右移之后,计算其特征值K,相当于根据特征值K对各文字组合进行了分类,将特征值K相同的文字组合归为一个组。对于组内文字组合数量过少的,则不必设该组。
本领域技术人员可以理解,预设规则也可以是其他公式,不限于左移和右移,以及不限于上述移位的具体位数。
对于三元文字组合,可通过上述公式计算的其中二元文字组合的特征值K,然后将特征值K右移第一指定位数与第三文字对应的标识值左移第二指定位数的和作为特征值T;将特征值为T的三元文字组合的个数大于或等于预设数值的三元文字组合归为有序序列数组;将特征值为T的三元文字组合的个数小于预设数值的三元文字组合归为无序序列数组。
例如,可结合上述公式一和如下公式二得到有序序列数组和无序序列数组,首先采用公式一计算得到二元文字组合的特征值K,然后采用公式二得到三元文字组合的特征值T
T=K>>3+M3<<13
其中,第一指定位数取值为3,第二指定位数取值为13,K为M1和M2组合对应的特征值,M3为第三文字对应的标识值;
将特征值为T的三元文字组合的个数大于或等于预设数值的三元文字组合归为有序序列数组;将特征值为T的三元文字组合的个数小于预设数值的三元文字组合归为无序序列数组。
其中,有序序列数组可根据特征值划分为多个子子数组,每个子数组存储有相同特征值的文字组合。对于二元文字组合的特征值,采用上述公式一计算得到,对于三元文字组合,可结合公式一和公式二计算得到。
下面通过举例详细介绍定位表的构建过程。
首先根据语音查分树,统计出所有的文字组合,包括二元文字组合、三元文字组合和n元文字组合,其中n为大于3的自然数。较常用的为二元文字组合和三元文字组合。对于二元文字组合,则采用上述公式一计算得到特征值,对于三元文字组合,则采用上述公式一和公式二计算得到特征值。例如,计算得到特征值为K1的文字组合包括“北京”、“天津”、“北戴河”、“百度”和“搜狐”,计算得到特征值为K2的文字组合包括“杭州好”、“被带河”、“牛奶”和“酸奶”,计算得到特征值为K3的文字组合包括“苏州”,计算得到特征值为K4的文字组合包括“夏天热”和“被戴河”,计算得到特征值为K3的文字组合包括“苏州”则统计特征值为K1的文字组合的个数为5、统计特征值为K2的文字组合的个数为4、统计特征值为K3的文字组合的个数为1,统计特征值为K4的文字组合的个数为2,如果预设数值设为3,则将相同特征值的文字组合的个数超过3的归为有序序列数组,否则,归为无序序列数组,则最终得到的有序序列数组以列表的形式表示,如下述表七所示,其中有序序列数组中还包含特征值和各文字组合出现的概率,此概率可直接从语言模型查分树中获取:
表七
最终得到的无序序列数组以列表的形式表示,如下述表八所示,其中无序序列数组中同样包含特征值和各文字组合出现的概率,此概率可直接从语言模型查分树中获取:
表八
由于所述有序序列数组中包含的文字组合个数比较多,在查找时不便于查找,则进一步将有序序列数组中的文字组合进行分割,根据特征值分成多个子数组,例如表七中,可将特征值相同的分为一个子数组,共分为2个子数组。如下表九所示:
表九
而对于无序序列数组,由于其包含的文字组合的个数比较少,则不必将其进行分组。
最后,根据上述表九划分的各个子数组,以及上述表八所示的无序序列数组,构建定位表。即将各子数组对应的特征值及起始存储位置,以及无序序列数组中的文字组合对应的特征值及其概率得分放置在定位表中,例如,得到的定位表如下表十所示
表十
另外,在构建定位表时,可直接将对应的特征值作为数组的下标,即子数组1对应的下标为K1,子数组2对应的下标为K2,无序序列数组1对应的下标为K3,无序序列数组2对应的下标为K4,则直接将各数组对应的下标存储在定位表中,得到的定位表如下表十一所示:
表十一
相应的,在查询时,根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分具体包括:
根据所述发音信息和对应的特征值查询所述定位表,确定与所述发音信息匹配的子数组;
采用快速查找算法查询所述匹配的子数组确定与所述发音信息匹配的文字识别结果的概率得分。
例如,对于要查询发音信息“beidaihe”对应的文字识别结果,则从所述第一数组存储的单个文字中查询得到发音为“bei”、“dai”、“he”对应的所有文字组合,再根据定位表查询得到各发音为“beidaihe”文字组合的概率得分。例如以表十对应的定位表为例,要查P(被|带河)的概率,则采用上述公式一和公式二计算得到文字组合“被带河”的特征值为K2,则根据特征值K2查询上述表十的定位表,可知对应的查询范围为子数组2,则根据定位表中记录的子数组2的起止位返回表九去子数组2中查询,具体可采用快速查询算法(例如二分法)进行查找,得到P(被|带河)的概率得分为P15。例如要查P(被|戴河)的概率,则采用上述公式一和公式二计算得到文字组合“被戴河”的特征值为K4,则根据特征值K4查询上述表十的定位表,可知对应的查询结果记录在所述定位表中,则直接查询得到P(被|戴河)的概率得分为P17。同理,查询得到P(北|戴河)的概率得分为P8,比较所有发音为“beidaihe”的文字组合的概率得分,按照概率得分对文字组合进行排序,将排序在前的文字组合返回给用户。
上述各实施例通过根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分,其中,所述查分树信息包括与文字对应的多个节点,每个节点至少包括当前节点与子节点之间的存储位置偏移量,根据概率得分即可得到文字识别结果。而无需在启动时动态构建语言模型查分树,本发明实施例通过直接根据当前节点与子节点之间的存储位置偏移量加载语言模型查分树,这样大大的缩短了启动时间。
另外,上述各实施例还通过构建定位表,初步定位要查询的文字组合的大概位置,进一步采用快速查询算法进行精确查找确定与所述发音信息匹配的文字识别结果的概率得分,进一步提高了查询效率。
实施例二
图3为本发明实施例二提供的语音识别装置的结构示意图,如图3所示,具体包括:发音信息获取模块31、概率得分查询模块32和文字识别模块33;
所述发音信息获取模块31用于根据语音信息识别得到发音信息;
所述概率得分查询模块32用于根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分;其中,所述查分树信息包括与文字对应的多个节点,每个节点至少包括当前节点与子节点之间的存储位置偏移量;
所述文字识别模块33用于根据所述概率得分选择文字识别结果,作为最终的识别结果。
本发明实施例所述的语音识别装置用于执行上述各实施例所述的语音识别方法,其技术原理和产生的技术效果类似,这里不再累述。
示例性的,在上述实施例的基础上,所述装置还包括:缓存查询模块34和触发模块35;
所述缓存查询模块34用于在所述概率得分查询模块32根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分之前,根据所述发音信息在缓存中存储的常用词序列和/或记录的历史查询的文字识别结果中查询与所述发音信息匹配的文字识别结果的概率得分;
所述触发模块35用于如果所述缓存查询模块34在缓存中不存在与所述发音信息匹配的文字识别结果的概率得分,则触发在所述语言模型查分树中进行查询的操作。
示例性的,所述装置还包括:第一数组形成模块36、第二数组形成模块37和存储模块38;
所述第一数组形成模块36用于在所述缓存查询模块34根据所述发音信息在缓存中的常用词序列中查询与所述发音信息匹配的文字识别结果的概率得分之前,将所述语言模型查分树中单个文字出现的概率得分高于设定门限值的单个文字及其概率得分,形成第一数组;
所述第二数组形成模块37用于将所述语言模型查分树中至少两个文字构成的文字组合的概率得分高于设定门限值的文字组合及其概率得分,形成第二数组;
所述存储模块38用于将所述第一数组和第二数组作为所述常用词序列进行存储。
示例性的,所述装置还包括:数组分解模块39和定位表构建模块310;
所述数组分解模块39用于在所述存储模块38将所述第一数组和第二数组作为所述常用词序列进行存储之后,根据预定规则将所述第二数组中的多个文字组合分为有序序列数组和无序序列数组,所述有序序列数组中包含至少两个子数组,各子数组中存储有相同特征值的多个文字组合;
所述定位表构模块310用于将所述无序序列数组中的概率得分,以及起始位置和/或终止位置,以及各子数组的特征值、起始位置和/或终止位置存储在定位表中;
相应的,所述缓存查询模块34具体用于:
根据所述发音信息和对应的特征值查询所述定位表,确定与所述发音信息匹配的子数组;采用快速查找算法查询所述匹配的子数组确定与所述发音信息匹配的文字识别结果的概率得分。
示例性的,所述数组分解模块39具体用于:
将所述二元文字组合中第一文字对应的标识值右移第一指定位数与第二文字对应的标识值左移第二指定位数的和作为特征值K;
将特征值为K的二元文字组合的个数大于或等于预设数值的二元文字组合归为有序序列数组;将特征值为K的二元文字组合的个数小于预设数值的二元文字组合归为无序序列数组。
示例性的,所述数组分解模块39具体用于:
将所述特征值K右移第一指定位数与第三文字对应的标识值左移第二指定位数的和作为特征值T;
将特征值为T的三元文字组合的个数大于或等于预设数值的三元文字组合归为有序序列数组;将特征值为T的三元文字组合的个数小于预设数值的三元文字组合归为无序序列数组。
上述各实施例所述的语音识别装置同样用于执行上述各实施例所述的语音识别方法,其技术原理和产生的技术效果类似,这里不再累述。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (12)
1.一种语音识别方法,其特征在于,包括:
根据语音信息识别得到发音信息;
根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分;其中,所述查分树信息包括与文字对应的多个节点,每个节点至少包括当前节点与子节点之间的存储位置偏移量;
根据所述概率得分选择文字识别结果,作为最终的识别结果。
2.根据权利要求1所述的方法,其特征在于,在根据所述发音信息查询加载的语言模型查分树,确定与所述发音信息匹配的文字识别结果的概率得分之前,还包括:
根据所述发音信息在缓存中存储的常用词序列和/或记录的历史查询的文字识别结果中查询与所述发音信息匹配的文字识别结果的概率得分;
如果在所述缓存中不存在与所述发音信息匹配的文字识别结果的概率得分,则触发在所述语言模型查分树中进行查询的操作。
3.根据权利要求2所述的方法,其特征在于,在根据所述发音信息在缓存中的常用词序列中查询与所述发音信息匹配的文字识别结果的概率得分之前,还包括:
将所述语言模型查分树中单个文字出现的概率得分高于设定门限值的单个文字及其概率得分,形成第一数组;
将所述语言模型查分树中至少两个文字构成的文字组合的概率得分高于设定门限值的文字组合及其概率得分,形成第二数组;
将所述第一数组和第二数组作为所述常用词序列进行存储。
4.根据权利要求3所述的方法,其特征在于,将所述第一数组和第二数组作为所述常用词序列进行存储之后,还包括:
根据预定规则将所述第二数组中的多个文字组合分为有序序列数组和无序序列数组,所述有序序列数组中包含至少两个子数组,各子数组中存储有相同特征值的多个文字组合;
将所述无序序列数组中的概率得分,以及起始位置和/或终止位置,以及各子数组的特征值、起始位置和/或终止位置存储在定位表中;
相应的,根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分包括:
根据所述发音信息和对应的特征值查询所述定位表,确定与所述发音信息匹配的子数组;
采用快速查找算法查询所述匹配的子数组确定与所述发音信息匹配的文字识别结果的概率得分。
5.根据权利要求4所述的方法,其特征在于,根据预定规则将所述第二数组中的二元文字组合分为有序序列数组和无序序列数组包括:
将所述二元文字组合中第一文字对应的标识值右移第一指定位数与第二文字对应的标识值左移第二指定位数的和作为特征值K;
将特征值为K的二元文字组合的个数大于或等于预设数值的二元文字组合归为有序序列数组;
将特征值为K的二元文字组合的个数小于预设数值的二元文字组合归为无序序列数组。
6.根据权利要求5所述的方法,其特征在于,根据预定规则将所述第二数组中的三元文字组合分为有序序列数组和无序序列数组包括:
将所述特征值K右移第一指定位数与第三文字对应的标识值左移第二指定位数的和作为特征值T;
将特征值为T的三元文字组合的个数大于或等于预设数值的三元文字组合归为有序序列数组;
将特征值为T的三元文字组合的个数小于预设数值的三元文字组合归为无序序列数组。
7.一种语音识别装置,其特征在于,包括:
发音信息获取模块,用于根据语音信息识别得到发音信息;
概率得分查询模块,用于根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分;其中,所述查分树信息包括与文字对应的多个节点,每个节点至少包括当前节点与子节点之间的存储位置偏移量;
文字识别模块,用于根据所述概率得分选择文字识别结果,作为最终的识别结果。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
缓存查询模块,用于在所述概率得分查询模块根据所述查分树信息加载语言模型查分树,查询所述语言模型查分树确定与所述发音信息匹配的文字识别结果的概率得分之前,根据所述发音信息在缓存中存储的常用词序列和/或记录的历史查询的文字识别结果中查询与所述发音信息匹配的文字识别结果的概率得分;
触发模块,用于如果所述缓存查询模块在缓存中不存在与所述发音信息匹配的文字识别结果的概率得分,则触发在所述语言模型查分树中进行查询的操作。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一数组形成模块,用于在所述缓存查询模块根据所述发音信息在缓存中的常用词序列中查询与所述发音信息匹配的文字识别结果的概率得分之前,将所述语言模型查分树中单个文字出现的概率得分高于设定门限值的单个文字及其概率得分,形成第一数组;
第二数组形成模块,用于将所述语言模型查分树中至少两个文字构成的文字组合的概率得分高于设定门限值的文字组合及其概率得分,形成第二数组;
存储模块,用于将所述第一数组和第二数组作为所述常用词序列进行存储。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
数组分解模块,用于在所述存储模块将所述第一数组和第二数组作为所述常用词序列进行存储之后,根据预定规则将所述第二数组中的多个文字组合分为有序序列数组和无序序列数组,所述有序序列数组中包含至少两个子数组,各子数组中存储有相同特征值的多个文字组合;
定位表构模块,用于将所述无序序列数组中的概率得分,以及起始位置和/或终止位置,以及各子数组的特征值、起始位置和/或终止位置存储在定位表中;
相应的,所述缓存查询模块具体用于:
根据所述发音信息和对应的特征值查询所述定位表,确定与所述发音信息匹配的子数组;采用快速查找算法查询所述匹配的子数组确定与所述发音信息匹配的文字识别结果的概率得分。
11.根据权利要求10所述的装置,其特征在于,所述数组分解模块具体用于:
将所述二元文字组合中第一文字对应的标识值右移第一指定位数与第二文字对应的标识值左移第二指定位数的和作为特征值K;
将特征值为K的二元文字组合的个数大于或等于预设数值的二元文字组合归为有序序列数组;将特征值为K的二元文字组合的个数小于预设数值的二元文字组合归为无序序列数组。
12.根据权利要求11所述的装置,其特征在于,所述数组分解模块具体用于:
将所述特征值K右移第一指定位数与第三文字对应的标识值左移第二指定位数的和作为特征值T;
将特征值为T的三元文字组合的个数大于或等于预设数值的三元文字组合归为有序序列数组;将特征值为T的三元文字组合的个数小于预设数值的三元文字组合归为无序序列数组。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510427908.5A CN105096944B (zh) | 2015-07-20 | 2015-07-20 | 语音识别方法及装置 |
PCT/CN2015/096622 WO2017012243A1 (zh) | 2015-07-20 | 2015-12-08 | 语音识别方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510427908.5A CN105096944B (zh) | 2015-07-20 | 2015-07-20 | 语音识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105096944A true CN105096944A (zh) | 2015-11-25 |
CN105096944B CN105096944B (zh) | 2017-11-03 |
Family
ID=54577230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510427908.5A Active CN105096944B (zh) | 2015-07-20 | 2015-07-20 | 语音识别方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105096944B (zh) |
WO (1) | WO2017012243A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017012243A1 (zh) * | 2015-07-20 | 2017-01-26 | 百度在线网络技术(北京)有限公司 | 语音识别方法、装置、终端设备及存储介质 |
CN109003608A (zh) * | 2018-08-07 | 2018-12-14 | 北京东土科技股份有限公司 | 庭审控制方法、系统、计算机设备及存储介质 |
CN110032716A (zh) * | 2019-04-17 | 2019-07-19 | 北京地平线机器人技术研发有限公司 | 文字编码方法和装置、可读存储介质及电子设备 |
CN110164416A (zh) * | 2018-12-07 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种语音识别方法及其装置、设备和存储介质 |
CN111326147A (zh) * | 2018-12-12 | 2020-06-23 | 北京嘀嘀无限科技发展有限公司 | 语音识别方法、装置、电子设备及存储介质 |
CN113903342A (zh) * | 2021-10-29 | 2022-01-07 | 镁佳(北京)科技有限公司 | 一种语音识别纠错方法及装置 |
CN115240644A (zh) * | 2022-07-18 | 2022-10-25 | 网易(杭州)网络有限公司 | 语音识别方法、装置、存储介质和电子设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111261165B (zh) * | 2020-01-13 | 2023-05-16 | 佳都科技集团股份有限公司 | 车站名称识别方法、装置、设备及存储介质 |
CN111898923B (zh) * | 2020-08-12 | 2024-06-25 | 中国人民解放军总医院第二医学中心 | 一种信息分析方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030187843A1 (en) * | 2002-04-02 | 2003-10-02 | Seward Robert Y. | Method and system for searching for a list of values matching a user defined search expression |
CN101398830A (zh) * | 2007-09-27 | 2009-04-01 | 阿里巴巴集团控股有限公司 | 词库模糊查询方法及词库模糊查询系统 |
CN101576929A (zh) * | 2009-06-16 | 2009-11-11 | 程治永 | 一种快速词条提示的实现方法 |
CN103577394A (zh) * | 2012-07-31 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种基于双数组搜索树的机器翻译方法和装置 |
CN104485107A (zh) * | 2014-12-08 | 2015-04-01 | 畅捷通信息技术股份有限公司 | 名称的语音识别方法、语音识别系统和语音识别设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1161703C (zh) * | 2000-09-27 | 2004-08-11 | 中国科学院自动化研究所 | 汉语连续语音识别的集成预测搜索方法 |
US7810024B1 (en) * | 2002-03-25 | 2010-10-05 | Adobe Systems Incorporated | Efficient access to text-based linearized graph data |
EP1934971A4 (en) * | 2005-08-31 | 2010-10-27 | Voicebox Technologies Inc | DYNAMIC LANGUAGE SCRIPTURE |
JP5120749B2 (ja) * | 2007-12-25 | 2013-01-16 | 株式会社国際電気通信基礎技術研究所 | 木構造辞書を記録した記憶媒体、木構造辞書作成装置、及び木構造辞書作成プログラム |
CN101604522B (zh) * | 2009-07-16 | 2011-09-28 | 北京森博克智能科技有限公司 | 非特定人的嵌入式中英文混合语音识别方法及系统 |
CN104238991B (zh) * | 2013-06-21 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 语音输入匹配方法及装置 |
CN103577548B (zh) * | 2013-10-12 | 2017-02-08 | 优视科技有限公司 | 近音文字匹配方法及装置 |
CN105096944B (zh) * | 2015-07-20 | 2017-11-03 | 百度在线网络技术(北京)有限公司 | 语音识别方法及装置 |
-
2015
- 2015-07-20 CN CN201510427908.5A patent/CN105096944B/zh active Active
- 2015-12-08 WO PCT/CN2015/096622 patent/WO2017012243A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030187843A1 (en) * | 2002-04-02 | 2003-10-02 | Seward Robert Y. | Method and system for searching for a list of values matching a user defined search expression |
CN101398830A (zh) * | 2007-09-27 | 2009-04-01 | 阿里巴巴集团控股有限公司 | 词库模糊查询方法及词库模糊查询系统 |
CN101576929A (zh) * | 2009-06-16 | 2009-11-11 | 程治永 | 一种快速词条提示的实现方法 |
CN103577394A (zh) * | 2012-07-31 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种基于双数组搜索树的机器翻译方法和装置 |
CN104485107A (zh) * | 2014-12-08 | 2015-04-01 | 畅捷通信息技术股份有限公司 | 名称的语音识别方法、语音识别系统和语音识别设备 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017012243A1 (zh) * | 2015-07-20 | 2017-01-26 | 百度在线网络技术(北京)有限公司 | 语音识别方法、装置、终端设备及存储介质 |
CN109003608A (zh) * | 2018-08-07 | 2018-12-14 | 北京东土科技股份有限公司 | 庭审控制方法、系统、计算机设备及存储介质 |
CN110164416A (zh) * | 2018-12-07 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种语音识别方法及其装置、设备和存储介质 |
CN110164416B (zh) * | 2018-12-07 | 2023-05-09 | 腾讯科技(深圳)有限公司 | 一种语音识别方法及其装置、设备和存储介质 |
CN111326147A (zh) * | 2018-12-12 | 2020-06-23 | 北京嘀嘀无限科技发展有限公司 | 语音识别方法、装置、电子设备及存储介质 |
CN111326147B (zh) * | 2018-12-12 | 2023-11-17 | 北京嘀嘀无限科技发展有限公司 | 语音识别方法、装置、电子设备及存储介质 |
CN110032716A (zh) * | 2019-04-17 | 2019-07-19 | 北京地平线机器人技术研发有限公司 | 文字编码方法和装置、可读存储介质及电子设备 |
CN113903342A (zh) * | 2021-10-29 | 2022-01-07 | 镁佳(北京)科技有限公司 | 一种语音识别纠错方法及装置 |
CN115240644A (zh) * | 2022-07-18 | 2022-10-25 | 网易(杭州)网络有限公司 | 语音识别方法、装置、存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105096944B (zh) | 2017-11-03 |
WO2017012243A1 (zh) | 2017-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105096944A (zh) | 语音识别方法及装置 | |
CN110019647B (zh) | 一种关键词搜索方法、装置和搜索引擎 | |
US9406381B2 (en) | TCAM search unit including a distributor TCAM and DRAM and a method for dividing a database of TCAM rules | |
CN102999625A (zh) | 一种检索请求语义扩展方法 | |
CN101464896B (zh) | 语音模糊检索方法及装置 | |
CN106033416A (zh) | 一种字符串处理方法及装置 | |
CN102479191A (zh) | 提供多粒度分词结果的方法及其装置 | |
CN102693266A (zh) | 搜索数据库的方法、生成索引结构的导航设备和方法 | |
CN103106199B (zh) | 文本检索方法和装置 | |
CN103890755A (zh) | 检索装置 | |
CN102402502A (zh) | 用于搜索引擎的分词处理方法和装置 | |
CN109902142B (zh) | 一种基于编辑距离的字符串模糊匹配和查询方法 | |
CN104391908B (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
CN103365992A (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
CN103514236A (zh) | 检索应用中基于拼音的检索条件纠错提示处理方法 | |
CN103123650A (zh) | 一种基于整数映射的xml数据库全文索引方法 | |
CN105069094B (zh) | 一种基于语义理解的空间关键字索引方法 | |
CN103761251A (zh) | 大数据量客户信息的存储与查找方法 | |
CN103365991A (zh) | 一种基于一维线性空间实现Trie树的词典存储管理方法 | |
CN102819606B (zh) | 基于拼音的信息查询方法、系统和服务器 | |
CN101251847A (zh) | 一种适用于移动设备的电子词典词库结构 | |
CN105404677A (zh) | 一种基于树形结构的检索方法 | |
CN102478968B (zh) | 中文拼音输入方法和中文拼音输入系统 | |
CN101398830A (zh) | 词库模糊查询方法及词库模糊查询系统 | |
CN106997354B (zh) | 一种poi数据检索方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |