基于合成数据训练的会话代理管线的制作方法

文档序号:26009670发布日期:2021-07-23 21:29阅读:93来源:国知局
基于合成数据训练的会话代理管线的制作方法

本公开涉及人工智能和机器学习领域,尤其涉及使用合成数据来训练用于约束域的会话代理管线。



背景技术:

会话代理是对用户以普通自然语言作出的语句进行解释并作出响应的软件程序。会话代理的示例包括传统的会话代理接收音频波形,执行特征提取以将音频波形转换为声学特征的序列,并且将声学特征序列输入到自动语音识别(asr)系统中,该自动语音识别(asr)系统包括声学模型(am)和语言模型(lm)。am确定从这些声学特征映射到各种假设的音素序列的可能性,而lm确定词语序列的先验可能性。解码器使用这两个模型与发音词典一起来选择给定输入的最大可能的词语序列(例如,充当语音转录引擎)。由asr输出的文本的序列作为自然语言理解(nlu)系统的输入,该nlu系统基于由asr输出的文本来确定讲话者的意图。随后,讲话者的所确定的意图被输入到对话管理系统中,该对话管理系统确定要执行以满足所确定的意图的一个或多个动作。

传统的会话代理被设计为在开放式域中工作,在该开放式域中,会话代理接收关于广泛主题的输入,基于输入确定广泛的用户意图,并基于确定的用户意图产生大量的结果。然而,传统的会话代理的asr系统通常易于出错,导致之后通过nlu系统传播的词语级错误,这可能最终使会话代理错误地确定讲话者意图或无法确定讲话者意图。例如,声学失真可以使其难以正确地转录讲话者话语。因此,当存在噪声(例如,在具有背景声学噪声的真实世界状况中)或训练数据和真实世界数据(例如,测试和/或现场应用中使用的数据)之间存在可能劣化asr的性能的任何其他声学不匹配时,会话代理的准确性劣化。这样的不匹配可以例如由噪声、混响、讲话者性别、年龄、口音等的变化引起。另外,人们在许多情况下讲话时自然使用不标准的语法,并且出现诸如频繁停顿、重新开始、不完整话语、纠正、“嗯”、“以及”等的表现错误,这使nlu确定正确的讲话者意图非常具有挑战性。这些现象通常引起会话代理不正确地确定讲话者意图或无法确定讲话者意图。

附图说明

根据以下给出的详细描述以及各个本公开实施例的附图,将更充分地理解本公开,然而,它们不应该用于将本公开局限于特定实施例,而仅用于解释和理解。

图1是示出根据本公开实施例的会话代理管线的框图。

图2a是示出根据本公开实施例的声学模型训练管线的框图。

图2b是示出根据本公开实施例的转码器训练管线的框图。

图3是示出根据本公开实施例的将机器学习模型训练为转码器的方法的流程图。

图4是示出根据本公开实施例的生成合成语音数据的方法的流程图。

图5是示出根据本公开实施例的训练声学模型的方法的流程图。

图6是示出根据本公开实施例的使用会话代理根据音频输入确定讲话者意图的方法的流程图。

图7是示出根据本公开实施例的示例性计算机系统的框图。

具体实施方式

本公开的实施例涉及一种新的会话代理管线,其甚至在具有背景噪声,混响和不标准语法(可以包括话语中的频繁停顿、重新开始、不完整话语、纠正、“嗯”、“以及”等)的情况下,能够根据话语准确地确定约束域内的讲话者意图。通过在约束域(例如,特定的用户交互场景,例如快餐点餐、在线订购、店内信息亭、旅行预订、呼叫中心等)中进行操作,会话代理管线可以被训练为提供该约束域内的更自然的会话体验。例如,在穿梭售卖快餐的背景下,会话代理管线可以被训练为准确地理解顾客可以从餐馆菜单中点餐的每种方式并做出响应。可以通过实施例中的会话代理管线实现的更自然的会话体验的示例是避免了传统的“通过唤醒词语或按钮激活代理、说出单个命令或查询、等待响应并重复”的流程的体验。相反,用户能够自由地向会话代理讲话,如同用户向另外一个人讲话一样,而无需了解会话代理的任何特定命令、特征或特性。

实施例中描述的会话代理包括布置成管线的声学模型(am)、转码器和业务逻辑系统。训练声学模型以接收表示讲话者的话语的音频波形作为输入,并且输出表示讲话者的话语的音素(语音的基本构建块)的序列。音素的序列可以由包括音素概率分布的向量的序列表示。声学模型还可以可选地输出非音素或韵律特征的序列以及音素的序列。这些特征的一些示例包括音高、音量、持续时间等。由声学模型输出的音素(例如,其可以包括音素概率分布的向量)和/或非音素或韵律特征可以以规则和/或不规则间隔(例如,每10ms)出现。

由声学模型输出的音素序列(例如,其可以包括表示音素概率分布的向量的序列)和/或非音素特征被输入到转码器中,该转码器被训练以接收音素序列并且基于音素序列输出关于意图的核心推断(在本文中称为转码)。所确定的意图(转码)可以包括一个或多个所请求的动作(例如,将物品添加到订单、取消订单、从订单移除物品、修改订单物品)以及与所述一个或多个动作相关联的一个或多个实体(例如为名词,诸如汉堡、泡菜、饮料、特定飞机航班等)。应该注意,在实施例中描述的转码器对音素序列而不是文本进行操作。相比之下,传统的nlu在文本上操作以确定意图。在实施例中,通过在音素序列而不是文本上操作,转码器即使在原始音频包括声学噪声,混响,失真和不标准语法(例如,话语中的停顿、重新开始、不完整话语、纠正、“嗯”、“以及”等)时,也能够准确地确定意图。本文描述的转码器甚至能够准确地确定如下实例中的意图:例如,原始话语中缺少一个或多个词语和/或音节和/或在原始话语期间汽车鸣笛的情况。在实施例中,转码器滤除输入的音素序列的无关紧要的部分,并侧重于反映意图的对话的突出部分。在一些实施例中,至少部分地提供了这种能力,因为转码器不在文本假设(如由asr生成)上操作,这也是传统的nlu起作用的方式。在实施例中,am生成一个或多个音素序列,其在不生成或使用文本的情况下被映射到转码器的决定。在一些实施例中,排除asr和传统nlu的会话代理管线可以在至少部分地不使用文本的情况下起作用,因为它在约束域中操作。

在实施例中,由转码器输出的转码被输入到业务逻辑系统或层中。业务逻辑系统可以包括用于检查转码的不一致和/或错误(例如,诸如与蛋黄酱一起订购的健怡可乐,或在短时间范围内订购的多个相同的物品)的一个或多个规则。业务逻辑解决任何所标识的不一致和/或错误,随后执行一个或多个操作以满足转码中的动作,诸如将物品添加到订单。

在实施例中,为了训练会话代理,可以使用第一训练数据集训练声学模型,并且可以使用第二训练数据集训练转码器。第一训练数据集可以包括多个数据项,其中,多个数据项的每个数据项包括话语的音频数据(例如,音频波形)和话语的文本表示。第一训练数据集可以是真实的音频数据,其可以与使用会话代理的约束域相关联。为了训练am,对于每个数据项,话语的文本表示可以被转换为表示该数据项的话语的音素序列。然后,该am可以被训练为使用包括多个修改后的数据项的训练数据集来根据话语的音频数据生成音素序列,该多个修改后的数据项包括:a)话语的音频数据,以及b)表示话语的音素序列。音频数据可以是训练期间am的输入,并且音素序列可以是与数据项相关联的标签或目标。

在约束域内可能存在有限的数据项(或没有数据项),这些数据项适于训练转码器。因此,在一些实施例中,会话模拟器生成用于训练转码器的合成训练数据项。合成训练数据项可以包括a)合成语句的文本表示,以及b)合成语句的转码,所述转码包括包含于合成语句中的一个或多个实体和一个或多个动作,所述与所述一个或多个实体与所述一个或多个动作相关联。合成语句和相关联的转码可位于会话代理将在其内运行的约束域内。对于每个合成训练数据项,字素-音素转换器可以将合成语句的文本表示转换成表示合成语句的音素序列。因此,第二训练数据集中的数据项可以包括a)表示合成语句的序列音素以及b)合成语句的转码序列。在训练期间,音素序列可以被用作到转码器中的输入,并且转码可以是与音素序列相关联的标记或目标。因此,可以在合成的训练数据上训练转码器,该合成训练数据是使用域特定信息和/或随机语法规则生成的。这使得大范围的可能话语能够被生成,潜在地覆盖约束域内的可能性的整个范围。结果是,转码器可以是鲁棒的,并且被训练成即使当原始音频包括声学噪声、混响、失真和不标准语法(诸如话语中的停顿、重新开始、不完整话语、纠正、“嗯”、“以及”等)时,也可以在约束域内精确地确定讲话者意图。

如上所述,实施例提供了一种会话代理管线,当在约束域中使用时,与使用asr和传统nlu的传统会话代理相比,该会话代理管线更准确。另外,实施例中描述的会话代理管线比传统的会话代理包括更少的子系统,从而减少了用于处理输入语音,根据语音确定意图,并对确定的意图执行动作的计算资源、存储器资源和/或网络带宽。

现在参考附图,图1是示出了根据本公开的实施例的会话代理管线100的框图。会话代理管线100包括声学模型(am)110、转码器120和业务逻辑130(还称为业务逻辑系统或业务逻辑层)。

声学模型110可以是机器学习模型(或多个机器学习模型的布置),其已经被训练为根据话语(例如,来自一个或多个讲话者)的音频数据105生成音素序列115。转码器120可以是另一机器学习模型(或多个机器学习模型的布置),其基于音素序列(例如,音素序列115)确定讲话者意图。意图可以表示为包括动作和相关联的实体的一个或多个转码125。转码125可以被输入到业务逻辑130中,该业务逻辑可以确定一个或多个操作135,该一个或多个操作135被执行用以满足由所述一个或多个转码125所表示的意图的(例如,执行在转码125中标识的一个或多个动作)。

如上所述,一些实施例中的会话代理100不包括用于确定特定词语序列的概率的asr或其它语言模型。相反,声学模型110输出音素序列而不是词语序列,并且转码器120基于音素序列而不是基于词语序列来确定意图。在一些实施例中,am包括语言模型。然而,在这样的实施例中,am仍然输出音素而非文本。使用音素而非词语具有多个益处。首先,通过使用音素,可以消除多个子系统,这减少了会话代理管线100所使用的计算资源、存储器资源和/或网络带宽资源的数量。另外,通过使用音素级别信息而不是词语级别信息,声学模型110的输出域从数千种可能性(例如,对于英语来说大约180000个词语)减少到少于100种可能性(例如,卡内基梅隆大学大学发音词典中的39个音素)。因此,在音素级别39,不同的音素可以用于表示英语词典中的所有词语。另外,音素还可以覆盖任何话语,包括具有词典外词语和短语(其可能不包括在任何语言词典中)的那些话语。当使用词典中没有的词语时,以词语级别操作的标准asr和nlu可能失败,这正是由于它们必须将所有或大部分输入映射到文本。然而,即使在话语中使用这种词典之外的词语时,会话代理管线100也能够精确地确定讲话者意图。

声学模型110可以以规则或不规则间隔输出音素和/或非音素或韵律特征。例如,声学模型110可以以10ms间隔输出音素序列(以及可选地,非音素或韵律特征),其中在每个10ms间隔处输出不同的音素(或音素概率的向量)。某一时间间隔内的输出音素可以是具有最高正确概率的单个音素。在一个实施例中,输出音素是针对每个音素包括单独元素的稀疏向量。输出音素可以具有值1和值0,其中,值1与具有最高概率的获胜音素相关联,值0与其它音素相关联。可选地,输出音素可以是可包括可能音素的一些或全部的概率的向量。例如,声学模型110的输出可以是向量序列(例如,如果使用cmu音素而没有非音素特征,则为39个元素向量),其中每个向量包括针对每个元素的概率值(例如,第一音素的10%概率、第二向量的90%概率和剩余音素的0%概率;[0.1,0.9,0,…,0])。在一个实施例中,音素序列被表示为包括一系列调整值(例如,0、1、2、3等)的点阵,每个调整值表示一个时间步长,其中每个调整值与稀疏向量相关联,该稀疏向量对于获胜的音素类别值为1,而对于其余音素类别值为0。在一个实施例中,音素序列被表示为包括一系列调整值(例如,0、1、2、3等)的点阵,每个调整值表示时间步长(例如,0ms,10ms,20ms等),其中每个调整值与语音后验概率图相关联。语音后验概率图由概率向量定义,该概率向量表示语音帧(例如,来自语音帧的窗口)的预定语音类别(例如,39个cmu音素类别)集合的后验概率。

在一个实施例中,声学模型110是隐马尔可夫模型(hmm),其将音频数据输入(例如,从音频波形中提取的的声学特征,诸如mfcc)映射到诸如如上所述的音素序列中。hmm是统计学马尔可夫模型,其中,正被建模的系统被假定为具有隐藏状态的马尔可夫过程。马尔可夫模型是一种用于对随机变化的系统建模的随机模型。隐马尔可夫模型利用随时间改变的随机变量对系统的状态进行建模,其中状态仅是部分可观察的。换句话说,观察与系统的状态相关,但是它们通常不足以精确地确定系统的状态。例如,对于hmm,观察到的数据是语音音频波形的嵌入(例如,mfcc和/或其它声学特征),并且隐藏状态是讲话音素。

在一个实施例中,声学模型110是经训练的神经网络,诸如递归神经网络(rnn)。rnn是一种类型的神经网络,其包括记忆以使神经网络能够捕获时间依赖性。rnn能够学习取决于当前输入和过去输入两者的输入-输出映射。可以使用训练数据集来训练rnn,以生成固定数量的输出(例如,将诸如音频数据的随时间变化的数据分类为属于固定数量的类别,诸如音素类别)。可以使用的一种类型的rnn是长短期记忆(lstm)神经网络。在一个实施例中,使用六层lstm。

在一个实施例中,声学模型110是神经网络(例如,rnn)和隐马尔可夫模型的组合。在一个实施例中,声学模型具有两个主要部分,包括隐马尔可夫模型(hmm)和hmm内部的对特征统计进行建模的长短期记忆(lstm)。可选地,am可以基于高斯混合模型(gmm)和hmm的组合(例如,gmm-hmm)。在一个实施例中,声学模型110是基于框架的实现,以输出音素(以及可选地非音素或韵律特征)而非文本。其它机器学习模型也可以用于声学模型110。

转码器120是被训练用于根据音素序列115生成转码125的机器学习模型。转码器120可以是神经网络或包括神经网络。在一个实施例中,转码器120是递归神经网络。在一个实施例中,转码器120是使用联结时间分类(ctc)损失函数的lstm。

转码器120接收音素序列115作为输入,并且输出一个或多个转码125,其中转码125表示对与在原始音频数据105中捕获的话语相关联的意图的推断。可以由转码器120输出的可能的转码的集合可以取决于约束域(针对该约束域训练会话代理管线100)。在实施例中,可以在不同域中的不同会话代理管线100上使用相同的声学模型110,但转码器120可以用于特定域。在快餐订购的示例中,用于转码的可能动作可以包括将实体添加到订单、从订单中移除实体以及修改实体。可以添加到订单的可能实体可以基于与快餐饭店相关联的菜单。每个条目可以与另外的实体相关联,诸如尺寸实体、组分/成分实体等。例如,汉堡实体可以与肉、番茄酱、芥末、蛋黄酱、洋葱、莴苣和泡菜的子实体相关联,并且这些子实体中的任何一个以及汉堡实体可以被添加、移除或修改。

在示例中,音频数据105可以是陈述“canipleasehaveahamburgerwithnopickles,oh,andpleaseaddextraonions”的话语的波形。声学模型110可以接收用于这种音频数据105的声学特征(例如,包括mfcc的嵌入)作为输入,并且可以输出如下的音素序列115:“kahnaypliyzhhaevahhhaembergerwihthnowpihkahlzowaendpliyzaedehksterahnyahnz”。随后,可以将该音素序列115输入到转码器120中,其可以输出表示原始话语的意图的一个或多个转码125。例如,转码器120可以输出如下转码序列:{[订单]、[汉堡]、[移除]、[泡菜]、[添加]、[洋葱]}。

将由转码器120输出的转码125输入业务逻辑130中。业务逻辑130可以基于转码125作出最终决策。业务逻辑130可以执行一个或多个操作或动作135以满足与转码125相关联的意图。在以上示例中,业务逻辑130可以将汉堡添加到订单,并且可以在订单中指定汉堡没有泡菜并多加洋葱。在一些实施例中,业务逻辑130可以包括将一个或多个规则应用于转码的规则引擎。随后,业务逻辑130可以基于是否满足该规则或多个规则来执行一个或多个操作。在一个实施例中,业务逻辑130包括用于确定转码125是否合逻辑和/或多个相同实体是否已被连续订购的一个或多个规则。在一个实施例中,业务逻辑130包括用于在转码指示不可能或模糊的意图时产生要输出给讲话者的后续问题的一个或多个规则。

图2a是示出根据本公开实施例的声学模型训练管线200的框图。声学模型训练管线200包括声学模型110,其基于来自音频数据的声学特征输入而输出音素序列。为了将声学模型训练为输出音素序列(例如,表示音素概率的矢量序列),训练数据集(修改后的训练数据集230)应该包括数据项,该数据项包括音频数据和音素序列两者。然而,用于训练语音识别系统的可用数据集(例如,初始训练数据集202)(例如,公共语音(commonvoice)和libre语音数据集)包括音频数据和音频数据的关联的文本转录。例如,初始训练数据集202中的训练数据项205包括音频数据210和音频数据的关联的文本转录215。

在实施例中,初始训练数据集202中的训练数据项205的文本转录215被输入字素-音素转换器228中,字素-音素转换器228将文本转录215转换成音素序列235。在一个实施例中,字素-音素转换器228是已经被训练为将文本(字素)转换成音素的机器学习模型。在一个实施例中,字素-音素转换器228是神经网络。例如,字素-音素转换器228可以是rnn或隐马尔可夫模型。在一个实施例中,字素-音素转换器228包括将文本映射到音素的查找表。例如,该查找表可以包括英语词典,其中词典中的每个词语包括与该词语相关联的音素序列。因此,字素-音素转换器228可以从表上的输入文本中找到词语,确定用于该文本的词语的音素序列,并且输出所确定的音素序列。

初始训练数据集202可以包括缺少背景噪声、振动、混响、失真等的数据。然而,在使用期间由会话代理100接收到的音频数据可以包括这种背景噪声、失真、振动、混响等。因此,为了训练声学模型110以甚至在具有这样的失真和其它噪声和混响的情况下精确地确定音素,来自初始训练数据集202的训练数据项205可以被输入音频失真器218中。音频失真器218可以通过将背景音乐、背景噪声、振动等添加到音频数据210来增强训练数据项205的音频数据210,以产生失真或增强的训练数据集222,其包括具有失真音频数据224的失真/增强的训练数据项220。

增强的训练数据集230可以包括增强的训练数据项232,其中,增强的训练数据项232包括与音素序列235关联的原始音频数据210的声学特征/嵌入和/或与音素序列235关联的增强的/失真的音频数据224的声学特征/嵌入,其中,音素序列235表示目标。修改后的或增强的训练数据集230可用于训练声学模型110。例如,对于每个增强的训练数据项232,音频数据210和/或失真的音频数据224的嵌入可以被输入到声学模型110以训练声学模型110。

图2b是示出根据本公开的实施例的转码器训练管线250的框图。转码器训练管线250包括如下机器学习模型:该机器学习模型要被训练为基于音素序列输入来输出一个或多个转码(例如,转码序列)的转码器120。为了训练转码器120以基于音素序列输出转码,训练数据集应该包括包含音素序列和转码序列两者的训练数据项,其中转码表示目标。然而,在特定域内大体上没有足够的音频数据可用来训练转码器120精确地生成用于该域的转码。因此,在实施例中,转码器训练管线250包括会话模拟器255。

会话模拟器255是自然语言生成器,其可以被配置为生成应用于特定域(例如,快餐订购、网页旅行预订、店内自助服务终端等)的合成语句和相关联的描述符(例如,转码)。每个转码集合可以包括一个或多个动作以及一个或多个相关联的实体。例如,在网页旅行预订的域中,动作可以包括预订行程、取消行程以及修改行程,并且相关联的实体可以包括航班、时间、地点等。会话模拟器255可以包括随机应用(例如,使用随机数生成器或伪随机数生成器)的语法规则的集合,以生成包括合成训练数据项260的大型语料库的初始合成训练数据集258。

在一个实施例中,会话模拟器255包括神经网络或其它机器学习模型,该神经网络或其它机器学习模型被训练以生成约束域内的似真语句。在一个实施例中,会话模拟器255是生成合成训练数据项260的生成对抗性网络(gan)。

在一个实施例中,会话模拟器255包括上下文无关语法。上下文无关语法是用于生成字符串模式的递归重写规则集。每个规则可以引起从初始对象到一个或多个输出对象的扩展。上下文无关语法可以包括成组的终结符,其是出现在由上下文无关语法生成的字符串中的字母字符。上下文无关语法可以具有可以用于生成数量非常大的独特语句的小的成组的规则。每个独特的语句可以通过使用上下文无关语法的一个或多个规则构建的树而生成。树的叶子可以包含可以形成字符串或语句(例如,词语序列)的终结符。在一个实施例中,上下文无关语法具有生成文本的规则以及生成转码的规则。另外或可选地,单个规则可以生成文本(例如,字符串)以及相关联的转码两者。因此,使用上下文无关语法形成的树的叶子可以包括一对序列,该对序列包括文本序列(语句)以及转码序列。

在示例中,上下文无关语法可以包括用于订单类别的第一规则。可以为订单创建树,其中树完整时将包括文本序列和相关联的转码序列。上下文无关语法可以具有将订单类别扩展为添加、更新或拆分类别的规则。上下文无关语法还可以具有引起扩展到可选问候、一个或多个规则表达、联结等的规则。上下文无关语法还可以具有将对象扩展到一个或多个可选请求短语、可选暂停等的一个或多个规则。上下文无关语法还可以具有将对象扩展到一个或多个名词短语和/或动词短语的一个或多个规则。上下文无关语法还可以具有将对象扩展到一个或多个后置修饰词的一个或多个规则。

在简单的上下文无关语法中,名词短语和/或动词短语之间不存在关系。这种关系的缺乏可能导致在特定域内不合理的语句。因此,在实施例中,上下文无关语法可以包括生成作为上下文无关语法的终结符的变量的规则。每个变量可以映射到一个或多个实体列表、特性列表、短语列表(例如,后置修饰词)等。例如,食物实体的变量可以映射到来自菜单的食物项的列表或表格。在另一示例中,汉堡选项的变量可映射到汉堡选项的列表,并且仅在食物条目的先前终结符已解析为汉堡时才可由上下文无关语法生成。由会话模拟器使用的变量和相关列表或表格可以是特定于会话模拟器正为其生成合成语句的特定域。

会话模拟器255可以从与所生成的树中的变量相关联的适当列表中选择实体(例如,条目)。一旦以实体替换了变量,关于所选实体的信息就可以用于限制树上的其它扩展和/或叶子的选项,从而将用于稍后的扩展或叶子的选项的范围减少到与所选实体相关联的合理范围。因此,当信息由上下文无关语法生成时,信息可以在树中上下传递。因此,一旦选择了特定实体,会话模拟器255就可以将为语句创建的其它语法限制为在所选实体的上下文中合理的语法。

当多个选项在由上下文无关语法生成的树的特定分支处可用时(例如,在特定扩展处),特定选项的特定选择可以是基于随机数生成器或伪随机数生成器的输出的随机或伪随机选择。类似地,从与变量相关联的列表中选择选项可以是基于随机数生成器或伪随机数生成器的输出的随机或伪随机选择。一些实体可以具有与它们相关联的多个不同特性。一旦选择了这种实体,树中的稍后的叶子可以包括与该实体相关联的一个或多个特性的值。具有一个或多个特性的一些实体可以具有用于一些或所有特性的默认选项。这样的默认选项可以与特定概率权重(例如,权重为70%、80%、90%等)相关联,该特定概率权重使比替代选项更频繁地选择那些默认选项。对于每个特性,会话模拟器255可以使用伪随机数生成器和与特性的默认选项相关联的概率权重来确定默认选项还是替代选项。如果为特性选择了默认选项,则不向该特性的树添加文本或相关联的转码。

字素-音素转换器228将由会话模拟器255输出的合成训练数据项260的合成语句265的文本表示转换成音素序列285。因此,在对初始合成训练数据集258使用字素-音素转换器228之后,生成包括合成训练数据项280的修改后的合成训练数据集275,该合成训练数据项280包括音素序列285和合成语句的相关联的转码270。

修改后的合成训练数据集275可以被输入到转码器120中以进行训练。附加地或替代地,修改后的合成训练数据集275的合成训练数据项280的音素序列285在被输入到转码器120中进行训练之前,可以被输入到音素失真器288。音素失真器288可以包括许多规则,这些规则执行诸如将一个或多个另外的音素插入到音序列素285中、删除音素序列285中的一个或多个音素以及替换来自音序列素285的一个或多个音素等操作。在一个实施例中,音素失真器288包括随机或伪随机地应用一个或多个失真规则的规则引擎。在一个实施例中,音素失真器288是被训练用于使音素序列失真的机器学习模型(例如,神经网络)。

音素序列285的改变可以有意地使音素序列更不清楚和/或更难理解。音素失真器288的输出可以是失真的合成训练数据集290,失真的合成训练数据集290包括合成训练数据项292的集合,其中,合成训练数据项292具有失真的音素序列294以及由会话模拟器255原始输出的合成语句的转码270。失真的合成训练数据集290可以在训练期间与修改后的合成训练数据集275一起输入到转码器120中或代替修改后的合成训练数据集275被输入到转码器120中。在一些实施例中,附加地或替代地,在一个或多个合成训练数据项260的合成语句265的文本表示被输入到字素-音素转换器228中之前,文本失真器(未示出)使这些文本表示失真。

至少一些训练数据中的音素的失真使得转码器120被训练为甚至能够根据有噪声的失真的音素输入成功地确定转码,使得转码器120对于噪声、口音等更加鲁棒。

图3-6是示出根据本公开实施例的用于训练会话代理的组件的方法以及将音频数据应用于经训练的会话代理以确定讲话者意图的方法的流程图。这些方法可由处理逻辑执行,该处理逻辑包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理器上运行的指令)、固件或其组合。这些方法可以例如通过诸如计算装置700的计算装置执行图7的会话代理管线780、am训练管线782和/或转码器训练管线784来执行。

为了简化解释,方法被描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序发生和/或同时发生,并且与本文未呈现和所描述的其它动作一起发生。此外,并非所有示出的动作都是实现根据所公开主题的方法所必需的。此外,本领域技术人员将理解和领会,方法可以可选地通过状态图或事件表示为一系列相互关联的状态。

图3是示出根据本公开的实施例的用于将机器学习模型训练为转码器的方法300的流程图。在实施例中,方法300可以例如使用图2b的转码器训练管线250来执行。在框305处,处理逻辑使用会话模拟器255生成合成训练数据项,该合成训练数据项包括a)合成语句的文本表示(例如,文本字符的序列)和b)合成语句的相应转码序列。例如,合成语句可以是“canipleasehaveahamburgerwithnopickles,oh,andpleaseaddextraonions,”,并且转码序列可以是“[订单]、[汉堡]、[移除]、[泡菜]、[添加]、[洋葱]”或“[添加汉堡]、[无泡菜]、[添加洋葱]”。

在框310处,处理逻辑可以使合成语句的文本表示失真。在框315处,处理逻辑使用字素-音素转换器228将合成语句的文本表示转换成表示该合成语句的音素序列。在框320处,处理逻辑可以使音素序列中的一个或多个音素失真。在一个实施例中,在框322处,处理逻辑替换一个或多个音素,删除一个或多个音素和/或添加一个或多个音素。

在框325处,处理逻辑将机器学习模型训练为转码器120,该转码器使用包括音素序列和转码序列的修改后的合成训练数据来根据音素序列确定转码序列。在框330处,处理逻辑确定转码器120的训练是否是完整的。如果转码器具有目标精确度水平,则训练可以是完整的。如果训练是不完整的,则该方法返回到框305,并生成另一合成训练数据项。如果训练是完整的,则该方法结束。

图4是示出根据本公开实施例的用于生成合成语音数据的方法400的流程图。在实施例中,方法400可以通过处理逻辑执行会话模拟器255来执行。

在方法400的框405处,处理逻辑生成表示约束域内的意图的意图对象。意图对象的示例是[芝士汉堡,没有洋葱,多加蛋黄酱]。在框410处,处理逻辑使用上下文无关语法开始构建表示合成语句的树。针对树的分支,处理逻辑使用重写规则以上下文无关语法扩展一个或多个类别。

在框415处,处理逻辑在扩展过程中标识约束类别或叶子。在框420处,处理逻辑调用上下文无关语法之外的附加逻辑(例如,爬虫(python)逻辑)。

在框425处,处理逻辑(例如,上下文无关语法之外的附加逻辑)确定在框415处是否标识出约束类别或叶子。如果标识出可以被进一步扩展的类别,则该方法继续到框430。如果标识出叶子,则该方法前进到框440。

在框430处,处理逻辑确定如何使用意图对象来扩展约束类别。例如,如果意图对象包括“汉堡”,则名词可以扩展为“食品项”或“汉堡”。在框435处,处理逻辑然后可以通过移除与框430处扩展的类别关联的意图对象的一部分来修改意图对象。例如,如果意图对象是[汉堡,没有洋葱,多加蛋黄酱],则该意图对象可以被更新为[没有洋葱,多加蛋黄酱]。然后,该方法返回到框410。

在框440处,处理逻辑基于意图对象将树的叶子转变为文本和/或转码。在框442处,处理逻辑可以通过移除与在框440处添加的文本和/或转码相关联的意图对象的一部分来修改意图对象。

在框445处,处理逻辑确定树是否是完整的(意味着合成语句和相关联的转码是完整的)。如果树是是完整的,则该方法结束。否则,该方法返回到框410。

图5是示出根据本公开实施例的用于将机器学习模型训练为声学模型的方法500的流程图。可以例如使用图2a的am训练管线200来执行方法500。在方法500的框505处,处理逻辑接收包括多个数据项的训练数据集。训练数据集中的每个数据项可以包括话语的音频数据(例如,音频波形)和话语的文本表示。

在框510处,字素-音素转换器228将数据项的话语的文本表示(例如,文本词的序列)转换成表示话语的音素系列。在框512处,处理逻辑可以例如通过将背景音乐、混响、背景噪声(例如,机场噪声、操场噪声、教室噪声、道路噪声等)等添加到音频数据来使音频数据失真。在框515处,处理逻辑使用修改后的数据项训练机器学习模型。声学模型被训练为根据源自话语的原始音频数据的声学特征生成音素序列。

在框520处,处理逻辑确定训练是否是完整的。如果训练是完整的,则该方法结束。如果训练是不完整的,则该方法返回到框510,并且处理另一训练数据项。

图6为示出根据本公开的实施例的使用会话代理(例如,会话代理管线100)根据音频数据确定讲话者意图的方法600的流程图。在框605处,处理逻辑在被训练为声学模型110的第一机器学习模型处接收新的话语(例如,话语的音频波形)。在框610处,处理逻辑使用第一机器学习模型来处理新话语,以产生表示新话语的新音素序列。

在框615处,处理逻辑使用被训练为转码器120的第二机器学习模型来处理新的音素序列,以确定一个或多个新的转码,该新转码包括一个或多个新动作和一个或多个新的相关联实体。在框620处,处理逻辑使用业务逻辑130处理新转码(其包括一个或多个新动作和一个或多个新的相关联的实体),以确定要执行用以满足所述一个或多个动作的一个或多个操作。在一个实施例中,业务逻辑在框625处确定新转码是否违反了任何规则。如果违反了任何规则,则在框630处,处理逻辑可以修改一个或多个转码,例如,如果存在重复的转码,删除一个或多个转码。业务逻辑还可以从转码确定讲话者意图是模糊不清的并输出询问。在框635处,业务逻辑可以执行所述一个或多个所确定的操作以满足讲话者意图。

图7示出了计算装置700的示例性形式的机器的图示,在该计算装置内可以执行用于使机器执行本文所讨论的方法中的任何一个或多个的指令集。计算装置700可以是计算装置的形式,在该计算装置内可以执行用于使机器执行本文所讨论的方法中的任何一个或多个的指令集。在可选实施例中,机器可以连接(例如,联网)到lan、内联网、外联网或因特网中的其它机器。机器可以在客户端-服务器网络环境中以服务器机器的能力操作。机器可以是个人计算机(pc)、机顶盒(stb)、服务器计算装置、网络路由器、交换机或网桥或者能够执行指定该机器要采取的动作的指令集(顺序的或其它方式的)的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”还应被理解为包括单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一个或多个的机器的任何集合。

计算装置700包括处理装置(处理器)702、主存储器704(例如,只读存储器(rom)、闪存、诸如同步dram(sdram)的动态随机存取存储器(dram))、静态存储器706(例如,闪存、静态随机存取存储器(sram))以及数据存储装置718,它们经由总线730彼此通信。

处理装置702表示一个或多个通用处理装置,诸如微处理器、中央处理单元等。更特别地,处理装置702可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实现其它指令集的处理器或实现指令集的组合的处理器。处理装置702还可以是一个或多个专用处理装置,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。

计算装置700还可以包括网络接口装置708。计算装置700还可以包括视频显示单元710(例如,液晶显示器(lcd)或阴极射线管(crt))、字母数字输入装置712(例如,键盘)、光标控制装置714(例如,鼠标)和信号生成装置716(例如,讲话者)。

数据存储装置718可以包括计算机可读介质728,其上存储有体现本文所述的方法或功能中的任何一个或多个的一个或多个指令集722(例如,机器学习系统780的指令)。在实施例中,会话代理管线780可以对应于图1的会话代理管线100。在实施例中,am训练管线782可以对应于图2a的am训练管线200。在实施例中,转码器训练管线784可以对应于图2b的转码器训练管线250。指令722还可以在其由计算机系统700执行期间完全或至少部分地驻留在主存储器704和/或处理装置702内,主存储器704和处理装置702还构成计算机可读介质。尽管示出了包括会话代理管线780、am训练管线782和转码器训练管线784的单个计算装置700,但是这些管线中的每一个可以驻留在单独的计算装置上。另外,单独的计算装置中的每一个可以是一起操作以实现本文所述的方法或功能中的一个或多个的多个计算装置(例如,计算装置的集群)。

虽然在示例性实施例中将计算机可读存储介质728表示为单个介质,但是术语“计算机可读存储介质”应该被理解为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的缓存和服务器)。术语“计算机可读存储介质”还应该被视为包括能够存储、编码或携带由机器执行的指令集并且使机器执行本文所述方法中的任何一种或多种方法的任何非暂时性介质。术语“计算机可读存储介质”因此应该被理解为包括,但不限于固态存储器、光学介质和磁性介质。

前面的描述阐述了诸如特定系统、组件、方法等的示例的很多具体细节,以便提供对若干本公开实施例的良好理解。然而,对于本领域技术人员来说将是显而易见的是,可以在没有这些具体细节的情况下实践至少一些本公开的实施例。在其它情况下,没有详细描述或以简单框图格式呈现公知的组件或方法,以便避免对使得本公开的实施例模糊。因此,上述具体细节仅仅是示例性的。特定实现可能不同于这些示例性细节,并且仍然属于本公开的范围内。

在以上描述中,阐述了许多细节。然而,对于获得本公开益处的本领域普通技术人员来说将明显的是,可以在没有这些具体细节的情况下实践本公开的实施例。在一些情况下,以框图形式而不是详细地示出公知的结构和装置,以避免使描述模糊。

详细描述的一些部分以算法、和对计算机存储器内的数据位的操作的符号表示的形式存在。这些算法描述和表示是数据处理领域技术人员所使用的最有效地将他们工作的实质传递给本领域其它技术人员的手段。算法在此并且大体上被认为是导致所期望结果的步骤的自相容序列。步骤是那些需要对物理量进行物理操纵的步骤。通常,尽管不一定,这些量呈现电的和/或磁性信号的形式,这些信号能够被存储、传输、组合、比较和以其它方式操纵。已经证明将这些信号称为位、值、元素、标记、字符、项、数字等有时是方便的,主要是出于通用的原因。

然而,应该记住,所有这些和类似的术语均应与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非具体说明,否则,如从以上讨论中显而易见的,应该理解,在整个说明书中,使用诸如“生成”、“转换”、“训练”、“确定”、“接收”、“处理”等术语的讨论指的是计算机系统或类似的电子计算装置的动作和过程,它们将计算机系统的寄存器和存储器表示为物理(例如,电子)量的数据处理和/或变换成计算机系统存储器或寄存器或其它这种信息存储、传输或显示设备内类似地表示为物理量的其它数据。

本公开的实施例还涉及用于执行本文的操作的设备。该设备可以被专门构造成用于所需目的,或者其可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可以存储在计算机可读存储介质上,诸如,但不限于,任何类型的盘,包括软盘、光盘、cd-rom,以及磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适于存储电子指令的任何类型的介质。

应该理解,以上描述旨在是说明性的而非限制性的。在阅读并理解以上描述之后,许多其它实施例对本领域技术人员而言将是显而易见的。因此,本公开的范围应该参考所附权利要求书以及这些权利要求所授权的等效物的完整范围来确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1