语音建模单元的构建方法、装置和计算机设备转让专利

申请号 : CN202111456505.5

文献号 : CN113870848B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李杰王广新杨汉丹

申请人 : 深圳市友杰智新科技有限公司

摘要 :

本申请提供了一种语音建模单元的构建方法、装置和计算机设备,构建系统以发音音素为基础(即以初始建模单元表为基础),通过扩展生成建模单元的方式(即选取更新建模单元,并以此得到更新建模单元表),从而充分结合了发音特点,使得最终构建的更新建模单元表能够充分利用发音信息。并且,由于最终的更新建模单元表中包含了扩展后的建模单元,扩展了建模单元的类别数目,从而使得应用于语音识别任务时,能够有效减少帧序列到建模单元序列任务中后者的长度,进而降低了语音识别中网络学习的难度,并提升了识别准确度。进一步的,本申请可以根据自身需求限制更新建模单元表中建模单元的规模,从而满足资源受限设备的需求。

权利要求 :

1.一种语音建模单元的构建方法,其特征在于,包括:S1:获取初始建模单元表和训练文本语料,并根据所述训练文本语料中各个token的第一出现频次,生成词频字典,其中,单个所述token对应所述训练文本语料的单个单词,单个所述token包含若干个音素单元;

S2:根据所述词频字典生成建模单元任务参数,并根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列,单个所述建模单元序列包括若干个建模单元;

S3:基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次,所述token的子串由该token所包含的所有音素单元基于该token对应的建模单元序列拆分得到;

S4:将各所述子串按照各自对应的出现频次进行降序排列,并从排列后的各所述子串中降序筛选出第一预设数量个第一子串作为更新建模单元加入到所述初始建模单元表,得到更新建模单元表;

S5:循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建。

2.根据权利要求1所述的语音建模单元的构建方法,其特征在于,所述基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次的步骤,包括:基于各所述token分别对应的若干个所述建模单元,将各所述token进行拆解,得到各所述token分别对应的多个所述子串;

根据各所述子串在单个token中的所述第二出现频次,以及各所述token的所述第一出现频次,统计得到各所述子串分别对应的所述第三出现频次。

3.根据权利要求1所述的语音建模单元的构建方法,其特征在于,所述建模单元任务参数包括建模单元最大长度,所述根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列的步骤中,单个所述token解析为建模单元序列的步骤,包括:

S201:按照所述token中各所述音素单元的排列顺序,顺序筛选数量与所述建模单元最大长度一致的若干个音素单元组成第一建模单元;

S202:判断所述第一建模单元是否包含于所述初始建模单元表中;

S203:若所述第一建模单元包含于所述初始建模单元表中,则将所述第一建模单元加入建模单元序列中;

S204:若所述第一建模单元没有包含于所述初始建模单元表中,则将所述第一建模单元排序最末的音素单元去除,并判断去除排序最末的音素单元后的第一建模单元是否包含于所述初始建模单元表中;

S205:若去除排序最末的音素单元后的第一建模单元包含于所述初始建模单元表中,则将所述去除排序最末的音素单元后的第一建模单元加入建模单元序列中;

S206:按照步骤S201—S205对应的规则,顺序地、不重复地拆分所述token,直至得到包含所述token所有音素单元的建模单元序列。

4.根据权利要求1所述的语音建模单元的构建方法,其特征在于,所述建模单元任务参数包括频次阈值,所述循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建的步骤,包括:从所述词频字典中筛选出第一出现频次的最大值和第一出现频次的最小值;

计算所述第一出现频次的最大值和所述第一出现频次的最小值的均值,得到频次阈值。

5.根据权利要求4所述的语音建模单元的构建方法,其特征在于,所述循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建的步骤,还包括:

在迭代循环过程中,基于步骤S3获取当前次的所述初始建模单元表中各个第一建模单元分别对应的第四出现频次;

从各所述第一建模单元中,筛选出第四出现频次小于频次阈值的若干个第二建模单元剔除。

6.根据权利要求1所述的语音建模单元的构建方法,其特征在于,所述预设条件,包括:判断当前次的所述更新建模单元表所包含的所有第三建模单元的数量是否大于数量阈值;

若当前次的所述更新建模单元表所包含的所有第三建模单元的数量大于数量阈值,则判定当前次的所述更新建模单元表符合预设条件,并停止循环迭代。

7.根据权利要求1所述的语音建模单元的构建方法,其特征在于,所述预设条件,还包括:

根据当前次的所述更新建模单元表中排序前第二预设数量个第四建模单元,和当前次的所述初始建模单元表中排序前第二预设数量个第五建模单元,判断当前次的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度是否大于相似度阈值;

若当前次的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度大于相似度阈值,则判定当前次的所述更新建模单元表符合预设条件,并停止循环迭代。

8.一种语音建模单元的构建装置,其特征在于,包括:获取模块,用于获取初始建模单元表和训练文本语料,并根据所述训练文本语料中各个token的第一出现频次,生成词频字典,其中,单个所述token对应所述训练文本语料的单个单词,单个所述token包含若干个音素单元;

解析模块,用于根据所述词频字典生成建模单元任务参数,并根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列,单个所述建模单元序列包括若干个建模单元;

计算模块,用于基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次,所述token的子串由该token所包含的所有音素单元基于该token对应的建模单元序列拆分得到;

筛选模块,用于将各所述子串按照各自对应的出现频次进行降序排列,并从排列后的各所述子串中降序筛选出第一预设数量个第一子串作为更新建模单元加入到所述初始建模单元表,得到更新建模单元表;

循环模块,用于循环迭代所述解析模块、所述计算模块和所述筛选模块执行的方法,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建。

9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

说明书 :

语音建模单元的构建方法、装置和计算机设备

技术领域

[0001] 本申请涉及语音识别技术领域,特别涉及一种语音建模单元的构建方法、装置和计算机设备。

背景技术

[0002] 语音识别算法在终端设备部署时,建模单元的选择或设计,需要满足终端设备算力和内存的限制。以英文语音识别为例,常用的建模单元选择音素或者字(word级别)。在算
力和内存受限设备上部署时,存在如下不足:
[0003] 一、字级别建模单元种类过多,不满足内存限制;
[0004] 二、音素类别数目较小,(不带音调的音素一般是39类)粒度较小,表达能力偏弱,因此生成的label序列过长,增加了网络学习的难度。

发明内容

[0005] 本申请的主要目的为提供一种语音建模单元的构建方法、装置和计算机设备,旨在解决现有语音识别算法的建模单元不适用于资源受限设备,或者表达能力较弱的弊端。
[0006] 为实现上述目的,本申请提供了一种语音建模单元的构建方法,包括:
[0007] S1:获取初始建模单元表和训练文本语料,并根据所述训练文本语料中各个token的第一出现频次,生成词频字典,其中,单个所述token对应所述训练文本语料的单个单词,
单个所述token包含若干个音素单元;
[0008] S2:根据所述词频字典生成建模单元任务参数,并根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列,单个所述建模单元
序列包括若干个建模单元;
[0009] S3:基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次,所述token的子串由该token所
包含的所有音素单元基于该token对应的建模单元序列拆分得到;
[0010] S4:将各所述子串按照各自对应的出现频次进行降序排列,并从排列后的各所述子串中降序筛选出第一预设数量个第一子串作为更新建模单元加入到所述初始建模单元
表,得到更新建模单元表;
[0011] S5:循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元表符合预设条件,则停止循环迭代,完成所述
语音建模单元的构建。
[0012] 本申请还提供了一种语音建模单元的构建装置,包括:
[0013] 获取模块,用于获取初始建模单元表和训练文本语料,并根据所述训练文本语料中各个token的第一出现频次,生成词频字典,其中,单个所述token对应所述训练文本语料
的单个单词,单个所述token包含若干个音素单元;
[0014] 解析模块,用于根据所述词频字典生成建模单元任务参数,并根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列,单个所
述建模单元序列包括若干个建模单元;
[0015] 计算模块,用于基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次,所述token的子串由
该token所包含的所有音素单元基于该token对应的建模单元序列拆分得到;
[0016] 筛选模块,用于将各所述子串按照各自对应的出现频次进行降序排列,并从排列后的各所述子串中降序筛选出第一预设数量个第一子串作为更新建模单元加入到所述初
始建模单元表,得到更新建模单元表;
[0017] 循环模块,用于循环迭代所述解析模块、所述计算模块和所述筛选模块执行的方法,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至
更新建模单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建。
[0018] 本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
[0019] 本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
[0020] 本申请中提供的一种语音建模单元的构建方法、装置和计算机设备,构建系统首先获取初始建模单元表和训练文本语料,并根据训练文本语料中各个token的第一出现频
次,生成词频字典,其中,单个token对应训练文本语料的单个单词,单个token包含若干个
音素单元。然后,根据词频字典生成建模单元任务参数,并根据建模单元任务参数和初始建
模单元表,将各token解析为各自对应的建模单元序列,单个建模单元序列包括若干个建模
单元。构建系统基于各个token分别对应的第一出现频次,以及各个token的子串分别对应
的第二出现频次,计算得到各个子串的第三出现频次,token的子串由该token所包含的所
有音素单元基于该token对应的建模单元序列拆分得到。构建系统将各子串按照各自对应
的出现频次进行降序排列,并从排列后的各子串中降序筛选出第一预设数量个第一子串作
为更新建模单元加入到初始建模单元表,得到更新建模单元表。最后,构建系统循环迭代上
述步骤,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,
直至更新建模单元表符合预设条件,则停止循环迭代,完成语音建模单元的构建。本申请
中,构建系统以发音音素为基础(即以初始建模单元表为基础),通过扩展生成建模单元的
方式(即选取更新建模单元,并以此得到更新建模单元表),从而充分结合了发音特点,使得
最终构建的更新建模单元表能够充分利用发音信息。并且,由于最终的更新建模单元表中
包含了扩展后的建模单元,扩展了建模单元的类别数目,从而使得应用于语音识别任务时,
能够有效减少帧序列到建模单元序列任务中后者的长度,进而降低了语音识别中网络学习
的难度,并提升了识别准确度。进一步的,本申请可以根据自身需求限制更新建模单元表中
建模单元的规模,从而满足资源受限设备的需求。

附图说明

[0021] 图1是本申请一实施例中语音建模单元的构建方法的步骤示意图;
[0022] 图2是本申请一实施例中语音建模单元的构建装置的整体结构框图;
[0023] 图3是本申请一实施例的计算机设备的结构示意框图。
[0024] 本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0025] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不
用于限定本申请。
[0026] 参照图1,本申请一实施例中提供了一种语音建模单元的构建方法,包括:
[0027] S1:获取初始建模单元表和训练文本语料,并根据所述训练文本语料中各个token的第一出现频次,生成词频字典,其中,单个所述token对应所述训练文本语料的单个单词,
单个所述token包含若干个音素单元;
[0028] S2:根据所述词频字典生成建模单元任务参数,并根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列,单个所述建模单元
序列包括若干个建模单元;
[0029] S3:基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次,所述token的子串由该token所
包含的所有音素单元基于该token对应的建模单元序列拆分得到;
[0030] S4:将各所述子串按照各自对应的出现频次进行降序排列,并从排列后的各所述子串中降序筛选出第一预设数量个第一子串作为更新建模单元加入到所述初始建模单元
表,得到更新建模单元表;
[0031] S5:循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元表符合预设条件,则停止循环迭代,完成所述
语音建模单元的构建。
[0032] 本实施例中,构建系统初始化建模单元表,选取39个基础的音素作为初始的建模单元,从而形成初始建模单元表。并且,构建系统调取用户录入或预存的训练文本语料,然
后通过映射工具(比如g2p)将训练文本语料映射为对应的音素序列。单个token对应训练文
本语料的单个单词,每个token以音素为单元,中间用下划线连接,不同的token之间用空格
分开。比如 hey snips ‑‑‑>'HH_EY', 'S_N_IH_P_S',其中HH_EY是一个token,S_N_IH_P_S
为一个token。构建系统统计训练文本语料中各个token的第一出现频次,生成词频字典(词
频字典即包含了各个token分别对应的第一出现频次)。构建系统根据词频字典中各个
token分别对应的第一出现频次生成建模单元任务参数,比如频次阈值,建模单元最大长度
(在实际应用中,建模单元最大长度也可以由用户自定义),方便后续建模单元生成任务的
筛选。构建系统根据建模单元任务参数中的建模单元最大长度,以及初始建模单元表,将各
个token解析为各自对应的建模单元序列,单个建模单元序列中包含若干个建模单元。具体
地,构建系统首先按照单个token中各个音素单元的排列顺序,顺序筛选数量与建模单元最
大长度一致的若干个音素单元组成第一建模单元,然后判断第一建模单元是否包含于初始
建模单元表中。如果第一建模单元包含于初始建模单元表中,则将第一建模单元加入建模
单元序列中(初始的建模单元序列为空白序列);如果第一建模单元没有包含于初始建模单
元表中,则将第一建模单元排序最末的音素单元去除,并判断去除排序最末的音素单元后
的第一建模单元是否包含于初始建模单元表中。此时,若去除排序最末的音素单元后的第
一建模单元包含于初始建模单元表中,则将去除排序最末的音素单元后的第一建模单元加
入建模单元序列中。构建系统按照上述规则顺序地、不重复地拆分单个token,直至得到包
含单个token所有音素单元的建模单元序列;由此,构建系统解析得到各个token各自对应
的建模单元序列。构建系统基于各个token分别对应的若干个建模单元,将各个token进行
拆解,得到各token分别对应的多个子串。然后根据各个子串在单个token中的第二出现频
次,以及各个token的所述第一出现频次,统计得到各个子串分别对应的第三出现频次(第
三出现频次表征子串在整个训练文本语料中总的出现频次)。构建系统将各个子串按照各
自对应的出现频次进行降序排列,然后从排列后的各个子串中降序筛选出第一预设数量个
第一子串作为更新建模单元加入到初始建模单元表(比如选择排序前30个子串,这30个子
串即为第一子串,作为更新建模单元加入到初始建模单元表中),对初始建模单元表进行扩
展更新,得到更新建模单元表。构建系统循环迭代步骤S2—S4对应的处理方法,并在循环迭
代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,通过循环迭代逐步扩
展更新建模单元表,并逐次剔除建模单元表中无意义的建模单元,直至某一次的更新建模
单元表符合预设条件(比如某一次的更新建模单元表所包含的建模单元的数量大于或等于
数量阈值;或者当前次的更新建模单元表与上一次的更新建模单元表之间的相似度大于相
似度阈值),则停止循环迭代,完成语音识别任务所需的语音建模单元的构建(即最终次的
更新建模单元表的扩展更新)。使用时,模型训练系统根据最终次的更新建模单元表,将训
练语料映射为整数id,即可使用该更新建模单元表进行语音识别训练。
[0033] 本实施例中,构建系统以发音音素为基础(即以初始建模单元表为基础),通过扩展生成建模单元的方式(即选取更新建模单元,并以此得到更新建模单元表),从而充分结
合了发音特点,使得最终构建的更新建模单元表能够充分利用发音信息。并且,由于最终的
更新建模单元表中包含了扩展后的建模单元,扩展了建模单元的类别数目,从而使得应用
于语音识别任务时,能够有效减少帧序列到建模单元序列任务中后者的长度,进而降低了
语音识别中网络学习的难度,并提升了识别准确度。进一步的,本申请可以根据自身需求限
制更新建模单元表中建模单元的规模,从而满足资源受限设备的需求。
[0034] 进一步的,所述基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次的步骤,包括:
[0035] S301:基于各所述token分别对应的若干个所述建模单元,将各所述token进行拆解,得到各所述token分别对应的多个所述子串;
[0036] S302:根据各所述子串在单个token中的所述第二出现频次,以及各所述token的所述第一出现频次,统计得到各所述子串分别对应的所述第三出现频次。
[0037] 本实施例中,构建系统基于各个token各自对应的若干个建模单元,将各个token进行拆解,得到各个token分别对应的多个子串。以token :a_b_c_d_e为例进行说明,a_b_
c_d_e对应的建模单元序列为:a b_c d e(其中,a,b_c,d,e为4个建模单元);则将a_b_c_d_
e拆解为12个子串:a,a_b,a_b_c,a_b_c_d,a_b_c_d_e ;b,b_c,b_c_d,b_c_d_e;d,d_e(此处
b_c为建模单元,故直接跳到了d开始);e。构建系统按照各个子串在单个token中的第二出
现频次,以及各个token分别对应的第一出现频次,统计得到各个子串分别对应的第三出现
频次。比如在上述所列举的例子中,token 中子串a的第二出现频次为1,包含有子串a的
token在训练文本语料中的出现次数为100;则子串a对应的第三出现频次为100。
[0038] 进一步的,所述建模单元任务参数包括建模单元最大长度,所述根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列的步
骤中,单个所述token解析为建模单元序列的步骤,包括:
[0039] S201:按照所述token中各所述音素单元的排列顺序,顺序筛选数量与所述建模单元最大长度一致的若干个音素单元组成第一建模单元;
[0040] S202:判断所述第一建模单元是否包含于所述初始建模单元表中;
[0041] S203:若所述第一建模单元包含于所述初始建模单元表中,则将所述第一建模单元加入建模单元序列中;
[0042] S204:若所述第一建模单元没有包含于所述初始建模单元表中,则将所述第一建模单元排序最末的音素单元去除,并判断去除排序最末的音素单元后的第一建模单元是否
包含于所述初始建模单元表中;
[0043] S205:若去除排序最末的音素单元后的第一建模单元包含于所述初始建模单元表中,则将所述去除排序最末的音素单元后的第一建模单元加入建模单元序列中;
[0044] S206:按照步骤S201—S205对应的规则,顺序地、不重复地拆分所述token,直至得到包含所述token所有音素单元的建模单元序列。
[0045] 本实施例中,构建系统将各个token解析为各自对应的建模单元序列的逻辑相同,下面以单个token的解析过程为例进行详细说明。构建系统首先按照token中各个音素单元
的排列顺序,顺序筛选数量与建模单元最大长度一致的若干个音素单元组成第一建模单
元。然后,以初始建模单元表为基准,判断第一建模单元是否包含于初始建模单元表中(即
判断初始建模单元表中是否存在于第一建模单元相同的建模单元)。如果第一建模单元包
含于初始建模单元表中,则将第一建模单元加入建模单元序列中(初始的建模单元序列为
空白序列)。如果第一建模单元没有包含与初始建模单元表中,则将第一建模单元中排序最
末的音素单元去除,并判断去除排序最末的音素单元后的第二建模单元是否包含于初始建
模单元表中。如果去除排序最末的音素单元后的第一建模单元包含于初始建模单元表中,
则将去除排序最末的音素单元后的第一建模单元加入建模单元序列中。构建按照上述规则
顺序地、不重复地拆分该token,直至得到包含该token所有音素单元的建模单元序列。下面
以token为a_b_c_d_e(其中a、b、c、d、e为音素单元,不是表示单个字母)为例进行具体说明,
假设建模单元最大长度为3,首先判断第一建模单元a_b_c是否在初始建模单元表里;若在,
则在建模单元序列中添加a_b_c,下一个第一建模单元则跳到d开始继续解析(即下一个第
一建模单元为d_e)。若a_b_c不在初始建模单元表里面,则去除排序最末的音素单元c,检查
a_b 是否在初始建模单元表里,若a_b在初始建模单元表中,则在建模单元序列中添加a_b,
下一个跳到c(即下一个第一建模单元为c_d_e),按照上述规则继续解析;若a_b不在初始建
模单元表里,则直接将a添加到建模单元序列里,下一个跳到b(下一个第一建模单元为b_c_
d),按照上述规则继续解析,依次顺序拆解,直至建模单元序列中包含a、b、c、d、e 5个音素
单元。
[0046] 进一步的,所述建模单元任务参数包括频次阈值,所述循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模
单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建的步骤,包括:
[0047] S501:从所述词频字典中筛选出第一出现频次的最大值和第一出现频次的最小值;
[0048] S502:计算所述第一出现频次的最大值和所述第一出现频次的最小值的均值,得到频次阈值。
[0049] 本实施例中,构建系统在迭代循环过程中,每次都需要根据建模单元任务参数中的频次阈值,淘汰初始建模单元表中出现频次小于频次阈值的建模单元(这部分建模单元
为无意义单元)。具体地,构建系统从词频字典中筛选出第一出现频次的最大值和第一出现
频次的最小值,然后计算第一出现频次的最大值和第一出现频次的最小值两者的均值,得
到所需的频次阈值,方便后续建模单元任务的筛选。
[0050] 进一步的,所述循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元表符合预设条件,则停止循环迭
代,完成所述语音建模单元的构建的步骤,还包括:
[0051] S503:在迭代循环过程中,基于步骤S3获取当前次的所述初始建模单元表中各个第一建模单元分别对应的第四出现频次;
[0052] S504:从各所述第一建模单元中,筛选出第四出现频次小于频次阈值的若干个第二建模单元剔除。
[0053] 本实施例中,在迭代循环过程中,构建单元通过步骤S3统计得到各个子串分别对应的第三出现频次(第三出现频次表征子串在整个训练文本语料中总的出现频次),而当前
次的初始建模单元表所包含的各个第一建模单元同样包含于各个子串中(由步骤S301、
S302可知,初始建模单元表中各个第一建模单元也属于所有子串中的一部分),由此可以从
中筛选出各个第一建模单元分别对应的第四出现频次。然后,将各个第一建模单元分别对
应的第四出现频次与频次阈值进行比对,从而筛选出第四出现频次小于频次阈值的若干个
第二建模单元,并将这些第二建模单元从初始建模单元表中剔除(这些第二建模单元为无
意义单元),从而提高当前次的更新建模单元表的有效性。优选的,短建模单元要减去包含
它的对应的长建模单元个数;举例说明,比如频次阈值为400,长建模单元a_b_c对应的第四
出现频次为500个,短建模单元a_b对应的第四出现频次为1200个,长建模单元a_b_c和短建
模单元a_b均可以作为新的建模单元候选,计算长建模单元a_b_c的同时,要更新a_b的第四
出现频次计数为1200‑500=700。需要注意的是,本实施例所述的剔除初始建模单元表中出
现频次小于频次阈值的建模单元,不包括最初始的39个基础的音素作为的建模单元。
[0054] 进一步的,所述预设条件,包括:
[0055] S505:判断当前次的所述更新建模单元表所包含的所有第三建模单元的数量是否大于数量阈值;
[0056] S506:若当前次的所述更新建模单元表所包含的所有第三建模单元的数量大于数量阈值,则判定当前次的所述更新建模单元表符合预设条件,并停止循环迭代。
[0057] 本实施例中,构建系统在每次更新扩展得到新的更新建模单元表后,判断当前次的更新建模单元表所包含的所有第三建模单元的数量是否大于数量阈值。如果当前次的更
新建模单元表所包含的所有第三建模单元的数量大于数量阈值,则判定当前次的更新建模
单元表符合预设条件,构建系统停止循环迭代,完成语音建模单元的构建。比如,数量阈值
为100个,当前次扩展后的更新建模单元表所包含的第三建模单元的数量为120个,则构建
系统判定当前次的更新建模单元表符合预设条件,停止循环迭代。优先的,更新建模单元表
中各个第三建模单元是按照各自对应的出现频次进行降序排列(即排序越靠近的第三建模
单元,出现频次越高),为了满足数量阈值的要求,构建系统将超出数量阈值的、排序靠后的
若干个第三建模单元剔除。比如上述所举例子中,数量阈值为100个,当前次的更新建模单
元表所包含的第三建模单元的数量为120个,则将更新建模单元表中排序100位之后的20个
第三建模单元剔除。
[0058] 进一步的,所述预设条件,还包括:
[0059] S507:根据当前次的所述更新建模单元表中排序前第二预设数量个第四建模单元,和当前次的所述初始建模单元表中排序前第二预设数量个第五建模单元,判断当前次
的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度是否大于相似度阈
值;
[0060] S508:若当前次的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度大于相似度阈值,则判定当前次的所述更新建模单元表符合预设条件,并停止循环迭
代。
[0061] 本实施例中,构建系统可以依据另一预设条件判断是否停止循环迭代,具体地:构建系统根据当前次的更新建模单元表中排序前第二预设数量个第四建模单元,和当前次的
初始建模单元表(即上一次的更新建模单元表)中排序前第二预设数量个第五建模单元,判
断当前次的更新建模单元表和当前次的初始建模单元表之间的相似度是否大于相似度阈
值。如果前次的更新建模单元表和当前次的初始建模单元表之间的相似度大于相似度阈
值,则判定当前次的更新建模单元表符合预设条件,构建系统停止循环迭代。比如从当前次
的更新建模单元表中筛选排序前100个第四建模单元,和当前次的初始建模单元表中排序
前100个第五建模单元进行比对,假设这100个第四建模单元和第五建模单元中有95个相
同,则当前次的更新建模单元表和当前次的初始建模单元表之间的相似度为95%。假定相似
度阈值为90%,由于95%大雨90%,则判定当前次的更新建模单元表符合预设条件。优选的,假
设当前次的初始建模单元总共有200个第四建模单元,构建系统可以按照数量阈值的要求,
顺序筛选符合数量阈值的第四建模单元作为最终的建模单元表(比如筛选排序前100个第
四建模单元作为最终的建模单元表)。
[0062] 参照图2,本申请一实施例中还提供了一种语音建模单元的构建装置,包括:
[0063] 获取模块1,用于获取初始建模单元表和训练文本语料,并根据所述训练文本语料中各个token的第一出现频次,生成词频字典,其中,单个所述token对应所述训练文本语料
的单个单词,单个所述token包含若干个音素单元;
[0064] 解析模块2,用于根据所述词频字典生成建模单元任务参数,并根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列,单个所
述建模单元序列包括若干个建模单元;
[0065] 计算模块3,用于基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次,所述token的子串由
该token所包含的所有音素单元基于该token对应的建模单元序列拆分得到;
[0066] 筛选模块4,用于将各所述子串按照各自对应的出现频次进行降序排列,并从排列后的各所述子串中降序筛选出第一预设数量个第一子串作为更新建模单元加入到所述初
始建模单元表,得到更新建模单元表;
[0067] 循环模块5,用于循环迭代所述解析模块2、所述计算模块3和所述筛选模块4执行的方法,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,
直至更新建模单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建。
[0068] 进一步的,所述计算模块2,包括:
[0069] 拆解单元,用于基于各所述token分别对应的若干个所述建模单元,将各所述token进行拆解,得到各所述token分别对应的多个所述子串;
[0070] 统计单元,用于根据各所述子串在单个token中的所述第二出现频次,以及各所述token的所述第一出现频次,统计得到各所述子串分别对应的所述第三出现频次。
[0071] 进一步的,所述建模单元任务参数包括建模单元最大长度,所述解析模块2,包括:
[0072] 第一筛选单元,用于按照所述token中各所述音素单元的排列顺序,顺序筛选数量与所述建模单元最大长度一致的若干个音素单元组成第一建模单元;
[0073] 第一判断单元,用于判断所述第一建模单元是否包含于所述初始建模单元表中;
[0074] 第一添加单元,用于若所述第一建模单元包含于所述初始建模单元表中,则将所述第一建模单元加入建模单元序列中;
[0075] 第二判断单元,用于若所述第一建模单元没有包含于所述初始建模单元表中,则将所述第一建模单元排序最末的音素单元去除,并判断去除排序最末的音素单元后的第一
建模单元是否包含于所述初始建模单元表中;
[0076] 第二添加单元,用于若去除排序最末的音素单元后的第一建模单元包含于所述初始建模单元表中,则将所述去除排序最末的音素单元后的第一建模单元加入建模单元序列
中;
[0077] 拆分单元,用于按照第一筛选单元、第一判断单元、第一添加单元、第二判断单元和第二添加单元所执行的方法对应的规则,顺序地、不重复地拆分所述token,直至得到包
含所述token所有音素单元的建模单元序列。
[0078] 进一步的,所述建模单元任务参数包括频次阈值,所述循环模块5,包括:
[0079] 第二筛选单元,用于从所述词频字典中筛选出第一出现频次的最大值和第一出现频次的最小值;
[0080] 计算单元,用于计算所述第一出现频次的最大值和所述第一出现频次的最小值的均值,得到频次阈值。
[0081] 进一步的,所述循环模块5,还包括:
[0082] 获取单元,用于在迭代循环过程中,基于步骤S3获取当前次的所述初始建模单元表中各个第一建模单元分别对应的第四出现频次;
[0083] 剔除单元,用于从各所述第一建模单元中,筛选出第四出现频次小于频次阈值的若干个第二建模单元剔除。
[0084] 进一步的,所述循环模块5,还包括:
[0085] 第三判断单元,用于判断当前次的所述更新建模单元表所包含的所有第三建模单元的数量是否大于数量阈值;
[0086] 第一判定单元,用于若当前次的所述更新建模单元表所包含的所有第三建模单元的数量大于数量阈值,则判定当前次的所述更新建模单元表符合预设条件,并停止循环迭
代。
[0087] 进一步的,所述循环模块5,还包括:
[0088] 第四判断单元,用于根据当前次的所述更新建模单元表中排序前第二预设数量个第四建模单元,和当前次的所述初始建模单元表中排序前第二预设数量个第五建模单元,
判断当前次的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度是否大
于相似度阈值;
[0089] 第二判定单元,用于若当前次的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度大于相似度阈值,则判定当前次的所述更新建模单元表符合预设条件,
并停止循环迭代。
[0090] 本实施例中,语音建模单元的构建装置中各模块、单元用于对应执行与上述语音建模单元的构建方法中的各个步骤,其具体实施过程在此不做详述。
[0091] 本实施例提供的一种语音建模单元的构建装置,构建系统首先获取初始建模单元表和训练文本语料,并根据训练文本语料中各个token的第一出现频次,生成词频字典,其
中,单个token对应训练文本语料的单个单词,单个token包含若干个音素单元。然后,根据
词频字典生成建模单元任务参数,并根据建模单元任务参数和初始建模单元表,将各token
解析为各自对应的建模单元序列,单个建模单元序列包括若干个建模单元。构建系统基于
各个token分别对应的第一出现频次,以及各个token的子串分别对应的第二出现频次,计
算得到各个子串的第三出现频次,token的子串由该token所包含的所有音素单元基于该
token对应的建模单元序列拆分得到。构建系统将各子串按照各自对应的出现频次进行降
序排列,并从排列后的各子串中降序筛选出第一预设数量个第一子串作为更新建模单元加
入到初始建模单元表,得到更新建模单元表。最后,构建系统循环迭代上述步骤,并在循环
迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元
表符合预设条件,则停止循环迭代,完成语音建模单元的构建。本申请中,构建系统以发音
音素为基础(即以初始建模单元表为基础),通过扩展生成建模单元的方式(即选取更新建
模单元,并以此得到更新建模单元表),从而充分结合了发音特点,使得最终构建的更新建
模单元表能够充分利用发音信息。并且,由于最终的更新建模单元表中包含了扩展后的建
模单元,扩展了建模单元的类别数目,从而使得应用于语音识别任务时,能够有效减少帧序
列到建模单元序列任务中后者的长度,进而降低了语音识别中网络学习的难度,并提升了
识别准确度。进一步的,本申请可以根据自身需求限制更新建模单元表中建模单元的规模,
从而满足资源受限设备的需求。
[0092] 参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络
接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存
储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序
和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。
该计算机设备的数据库用于存储训练文本语料等数据。该计算机设备的网络接口用于与外
部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种语音建模单元的构
建方法。
[0093] 上述处理器执行上述语音建模单元的构建方法的步骤:
[0094] S1:获取初始建模单元表和训练文本语料,并根据所述训练文本语料中各个token的第一出现频次,生成词频字典,其中,单个所述token对应所述训练文本语料的单个单词,
单个所述token包含若干个音素单元;
[0095] S2:根据所述词频字典生成建模单元任务参数,并根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列,单个所述建模单元
序列包括若干个建模单元;
[0096] S3:基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次,所述token的子串由该token所
包含的所有音素单元基于该token对应的建模单元序列拆分得到;
[0097] S4:将各所述子串按照各自对应的出现频次进行降序排列,并从排列后的各所述子串中降序筛选出第一预设数量个第一子串作为更新建模单元加入到所述初始建模单元
表,得到更新建模单元表;
[0098] S5:循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元表符合预设条件,则停止循环迭代,完成所述
语音建模单元的构建。
[0099] 进一步的,所述基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次的步骤,包括:
[0100] S301:基于各所述token分别对应的若干个所述建模单元,将各所述token进行拆解,得到各所述token分别对应的多个所述子串;
[0101] S302:根据各所述子串在单个token中的所述第二出现频次,以及各所述token的所述第一出现频次,统计得到各所述子串分别对应的所述第三出现频次。
[0102] 进一步的,所述建模单元任务参数包括建模单元最大长度,所述根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列的步
骤中,单个所述token解析为建模单元序列的步骤,包括:
[0103] S201:按照所述token中各所述音素单元的排列顺序,顺序筛选数量与所述建模单元最大长度一致的若干个音素单元组成第一建模单元;
[0104] S202:判断所述第一建模单元是否包含于所述初始建模单元表中;
[0105] S203:若所述第一建模单元包含于所述初始建模单元表中,则将所述第一建模单元加入建模单元序列中;
[0106] S204:若所述第一建模单元没有包含于所述初始建模单元表中,则将所述第一建模单元排序最末的音素单元去除,并判断去除排序最末的音素单元后的第一建模单元是否
包含于所述初始建模单元表中;
[0107] S205:若去除排序最末的音素单元后的第一建模单元包含于所述初始建模单元表中,则将所述去除排序最末的音素单元后的第一建模单元加入建模单元序列中;
[0108] S206:按照步骤S201—S205对应的规则,顺序地、不重复地拆分所述token,直至得到包含所述token所有音素单元的建模单元序列。
[0109] 进一步的,所述建模单元任务参数包括频次阈值,所述循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模
单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建的步骤,包括:
[0110] S501:从所述词频字典中筛选出第一出现频次的最大值和第一出现频次的最小值;
[0111] S502:计算所述第一出现频次的最大值和所述第一出现频次的最小值的均值,得到频次阈值。
[0112] 进一步的,所述循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元表符合预设条件,则停止循环迭
代,完成所述语音建模单元的构建的步骤,还包括:
[0113] S503:在迭代循环过程中,基于步骤S3获取当前次的所述初始建模单元表中各个第一建模单元分别对应的第四出现频次;
[0114] S504:从各所述第一建模单元中,筛选出第四出现频次小于频次阈值的若干个第二建模单元剔除。
[0115] 进一步的,所述预设条件,包括:
[0116] S505:判断当前次的所述更新建模单元表所包含的所有第三建模单元的数量是否大于数量阈值;
[0117] S506:若当前次的所述更新建模单元表所包含的所有第三建模单元的数量大于数量阈值,则判定当前次的所述更新建模单元表符合预设条件,并停止循环迭代。
[0118] 进一步的,所述预设条件,还包括:
[0119] S507:根据当前次的所述更新建模单元表中排序前第二预设数量个第四建模单元,和当前次的所述初始建模单元表中排序前第二预设数量个第五建模单元,判断当前次
的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度是否大于相似度阈
值;
[0120] S508:若当前次的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度大于相似度阈值,则判定当前次的所述更新建模单元表符合预设条件,并停止循环迭
代。
[0121] 本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现语音建模单元的构建方法,所述语音建模单元的构建方法具体
为:
[0122] S1:获取初始建模单元表和训练文本语料,并根据所述训练文本语料中各个token的第一出现频次,生成词频字典,其中,单个所述token对应所述训练文本语料的单个单词,
单个所述token包含若干个音素单元;
[0123] S2:根据所述词频字典生成建模单元任务参数,并根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列,单个所述建模单元
序列包括若干个建模单元;
[0124] S3:基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次,所述token的子串由该token所
包含的所有音素单元基于该token对应的建模单元序列拆分得到;
[0125] S4:将各所述子串按照各自对应的出现频次进行降序排列,并从排列后的各所述子串中降序筛选出第一预设数量个第一子串作为更新建模单元加入到所述初始建模单元
表,得到更新建模单元表;
[0126] S5:循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元表符合预设条件,则停止循环迭代,完成所述
语音建模单元的构建。
[0127] 进一步的,所述基于各所述token分别对应的第一出现频次,以及各所述token的子串分别对应的第二出现频次,计算得到各所述子串的第三出现频次的步骤,包括:
[0128] S301:基于各所述token分别对应的若干个所述建模单元,将各所述token进行拆解,得到各所述token分别对应的多个所述子串;
[0129] S302:根据各所述子串在单个token中的所述第二出现频次,以及各所述token的所述第一出现频次,统计得到各所述子串分别对应的所述第三出现频次。
[0130] 进一步的,所述建模单元任务参数包括建模单元最大长度,所述根据所述建模单元任务参数和所述初始建模单元表,将各所述token解析为各自对应的建模单元序列的步
骤中,单个所述token解析为建模单元序列的步骤,包括:
[0131] S201:按照所述token中各所述音素单元的排列顺序,顺序筛选数量与所述建模单元最大长度一致的若干个音素单元组成第一建模单元;
[0132] S202:判断所述第一建模单元是否包含于所述初始建模单元表中;
[0133] S203:若所述第一建模单元包含于所述初始建模单元表中,则将所述第一建模单元加入建模单元序列中;
[0134] S204:若所述第一建模单元没有包含于所述初始建模单元表中,则将所述第一建模单元排序最末的音素单元去除,并判断去除排序最末的音素单元后的第一建模单元是否
包含于所述初始建模单元表中;
[0135] S205:若去除排序最末的音素单元后的第一建模单元包含于所述初始建模单元表中,则将所述去除排序最末的音素单元后的第一建模单元加入建模单元序列中;
[0136] S206:按照步骤S201—S205对应的规则,顺序地、不重复地拆分所述token,直至得到包含所述token所有音素单元的建模单元序列。
[0137] 进一步的,所述建模单元任务参数包括频次阈值,所述循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模
单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建的步骤,包括:
[0138] S501:从所述词频字典中筛选出第一出现频次的最大值和第一出现频次的最小值;
[0139] S502:计算所述第一出现频次的最大值和所述第一出现频次的最小值的均值,得到频次阈值。
[0140] 进一步的,所述循环迭代步骤S2—S4,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元表符合预设条件,则停止循环迭
代,完成所述语音建模单元的构建的步骤,还包括:
[0141] S503:在迭代循环过程中,基于步骤S3获取当前次的所述初始建模单元表中各个第一建模单元分别对应的第四出现频次;
[0142] S504:从各所述第一建模单元中,筛选出第四出现频次小于频次阈值的若干个第二建模单元剔除。
[0143] 进一步的,所述预设条件,包括:
[0144] S505:判断当前次的所述更新建模单元表所包含的所有第三建模单元的数量是否大于数量阈值;
[0145] S506:若当前次的所述更新建模单元表所包含的所有第三建模单元的数量大于数量阈值,则判定当前次的所述更新建模单元表符合预设条件,并停止循环迭代。
[0146] 进一步的,所述预设条件,还包括:
[0147] S507:根据当前次的所述更新建模单元表中排序前第二预设数量个第四建模单元,和当前次的所述初始建模单元表中排序前第二预设数量个第五建模单元,判断当前次
的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度是否大于相似度阈
值;
[0148] S508:若当前次的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度大于相似度阈值,则判定当前次的所述更新建模单元表符合预设条件,并停止循环迭
代。
[0149] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM
(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括
随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可
得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增
强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM
(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0150] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、第一物体或者方法不仅包括那些要
素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、第一物体或者
方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排
除在包括该要素的过程、装置、第一物体或者方法中还存在另外的相同要素。
[0151] 以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关
的技术领域,均同理包括在本申请的专利保护范围内。