买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】用于训练声学模型的方法和设备_三星电子株式会社_201810225109.3 

申请/专利权人:三星电子株式会社

申请日:2018-03-19

公开(公告)日:2024-04-02

公开(公告)号:CN108630198B

主分类号:G10L15/06

分类号:G10L15/06;G10L15/16

优先权:["20170323 KR 10-2017-0036644","20170825 KR 10-2017-0108060"]

专利状态码:有效-授权

法律状态:2024.04.02#授权;2020.03.17#实质审查的生效;2018.10.09#公开

摘要:公开一种用于训练声学模型的方法和设备。一种声学模型的训练方法包括:基于语音序列来构建窗级输入数据;将窗级输入数据输入到声学模型;基于声学模型的输出来计算序列级误差;基于序列级误差来获取窗级误差;基于窗级误差来更新声学模型。

主权项:1.一种声学模型的训练方法,包括:基于语音序列来构建窗级输入数据;按时间顺序将包括在窗级输入数据中的帧顺序地输入到声学模型,其中,声学模型包括递归深度神经网络RDNN,并基于窗级输入数据输出窗级声学分数;基于声学模型的输出来计算序列级误差;通过划分序列级误差来获取窗级误差;基于窗级误差来更新声学模型,其中,计算序列级误差的步骤包括:获取通过声学模型基于窗级输入数据的帧顺序地输出的窗级声学分数,通过合并窗级声学分数来获取序列级声学分数,通过将序列级声学分数和对应于与语音序列相关联的参考句子的发音概率的分数进行比较来计算序列级误差。

全文数据:用于训练声学模型的方法和设备[0001]本申请要求于2017年3月23日提交到韩国知识产权局的第10-2017-0036644号韩国专利申请和于2017年8月25日提交到韩国知识产权局的第10-2017-0108060号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。技术领域[0002]下面的描述涉及一种用于训练声学模型的方法和设备。背景技术[0003]最近,为了尝试解决将输入模式分类为预定组的问题,正在积极地进行试图将人类的有效的模式识别方法应用于实际计算机的研究。该研究包括对通过对人类生物神经元的特性进行建模而获得的人工神经网络ANN的研究。为了尝试解决上面的问题,ANN采用尝试建立在人类的独特学习能力上的算法。ANN使用该算法在输入模式与输出模式之间产生映射,这指示ANN具有学习能力。此外,ANN具有基于训练结果响应于未在训练中使用的输入模式而产生相对正确的输出的泛化能力。发明内容[0004]提供本发明内容以简化的形式介绍在以下具体实施方式中进一步描述的构思的选择。本发明内容既不意在标识所要求保护的主题的关键特征或必要特征,也不意在用于帮助确定要求保护的主题的范围。[0005]在一个总体方面,一种声学模型的训练方法包括:基于语音序列来构建窗级输入语音数据;将窗级输入语音数据输入到声学模型;基于声学模型的输出来计算序列级误差;基于序列级误差来获取窗级误差;基于窗级误差来更新声学模型。[0006]构建窗级输入数据的步骤可包括:从语音序列提取与具有预定大小的窗对应的目标数据以及与目标数据邻近的填充数据;基于目标数据和填充数据来构建窗级输入数据。[0007]填充数据可包括:语音序列中的目标数据之前的第一填充数据和语音序列中的目标数据之后的第二填充数据中的至少一个。[0008]计算序列级误差的步骤可包括:基于声学模型的输出来获取序列级声学分数;基于序列级声学分数和与语音序列相关联的参考句子来计算序列级误差。[0009]获取序列级声学分数的步骤可包括:基于声学模型的输出来获取窗级声学分数;通过从窗级声学分数去除与填充数据对应的声学分数来获取与目标数据对应的声学分数;连接与目标数据对应的声学分数并获取序列级声学分数。[0010]参考句子可包括:与语音序列相关联的正确句子和与语音序列相关联的错误句子中的至少一个。[0011]声学模型可被更新,使得窗级误差被减小。[0012]更新声学模型的步骤可包括:基于窗级误差和填充数据来构建更新数据;基于更新数据来更新声学模型。[0013]填充数据可包括:零化数据和与对应于窗级误差的窗邻近的窗的误差中的任意一个或二者。[0014]填充数据的大小可与包括在窗级输入数据中的填充数据的大小对应。[0015]声学模型可包括递归深度神经网络RDNN,并且RDNN的展开的长度与窗级输入数据的长度对应。[0016]—种可存储指令的非暂时性计算机可读存储介质,当由处理器驱使所述指令时使得处理器执行所述训练方法。[0017]处理器可被驱使以:构建窗级输入语音数据,输入窗级输入语音数据,计算序列级误差并获取窗级误差。[0018]在另一总体方面,一种声学模型训练设备包括:至少一个处理器;存储器,包括能够由处理器读取的指令,其中,响应于所述指令由处理器执行,处理器被配置为:基于语音序列来构建窗级输入语音数据,将窗级输入语音数据输入到声学模型,基于声学模型的输出来计算序列级误差,基于序列级误差来获取窗级误差,并基于窗级误差来更新声学模型。[0019]处理器还可被配置为:从语音序列提取与具有预定大小的窗对应的目标数据和与目标数据邻近的填充数据,并基于目标数据和填充数据来构建窗级输入数据。[0020]填充数据包括:语音序列中的目标数据之前的第一填充数据和语音序列中的目标数据之后的第二填充数据中的至少一个。[0021]处理器还可被配置为:基于声学模型的输出来获取序列级声学分数,并基于序列级声学分数和与语音序列相关联的参考句子来计算序列级误差。[0022]处理器还可被配置为:基于声学模型的输出来获取窗级声学分数;通过从窗级声学分数去除与填充数据对应的声学分数来获取与目标数据对应的声学分数;通过连接与目标数据对应的声学分数来获取序列级声学分数。[0023]参考句子可包括:与语音序列相关联的正确句子和与语音序列相关联的错误句子中的至少一个。[0024]声学模型可被更新,使得窗级误差被减小。[0025]处理器还可被配置为:基于窗级误差和填充数据来构建更新数据,并基于更新数据来更新声学模型。[0026]填充数据可包括:零化数据和与对应于窗级误差的窗邻近的窗的误差中的任意一个或二者。[0027]填充数据的大小可与包括在窗级输入数据中的填充数据的大小对应。[0028]声学模型可包括递归深度神经网络RDNN,并且RDNN的展开的长度可与窗级输入数据的长度对应。[0029]从下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。附图说明[0030]图1是示出训练设备的示例的示图。[0031]图2是示出递归模型的示例的示图。[0032]图3是示出双向递归深度神经网络BRDNN中的部分节点的示例的示图。[0033]图4是示出BRDNN的示例的示图。[0034]图5是示出构建输入数据的处理和输出声学分数的处理的示例的示图。[0035]图6是示出序列级声学分数的示例的示图。[0036]图7是示出计算序列级误差的处理的示例的示图。[0037]图8是示出更新声学模型的处理的示例的示图。[0038]图9是示出识别设备的示例的框图。[0039]图10是示出训练设备的示例的框图。[0040]图11是示出训练方法的示例的流程图。[0041]贯穿附图和具体实施方式,相同的附图参考标号将表示相同或同样的元件。附图可不按比例,并且为了清楚、说明和方便,附图中元件的相对大小、比例和描绘可被夸大。具体实施方式[0042]提供下面的详细描述以帮助读者获得对在此描述的方法、设备和或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且操作的顺序不限于在此阐述的顺序,而是除了必须按特定的次序发生的操作之外,可如在理解本申请的公开之后将清楚地那样改变。此外,为了更加清楚和简明,可省略本领域已知的特征的描述。[0043]在此描述的特征可以以不同形式实现,并且不应被解释为受限于在此描述的示例。相反,在此描述的示例仅被提供用于示出实现在此描述的方法、设备和或系统的许多可能方式中的一些方式,这在理解本申请的公开之后将是清楚的。[0044]所公开的示例的以下结构或功能描述仅意在描述示例的目的,并且示例可以以各种形式实现。示例并不意味着限制,而是意味着各种修改、等同物和替代物也涵盖在权利要求的范围内。[0045]虽然“第一”、“第二”等术语用于解释各种组件,但是组件不限于这些术语。为了清楚,这些术语仅用于将一个组件与另一组件区分开来。例如,第一组件可被称为第二组件,或者类似地,在根据本公开的构思的权利的范围内,第二组件可被称为第一组件。[0046]如在此所使用的,除非上下文明确另有指示,否则单数形式也意在包括复数形式。还将理解,当在本说明书中使用术语“包括”和或“包含”时,指定存在叙述的特征、整体、步骤、操作、元件、组件或它们的组合,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和或它们的组。[0047]除非另有定义,否则在此使用的所有术语包括技术术语和科学术语具有与示例所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地如此定义,否则术语诸如,在通用字典中定义的术语应被解释为具有与它们在相关领域的上下文中的含义一致的含义,并且将不被解释为理想化或过于正式的含义。[0048]以下,将参照附图详细描述示例,并且附图中的相同的参考标号始终表示相同的元件。[0049]图1示出训练设备100的示例。参照图1,训练设备100训练声学模型110。声学模型Iio被用作语音识别引擎,语音识别引擎包括声学模型和解码器。声学模型提供关于哪个发音与输入语音信号中的每一帧类似的信息。解码器基于由声学模型提供的信息来计算哪个词或句子与输入语音类似。[0050]例如,声学模型110通过深度神经网络DNN来实现。在这个示例中,训练设备100基于训练数据来训练声学模型110。训练数据包括训练输入和训练输出。训练输入为输入到声学模型110的数据,并且例如,包括语音信号。训练输出为映射到训练输入的数据,并且例如,包括响应于训练输入被输入到声学模型110而将从声学模型110输出的标签。例如,当训练输入为语音信号时,训练输出为与语音信号对应的句子的发音概率。[0051]训练设备100训练声学模型110从训练输入计算训练输出。例如,在下面的描述中,声学模型110的训练包括:声学模型110的参数的训练、声学模型110的更新和声学模型110的参数的更新中的任何一个或者两个或更多个的任何组合。[0052]根据示例,例如,通过递归深度神经网络RDNN或双向递归深度神经网络BRDNN来实现声学模型ll〇』DNN和BRDNN具有适于随时间连续的数据例如,语音)的识别的结构。例如,RDNN基于前一帧来识别当前帧,并且BRDNN基于前一帧和下一帧来识别当前帧。下面进一步描述RDNN和BRDNN。[0053]声学模型基于帧级或序列级被训练。帧级训练为训练声学模型使得正确的发音被提供给每一帧并且声学模型将高分数分配给正确的发音。序列级训练为训练声学模型使得在解码之后高的分数被分配给正确的句子并且低的分数被分配给错误的句子。[0054]在帧级训练和序列级训练二者中,声学模型被训练为针对每一帧分配声学分数。然而,在一个或多个实施例中,帧级训练和序列级训练彼此不同,其中,在帧级训练期间主要基于针对每一帧的发音来执行训练,而在序列级训练期间主要基于句子的准确性来执行训练。声学模型继续基于序列级被训练。[0055]训练设备100通过处理语音序列130来构建输入数据120,基于输入数据120来计算序列级误差,并诸如通过例如反向传播来训练声学模型110。语音序列130包括多个帧。语音序列130中的多个帧与从语音信号提取的特征向量对应。例如,训练设备100从语音信号提取特征并产生语音序列130。从语音信号提取的特征向量与语音序列130中的帧对应。可根据传输介质的存储的量和传输介质的速度,通过以下项中的任何一个或者两个或更多个的任何组合,整个地或逐帧地接收语音信号:使用接通的麦克风从用户直播和实时地接收、从远程位置接收或者从存储位置检索。[0056]在对通过声音提供的整个句子进行考虑的BRDNN的声学模型中,基本上基于包括当前帧、前一帧和下一帧的所有的帧来计算声学分数。然而,因为由于训练处理与识别处理之间的不匹配导致识别性能降低,所以基于整个句子的声学模型110的训练不适合于在输入用户的声音的同时需要输出识别结果的实时语音识别。例如,当声学模型Iio在训练处理中基于整个句子来训练时,并且当句子的一部分在识别处理中被提供给声学模型110时,声学模型Iio不能准确地识别句子的一部分。因此,在下面的示例中,基于输入数据120来训练声学模型110,以增强声学模型110的实时语音识别性能。[0057]训练设备100从语音序列130提取与具有预定大小的窗对应的目标数据。窗的大小对应于在实时语音识别处理中输入的语音的长度。训练设备100基于目标数据来构建输入数据120。训练设备100以窗为单元训练声学模型110,使得声学模型110在与识别处理基本相同的环境中被训练,这在下面进一步描述。[0058]与以序列为单元训练声学模型110相比,当以窗为单元训练声学模型110时,用于训练的信息量被减少。训练设备100从语音序列130提取与目标数据邻近的填充数据paddingdata以及目标数据,并基于目标数据和填充数据来构建输入数据120。在这个示例中,声学模型110分析与目标数据基本邻近的(例如,在目标数据之前和之后的)信息,因此,提供给声学模型110的信息量的减少被补充。[0059]由于输入数据120的大小基于窗的大小被调节,因此,输入数据120被称为“窗级输入数据120”。类似地,与窗级输入数据120对应的声学模型110的输出被称为“窗级声学分数”。当窗级声学分数被合并为具有与语音序列130对应的长度的单个声学分数时,单个声学分数被称为“序列级声学分数”,这在下面进一步描述。此外,基于序列级声学分数计算的误差被称为“序列级误差”,通过基于窗的大小划分序列级误差而获得的误差被称为“窗级误差”。例如,窗级被称为“帧级”。[0060]训练设备100将对应于输入数据120输出的声学分数进行合并,并执行序列级训练。例如,训练设备100将窗级输入数据120输入到声学模型110。声学模型110输出窗级声学分数。训练设备100通过合并从声学模型110输出的窗级声学分数,来获取序列级声学分数。训练设备100将序列级声学分数与语音序列130的标签进行比较,并计算序列级误差。训练设备100将序列级误差划分为窗级误差,并基于窗级误差来更新声学模型110。[0061]以序列级计算用于更新声学模型110的窗级误差,因此,训练设备100将声学模型110训练为在保持序列级训练的优点的同时适于实时语音识别。[0062]在下文中,下面顺序地描述RDNN和BRDNN的示例以及训练设备100的示例。[0063]图2示出递归模型200的示例。深度神经网络DNN为通过与使用经由突触连接的大量人工神经元的生物系统的计算能力有些相关的软件或硬件实现的识别模型。如上所述,例如,通过包括递归模型200的RDNN或BRDNN来实现声学模型。[0064]递归模型200具有反馈环。当递归模型200的输出被再次输入到递归模型200时,新的输出Ot为来自输入Xt的输出。例如,递归模型200包括节点210,并且节点210的输出被再次输入到节点210。[0065]在下面的描述中,指示与节点210相关联的值的参数为状态参数。例如,状态参数包括节点210的输出值。状态参数被称为“节点参数”。[0066]例如,递归模型200为长短期记忆LSTM神经网络。在LSTM神经网络中,节点210包括多个门。在LSTM神经网络中,节点210的状态参数包括:节点210的输出值和节点210的单元状态值。节点210的输出值和单元状态值基于节点210的门来控制。然而,LSTM神经网络仅为示例,递归模型200的结构不限于LSTM神经网络。[0067]输入Xt为在时间t输入到递归模型200的帧数据,并且输出Ot为在时间t从递归模型200输出的帧数据。时间t表示时间戳t。帧数据是通过以预定长度例如,帧的单元对序列数据进行采样而获得的数据。帧的单元根据实施例被不同地设置。例如,序列数据对应于语音序列,帧数据对应于包括在语音序列中的每一帧。[0068]图3示出BRDNN300中的部分节点的示例。参照图3,以递归连接被展开为具有与窗长度相同的长度的结构,来表示BRDNN300。例如,BRDNN300的展开长度与输入数据的长度对应。RDNN和BRDNN在反向节点和反向通路上彼此不同,因此,除了下面反向节点和反向通路的描述之外的描述也适用于RDNN。[0069]BRDNN300的节点被分类成前向节点311、321和331,以及反向节点312、322和332。前向节点311、321和331中的每一个分别对应于单个帧,反向节点312、322和332中的每一个也分别对应于单个帧。每一帧对应于单个前向节点和单个反向节点。例如,第t帧对应于前向节点311和反向节点312,第t+Ι帧对应于前向节点321和反向节点322。然而,对此没有限制,单个帧可对应于多个前向节点和多个反向节点。[0070]前向节点311、321和331中的每一个通过形成前向通路391例如,从节点311穿越到节点321并继续到节点331的递归连接,连接到另一前向节点。反向节点312、322和332中的每一个通过形成反向通路392例如,从节点332反向穿越到节点322并继续到节点312的递归连接,连接到另一反向节点。例如,前向通路391为用于基于等式来更新状态参数并将状态参数发送到与下一帧对应的前向节点的连接。此外,反向通路392为用于基于等式来更新状态参数并将状态参数发送到与前一帧对应的反向节点的连接。前向节点的更新路径和反向节点的更新路径彼此独立地分开。[0071]例如,在图3中,窗的长度对应于三个帧。训练设备在时间t将帧数据Xt输入到与时间t对应的前向节点311和反向节点312。训练设备通过前向通路391,将在时间t的状态参数从与时间t对应的帧的前向节点311传播到与时间t+1对应的帧的前向节点321。此外,训练设备通过反向通路392,将在时间t+Ι的状态参数从与时间t+Ι对应的帧的反向节点322传播到与时间t对应的帧的反向节点312。训练设备使用通过前向通路391和反向通路392更新的节点(例如,前向节点311和反向节点312的状态参数,来计算与第t帧(即,输入Xt对应的输出〇t。[0072]在图3中,窗的长度对应于三个帧,为了清楚,BRDNN300中的部分节点被示出,然而,对此没有限制,并且BRDNN300可由任何合适的数量的节点形成。[0073]图4示出BRDNN400的示例。BRDNN400包括:输入层、隐含层和输出层。隐含层包括作为隐含节点多个节点。当BRDNN400为LSTM神经网络时,BRDNN400中的每个节点包括记忆细胞单元,并且记忆细胞单元包括至少一个时间门。[0074]输入层接收用于执行训练或识别的输入数据,并将输入数据传送到隐含层。输出层基于从隐含层的节点接收的信号,来输出声学分数。隐含层位于输入层与输出层之间,并将要被识别的数据或通过输入层传送的训练数据改变为相对更容易预测的值。[0075]包括在输入层中的节点和包括在隐含层中的节点通过具有连接权重的突触来彼此连接。此外,包括在隐含层中的节点和包括在输出层中的节点通过具有连接权重的突触来彼此连接。输入层、隐含层和输出层中的每一个包括多个节点。[0076]在图4中,输入层和输出层中的每一个包括单个节点,隐含层包括两个节点,然而,这仅是为了便于描述的示例。因此,包括在每个层中的节点和节点的数量可根据设计而不同。[0077]神经网络可包括多个隐含层。包括多个隐含层的神经网络被称为“DNN”,DNN的训练被称为“深度学习”。包括在隐含层中的节点被称为“隐含节点”。前一时间间隔中的隐含节点的状态参数例如,输出值连接到当前时间间隔(例如,当前帧)中的隐含节点。此外,当前时间间隔中的隐含节点的状态参数连接到下一时间间隔中的隐含节点。[0078]如上所述,在不同的时间间隔中的隐含节点之间具有递归连接的神经网络被称为“递归神经网络”。包括多个隐含层的递归神经网络被称为“RDNN”。此外,当RDNN具有双向递归连接时,RDNN被称为“BRDNN”。在BRDNN400中,前向节点之间的递归连接和反向节点之间的递归连接被产生。[0079]图4示出当窗的长度对应于三个帧时展开的BRDNN400。在图4中,BRDNN400包括:针对输入数据的第一帧410的输入层411、隐含层412和输出层413,针对输入数据的中间帧420的输入层421、隐含层422和输出层423,针对输入数据的最后帧430的输入层431、隐含层432和输出层433,对上述示例没有限制。例如,BRDNN400包括针对输入数据的每一帧的多个隐含层。[0080]BRDNN400中的每一层接收与当前时间对应的时间戳t例如,不具有层间延迟的时间)。时间戳t对应于相信号。相信号被应用于在同一时间更新的所有层。[0081]例如,在第一帧410中,输入层411、隐含层412和输出层413在时间t被更新。在中间帧420中,输入层421、隐含层422和输出层423在时间t+Ι被更新。在最后帧430中,输入层431、隐含层432和输出层433在时间t+2被更新。[0082]从连续的语音信号采样输入到BRDNN400的数据。根据一个或多个实施例,输入到BRDNN400的数据基本上一致地且同步地被采样,或者不一致地且不同步地被采样。[0083]与BRDNN400中的每一帧对应的隐含层和具有与下一帧对应的同一级的隐含层形成前向通路491。例如,在递归神经网络中,与窗中的第一帧对应的隐含层412的第i个前向节点和与下一帧对应的隐含层422的第i个前向节点形成前向通路491。在这个示例中,i为大于或等于“Γ的整数。[0084]此外,与BRDNN400中的每一帧对应的隐含层和具有与前一个帧对应的同一级的隐含层形成反向通路492。例如,与BRDNN400中的中间帧对应的隐含层422的第j个反向节点和与前一个帧对应的隐含层412的第j个反向节点形成反向通路492。在这个示例中,j为大于或等于“Γ的整数。此外,节点被分类为通过前向通路491连接的前向节点和通过反向通路492连接的反向节点。[0085]图5示出构建输入数据的处理以及输出声学分数的处理的示例。参照图5,训练设备将语音信号510转换为语音序列520,并基于语音序列520构建窗级输入数据530。[0086]语音序列520包括“N”个帧。语音序列520被划分成均包括“W”个帧并且不重叠(除了填充数据的可能情况之外)的连续的窗。例如,第一窗包括第一帧至第W帧。此外,第二窗包括第W+1帧至第2W帧。因此,第i窗包括第(i-1XW+1帧至第(i-1XW+W帧。例如,如图5中所示,W为“4”。[0087]声学模型540基于与预定帧邻近的帧来计算该预定帧的声学分数。例如,由于靠近窗的一端的帧的左侧或右侧的帧不足,所以该靠近窗的一端的帧的声学分数可能被错误地计算。在这个示例中,使用填充帧来提高帧的声学分数的准确性。[0088]训练设备使用目标数据和填充数据来构建窗级输入数据530。目标数据指的是包括在窗中的有效载荷帧,填充数据指的是添加到目标数据的帧。填充数据包括:语音序列520中的目标数据之前的第一填充数据、语音序列520中的目标数据之后的第二填充数据或者它们的组合。例如,窗级输入数据535包括:第一填充数据536、目标数据537和第二填充数据538。为了便于描述,第一填充数据和第二填充数据分别被称为左填充数据和右填充数据。[0089]例如,包括在左填充数据中的帧的数量被定义为LP,包括在右填充数据中的帧的数量被定义为RP。在这个示例中,窗级输入数据530具有“LP+W+RP”的大小。第一窗级输入数据中的LP具有零值,最后窗级输入数据中的RP具有零值至“W”。当需要考虑目标数据的量以及在目标数据之前和或之后的可用的填充数据时,LP和RP针对每一个窗级输入数据被调节。例如,为了快速地将识别结果提供给用户,与其他窗级输入数据中的LP相比,第一窗级输入数据中的LP被自适应地调节地更少。[0090]训练设备将窗级输入数据530输入到声学模型540。声学模型540响应于窗级输入数据530的输入来输出声学分数。例如,声学模型540响应于窗级输入数据535的输入来输出声学分数550。包括在窗级输入数据530中的帧按时间顺序被顺序地输入到声学模型540,并且声学模型540输出与输入的帧对应的声学分数。例如,在声学分数550中,列i与包括在窗级输入数据535中的帧的数量对应,行j指示针对每个发音的分数。声学分数550的行j指示与发音“a”对应的分数、与发音“e”对应的分数、与发音“i”对应的分数、与发音对应的分数以及与发音“u”对应的分数。[0091]包括在声学分数550中的发音基于各种预先定义的标准来确定。例如,基于音素和三音素triphones来确定发音。基于对参考音素之前的参考音素的发音具有影响的因素以及对参考音素之后的参考音素的发音具有影响的因素来确定三音素。例如,当提供48个发音时,存在48X33个三音素。[0092]在声学模型540中,输入节点的数量与表示帧的向量的元素的数量对应,输出节点的数量与包括在声学分数550中的发音的数量对应。当相对大量的发音包括在声学分数550中时,声学模型540的处理被延迟。因此,发音的数量被适当地调节。例如,当基于三音素来确定发音时,从属于三音素的发音提取代表性发音。例如,大约6000个代表性发音被确定。在这个示例中,声学分数550具有6000行。[0093]图6示出序列级声学分数640的示例。参照图6,训练设备将窗级输入数据610输入到声学模型620,并基于声学模型620的输出来获取窗级声学分数630。声学模型620基于窗级输入数据610顺序地输出窗级声学分数630。例如,当声学序列(S卩,语音序列包括)“N”个帧时并且当每个窗包括“W”个帧时,输入数据的“『NW1”个声学分数被输出,其中,符号「1是上取整符号,『NW1表示比NW大的最小整数。此外,如上所述,每个窗还包括与填充数据对应的帧。根据一个或多个实施例,声学模型620还输出与填充数据对应的帧的声学分数,然而,在其他实施例中,填充数据的声学分数被排除并且仅用于计算包含在填充数据之间的有效载荷目标数据中的上下文。[0094]训练设备通过从窗级声学分数630去除与填充数据对应的声学分数来获取与目标数据对应的声学分数,合并与目标数据对应的声学分数,并获取序列级声学分数640。在计算声学分数的处理中添加填充数据以提高靠近窗的开始或结束的帧的声学分数的准确性,因此,在获取序列级声学分数640的处理中去除填充数据。训练设备基于序列级声学分数640来计算序列级误差。[0095]图7示出计算序列级误差740的处理的示例。参照图7,训练设备基于序列级声学分数和与语音序列相关联的参考句子来计算序列级误差740。训练设备获取与序列级声学分数对应的分数710,并使用语言模型和解码器获取与参考句子的发音概率对应的分数720和730。序列设备将分数710与分数720或730进行比较,并计算序列级误差740。语言模型提供关于预定词或预定句子多久被使用一次的信息。解码器基于由声学模型提供的信息以及由语言模型提供的信息,来计算哪个词或句子与输入语音类似。分数710、分数720和分数730基于解码器和语言模型来表示预定语音序列的识别概率。[0096]参考句子包括与语音序列相关联的正确句子和与语音序列相关的错误句子中的至少一个。例如,在图7中,分数720对应于与正确句子相关联的发音概率,分数730对应于与错误句子相关联的发音概率。分数730包括:与第一错误句子相关联的发音概率对应的分数731、与第二错误句子相关联的发音概率对应的分数732以及与第三错误句子相关联的发音概率对应的分数733。训练设备使用语言模型和解码器来获取分数720和分数730。[0097]错误句子的数量被预先确定。错误句子基于预定标准来选择。例如,与正确句子类似的句子被选择作为错误句子。训练设备使用解码器从除了正确句子之外的句子提取具有相对高的分数的句子,并从提取的句子选择错误句子。训练设备从提取的句子按分数的降序来确定预定数量的错误句子。[0098]分数710针对每一个元素与分数720或分数730进行比较。例如,包括在分数710的[mn]中的元素与包括在分数720的[mn]中的元素进行比较。在这个示例中,[mη]表示m行和η列。训练设备通过针对每一个元素比较分数710与分数720来计算序列级误差740。当分数710与分数720之间的差增加时,训练设备确定序列级误差740增加。此外,当分数710与分数730之间的差增加时,训练设备确定序列级误差740减小。[0099]图8示出更新声学模型840的处理的示例。参照图8,训练设备通过划分序列级误差810来获取窗级误差820,并基于窗级误差820来更新声学模型840。训练设备更新声学模型840,使得窗级误差820被减小。[0100]例如,当序列级误差810与包括“Ν”个帧的语音序列对应时,序列级误差810被划分为均包括“W”个帧并且不重叠的连续的窗,使得窗级误差820被获取。在这个示例中,第一窗包括针对第一帧至第W帧的误差,第二窗包括针对第W+1帧至第2W帧的误差。因此,第i帧窗包括针对第(i-1XW+1帧至第(i-1XW+W帧的误差。[0101]基于在计算声学分数的处理中输入的输入数据展开声学模型840,因此,声学模型840应该被更新为适合于输入数据的大小的数据。因此,训练设备基于窗级误差820和在一些实施例中)填充数据来构建更新数据830,并基于更新数据830来更新声学模型840。填充数据包括零或者和与窗级误差820对应的窗邻近的窗的误差。例如,使用零或邻近窗的误差825来填充填充数据835。包括在更新数据830中的填充数据的大小与包括在上述的输入数据中的填充数据的大小对应。[0102]声学模型840基于更新数据830被顺序地更新。在上面的示例中,声学模型840总共被更新“丨NW1”次。[0103]训练设备使用误差反向传播学习来训练声学模型840。例如,训练设备更新声学模型840的连接权重或节点的状态参数。例如,训练设备通过监督学习来训练声学模型840。监督学习是将训练输入和与训练输入对应的训练输出输入到声学模型840并调节声学模型840的参数使得训练输出被输出的方案。[0104]误差反向传播学习是通过给定的训练数据的前向计算来估计误差,将估计的误差从输出层反向传播到隐含层和输入层,并调节连接权重以减小误差的方案。用于识别声学模型840的处理按输入层、隐含层和输出层的顺序来执行,然而,误差反向传播学习中的参数按输出层、隐含层和输入层的顺序被更新。[0105]基于窗级输入数据训练声学模型840以匹配实时语音识别处理,并且声学模型840在实时语音识别中展现高性能。此外,声学模型840基于序列级误差810被训练,因此,对词或句子具有鲁棒性能。[0106]图9示出识别设备900的示例。参照图9,识别设备900包括处理器910和存储器920。存储器920包括声学模型925。处理器910从存储器920获取声学模型925。声学模型925通过上述的训练处理被预先训练。处理器910接收语音信号作为输入,并通过对语音信号进行采样来产生语音序列。处理器910以窗级来划分语音序列并将划分的语音序列提供给声学模型925。存储器920还包括解码器935。解码器935基于声学模型925的输出来输出识别结果。[0107]图10示出训练设备1000的示例。参照图10,训练设备1000包括处理器1010和存储器1020。存储器1020包括声学模型1021。处理器1010从存储器1020获取声学模型1021。存储器1020存储能够由计算机读取的指令。当由处理器1010执行存储在存储器1020中的指令时,处理器1010基于语音序列来构建窗级输入数据,将窗级输入数据输入到声学模型1021,基于声学模型1021的输出来计算序列级误差,通过划分序列级误差来获取窗级误差,并基于窗级误差来更新声学模型1021。存储器1020存储训练数据1001和在训练处理期间顺序地更新的声学模型1021。上面的描述也适用于训练设备1000,因此,为了简洁和清楚,这里不重复。[0108]图11示出训练方法的示例。参照图11,在操作1110中,训练设备基于语音序列构建窗级输入数据。在操作1120中,训练设备将窗级输入数据输入到声学模型。在操作1130中,训练设备基于声学模型的输出来计算序列级误差。在操作1140中,训练设备通过划分序列级误差来获取窗级误差。在操作1150中,训练设备基于窗级误差来更新声学模型。声学模型可用于在装置诸如,电话、智能手表或其他用户装置上识别包括命令或文本有效载荷的用户语音。上面的描述也可适用于训练方法,因此,这里不重复。[0109]通过硬件组件来实现执行在本申请中描述的操作的图1至图11中的用于训练声学模型的设备和该设备的组件,其中,硬件组件被配置为执行在本申请中描述的由硬件组件执行的操作。可用于执行在本申请中的适当位置描述的操作的硬件组件的示例包括:控制器、传感器、生成器、驱动器、存储器、比较器、算数逻辑单元、加法器、减法器、乘法器、除法器、积分器、振荡器、信号发生器、电感器、电容器、缓冲器以及被配置为执行在本申请中描述的操作的任何其他电子组件。在其他示例中,由计算硬件例如,由一个或多个处理器或计算机来实现执行在本申请中描述的操作的一个或多个硬件组件。处理器或计算机可由一个或多个处理元件诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或者被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合来实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行指令或软件诸如,操作系统OS以及在OS上运行的一个或多个软件应用),以执行本申请中描述的操作。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简明起见,单数术语“处理器”或“计算机”可用于在本申请中描述的示例的描述中,但是在其他示例中,多个处理器或计算机可被使用,或者一个处理器或计算机可包括多个处理元件或多种类型的处理元件或者两者。例如,单个硬件组件或者两个或更多个硬件组件可由单个处理器或者两个或更多个处理器或者一个处理器和一个控制器来实现。一个或多个硬件组件可由一个或多个处理器或者一个处理器和一个控制器来实现,一个或多个其他硬件组件可由一个或多个其他处理器或者另一处理器和另一控制器来实现。一个或多个处理器或者一个处理器和一个控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有任意一个或多个不同的处理配置,其示例包括:单个处理器、独立处理器、并行处理器、单指令单数据SISD多处理、单指令多数据SMD多处理、多指令单数据MISD多处理和多指令多数据M頂D多处理。[0110]由模拟电子组件、混合模式组件和计算硬件中的任何一个或二者例如,由被实现为如上所述地执行指令或软件以执行在本申请中描述的由该方法所执行的操作的一个或多个处理器或者计算机来执行在图1至图11中所示的执行在本申请中描述的操作的方法。例如,单个操作或者两个或更多个操作可由单个处理器或者两个或更多个处理器或者一个处理器和一个控制器来执行。一个或多个操作可由一个或多个处理器或者一个处理器和一个控制器来执行,并且一个或多个其他操作可由一个或多个其他处理器或者另一处理器和另一控制器来执行。一个或多个处理器或者一个处理器和一个控制器可执行单个操作或者两个或更多个操作。[0111]用于控制计算硬件例如,一个或多个处理器或计算机实现硬件组件并且执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任意组合,以单独地或共同地指示或配置一个或多个处理器或计算机作为用于执行由硬件组件执行的操作和如上所述的方法的机器或专用计算机进行操作。在一个示例中,指令、固件、设计模型或软件包括由一个或多个处理器或计算机直接执行的机器代码诸如,由编译器生成的机器代码)。在另一示例中,指令、固件、模拟逻辑或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中所示的框图和流程图以及说明书中的相应描述使用任意编程语言来编写指令或软件,其中,附图中所示的框图和流程图以及说明书中的相应描述公开了用于执行由硬件组件执行的操作和如上所述的方法的算法。[0112]用于控制计算硬件例如,一个或多个处理器或计算机实现硬件组件并执行如上所述的方法的指令、固件或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或上。非暂时性计算机可读存储介质的示例包括:只读存储器Φ0Μ、随机存取存储器RAM、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-RLTH、BD-RE、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,其中,该任何其他装置被配置为:以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构,并向一个或多个处理器或计算机提供指令或软件以及任何相关联的数据、数据文件和数据结构,使得一个或多个处理器或计算机能够执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布于联网的计算机系统上,使得指令和软件以及任何相相关联的数据、数据文件和数据结构由一个或多个处理器或计算机以分布式的方式被存储、访问和执行。[0113]虽然在本公开中已经使用特定的术语,但是不同的术语可用于描述同一特征,并且这样的不同的术语可出现在其他应用中,这在理解本申请的公开之后将是清楚的。[0114]虽然本公开包括特定的示例,但是在不脱离权利要求和它们的等同物的精神和范围的情况下,可在这些示例中进行形式上和细节上的各种改变,这在理解本申请的公开之后将是清楚的。在此描述的示例仅被认为是在描述性意义,而不是为了限制的目的。每个示例中的特征或方面的描述将被认为可适用于其他示例中的类似特征或方面。如果描述的技术以不同的次序被执行,和或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合和或由其他组件或它们的等同物替换或补充,则可实现合适的结果。因此,本公开的范围不是由具体实施方式限定,而是由权利要求和它们的等同物限定,并且权利要求和它们的等同物的范围内的所有变化将被解释为包括在本公开中。

权利要求:1.一种声学模型的训练方法,包括:基于语音序列来构建窗级输入数据;将窗级输入数据输入到声学模型;基于声学模型的输出来计算序列级误差;基于序列级误差来获取窗级误差;基于窗级误差来更新声学模型。2.根据权利要求1所述的训练方法,其中,构建窗级输入数据的步骤包括:从语音序列提取与具有预定大小的窗对应的目标数据以及与目标数据邻近的填充数据;基于目标数据和填充数据来构建窗级输入数据。3.根据权利要求2所述的训练方法,其中,填充数据包括:语音序列中的目标数据之前的第一填充数据和语音序列中的目标数据之后的第二填充数据中的至少一个。4.根据权利要求1所述的训练方法,其中,计算序列级误差的步骤包括:基于声学模型的输出来获取序列级声学分数;基于序列级声学分数和与语音序列相关联的参考句子来计算序列级误差。5.根据权利要求4所述的训练方法,其中,获取序列级声学分数的步骤包括:基于声学模型的输出来获取窗级声学分数;通过从窗级声学分数去除与填充数据对应的声学分数来获取与目标数据对应的声学分数;通过合并与目标数据对应的声学分数来获取序列级声学分数。6.根据权利要求4所述的训练方法,其中,参考句子包括:与语音序列相关联的正确句子和与语音序列相关联的错误句子中的至少一个。7.根据权利要求1所述的训练方法,其中,声学模型被更新,使得窗级误差被减小。8.根据权利要求1所述的训练方法,其中,更新声学模型的步骤包括:基于窗级误差和填充数据来构建更新数据;基于更新数据来更新声学模型。9.根据权利要求8所述的训练方法,其中,填充数据包括:零值以及与对应于窗级误差的窗邻近的窗的误差中的一个或二者。10.根据权利要求8所述的训练方法,其中,填充数据的大小与包括在窗级输入数据中的填充数据的大小对应。11.根据权利要求1所述的训练方法,其中:声学模型包括递归深度神经网络RDNN,RDNN的展开的长度与窗级输入数据的长度对应。12.根据权利要求1所述的训练方法,还包括:使得更新的声学模型识别用户的语音。13.—种存储指令的非暂时性计算机可读存储介质,当由处理器执行所述指令时,使得处理器执行如权利要求1所述的训练方法。14.一种声学模型训练设备,包括:至少一个处理器;存储器,包括能够由处理器读取的指令,其中,响应于所述指令由处理器执行,处理器被配置为:基于语音序列来构建窗输入数据;将窗级输入数据输入到声学模型;基于声学模型的输出来计算序列级误差;基于序列级误差来获取窗级误差;基于窗级误差来更新声学模型。15.根据权利要求14所述的声学模型训练设备,其中,处理器还被配置为:从语音序列提取与具有预定大小的窗对应的目标数据和与目标数据邻近的填充数据,并基于目标数据和填充数据来构建窗级输入数据。16.根据权利要求15所述的声学模型训练设备,其中,填充数据包括:语音序列中的目标数据之前的第一填充数据和语音序列中的目标数据之后的第二填充数据中的至少一个。17.根据权利要求14所述的声学模型训练设备,其中,处理器还被配置为:基于声学模型的输出来获取序列级声学分数,并基于序列级声学分数和与语音序列相关联的参考句子来计算序列级误差。18.根据权利要求17所述的声学模型训练设备,其中,处理器还被配置为:基于声学模型的输出来获取窗级声学分数;通过从窗级声学分数去除与填充数据对应的声学分数来获取与目标数据对应的声学分数;通过合并与目标数据对应的声学分数来获取序列级声学分数。19.根据权利要求17所述的声学模型训练设备,其中,参考句子包括:与语音序列相关联的正确句子和与语音序列相关联的错误句子中的至少一个。20.根据权利要求14所述的声学模型训练设备,其中,声学模型被更新,使得窗级误差被减小。21.根据权利要求14所述的声学模型训练设备,其中,处理器还被配置为:基于窗级误差和填充数据来构建更新数据,并基于更新数据来更新声学模型。22.根据权利要求21所述的声学模型训练设备,其中,填充数据包括:零值和与对应于窗级误差的窗邻近的窗的误差中的一个或二者。23.根据权利要求21所述的声学模型训练设备,其中,填充数据的大小与包括在窗级输入数据中的填充数据的大小对应。24.根据权利要求14所述的声学模型训练设备,其中:声学模型包括递归深度神经网络RDNN,RDNN的展开的长度与窗级输入数据的长度对应。

百度查询: 三星电子株式会社 用于训练声学模型的方法和设备

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。