一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

语音识别方法、装置、设备及计算机可读存储介质与流程

2022-06-08 08:11:33 来源:中国专利 TAG:


1.本技术涉及语音识别技术,尤其涉及一种语音识别方法、装置、电子设备、计算机可读存储介质及计算机程序产品。


背景技术:

2.随着人工智能技术的发展,智能语音设备(例如智能音箱、智能手机、智能电视等)逐渐被广大用户使用。用户可以通过语音与智能终端设备进行交互,以唤醒智能语音设备。
3.相关技术中,常常伴随着误唤醒的现象,例如,不需要唤醒的时候,设备被唤醒了;而需要被唤醒的时候,迟迟不会被唤醒。如此,使得语音识别准确度低,导致智能设备的唤醒成功率低,或误唤醒率高。


技术实现要素:

4.本技术实施例提供一种语音识别方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够提高语音识别的准确性,提高人机交互效率。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供一种语音识别方法,包括:
7.获取待识别语音,并对所述待识别语音进行音素转换,得到初始音素序列,所述初始音素序列包括:唤醒词对应的第一音素序列及所述唤醒词关联的语音内容所对应的第二音素序列;
8.获取与所述第一音素序列对应的标准音素序列,并确定所述第一音素序列与所述标准音素序列之间的差异信息;
9.确定所述差异信息对应的序列调整方式,并采用所述序列调整方式,对所述标准音素序列进行调整,得到对应所述第一音素序列的可识别音素序列;
10.基于所述可识别音素序列,对所述初始音素序列中的所述第二音素序列进行语音识别,得到所述语音内容对应的语音识别结果。
11.本技术实施例提供一种语音识别装置,包括:
12.获取模块,用于获取待识别语音,并对所述待识别语音进行音素转换,得到初始音素序列,所述初始音素序列包括:唤醒词对应的第一音素序列及所述唤醒词关联的语音内容所对应的第二音素序列;
13.确定模块,用于获取与所述第一音素序列对应的标准音素序列,并确定所述第一音素序列与所述标准音素序列之间的差异信息;
14.调整模块,用于确定所述差异信息对应的序列调整方式,并采用所述序列调整方式,对所述标准音素序列进行调整,得到对应所述第一音素序列的可识别音素序列;
15.识别模块,用于基于所述可识别音素序列,对所述初始音素序列中的所述第二音素序列进行语音识别,得到所述语音内容对应的语音识别结果。
16.上述方案中,所述确定模块,还用于将所述第一音素序列中的音素分别与所述标
准音素序列中各音素进行比较,以确定所述第一音素序列相较于所述标准音素序列所存在的音素差异;
17.其中,所述音素差异包括以下至少之一:标准音素缺失、音素冗余;
18.将所述第一音素序列相较于所述标准音素序列所存在的音素差异,作为所述第一音素序列与所述标准音素序列之间的差异信息。
19.上述方案中,所述调整模块,还用于当所述差异信息表征所述第一音素序列相对于所述标准音素序列存在标准音素缺失时,确定所述差异信息对应的序列调整方式为序列补充方式;
20.相应的,所述调整模块,还用于确定所述第一音素序列相较于所述标准音素序列缺失的标准音素,并基于所述缺失的标准音素,确定所述标准音素序列中除所述缺失的标准音素外的音素作为候选标准音素;
21.基于所述候选标准音素进行音素序列重构,得到至少一个子音素序列;
22.从所述至少一个子音素序列中,查找与所述第一音素序列对应的子音素序列作为所述可识别音素序列。
23.上述方案中,所述调整模块,还用于当所述差异信息表征所述第一音素序列相对于所述标准音素序列存在音素冗余时,确定所述差异信息对应的序列调整方式为噪声补充方式;
24.相应的,所述调整模块,还用于确定所述第一音素序列相对于所述标准音素序列的至少一个冗余音素;
25.构建对应所述至少一个冗余音素的噪声音素;
26.基于所述噪声音素及所述标准音素序列,进行音素序列重构,得到对应所述第一音素序列的可识别音素序列。
27.上述方案中,所述调整模块,还用于确定所述标准音素序列的音素填充位置;
28.基于所述标准音素序列的音素填充位置,填充所述噪声音素,得到噪声音素序列;
29.将所述第一音素序列中各音素依次向所述噪声音素序列中的音素进行映射,得到对应所述第一音素序列的可识别音素序列;
30.其中,所述第一音素序列中的所述冗余音素,用于映射至所述噪声音素序列中的噪声音素。
31.上述方案中,所述调整模块,还用于确定所述至少一个冗余音素的数量;
32.在所述标准音素序列的音素填充位置,填充所述数量的所述噪声音素,得到噪声音素序列。
33.上述方案中,所述调整模块,还用于在将所述第一音素序列中的所述冗余音素向所述噪声音素映射的过程中,确定针对所述噪声音素的映射次数;
34.当所述映射次数达到次数阈值时,生成提示信息并输出,所述提示信息用于提示针对所述待识别语音的语音识别失败。
35.上述方案中,所述调整模块,还用于当所述差异信息表征所述第一音素序列相对于所述标准音素序列既存在标准音素缺失、又存在音素冗余时,确定所述差异信息对应的序列调整方式为序列补充方式与噪声补充方式相结合;
36.相应的,所述调整模块,还用于确定所述第一音素序列相较于所述标准音素序列
缺失的标准音素,并基于所述缺失的标准音素,确定所述标准音素序列中除所述缺失的标准音素外的音素作为候选标准音素;
37.确定所述第一音素序列相对于所述标准音素序列的至少一个冗余音素并构建对应所述至少一个冗余音素的噪声音素;
38.基于所述候选标准音素及所述噪声音素及所述标准音素序列,进行音素序列重构,得到对应所述第一音素序列的可识别音素序列。
39.上述方案中,所述确定模块,还用于以字符为单位,对所述唤醒词进行分词处理,得到至少两个字符;
40.分别确定各所述字符对应的发音;
41.基于所述字符对应的发音,对所述字符进行音素转换,得到所述字符对应的音素序列;
42.基于各所述字符对应的所述音素序列,确定所述第一音素序列对应的标准音素序列。
43.上述方案中,所述确定模块,还用于基于所述字符对应的发音,对所述字符进行音素转换,得到所述字符对应的中间音素序列;
44.当所述中间音素序列中的音素数量为一个时,将所述中间音素序列中的音素与预设修饰音素进行拼接,得到对应的目标音素;
45.将所述中间音素序列中的所述音素替换为所述目标音素,得到所述字符对应的音素序列。
46.上述方案中,所述识别模块,还用于基于所述可识别音素序列,对所述初始音素序列进行切割,得到所述第二音素序列;
47.获取用于音素识别的词典;
48.基于所述词典,对所述第二音素序列进行语音识别,得到所述语音内容对应的语音识别结果。
49.本技术实施例提供一种电子设备,包括:
50.存储器,用于存储可执行指令;
51.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的语音识别方法。
52.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的语音识别方法。
53.本技术实施例提供一种计算机程序产品,包括计算机程序或指令,计算机程序或指令被处理器执行时实现本技术实施例提供的语音识别方法。
54.本技术实施例具有以下有益效果:
55.应用本技术实施例通过对待识别语音进行音素转换,得到包含唤醒词对应的第一音素序列以及唤醒词关联的语音内容所对应的第二音素序列,如此,在进行语音唤醒时,无需停顿,能够有效减少人机交互时间。然后,确定第一音素序列与表征唤醒词的标准音素序列之间的差异信息,并根据差异信息的不同确定不同的序列调整方式,如此,针对不同差异信息,执行不同的序列调整,能够提高确定对应第一音素序列的可识别音素序列的准确性;最后,针对第二音素序列进行语音识别,得到识别结果,能够减少差异信息对识别第二音素
序列的影响,提高语音识别的效率。
附图说明
56.图1是本技术实施例提供的语音识别系统100的架构示意图;
57.图2是本技术实施例提供的实施语音识别方法的电子设备的结构示意图;
58.图3是本技术实施例提供的语音识别方法的流程示意图;
59.图4是本技术实施例提供的音素序列示意图;
60.图5是本技术实施例提供的差异信息示意图;
61.图6是本技术实施例提供的序列补充方式确定可识别音素序列的流程图;
62.图7是本技术实施例提供的音素序列有向图示例图;
63.图8是本技术实施例提供的噪声补充方式确定可识别音素序列的流程图;
64.图9是本技术实施例提供的噪声音素的填充流程示意图;
65.图10是本技术实施例提供的噪声补充方式示意图;
66.图11是本技术实施例提供的确定可识别音素序列的方法流程图;
67.图12是本技术实施例提供的确定可识别音素序列的另一方法流程图;
68.图13是本技术实施例提供的oneshot识别方式示意图;
69.图14是本技术实施例提供的语音识别解码图;
70.图15是本技术实施提供的语音帧示意图;
71.图16是本技术实施例提供的自旋吸收示意图;
72.图17是本技术实施例提供的音素解码示意图;
73.图18是本技术实施例提供的语音识别流程图。
具体实施方式
74.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
75.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
76.如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一/第二/第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
77.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
78.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
79.1)加权有限自动机(wfst,weighted finite state transducer),用wfst来表征
自动语音识别(asr,automatic speech recognition)中的模型(hclg),可以更方便的对这些模型进行融合和优化,于是wfst可以作为一个简单而灵活的asr的解码器(simple and flexible asr decoder design),wfst在语音识别中主要扮演解码图的角色。
80.2)语音唤醒(kws,keyword spotting):语音唤醒能够在连续语音流中实时检测出带有用户意图的特定语音片段。
81.3)oneshot交互模式:语音交互中的一种交互方式,采用oneshot交互模式,用户唤醒词与要识别的内容连说,并一次性进行唤醒和识别。呈现给用户的体验是,唤醒后直接说话,设备会在唤醒后直接启动语音识别以及语义理解等服务,缩短交互时间。采用oneshot交互模式的设备必须支持录取播放回路音频,用于回声消除处理,并且此项处理必须能很好的消除回声。oneshot音频是指包含前端唤醒词音频和后端识别音频的音频组合。oneshot识别结果是指从oneshot识别中剔除唤醒词语音识别结果后的识别结果。
82.4)声学模型:可以理解为对发声的建模,它能够把语音输入转换成声学表示的输出,更准确的说是给出语音帧对应多个状态的概率。声学模型可以是卷积神经网络模型、深度神经网络模型等,该模型需要通过大量语音数据训练得到。众所周知,单词的发音由音素构成,状态在这里可以理解为比音素更细致的语音单位,通常把一个音素划分成3个状态。语音识别就是把语音帧识别为状态,把状态组合成音素,再把音素组合成单词。
83.5)语言模型是根据语言客观事实而进行的语言抽象数学建模,语言模型的作用可以简单理解为消解多音字的问题,在声学模型给出发音序列之后,从候选的文字序列中找出概率最大的字符串序列,该字符串序列即为待识别语音对应的文字序列。待识别语音的语言特征是指唤醒词的语义特征和/或文本特征。
84.6)隐马尔可夫模型(hmm,hidden markov model):用来描述一个含有隐含未知参数的马尔可夫过程。马尔可夫过程是具有马尔可夫性的随机过程。马尔科夫性是指过程(或系统)在时刻t0所处的状态为已知的条件下,过程在时刻t》t0所处的状态的条件分布,与过程时刻t0所处的状态无关的特征,即在马尔可夫过程的条件概率仅仅与系统的当前状态相关,而与它的过去历史或未来状态,都是独立、不相关的。
85.基于上述对本技术实施例中涉及的名词和术语的解释,下面说明本技术实施例提供的语音识别系统。参见图1,图1是本技术实施例提供的语音识别系统100的架构示意图,为实现支撑一个示例性应用,在语音识别系统100中,具有智能语音识别功能的终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
86.终端(如终端400-1和终端400-2),用于采集当前所处环境的人声作为待识别语音,并向服务器发送携带待识别语音的语音识别请求。
87.服务器200,用于接收到携带待识别语音的语音识别请求,获取待识别语音,并对待识别语音进行音素转换,得到初始音素序列,初始音素序列包括:唤醒词对应的第一音素序列及唤醒词关联的语音内容所对应的第二音素序列;获取与第一音素序列对应的标准音素序列,并确定第一音素序列与标准音素序列之间的差异信息;确定差异信息对应的序列调整方式,并采用序列调整方式,对标准音素序列进行调整,得到对应第一音素序列的可识别音素序列;基于可识别音素序列,对初始音素序列中的第二音素序列进行语音识别,得到语音内容对应的语音识别结果,对语音识别结果进行语义分析,得到语义分析结果;获取语
义分析结果对应的响应信息,并输出响应信息至终端。
88.终端(如终端400-1和终端400-2),还用于接收到服务器发送的响应信息,并播放响应信息。
89.在一些实施例中,用户说出针对智能语音设备预设的唤醒词,智能语音设备中的麦克风采集到当前环境用户对应包含唤醒词的待识别语音后,向用于语音识别的服务器发送携带待识别语音的语音识别请求,获取待识别语音,并对待识别语音进行音素转换,得到初始音素序列,初始音素序列包括:唤醒词对应的第一音素序列及唤醒词关联的语音内容所对应的第二音素序列;获取与第一音素序列对应的标准音素序列,并确定第一音素序列与标准音素序列之间的差异信息;确定差异信息对应的序列调整方式,并采用序列调整方式,对标准音素序列进行调整,得到对应第一音素序列的可识别音素序列;基于可识别音素序列,对初始音素序列中的第二音素序列进行语音识别,得到语音内容对应的语音识别结果;对语音识别结果进行语义分析,得到语义分析结果;获取语义分析结果对应的响应信息,并输出响应信息至智能语音设备,智能语音设备通过扬声器播放接收到的响应信息。
90.在实际应用中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(cdn,content delivery network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端(如终端400-1和终端400-2)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、智能音箱、智能电视、智能手表、智能家电、车载终端、飞行器等,但并不局限于此。终端(如终端400-1和终端400-2)以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
91.本技术实施例还可以借助于云技术(cloud technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
92.云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
93.参见图2,图2是本技术实施例提供的实施语音识别方法的电子设备的结构示意图。在实际应用中,电子设备500可以为图1示出的服务器或终端,以电子设备500为图1示出的终端为例,对实施本技术实施例的语音识别方法的电子设备进行说明,本技术实施例提供的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
94.处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
95.用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或
多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
96.存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
97.存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器550旨在包括任意适合类型的存储器。
98.在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
99.操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
100.网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
101.呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
102.输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
103.在一些实施例中,本技术实施例提供的语音识别装置可以采用软件方式实现,图2示出了存储在存储器550中的语音识别装置555,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块5551、确定模块5552、调整模块5553和识别模块5554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
104.在另一些实施例中,本技术实施例提供的语音识别装置可以采用软硬件结合的方式实现,作为示例,本技术实施例提供的语音识别装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本技术实施例提供的语音识别方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件。
105.基于上述对本技术实施例提供的语音识别及电子设备的说明,下面说明本技术实施例提供的语音识别方法。在一些实施例中,本技术实施例提供的语音识别方法可由服务器或终端单独实施,或由服务器及终端协同实施。在一些实施例中,终端或服务器可以通过运行计算机程序来实现本技术实施例提供的语音识别方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即
需要在操作系统中安装才能运行的程序,如支持语音识别的客户端,如手机语音助手;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
106.下面以服务器实施为例说明本技术实施例提供的语音识别方法。参见图3,图3是本技术实施例提供的语音识别方法的流程示意图,本技术实施例提供的语音识别方法包括:
107.在步骤101中,服务器获取待识别语音,并对所述待识别语音进行音素转换,得到初始音素序列。
108.需要说明的是,初始音素序列包括:唤醒词对应的第一音素序列及唤醒词关联的语音内容所对应的第二音素序列。
109.在实际实施时,服务器接收到待识别语音可以是标准语音,也可以是非标准语音,在“唤醒-识别”语音交互模式的场景中,服务器可以接收到智能语音设备发送待识别语音,这里的待识别语音是智能语音设备采集所处环境的人声。适用于“唤醒-识别”语音交互模式的标准语音可以由两部分语音内容组成:唤醒词以及符合用户意图的语音内容。其中,唤醒词用于唤醒智能语音设备,符合用户意图的语音内容用于供智能语音设备进行语音识别,并返回响应信息。非标准语音的产生,可能是由于智能语音设备所处环境中的噪声干扰等原因,使得服务器接收到的待识别语音可能是存在截断、多输入或吞音的非标准语音。
110.举例来说,用户u针对智能语音设备的标准语音d对应的文本内容为“小微,你好!今天天气如何”,其中,“小微,你好!”为针对智能语音设备的唤醒词,“今天天气如何”是符合用户真正意图的语音。存在一种情况,由于用户u的语速过快,智能语音设备采集到的待识别语音发生截断,变成了“你好,微!今天天气怎么样”;又或者存在另一种情况由于用户u所处环境正在播放音乐,智能语音设备采集到多于的语音输入,待识别语音变成“你好,你好,小微!今天天气如何”。
111.在实际实施时,服务器接收到智能语音设备采集得到的待识别语音,通过预设的声学模型,对待识别语音进行音素转换,得到初始语音序列,这里的,初始语音序列可以包括唤醒词对应的音素序列(可称第一音素序列)、唤醒词关联的语音内容所对应的符合用户意图的音素序列(可称第二音素序列)。承接上例,得到对应唤醒词“你好,小微!”的第一音素序列(ni3hao3xiao3wei1),以及“今天天气如何”的第二音素序列(ji1tian1tian1qi4ru2he2)。
112.在步骤102中,获取与第一音素序列对应的标准音素序列,并确定第一音素序列与标准音素序列之间的差异信息。
113.在实际实施时,初始音素序列中的第一音素序列是与唤醒词相对应的,则与第一音素序列对应的标准音素序列可以看作是标准的唤醒词对应的音素序列。
114.针对标准音素序列的获取方式进行说明,在一些实施例中,服务器可以通过以下方式确定标准音素序列:服务器以字符为单位,对唤醒词进行分词处理,得到至少两个字符;分别确定各字符对应的发音;基于字符对应的发音,对字符进行音素转换,得到字符对应的音素序列;基于各字符对应的所述音素序列,确定对应第一音素序列对应的标准音素序列。
115.在实际实施时,设唤醒词k由n个词{k1,k2,
……
,kn}组成,n≥1,且n为整数。一种
简单的处理情况,在汉语中,可以直接定义一个字(字符)就是一个词,则可认定n即为唤醒词k的长度。其中,对于某个kn,其拥有{a1,a2,
……
,am}个发音,m≥1,且m为整数。需要说明的是,如果m》1,则表明kn是一个多音字。每个发音am又可以分为音素序列{p1,p2,
……
,pj}。此处,某个音素p即为一个phone,对于唤醒词k,则可以构建出mk1
×
mk2
×
...
×
mkn个音素序列,其中mkn表示第n个词的发音数量。在实际应用中,可以通过有向图表示对应唤醒词k的所有音素序列,在有向图中,音素序列也可称为发音路径,有向图中的节点为各个音素。
116.示例性地,以唤醒词k为“你好哈弗”作为例子来说明。其中唤醒词k由{“你”,“好”,“哈”,“弗”}四个词组成,n=4,其中“好”、“哈”是多音字,分别以“好3”,“好4”以及“哈1”,“哈4”来进行区分,这里的数字(1、3、4等可以看作消歧符,为了保证每个发音的唯一性)。则可以组成路径“你好3哈1弗”、“你好4哈1弗”、“你好4哈1弗”,“你好4哈4弗”四种路径,而后再将文字转化为音素序列{ni3hao3ha1fu2}、{ni3hao4ha1fu2}、{ni3hao3ha4fu2}、{ni3hao4ha4fu2},参见图4,图4是本技术实施例提供的音素序列示意图,上述4个音素序列,可以组成图中示出的有向图,图中每个节点表示相应的音素。在实际应用中,为了表示方便,在每个字符之间插入空节点eps,即音素序列可以用{ni3epshaoeps3ha1epsfu2}表示。
117.上述方式,能够覆盖唤醒词的各种发音,提高语音识别的准确性。
118.在一些实施例中,服务器可以通过以下方式确定具有单音素的音素序列:服务器基于字符对应的发音,对字符进行音素转换,得到字符对应的中间音素序列;当中间音素序列中的音素数量为一个时,将中间音素序列中的音素与预设修饰音素进行拼接,得到对应的目标音素;将中间音素序列中的音素替换为目标音素,得到字符对应的音素序列。
119.在实际实施时,针对中文唤醒词,一个汉字可以看作是由两个音素组成(声母和韵母部分),其中,对于部分单音素字符、如啊、哦、额等,可以通过拼接预设修饰音素,如ini_e,ini_o,ini_a,保证单音素字符能够有两个音素组成。
120.示例性地,假设待识别语音中针对唤醒词k“小阿、小阿!”中字符“a”的中间音素序列为{a1},此时,可以将预设修饰音素ini_e与a1拼接,形成对应字符“阿”的包含两个音素的音素序列{ini_ea1}。
121.上述通过预设修饰音素,补充单音素字符的方式,能够有效减少语音识别过程的音素识别时间,提高语音识别效率。
122.接着针对差异信息的确定方式进行说明,在一些实施例中,服务器可以通过以下方式确定第一音素序列与标准音素序列之间的差异信息:服务器将第一音素序列中的音素分别与标准音素序列中各音素进行比较,以确定第一音素序列相较于标准音素序列所存在的音素差异;其中,音素差异包括以下至少之一:标准音素缺失、音素冗余;并将第一音素序列相较于标准音素序列所存在的音素差异,作为第一音素序列与标准音素序列之间的差异信息。
123.在实际实施时,服务器在得到针对第一音素序列的标准音素序列后,即对应唤醒词的音素序列。通过比对第一音素序列的各音素与标准音素序列的各隐去,确定第一音素序列与标准音素序列存在的音素差异,音素差异至少可以包括两种情况:标准音素缺失、音素冗余,其中,标准音素缺失即相对于标准音素序列,第一音素序列中存在标准音素缺失;
音素冗余即即相对于标准音素序列,第一音素序列中存在多余音素。
124.示例性地,参见图5,图5是本技术实施例提供的差异信息示意图,设图中编号1示出的音素序列{ni3hao3xiao3wei1}为对应唤醒词k“你好,小微!”的标准音素序列;图中编号2示出的音素序列{ni3hao3ni3hao3xiao3wei1}对应的音素差异为音素冗余,即相对于标准音素序列多出ni3hao3对应的音素;图中编号3示出的音素序列{xiao3wei1}对应的音素差异为标准音素缺失,即相对于标准音素序列缺失ni3hao3对应的音素。
125.上述差异信息的确定方式,能够覆盖各种音素缺失情况,提高语音识别的普适性。
126.在步骤103中,确定差异信息对应的序列调整方式,并采用序列调整方式,对标准音素序列进行调整,得到对应第一音素序列的可识别音素序列。
127.在实际实施时,服务器可以根据第一音素序列相较于标准音素序列所存在的音素差异的种类不同,确定与各音素差异的类型对应的序列调整方式。其中,音素差异包括以下至少之一:标准音素缺失、音素冗余。
128.针对序列调整方式的确定方式进行说明,在一些实施例中,服务器可以通过以下方式确定对应差异信息的序列调整方式:当差异信息表征第一音素序列相对于标准音素序列存在标准音素缺失时,确定差异信息对应的序列调整方式为序列补充方式。
129.示例性地,参见图5,图中通过比对编号1对应的标准音素序列1以及编号3对应的音素序列3,可以确定两者之间的差异信息可以表征音素序列3相对于标准音素序列1存在标准音素缺失,缺失的标准音素为ni3hao3。对此,服务器可以通过序列补充方式确定对应音素序列3的可识别音素序列。
130.相应的,在一些实施例中,参见图6,图6是本技术实施例提供的序列补充方式确定可识别音素序列的流程图,结合图6示出的步骤说明服务器采用序列补充方式确定可识别音素序列的过程。
131.步骤1031a:服务器确定第一音素序列相较于标准音素序列缺失的标准音素。
132.示例性地,参见图5,确定编号3对应的音素序列3相较于编号1对应的标准音素序列1缺失的标准音素为ni3hao3。
133.步骤1032a,基于缺失的标准音素,确定标准音素序列中除缺失的标准音素外的音素作为候选标准音素。
134.承接上例,参见图5,确定编号1对应的标准音素序列1的其他音素“xiao3”、“wei1”作为候选标准音素。
135.步骤1033a,基于候选标准音素进行音素序列重构,得到至少一个子音素序列。
136.承接上例,图5中针对编号1示出的标准音素序列1的音素序列可以表征为start

ni3

hao3

xiao3

wei1

end,则候选音素为“xiao3”、“wei1”,构建对应的子音素序列,可以为start

xiao3

wei1

end、start

wei1

end。
137.步骤1034a,从至少一个子音素序列中,查找与第一音素序列对应的子音素序列作为可识别音素序列。
138.承接上例,从start

xiao3

wei1

end、start

wei1

end两个子音素序列中,确定start

xiao3

wei1

end为对应第一音素序列的可识别序列。
139.在实际实施时,在构建音素序列时,还可以以有向图的形式表示各音素序列时,在有向图中为了方便表示,通常会增加一个表示起点的start以及一个表示终点的end元素,
同时,各字符之间可使用eps隔开。
140.示例性地,以有向图的形式表征各音素序列的方式为例,说明序列补充方式。参见图7,图7是本技术实施例提供的音素序列有向图示例图,对应唤醒词k={“你”,”好”,”哈”,”弗”}的标准音素序列为“ni3hao3ha1fu2”,但服务器对待识别语音进行音素转换后,得到的第一音素序列为“hao3ha1fu2”(此时存在标准音素缺失即hao3被截断)或者得到的第一音素序列“ni3ha1fu2”(此时存在标准音素缺失即ni3被吞掉),因此,在基于图4示出的标准音素序列的有向图的基础上额外添加音素序列对应的路径,图中编号1示出的音素序列{ha1fu2}或{ha4fu2}在有向图中的路径分别为start

eps
→h→
a1

eps
→f→
u2

end(start

eps
→h→
a4

eps
→f→
u2

end);图中编号2示出的缺失音素ni3时各音素序列{hao3ha1fu2}、{hao3ha4fu2}、{hao4ha1fu2}、{hao4ha4fu2}在有向图中的路径;图中编号3示出的缺失音素hao4时各音素序列{ni3hao3ha1fu2}、{ni3hao3ha4fu2}、{ni3ha1fu2}、{ni3ha4fu2}在有向图中的路径。
141.通过上述序列补充方式对标准音素序列进行调整,即使在缺失音素的情况下,依然能够获取正确的可识别序列。
142.在一些实施例中,服务器还可以通过以下方式确定对应差异信息的序列调整方式:当差异信息表征第一音素序列相对于标准音素序列存在音素冗余时,服务器确定差异信息对应的序列调整方式为噪声补充方式。
143.示例性地,参见图5,图中通过比对编号1对应的标准音素序列1以及编号2对应的音素序列2,可以确定两者之间的差异信息可以表征音素序列2相对于标准音素序列1存在音素冗余,多输入的音素为ni3hao3。对此,服务器可以通过噪声补充方式确定对应音素序列2的可识别音素序列。
144.相应的,在一些实施例中,参见图8,图8是本技术实施例提供的噪声补充方式确定可识别音素序列的流程图,结合图8示出的步骤说明服务器采用噪声补充方式确定可识别音素序列的过程。
145.步骤1031b,服务器确定第一音素序列相对于标准音素序列的至少一个冗余音素。
146.示例性地,参见图5,图中编号2示出的音素序列{ni3hao3ni3hao3xiao3wei1}对应的音素差异为音素冗余,即相对于标准音素序列多出ni3hao3对应的音素。
147.步骤1032b,构建对应至少一个冗余音素的噪声音素。
148.在实际实施时,服务器可以通过构建噪声音素来接收冗余音素,需要说明的是,噪声音素并不是一个真实的发音。
149.步骤1033b,基于噪声音素及标准音素序列,进行音素序列重构,得到对应第一音素序列的可识别音素序列。
150.在实际实施时,服务器确定噪声音素后,在标准音素序列的基础上,进行音素序列重构,进而得到对应第一音素序列的可识别音素序列。
151.在一些实施例中,参见图9,图9是本技术实施例提供的噪声音素的填充流程示意图,结合图9示出的步骤说明服务器采用噪声补充方式确定可识别音素序列的过程。
152.步骤301,服务器确定标准音素序列的音素填充位置。
153.在实际实施时,噪声音素可以填充到标准音素序列的任意位置,一般情况下,可以在标准音素序列的起点位置填充噪声音素。
154.步骤302,基于标准音素序列的音素填充位置,填充噪声音素,得到噪声音素序列;
155.在一些实施例中,服务器可以通过以下方式得到噪声音素序列:服务器确定至少一个冗余音素的数量;在标准音素序列的音素填充位置,目标数量的噪声音素,得到噪声音素序列,其中目标数量与冗余音素的数量相等。
156.在实际实施时,可以在标准音素序列中填充至少一个噪声音素,即噪声音素与冗余音素可以是一对一关系,即在冗余音素的数量少于数量阈值时,可以在标准音素序列中填充与冗余音素数量一致的噪声音素,进行一对一的映射。
157.需要说明的是,噪声音素与冗余音素可以是一对多关系,即各个冗余音素与同一个噪声音素进行映射。
158.步骤303,将第一音素序列中各音素依次向噪声音素序列中的音素进行映射,得到对应第一音素序列的可识别音素序列。
159.需要说明的是,第一音素序列中的冗余音素,用于映射至噪声音素序列中的噪声音素。
160.在实际实施时,在噪声音素的数量与冗余音素的数量一致时,第一音素序列中各个音素依次向噪声音素序列映射,最后得到可识别音素序列。
161.在一些实施例中,服务器可以通过以下方式生成用于提示语音识别失败的提示信息:服务器在将第一音素序列中的冗余音素向噪声音素映射的过程中,确定针对噪声音素的映射次数;当映射次数达到次数阈值时,生成提示信息并输出,提示信息用于提示针对待识别语音的语音识别失败。
162.在实际实施时,由于针对冗余音素的个数并不能预先确定,因此,可以设置一个噪声音素,用来接收所有的冗余音素,考虑到每次接收冗余音素带来的计算性能消耗,并不能无限制的接收冗余音素。通过会设置一个次数阈值,用于表示在一次语音识别过程中,噪声音素能够被映射的最大次数。当映射次数超过次数阈值时,服务器可以生成提示信息,用于提示针对待识别语音的语音识别失败。
163.示例性地,参见图10,图10是本技术实施例提供的噪声补充方式示意图,图中,针对图5中编号2示出的音素序列{ni3hao3ni3hao3xiao3wei1}对应的音素差异为音素冗余,即相对于标准音素序列多出ni3hao3对应的音素,通过在标准音素序列{ni3hao3xiao3wei1}起点位置(start)中,填充一个噪声音素“#absorb”,将冗余音素n、i3、h、ao3分4次映射值操作音素“#absorb”,可以理解为,在“#absorb”处自吸收(自旋)4次,得到可识别音素序列。
164.在一些实施例中,服务器还可以通过以下方式确定对应差异信息的序列调整方式:当差异信息表征第一音素序列相对于标准音素序列既存在标准音素缺失、又存在音素冗余时,服务器确定差异信息对应的序列调整方式为序列补充方式与噪声补充方式相结合。
165.在实际实施时,当第一音素序列相对于唤醒词对应的标准音素序列,既存在标准音素缺失,又存在音素冗余的情况时,可以采用序列补充方式和噪声补充方式相结合的方法确定针对第一音素序列的可识别音素序列。
166.相应的,在一些实施例中,参见图11,图11是本技术实施例提供的确定可识别音素序列的方法流程图,结合图11示出的步骤说明服务器采用序列补充方式与噪声补充方式相
结合确定可识别音素序列的过程。
167.步骤1031c,服务器确定第一音素序列相较于标准音素序列缺失的标准音素,并基于缺失的标准音素,确定标准音素序列中除缺失的标准音素外的音素作为候选标准音素。
168.在实际实施时,针对第一音素序列中缺失的标准音素时,服务器可以根据前述图6中示出的步骤1031a-1032a确定候选标准音素。
169.步骤1032c,确定第一音素序列相对于标准音素序列的至少一个冗余音素,并构建对应至少一个冗余音素的噪声音素。
170.在实际实施时,针对第一音素序列中存在冗余音素,服务器可以根据前述图7中示出的步骤1031b-1032b构建相应的噪声音素。
171.步骤1033c,基于候选标准音素及噪声音素,进行音素序列重构,得到对应第一音素序列的可识别音素序列。
172.在实际实施时,服务器在确定了相对于标准音素序列的候选标准音素后以及噪声音素后,可以对标准音素序列进行音素序列重构,得到对应第一音素序列的可识别音素序列。
173.示例性地,以采用有向图表征唤醒词的音素序列为例,参见图12,图12是本技术实施例提供的确定可识别音素序列的另一方法流程图,图中,对应唤醒词k={“你”,”好”,”哈”,”弗”}的标准音素序列为“ni3hao3ha1fu2”,但服务器对待识别语音进行音素转换后,得到的第一音素序列为“jin1tian1hao3ha1fu2”(此时存在标准音素缺失即ni3被截断)同时又存在冗余音素jin1tian1,因此,针对标准音素缺失,可以在图中添加对应音素序列{hao3ha1fu2}的路径(图中编号2示出的路径start

eps
→h→
ao3

eps
→h→
a1

eps
→f→
u2

end)。针对冗余音素“jin1tian1”,在标准音素序列的起点位置,填充图中编号4示出的噪声音素“#absorb”,得到相应的噪声音素序列start

#absorb
→n→
i3

eps
→h→
ao3

eps
→h→
a1

eps
→f→
u2

end,并将j、in1、t、ian14个冗余音素,依次映射至噪声音素,即噪声音素被映射4次。
174.通过上述序列补充方式与噪声补充方式相结合确定可识别音素序列的方式,增加了唤醒词的容错处理,并增加了特殊的吸收节点,能够有效的避免因唤醒音频的截断、多输入、吞音等形成的识别错误。
175.在步骤104中,基于可识别音素序列,服务器对初始音素序列中的第二音素序列进行语音识别,得到语音内容对应的语音识别结果。
176.在一些实施例中,服务器可以通过以下方式确定对第二音素序列进行语音识别:服务器基于可识别音素序列,对初始音素序列进行切割,得到第二音素序列;获取用于音素识别的词典;并基于词典,对第二音素序列进行语音识别,得到语音内容对应的语音识别结果。
177.在实际实施时,服务器确定第一音素序列的可识别音素序列后,从待识别语音对应的初始音素序列中忽略上述可识别音素序列,得到唤醒词关联的语音内容(即第二音素序列),并基于预设设置的音素词典以及预设的语言模型,对语音内容进行识别,得到相应的文本内容作为语音识别结果。
178.示例性地,针对包含唤醒词k“你好,小微”的待识别语音“wan4sui4ni3xiao3wei1jin1tian1tian1qi4ru2he2”(“万岁你好,微,今天天气如何”),确定对应唤醒词k的第一音
素序列“wan4sui4ni3xiao3wei1”的可识别音素序列为“start

#absorb
→n→
i3

x

iao3
→w→
ei1

end”。然后将可识别音素序列从初始音素序列中分离,得到符合用户意图的音素序列{start
→j→
in1

ti

an1

t

ian1
→q→
i4
→r→
u2
→h→
e2

end}。
179.在一些实施例中,服务器可以通过以下方式确定待识别语音中的第二音素序列:服务器获取可识别音素序列在初始音素序列对应的起始位置和终止位置;从起始位置开始对初始音素序列进行音素忽略,直至终止位置为止,将初始音素序列中剩余的各音素组成的音素序列作为第二音素序列。
180.在实际实施时,针对第一音素序列的忽略操作,可以基于可识别音素序列在初始音素序列对应的起始位置和终止位置进行,即从起始位置开始对初始音素序列进行音素忽略,直至终止位置为止。
181.在一些实施例中,服务器在得到语音内容对应的语音识别结果后,还可以通过以下方式生成并响应信息:服务器对语音识别结果进行语义分析,得到语义分析结果;获取语义分析结果对应的响应信息,并输出响应信息。
182.示例性地,针对包含唤醒词k“你好,小微”的待识别语音“wan4sui4ni3xiao3wei1jin1tian1tian1qi4ru2he2”(“万岁你好,微,今天天气如何”),得到符合用户意图的音素序列{start
→j→
in1

ti

an1

t

ian1
→q→
i4
→r→
u2
→h→
e2

end}(即今天天气如何),服务器对“今天天气如何”进行语义分析,得到今天的具体天气情况,作为针对待识别语音的响应信息,并将响应信息发送至智能语音设备,以使智能语音设备进行应答。
183.应用本技术实施例,当唤醒词对应的第一音素序列与标准音素序列存在音素差异时,可以根据音素差异的类型确定相应的序列调整方式,并基于目标序列调整方式进行音素序列调整,得到针对唤醒词的可识别音素序列,从而能够从待识别语音中将唤醒词部分忽略,得到符合用户意图的音素序列进行识别,得到目标结果,如此,增加了唤醒词的容错处理,并增加了噪声音素,能够有效的避免因唤醒音频的截断、多输入、吞音等形成的识别错误,提高语音识别的准确性。
184.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
185.相关技术中,在“唤醒-识别”模式的语音交互下,用户需要首先通过唤醒词唤醒语音识别系统,然后在若干时长的静音后说出想要识别的内容,这种交互方式交互效率略低,而且由于噪声干扰等原因,可能导致识别语音的提前截断。而oneshot识别技术则是通过省略唤醒和识别中的静音等待时间的一种交互方式,用户能够更快的进行语音交互,而且还能够避免部分噪声干扰。
186.基于此,本技术实施例提供一种语音识别方法,该方法是基于transducer声学模型的oneshot音频识别,使用该方法能够在识别oneshot音频时,完整地剔除唤醒词识别结果,能够有效的避免因唤醒词音频截断、多输入、吞音等造成的后续语音识别错误。
187.首先,针对oneshot语音交互方式进行说明,oneshot识别技术是一种在“唤醒-识别”模式的语音交互下更便捷的一种方式。oneshot识别技术是指在语音输入的过程中,先进行唤醒,而后根据唤醒结果,将唤醒词的音频与后续的输入音频进行拼接,通过语音识别引擎对oneshot音频进行识别,在识别结果中,根据唤醒词的发音剔除唤醒词部分,即可得到oneshot的识别结果。参见图13,图13是本技术实施例提供的oneshot识别方式示意图,图中,当智能语音设备的唤醒引擎检测到唤醒词(“叮当叮当”)后,将缓存的唤醒音频首先输
入唤醒词识别引擎,然后继续流式输入语音;随后,识别引擎将唤醒词音频和用户语音音频作为一个整体进行识别;最后,剔除唤醒词识别结果,输出用于语音音频识别结果(“导航去省图书馆”)。
188.在实际实施时,基于oneshot的语音交互方式,依赖于关键词检出(kws,keyword spotting)的结果,参见图14,图14是本技术实施例提供的语音识别解码图,在语音识别之前,可以构建一个针对唤醒词的解码图w(解码图是有向图),并通过状态区分的方式依次搜索图中编号1示出的唤醒词解码图w和图中编号2示出的语音识别解码图s,分别对应唤醒的音频和识别音频,如图所示,待识别语音经过声学系统(声学模型)处理过后,生成音素或者音素的hmm状态,通过声学输出的驱动,可以在搜索唤醒词解码图w和语音识别解码图s中进行搜索解码。图14中,解码图中的每个圆圈表示一个状态state,每条弧线表示一次跳转,称之为状态转移弧(arc),可由输入标签(ilabel)、输出标签(olabel)、转移权重(weight)、下一状态(nextstate)等元素组成。以图中编号3示出的状态转移弧为例,该弧上的ilabel为d,olabel也为d,weight为1,即输入d输出d的权重为1,弧信息可以用d:d/1的形式表示,当输入标签和输出标签相同时,weight可被省略,弧上元素可以仅保留d。需要说明的是,该图是展示的最优路径对应的解码图(包括唤醒词解码图w和语音识别解码图s),在state8和state9之间的弧线(图中编号4所示)表示w搜索完成,开始搜索s。
189.在实际应用中,切割唤醒音频的时候,在噪声、语速等影响下,容易造成唤醒音频的截断、多输入、吞音等问题。在”语音帧同步解码“的系统中造成的影响并不明显,因为一般情况下,语音帧的数目通常远大于唤醒词的音素个数。
190.示例性地,参见图15,图15是本技术实施提供的语音帧示意图,图中在语音帧同步解码系统中,语音被分割为相同时长的顿,每一顿会对应一个声学输出;在音素帧同步解码系统中,声学在声学确定的位置输出声学,其他帧被blk填充。图中在“语音帧同步解码系统”中,声学的输出的发音(音素)序列存在冗余,在此系统下的w和s即便存在截断、吞音、多输入等造成的声学垃圾输入,也可以通过解码图中的自旋进行吸收或者扩展,参见图16,图16是本技术实施例提供的自旋吸收示意图,图16中,当声学系统输入”sil sil d d d d d ang1 ang1 ang1 sil”或者输入”sil d d ang1 ang1 ang1 sil”等类似的语音输入时,都可以正确的进行解码,即便声学存在截断、吞音、多输入等情形,在一定误差范围内,都可以通过解码图进行吸收或者扩展。
191.在实际实施时,在基于端到端的”音素同步解码“系统中,截断、插入或者吞音,则会引入明显的垃圾音素插入或正常音素删除,会造成声学的输出不能在定义好的唤醒词解码图w中执行正确的维特比搜索,从而造成从唤醒词解码图w跳转到语音识别解码图s的时机不正确或者无法跳转。参见图17,图17是本技术实施例提供的音素解码示意图,图中,声学输出”d ing1 d ang1”可以正确进行搜索,但针对声学输入”n i3 h ao3 d ing1 d ang1”或者“d a ng1”等音素缺失的情形,在基于transducer(端到端)的声学模型中,可以通过增加针对唤醒词的容错处理,以及增加特殊的吸收节点的方式,避免因唤醒音频的截断、多输入、吞音等形成的识别错误。
192.在一些实施例中,参见图18,图18是本技术实施例提供的语音识别流程图,结合图18示出的步骤进行说明。首先执行步骤401:用户唤醒相应的智能语音设备,然后唤醒引擎执行步骤402:检测是否唤醒成功,若唤醒不成功,则用户可以继续执行步骤401,若唤醒成
功,则唤醒引擎执行步骤403:切割唤醒音频缓存,并基于切割后的唤醒音频执行步骤404:构造唤醒词wfst,构造完成后,唤醒引擎执行步骤405:给识别引擎输入唤醒音频缓存,接着继续执行步骤406:给识别引擎输入语音识别音频内容,继续执行步骤407:检测到待识别语音结束,最后执行步骤408:输出最终结果。
193.接下来对各步骤进行详细说明,首先,针对唤醒词音频的切割方式进行说明,唤醒引擎在进行唤醒的过程中,需要将最近的音频进行缓存,一般缓存2s左右的音频;唤醒引擎被唤醒后,会输出唤醒词以及唤醒对齐结果,唤醒对齐是指对唤醒词音频在整个输入音频中的位置,可以通过唤醒结果计算出唤醒音频的长度l,在缓存的唤醒音频中,从唤醒点回溯l时间即可得到唤醒词音频。示例性地,参见图5,图中展示了语音对齐信息,当通过对齐信息计算的lb》l的时候,会发生唤醒词音频多输入;当通过对齐信息计算的la《l的时候,会发生唤醒词音频的截断。为了能够在背景噪声、唤醒对齐算法、缓存不够等多种原因下,可以对上述情况进行容错处理,从而能够获得正确的l,具体的容错处理方式如下文所述。
194.接着,针对唤醒词wfst构建进行说明。唤醒词wfst(w)构建分为分词、发音转换、多音字兼容、wfst构建等基本步骤。设唤醒词k由n个词{k1,k2,...,kn}组成,其中最简单的情况下,在汉语中,可以直接定义一个字就是一个词,则可认定n即为k的长度。其中,对于某个kn,其拥有{a1,a2,...am}个发音,如果m》1,则kn是一个多音字。每个发音am又可以分为发音序列{p1,p2,...,pj}。此处,某个发音p即为一个phone,一般情况下,一个汉字由两个音素phone组成,其中,对于部分单音字、可以通过填充自定义前缀,如ini_e,ni_o,ni_a形成两个phone。对于唤醒词k,则可以在唤醒词wfst中构建出mk1
×
mk2
×
...
×
mkn个路径,其中mkn表示第n个词的发音数量。其中,路径可以使用如下公式:
[0195][0196]
上述公式中,w中的语言分通常设置为0,便于强制匹配唤醒词;pj表示kn的第m个发音的phone序列,loglike函数则用于获取某个phone在某一音频帧的后验概率。当rm值最小时,则rm为最优路径。
[0197]
作为示例,参见图4,图中,以唤醒词“你好哈弗”作为例子来说明。其中k由{“你”,”好”,”哈”,”弗”}四个词组成,n=4,其中”好”以及“哈”是多音字,分别以“好3”,“好4”以及“哈1”,“哈4”来进行区分。则我们可以组成路径“你好3哈1弗”、“你好4哈1弗”、“你好4哈1弗”,“你好4哈4弗”四种路径,而后再将文字转化为发音序列,可以组成如下的解码路径图,此处圆圈表示音素。为了表示方便,在每个字之间插入空节点,即eps,方便理解。
[0198]
当声学系统输出的音素与上述标准结构一致时,可以获得最小的rm,即最优路径。如声学的输入为“n i3 h ao3 h a1 f u2”的音频时。但是如果发生吞音、截断等情形,基于transducer的声学模型无法输出完整音素序列,如仅能输出“h ao3 h a1 f u2”(截断)或者”n i3 h a1 fu2”(吞音)。因此,针对吞音、截断的唤醒词发音序列的解决办法为:在构建唤醒词wfst的时候,需要在已有唤醒词k对应的解码图的基础上额外添加路径。对于四字唤醒词,即n=4,检查其中容易被吞掉的发音构建路径,并对后三字、后两字也构建路径。即对于k,会额外建立路径{k1,k3,k4},{k3,k4},{k2,k3,k4}等路径。以k={“你”,“好”,“哈”,“弗”}为例,构建的额外路径可以参见图7示出的路径信息。即赋予w跳帧的能力,即便在声
学帧缺失的情况下,依旧能够正确的搜索出正确的路径。
[0199]
再次,针对多输入的唤醒词音频的容错处理方式进行说明,如果对齐点偏前,则有可能多录入音频,如lb,多录入的音频很有可能包含人声,针对多输入的情况,解决办法如图12所示,从唤醒词wfst的起点上,加入了一个吸收符号“#absorb”的自旋,并对其添加一定的代价w=ave_cost,代价超出代价阈值时,可以退出自旋,以防止搜索过程中陷入该自旋中,图12中,“#absorb”不是一个真实的发音,因此它也没有对应的声学分,在维特比搜索中,可以强制给“#absorb”一个平均声学分,即当前state中所有节点声学分的平均值,并给其限定了取值范围大于某个阈值,避免解码陷入“#absorb”自旋中。
[0200]
针对唤醒词与后续语音的连续识别过程进行说明,得到基于transducer的声学模型的声学输出后,将会在构建的wfst解码图中进行维特比搜索,维特比搜索从状态s.numstates开始,即表示将w的所有状态偏移到s后,维特比搜索根据声学模型的输出的发音序列以及w中的状态转化,会形成多条路径,当某条路径触及到唤醒词w的final节点(终点)时,则额外构建一条路径到状态s.startstate,从而实现唤醒词与后续语音的连续识别。
[0201]
最后,对待识别语音中的唤醒词进行分离,在构建的唤醒词wfst中,所有节点的输出均为空节点eps,这意味着w在进行维特比搜索时,仅产生输入label,而不会产生输出label,即其识别结果为空(针对唤醒词没有输出)。这样,在最终获取的搜索路径中,统计输出label时,不会包含任何唤醒词内容,达到了对唤醒词的分离。同时,对于最终路径的输入label进行统计时,也可以根据构建w时的语法,剔除对应的输入label,从而得到用户语音的phone序列。
[0202]
在实际应用中,语音识别的性能指标可以包括插入错误率(ier,insertion error rate)、删除错误率(der,deletion error rate)、替换错误率(ser,deletion error rate)及字错率(wer,word error rate)等。参见表1,表1是本技术实施例提供针对语音识别方法的测试结果表,相关测试结果如下:
[0203]
方案插入错误(ier)删除错误(der)替换错误(ser)字错率(wer)其他方案1.24%0.42%2.5%4.19%本技术0.21%0.52%2.53%3.24%
[0204]
表1
[0205]
通过表1,可以得出,采用本技术实施例提供的语音识别方法,尤其是在语音唤醒功能中应用该语音识别方法,能够有效降低语音识别中的插入错误率(ier,insertion error rate)。
[0206]
本技术实施例可使用在车载离线和在线oneshot语音识别中,车载系统首先通过唤醒模型进行唤醒,而后将唤醒词音频对齐后进行切割,连同后续音频输入语音识别模块。在这种方式下,用户在唤醒语音系统后,无需停顿,减少交互时间,提高交互效率。另外,本技术实施例中提供的容错处理以及特殊吸收节点,可以有效避免唤醒音频因对齐问题对后续语音识别造成影响,从而提高对用户语义的理解能力。
[0207]
可以理解的是,在本技术实施例中,涉及到用户信息等相关的数据,当本技术实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
[0208]
下面继续说明本技术实施例提供的语音识别装置555的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器550的语音识别装置555中的软件模块可以包括:
[0209]
获取模块5551,用于获取待识别语音,并对所述待识别语音进行音素转换,得到初始音素序列,所述初始音素序列包括:唤醒词对应的第一音素序列及所述唤醒词关联的语音内容所对应的第二音素序列;
[0210]
确定模块5552,用于获取与所述第一音素序列对应的标准音素序列,并确定所述第一音素序列与所述标准音素序列之间的差异信息;
[0211]
调整模块5553,用于确定所述差异信息对应的序列调整方式,并采用所述序列调整方式,对所述标准音素序列进行调整,得到对应所述第一音素序列的可识别音素序列;
[0212]
识别模块5554,用于基于所述可识别音素序列,对所述初始音素序列中的所述第二音素序列进行语音识别,得到所述语音内容对应的语音识别结果。
[0213]
在一些实施例中,所述确定模块,还用于将所述第一音素序列中的音素分别与所述标准音素序列中各音素进行比较,以确定所述第一音素序列相较于所述标准音素序列所存在的音素差异;其中,所述音素差异包括以下至少之一:标准音素缺失、音素冗余;将所述第一音素序列相较于所述标准音素序列所存在的音素差异,作为所述第一音素序列与所述标准音素序列之间的差异信息。
[0214]
在一些实施例中,所述调整模块,还用于当所述差异信息表征所述第一音素序列相对于所述标准音素序列存在标准音素缺失时,确定所述差异信息对应的序列调整方式为序列补充方式;相应的,所述调整模块,还用于确定所述第一音素序列相较于所述标准音素序列缺失的标准音素,并基于所述缺失的标准音素,确定所述标准音素序列中除所述缺失的标准音素外的音素作为候选标准音素;基于所述候选标准音素进行音素序列重构,得到至少一个子音素序列;从所述至少一个子音素序列中,查找与所述第一音素序列对应的子音素序列作为所述可识别音素序列。
[0215]
在一些实施例中,所述调整模块,还用于当所述差异信息表征所述第一音素序列相对于所述标准音素序列存在音素冗余时,确定所述差异信息对应的序列调整方式为噪声补充方式;相应的,所述调整模块,还用于确定所述第一音素序列相对于所述标准音素序列的至少一个冗余音素;构建对应所述至少一个冗余音素的噪声音素;基于所述噪声音素及所述标准音素序列,进行音素序列重构,得到对应所述第一音素序列的可识别音素序列。
[0216]
在一些实施例中,所述调整模块,还用于确定所述标准音素序列的音素填充位置;基于所述标准音素序列的音素填充位置,填充所述噪声音素,得到噪声音素序列;将所述第一音素序列中各音素依次向所述噪声音素序列中的音素进行映射,得到对应所述第一音素序列的可识别音素序列;其中,所述第一音素序列中的所述冗余音素,用于映射至所述噪声音素序列中的噪声音素。
[0217]
在一些实施例中,所述调整模块,还用于确定所述至少一个冗余音素的数量;在所述标准音素序列的音素填充位置,填充所述数量的所述噪声音素,得到噪声音素序列。
[0218]
在一些实施例中,所述调整模块,还用于在将所述第一音素序列中的所述冗余音素向所述噪声音素映射的过程中,确定针对所述噪声音素的映射次数;当所述映射次数达到次数阈值时,生成提示信息并输出,所述提示信息用于提示针对所述待识别语音的语音
识别失败。
[0219]
在一些实施例中,所述调整模块,还用于当所述差异信息表征所述第一音素序列相对于所述标准音素序列既存在标准音素缺失、又存在音素冗余时,确定所述差异信息对应的序列调整方式为序列补充方式与噪声补充方式相结合;相应的,所述调整模块,还用于确定所述第一音素序列相较于所述标准音素序列缺失的标准音素,并基于所述缺失的标准音素,确定所述标准音素序列中除所述缺失的标准音素外的音素作为候选标准音素;确定所述第一音素序列相对于所述标准音素序列的至少一个冗余音素,并构建对应所述至少一个冗余音素的噪声音素;基于所述候选标准音素及所述噪声音素,进行音素序列重构,得到对应所述第一音素序列的可识别音素序列。
[0220]
在一些实施例中,所述确定模块,还用于以字符为单位,对所述唤醒词进行分词处理,得到至少两个字符;分别确定各所述字符对应的发音;基于所述字符对应的发音,对所述字符进行音素转换,得到所述字符对应的音素序列;基于各所述字符对应的所述音素序列,确定所述第一音素序列对应的标准音素序列。
[0221]
在一些实施例中,所述确定模块,还用于基于所述字符对应的发音,对所述字符进行音素转换,得到所述字符对应的中间音素序列;当所述中间音素序列中的音素数量为一个时,将所述中间音素序列中的音素与预设修饰音素进行拼接,得到对应的目标音素;将所述中间音素序列中的所述音素替换为所述目标音素,得到所述字符对应的音素序列。
[0222]
在一些实施例中,所述识别模块,还用于基于所述可识别音素序列,对所述初始音素序列进行切割,得到所述第二音素序列;获取用于音素识别的词典;基于所述词典,对所述第二音素序列进行语音识别,得到所述语音内容对应的语音识别结果。
[0223]
本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的语音识别方法。
[0224]
本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的语音识别方法,例如,如图3示出的语音识别方法。
[0225]
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0226]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0227]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0228]
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点
的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0229]
综上所述,通过本技术实施例用户在唤醒语音系统后,无需停顿,减少交互时间,提高交互效率。另外,本技术实施例中提供的容错处理以及特殊吸收节点,可以有效避免唤醒音频因对齐问题对后续语音识别造成影响,从而提高对用户语义的理解能力。
[0230]
以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献