语音建模单元的构建方法、装置和计算机设备转让专利
申请号 : CN202111456505.5
文献号 : CN113870848B
文献日 : 2022-04-26
发明人 : 李杰 , 王广新 , 杨汉丹
申请人 : 深圳市友杰智新科技有限公司
摘要 :
权利要求 :
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中任一项所述的方法的步骤。
说明书 :
语音建模单元的构建方法、装置和计算机设备
技术领域
背景技术
力和内存受限设备上部署时,存在如下不足:
发明内容
单个所述token包含若干个音素单元;
序列包括若干个建模单元;
包含的所有音素单元基于该token对应的建模单元序列拆分得到;
表,得到更新建模单元表;
语音建模单元的构建。
的单个单词,单个所述token包含若干个音素单元;
述建模单元序列包括若干个建模单元;
该token所包含的所有音素单元基于该token对应的建模单元序列拆分得到;
始建模单元表,得到更新建模单元表;
更新建模单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建。
次,生成词频字典,其中,单个token对应训练文本语料的单个单词,单个token包含若干个
音素单元。然后,根据词频字典生成建模单元任务参数,并根据建模单元任务参数和初始建
模单元表,将各token解析为各自对应的建模单元序列,单个建模单元序列包括若干个建模
单元。构建系统基于各个token分别对应的第一出现频次,以及各个token的子串分别对应
的第二出现频次,计算得到各个子串的第三出现频次,token的子串由该token所包含的所
有音素单元基于该token对应的建模单元序列拆分得到。构建系统将各子串按照各自对应
的出现频次进行降序排列,并从排列后的各子串中降序筛选出第一预设数量个第一子串作
为更新建模单元加入到初始建模单元表,得到更新建模单元表。最后,构建系统循环迭代上
述步骤,并在循环迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,
直至更新建模单元表符合预设条件,则停止循环迭代,完成语音建模单元的构建。本申请
中,构建系统以发音音素为基础(即以初始建模单元表为基础),通过扩展生成建模单元的
方式(即选取更新建模单元,并以此得到更新建模单元表),从而充分结合了发音特点,使得
最终构建的更新建模单元表能够充分利用发音信息。并且,由于最终的更新建模单元表中
包含了扩展后的建模单元,扩展了建模单元的类别数目,从而使得应用于语音识别任务时,
能够有效减少帧序列到建模单元序列任务中后者的长度,进而降低了语音识别中网络学习
的难度,并提升了识别准确度。进一步的,本申请可以根据自身需求限制更新建模单元表中
建模单元的规模,从而满足资源受限设备的需求。
附图说明
具体实施方式
用于限定本申请。
单个所述token包含若干个音素单元;
序列包括若干个建模单元;
包含的所有音素单元基于该token对应的建模单元序列拆分得到;
表,得到更新建模单元表;
语音建模单元的构建。
后通过映射工具(比如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,即可使用该更新建模单元表进行语音识别训练。
合了发音特点,使得最终构建的更新建模单元表能够充分利用发音信息。并且,由于最终的
更新建模单元表中包含了扩展后的建模单元,扩展了建模单元的类别数目,从而使得应用
于语音识别任务时,能够有效减少帧序列到建模单元序列任务中后者的长度,进而降低了
语音识别中网络学习的难度,并提升了识别准确度。进一步的,本申请可以根据自身需求限
制更新建模单元表中建模单元的规模,从而满足资源受限设备的需求。
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。
骤中,单个所述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个音素
单元。
单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建的步骤,包括:
为无意义单元)。具体地,构建系统从词频字典中筛选出第一出现频次的最大值和第一出现
频次的最小值,然后计算第一出现频次的最大值和第一出现频次的最小值两者的均值,得
到所需的频次阈值,方便后续建模单元任务的筛选。
代,完成所述语音建模单元的构建的步骤,还包括:
次的初始建模单元表所包含的各个第一建模单元同样包含于各个子串中(由步骤S301、
S302可知,初始建模单元表中各个第一建模单元也属于所有子串中的一部分),由此可以从
中筛选出各个第一建模单元分别对应的第四出现频次。然后,将各个第一建模单元分别对
应的第四出现频次与频次阈值进行比对,从而筛选出第四出现频次小于频次阈值的若干个
第二建模单元,并将这些第二建模单元从初始建模单元表中剔除(这些第二建模单元为无
意义单元),从而提高当前次的更新建模单元表的有效性。优选的,短建模单元要减去包含
它的对应的长建模单元个数;举例说明,比如频次阈值为400,长建模单元a_b_c对应的第四
出现频次为500个,短建模单元a_b对应的第四出现频次为1200个,长建模单元a_b_c和短建
模单元a_b均可以作为新的建模单元候选,计算长建模单元a_b_c的同时,要更新a_b的第四
出现频次计数为1200‑500=700。需要注意的是,本实施例所述的剔除初始建模单元表中出
现频次小于频次阈值的建模单元,不包括最初始的39个基础的音素作为的建模单元。
新建模单元表所包含的所有第三建模单元的数量大于数量阈值,则判定当前次的更新建模
单元表符合预设条件,构建系统停止循环迭代,完成语音建模单元的构建。比如,数量阈值
为100个,当前次扩展后的更新建模单元表所包含的第三建模单元的数量为120个,则构建
系统判定当前次的更新建模单元表符合预设条件,停止循环迭代。优先的,更新建模单元表
中各个第三建模单元是按照各自对应的出现频次进行降序排列(即排序越靠近的第三建模
单元,出现频次越高),为了满足数量阈值的要求,构建系统将超出数量阈值的、排序靠后的
若干个第三建模单元剔除。比如上述所举例子中,数量阈值为100个,当前次的更新建模单
元表所包含的第三建模单元的数量为120个,则将更新建模单元表中排序100位之后的20个
第三建模单元剔除。
的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度是否大于相似度阈
值;
代。
初始建模单元表(即上一次的更新建模单元表)中排序前第二预设数量个第五建模单元,判
断当前次的更新建模单元表和当前次的初始建模单元表之间的相似度是否大于相似度阈
值。如果前次的更新建模单元表和当前次的初始建模单元表之间的相似度大于相似度阈
值,则判定当前次的更新建模单元表符合预设条件,构建系统停止循环迭代。比如从当前次
的更新建模单元表中筛选排序前100个第四建模单元,和当前次的初始建模单元表中排序
前100个第五建模单元进行比对,假设这100个第四建模单元和第五建模单元中有95个相
同,则当前次的更新建模单元表和当前次的初始建模单元表之间的相似度为95%。假定相似
度阈值为90%,由于95%大雨90%,则判定当前次的更新建模单元表符合预设条件。优选的,假
设当前次的初始建模单元总共有200个第四建模单元,构建系统可以按照数量阈值的要求,
顺序筛选符合数量阈值的第四建模单元作为最终的建模单元表(比如筛选排序前100个第
四建模单元作为最终的建模单元表)。
的单个单词,单个所述token包含若干个音素单元;
述建模单元序列包括若干个建模单元;
该token所包含的所有音素单元基于该token对应的建模单元序列拆分得到;
始建模单元表,得到更新建模单元表;
直至更新建模单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建。
建模单元是否包含于所述初始建模单元表中;
中;
含所述token所有音素单元的建模单元序列。
代。
判断当前次的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度是否大
于相似度阈值;
并停止循环迭代。
中,单个token对应训练文本语料的单个单词,单个token包含若干个音素单元。然后,根据
词频字典生成建模单元任务参数,并根据建模单元任务参数和初始建模单元表,将各token
解析为各自对应的建模单元序列,单个建模单元序列包括若干个建模单元。构建系统基于
各个token分别对应的第一出现频次,以及各个token的子串分别对应的第二出现频次,计
算得到各个子串的第三出现频次,token的子串由该token所包含的所有音素单元基于该
token对应的建模单元序列拆分得到。构建系统将各子串按照各自对应的出现频次进行降
序排列,并从排列后的各子串中降序筛选出第一预设数量个第一子串作为更新建模单元加
入到初始建模单元表,得到更新建模单元表。最后,构建系统循环迭代上述步骤,并在循环
迭代过程中将当前次的更新建模单元表作为下一次的初始建模单元表,直至更新建模单元
表符合预设条件,则停止循环迭代,完成语音建模单元的构建。本申请中,构建系统以发音
音素为基础(即以初始建模单元表为基础),通过扩展生成建模单元的方式(即选取更新建
模单元,并以此得到更新建模单元表),从而充分结合了发音特点,使得最终构建的更新建
模单元表能够充分利用发音信息。并且,由于最终的更新建模单元表中包含了扩展后的建
模单元,扩展了建模单元的类别数目,从而使得应用于语音识别任务时,能够有效减少帧序
列到建模单元序列任务中后者的长度,进而降低了语音识别中网络学习的难度,并提升了
识别准确度。进一步的,本申请可以根据自身需求限制更新建模单元表中建模单元的规模,
从而满足资源受限设备的需求。
接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存
储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序
和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。
该计算机设备的数据库用于存储训练文本语料等数据。该计算机设备的网络接口用于与外
部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种语音建模单元的构
建方法。
单个所述token包含若干个音素单元;
序列包括若干个建模单元;
包含的所有音素单元基于该token对应的建模单元序列拆分得到;
表,得到更新建模单元表;
语音建模单元的构建。
骤中,单个所述token解析为建模单元序列的步骤,包括:
包含于所述初始建模单元表中;
单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建的步骤,包括:
代,完成所述语音建模单元的构建的步骤,还包括:
的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度是否大于相似度阈
值;
代。
为:
单个所述token包含若干个音素单元;
序列包括若干个建模单元;
包含的所有音素单元基于该token对应的建模单元序列拆分得到;
表,得到更新建模单元表;
语音建模单元的构建。
骤中,单个所述token解析为建模单元序列的步骤,包括:
包含于所述初始建模单元表中;
单元表符合预设条件,则停止循环迭代,完成所述语音建模单元的构建的步骤,包括:
代,完成所述语音建模单元的构建的步骤,还包括:
的所述更新建模单元表和当前次的所述初始建模单元表之间的相似度是否大于相似度阈
值;
代。
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(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)等。
素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、第一物体或者
方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排
除在包括该要素的过程、装置、第一物体或者方法中还存在另外的相同要素。
的技术领域,均同理包括在本申请的专利保护范围内。