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

神经语音到意思的制作方法

2021-06-22 17:08:00 来源:中国专利 TAG:自然语言 神经网络 理解 机器 学习
神经语音到意思的制作方法

本发明属于使用神经网络机器学习进行自然语言理解的领域。



背景技术:

图1示出了具有声音(voice)接口的常规虚拟助手的架构。虚拟助手从诸如麦克风之类的源接收捕获的语音(speech)音频或通过网络接收音频数据的分组。虚拟助手对捕获的语音音频执行自动语音识别(asr)101,以产生转录。一些产生多个转录假设的集合,每个转录假设具有概率得分。图1的虚拟助手对转录执行自然语言理解(nlu)102,或者在多个实例中对多个转录假设执行。nlu产生意图。该意图是具有信息的数据结构,虚拟助手可以作用于该信息来协助用户。

虚拟助手做出关于用户何时已做出具有完整意图的完整表述的决定。我们称其为命中(hit)。当用户停止讲话足够长的时间后,某些虚拟助手确定发生了命中。这称为话语结束(end-of-utterance,eou)检测。一些虚拟助手替代地或者还基于根据nlu的表述的表观完整性(apparentcompleteness)来确定命中。

图1的虚拟助手,在确定已经发生命中后,迅速地做出对于给出所表达的意图的用户可能会有用的某些事情103。某些事情是适合于对意图做出响应的任何种类的功能。例如,虚拟助手可以例如通过使用http协议来对互联网上的数据源104执行web应用程序编程接口(api)调用。例如,这对于查找天气预报是有用的。对于另一示例,虚拟助手可能会执行如下动作,例如,发送具有意图中所包含词语的消息或使机器人进行物理移动。可以在软件开发工具包(sdk)中定义该功能,其中api访问是适当的函数调用的一个示例。

图1的虚拟助手1,在做完某些事情后,产生对用户的响应。这可以包括来自api访问的数据,动作的确认以及任何其他相关信息。虚拟助手执行文本语音转换(text-to-speech,tts)105以合成语音音频。该响应可以包括针对合成语音的韵律的指示,以便强调某些词语并传递期望的语音风格。常规系统在asr和nlu组件中包含许多复杂的技术,asr和nlu组件共同接收语音音频并产生意图和命中信号。

图2示出了asr功能内的常规组件。声学模型201接收音频,将其划分为帧,并执行数字信号处理(dsp)以将音频样本转换为帧内的频谱能量值。较旧的系统对频谱数据使用了隐马尔可夫模型(hiddenmarkovmodels,hmm)。较新的系统使用神经网络(nn)模型202。还可能有其他途径。声学模型生成音素序列假设以及每个假设的声学得分。

在令牌化(tokenization)203的过程中,针对字母语言的asr对照包括针对每个词语的一个或多个发音的发音字典204来核查音素序列假设。对于完整的语言转录,发音字典可能具有一百万或更多个词语。对于特定于应用的系统,该字典可以较小。令牌化产生由词语的序列组成的词语序列假设,这些词语的序列按顺序包括假设的一系列音素。诸如中文之类的非字母语言不是根据字典进行令牌化,而是将音素按顺序组装为字符的发音。无论是字符还是词语,结果都是令牌序列假设。

统计语言模型(slm)205使用令牌序列假设和与从其中导出令牌序列假设的音素序列假设相对应的声学得分,并为每个令牌序列假设计算概率得分。概率得分基于令牌的序列在语言中可能出现的频率,并由根据声学得分的令牌序列的概率加权。在诸如用于长篇听写(long-formdictation)的系统之类的系统中,asr的输出是具有最高slm得分的转录假设。在执行nlu的虚拟助手中,asr可以输出多个转录假设及其对应的得分,可以对每个转录假设进行处理以计算出最可能的意图。在语言用法示例的语料库上对slm进行训练。较旧的slm使用n元语法模型206,该模型计算n个令牌的序列的概率。通常,n为3或4,但也可以是更少或更多。更现代的slm使用nn模型,尤其是具有长期重现性的模型,例如长短期记忆(lstm)nn。这些模型学习向长期优先的令牌赋予与它们的可区分值相称的权重。

图3示出了常规nlu的组件。它接收转录。这些转录可以是来自asr的多个转录假设,也可以是单个转录,例如,采用例如来自键盘的文本形式的一个输入。将转录假设与语法301进行比较。语法包括措辞(phrasing)和槽位(slot)。槽位是可从可能值的列表中填充的信息的占位符。例如,地点的名称对于与天气有关的语法是有用的。时间可以是槽位值。例如,针对执行计算的语法,槽位值也可以是任意数字。

可以以各种特定格式(例如,常规表述格式或专有格式)来表达语法中的措辞。图3示出了示例语法,其措辞为“what’stheweather[goingtobe]in<place>[on]<time>”(“<地点>[在]<时间>的天气[将]如何”)。以如下格式来写该措辞:该格式将方括号中的文本视为可选的并且将尖括号中的文本视为槽位值。因此,该示例与转录“芝加哥在星期三的天气如何”和“迈阿密下周的天气将如何”相匹配。一些虚拟助手根据它们可以解决的知识领域对语法进行分组。然而,领域分组302对于正常功能不是必需的。

语法产生意图和得分。例如,图3所示的语法将产生具有天气api通用资源定位符(url)的意图,天气apiurl包括填充有地点和时间槽位值的自变量(argument)。语法也可以基于特定措辞的概率来给出得分。例如,英语句子“what’stheweathergoingtobeinbostononyesterday”(“波士顿昨天的天气将如何”)是一种尴尬的说话方式,将未来时态指示符“将”与过去时态的时间“昨天”一起使用显得有些荒谬。因此,语法可能会给该句子低得分,而“西雅图当前的天气如何”将使该语法具有有意义的意图和高语法得分。

虚拟助手nlu组件选择303具有最高语法得分的意图。声音虚拟助手选择具有最高语法得分的意图,该语法得分由slm得分加权,而slm得分本身则由声学得分加权。在各种虚拟助手的设计中,其他得分组件也是可能的。

一些虚拟助手存储会话状态304。除其他信息外,这包括槽位值。结果,查询“西雅图的天气如何”将西雅图存储为地点槽位的值。以下使用代词“那儿”的查询(例如“开车到那儿要花多长时间”)在地点槽位中填入值西雅图,因为西雅图是最近提到过的地点。从而,这样的虚拟助手可以理解以自然风格表达的语音。

问题

常规系统有很多组件。某些组件是由智慧的工程师使用最佳研究成果设计的。它一直在改进,但从来都不是完美的。常规系统的某些组件是从大的数据语料库进行训练的。数据量是有限的,用于训练系统的语料库绝不会与系统的将来使用完美匹配。系统的每个组件都不准确,这会丢失整个管线中的有用信息。要分别改善每个阶段都需要付出很大的努力,而要使各个阶段之间可以很好地交互也需要付出很大的努力。但是,这些努力需要有所不同,因此必须基于每种人类语言的特殊性对它们进行重复。此外,它们需要基于应用而不同地进行,例如具有少或多的领域、大或小的词汇量、对功率敏感或对时延要求严格的应用,并满足其他特定于应用的约束。

声学数据是昂贵的。文本词语统计信息与语音不完全匹配。用于特定于领域的语言模型的语料库是困难/不可能/昂贵的。领域语法需要编程技巧。语法语言越强大,所需的技能就越高级。系统具有的领域语法越多,就需要进行越多的精调来解密自然人类语音的歧义。

花费在这种精调上的工程师的薪水如天文数字般昂贵。

现有技术已经证明在没有am或lm的情况下对于“端对端”转录的可接受的准确性。但是文本并不是虚拟助手的终点。其终点是语音的意图的可执行表述,例如nlu语法产品。



技术实现要素:

本发明提供了用于从语音音频中提取意思的统一系统。输入是数字化的语音音频。一些系统采用时域表示,一些系统采用频域表示。输出是表示意图的数据结构。该数据结构采用如下格式,该格式几乎无需进一步处理即可提供执行动作或读取数据值的功能所需的输入。可选的输出是命中信号,该命中信号指示说话者已完成表述。

一些系统包括主意图识别器和一个或多个变量识别器。意图识别器检测具有某种类型的意图的表述的完成。变量识别器对于支持具有实体值(例如,地点名称或数字)的复杂表述的系统是有用的。变量识别器接收语音音频并输出关于识别出变量的哪个枚举值的指示。变量识别器可选地输出指示已经检测到变量的枚举值的信号。变量值在许多系统中可用作意图数据结构输出的自变量。一些意图识别器可以使用变量的枚举值的检测作为输入来通知检测到完整的意图。

一些系统可以具有多个或许多意图识别器以及多个或许多变量识别器。某些类型的变量识别器的输出可以通知多个意图识别器,而某些意图识别器可以观察多个变量识别器的输出。

一些系统将相关联的意图识别器组看作领域。这样的系统可以可选地包括领域识别器,该领域识别器接收语音音频并输出关于语音涉及多个领域中的哪个领域的指示。

可以基于关于语音音频进行训练以产生命中输出和变量值输出的神经网络来实现识别器。可以关于同一意图的多个措词(包括任意数量的人类语言的措辞)对意图识别器进行训练。为减少数据收集时间和成本,可以关于生成的语音音频训练变量识别器。

某些系统通过单独的或作为虚拟助手功能的一部分的平台,将用于自然语言理解的识别器作为一项服务来提供。

捕获音频的设备和识别器服务之间的交互可以通过网络连接(包括无线连接)来进行。使用存储在存储介质上的软件指令来实现许多系统,以使得当处理器执行指令时,其执行方法并表现为本文所描述和要求保护的系统。

附图说明

图1示出了语音控制系统的图示。

图2示出了语音到文本过程的图示。

图3示出了自然语言理解过程的图示。

图4示出了神经语音到意思的黑匣子视图。

图5a示出了输入音频波形。

图5b示出了输入音频频谱图。

图6示出了一些基本识别器元件的图示。

图7示出了某些类型的识别器的实例的示例。

图8示出了神经网络架构的示例。

图9示出了通过学习的语义空间进行翻译的图示。

图10示出了用于产生语音音频的示例生成神经网络。

图11示出了用于语音控制系统的示例平台生态系统的图示。

图12a示出了旋转非暂态计算机可读介质。

图12b示出了固态非暂态计算机可读介质。

图13a示出了封装的片上系统器件。

图13b示出了示例片上系统的高级功能框图。

图14a示出了服务器刀片系统。

图14b示出了示例服务器架构的高级功能框图。

具体实施方式

下面描述要求保护的发明的各种实施例。所描述的实施例具有各种组件。某些组件具有可供选择的设计选项。一些组件是可选的。以下描述不一定明确指出每个组件是否可选、设计选项是否具有替代方案、以及所有可能的替代方案是什么。以下描述给出了示例,普通技术人员将通过这些示例来理解所描述的发明和权利要求。以下描述使用系统一词在不同级别上描述机器和方法,以使得一个系统可能是另一系统的组件。

意图

意图是具有特定预期响应类型的请求。许多口头措辞可以具有相同的意图。例如,“现在几点”和“几点了”是两个意图相同的语句。系统可以将意图表示为结构化数据。可以使用诸如json或xml之类的格式以特定的模式表示结构化数据。在使用api调用运行的系统中,可以将意图表示为(a)api请求的一组自变量,以及(b)在某些情况下,用户有兴趣从api响应中选择哪些信息。

通常,系统的功能越详细,每种意图的措辞就越少。仅给出一种类型的响应的报时系统针对以下措辞给出响应:“几点了”、“什么时辰”、“什么分钟”,但是具有报告全部时间、仅小时、仅分钟的能力的报时系统具有三个意图,每个意图仅响应那些措辞中的一种。

一些系统可以响应多个意图,这些意图除了一个或少量可变信息之外是相同的。例如,可以报告许多不同城市中任何一者的天气的系统可以具有许多不同的意图。但是,由于在收集数据和训练系统方面的实际限制,以包括变量的一个意图来设计它会更加有效,该变量可以具有许多特定值中的任何一个。

如果意图具有变量,则通用意图数据结构是具有针对变量的占位符的结构。特定意图数据结构是为每个变量指定特定值的结构。

api示例

许多虚拟助手通过访问(“命中”)api来检索用户感兴趣的信息。许多现代api使用表述性状态传输(representationalstatetransfer,rest)样式。这通常是通过程序(例如,命令行url(curl))或web框架(例如,flask)来实现的。

这是用于获取天气信息的向api的示例请求。该请求具有url,该url的自变量q的值为伦敦(london)。

api.openweathermap.org/data/2.5/weather?q=london

这是对具有上述url的api命中的示例响应。

温度:286.67

最低温度:281.556

最高温度:286.67

压力:972.73

湿度:75

描述:“晴朗的天空”

风速:1.81

风向:247.501

dt_txt:“2017-02-1612:00:00”

城市:“伦敦”

该响应包括比用户通常想要的更多的关于天气的信息,并且信息的格式不同。因此,有用的虚拟助手响应于用户问题的意图,将提供所得到的的言语用户响应,例如“伦敦的天气为14摄氏度,天空晴朗”。请注意,286.67开氏度是13.52摄氏度。

许多api命中都涉及通过网络访问数据源。一般而言,数据在服务器上,执行api命中的虚拟助手是客户端。包含虚拟助手的设备可能包括网络客户端硬件和/或软件功能。

输出和输入

图4示出了神经语音到意思系统400的输入和输出的概述。输出是意图数据结构,其形式与上述形式类似。随着系统运行,输出可能会随着时间连续地有效变化。也可以在系统假设用户表述已完成的特定时间进行注册。在这种情况下,可能会有额外的信号来指示发生了命中。命中信号可以不断变化,或者可以在假设完成表述时发出脉冲。

神经语音到意思的输入是语音音频数据。可以获取原始的时域音频样本。图5a示出了语音样本的时域波形。

常规的asr包括将时域样本转换成频谱表示的第一数字信号处理步骤。图5b示出了语音(“nevertouchasnakewithyourbarehand(绝对不要赤手触摸蛇)”)的频谱图。它在垂直方向上示出了语音音频的频率分量,他们在水平方向上在时间上逐帧地变化。

许多常规的asr系统在音频样本的大约25ms的窗口上以大约10ms的帧速率(每秒100帧,比预期识别到的最快的人类音素产生速率快一些)计算梅尔频率倒谱系数(mel-frequencycepstralcoefficients,mfcc)。梅尔(mel)标度是针对一般人的语音而精心设计的,因此通过将原始时域音频样本转换为mfcc系数,几乎不会丢失有用的信息。但是,神经网络擅长从原始数据进行推断,而mfcc系数计算会消耗不必要的计算性能。

可能有两种学习途径。

(1)使用加窗。这试图直接从原始波形中学习声学模型,并用卷积层替换加窗/fft/对数梅尔滤波器组,就像sainath等人在论文“learningthespeechfront-endwithrawwaveformcldnns(使用原始波形cldnn学习语音前端)”(2015)中描述的途径一样。但是,这种经学习的语音前端仍会占用25-50ms大小的音频窗口,具有10ms的偏移。最后,它学习了与传统上用于语音识别的滤波器组相似的滤波器组,这表明这是(几乎)最佳的特征输入。这种架构在端到端语音识别系统中相对常见,例如zeghidour等人在论文“end-to-endspeechrecognitionfromtherawwaveform(从原始波形进行端到端语音识别)”(2018)中所描述的。

也可以使用非重叠窗口。tüske等人在其论文“acousticmodelingwithdeepneuralnetworksusingrawtimesignalforlvcsr(使用针对lvcsr的原始时间信号利用深度神经网络进行声学建模)”(2014)中描述了使用dnn这种途径。dnn学习带通滤波器(再次表明,梅尔滤波器组/gammatone(伽马通)似乎非常接近理想),但是具有足够的训练数据,能够达到与使用前端功能或未处理的、非重叠的输入窗口相似的性能。

(2)一次发送一个样本到递归网络。这种途径不需要开窗。可接受的性能要求有足够的上下文来做出明智的决策。例如,某些元音可能长达200毫秒。以16khz的采样率,需要3200个采样的存储空间。可以通过各种方式来解决此问题,例如,通过在如chang等人在论文“dilatedrecurrentneuralnetworks(分散的递归神经网络)”(2017)中所描述的rnn中或者在诸如在googlewavenet音频生成系统中所使用的cnn中使用时间膨胀(timedilation)。

结合以上两种途径,可能提高性能。使用上下文无关的目标通过避免需要足够长的存储空间来查看上一个和下一个音素可能是有帮助的。

基本系统

图6示出了简单的神经语音到意思系统的组件的高级视图。它包括意图识别器401和变量识别器402。意图识别器是基于神经网络的模型,该模型接收可能包含语音的音频,并输出信号以调用对虚拟助手动作的请求。当语音音频具有意图的概率达到阈值时,意图识别器发出该请求。阈值的水平可以按照系统的设计而是固定,或者可以取决于应用、环境、时间、或其他情境信息。

该请求可以是脉冲或连续变化的电平。可以使用一种滞后效果或拖延计时器对其进行编程,以使得在发出请求后,意图识别器至少在用户可能做出具有意图的第二表达的最短时间之前,不会发出第二请求。通过在互联网上发送请求来命中webapi是虚拟助手动作的一个示例。在设备内发送信号以使其控制发动机是另一示例。

关于针对意图的多个措辞(可能以多种人类语言)的大量声音对意图识别器进行训练。可以通过用户多次讲每个措辞来训练单用户系统。如果关于50种不同的声音进行训练,则支持任何声音的系统可能会起作用,但是应当关于成千上万种不同的声音来训练大规模生产质量系统。

在某些系统中,意图识别器在音频上连续运行,并在识别到意图时调用api命中。替代地,意图识别器仅在语句侦测器(spotter)检测到唤醒语句之后运行,并且它们基于话语结束检测(例如,识别到长达特定持续时间的非语音时段)来调节(condition)它们的api命中信号。

变量识别器402接收音频,并输出指示其已经识别出音频中的变量的已知枚举值的信号。变量的值提供api命中的自变量。

意图识别器可以将检测到变量的信号和变量的值用作输入,以通知意图检测。这可用于,例如,使得意图识别器在接收到“idon’tknowtheweatherinboston(我不知道波士顿的天气)”的音频时查找天气,因为波士顿将被识别为城市名称变量的已知枚举值,但防止识别器响应于“idon’tknowwhethertostayorgo(我不知道留下来还是走)”而执行天气(weather)信息请求,因为在听起来像“weather(天气)”的重要词语之前或之后不久没有城市名称出现。因此,对于虚拟助手动作(例如,api命中)的请求的输出取决于语音音频具有枚举的变量值的概率。

在某些系统中,变量识别器既输出检测到变量的信号,又输出检测到变量时的时间戳。可以训练意图识别器以使用相对于当前捕获的语音的变量识别的定时来通知意图检测。另一种途径是对于将利用递归或lstm层进行训练的依赖于变量的意图识别器,根据来自变量识别器的概率值中的时间延迟峰值来计算其意图概率。例如,尽管关键信息“weather(天气)”和“boston(波士顿)”的排列顺序不同,但“weatherinboston(天气在波士顿)”和“boston’sweather(波士顿的天气)”都会触发天气意图。但是,“inbostonweather(在波士顿天气)”和“weather’sboston(天气的波士顿)”不会触发意图,因为变量名称“boston(波士顿)”与“in(在)”或“‘s(的)”的定时相比的相对顺序被认为不是意图的命中。

基于神经语音到意思的虚拟助手通常包括多个离散的意图识别器网络(每个具有api命中触发器)或具有多个输出的全局意图识别器网络(每个api命中触发器一个意图识别器)。

图6所示的系统与其他“端到端”语音到文本模型或自然语言意图推断模型的不同之处在于:系统中没有其中存在人类可读的语音转录的点。没有语音的词汇表示作为输入、作为输出、或可以从系统内部被观察或提取出来。

图7示出了由神经语音到意思识别器制成的虚拟助手的架构。显示了三个领域,每个领域分别针对天气、商业、和导航。天气领域具有针对当前天气的意图识别器401a、明天天气的意图识别器401b、和10天天气预报的意图识别器401c。商业领域具有餐馆搜索意图识别器401d,导航领域具有导航请求意图识别器401e。每个领域可能具有其他意图识别器。

该体系结构还包括变量识别器,这些变量识别器被训练为识别人物402a的名称、地点402b的名称、街道402c、和数字402d。虚拟助手可以具有其他类型的变量识别器。人物名称识别器对于支持向人发送消息的虚拟助手很有用。用于城市名称的变量识别器与适当的意图识别器相结合,可用于回答关于特定城市在特定时间的天气的查询、搜索餐馆、并执行到特定位置导航。数字的变量识别器也可用于导航请求(例如导航到特定地址)。

图7的虚拟助手架构还包括领域识别器403。关于以语音的领域标记的语音记录对此进行训练。训练数据易于收集并为领域识别器添加标签。它可以提供得分,该得分可用于消除各种特定于领域的意图识别器中的命中的假设得分的歧义或对其进行加权。

一些基于语音的虚拟助手设备执行输入语音音频中的意图的识别,还以tts合成语音音频的形式向用户提供响应。一些移动和直接用户设备包括本地tts引擎,该tts引擎可以从接收自服务器的文本产生语音。一些系统使用语音合成引擎来在服务器上执行语音合成,并提供语音输出作为通过网络发送的数字音频。

条件调用

对于功率敏感或性能受限的系统(例如,移动设备和数据中心),避免不必要地运行识别器可能是有益的。因此,对识别器而言,计算概率得分并根据需要基于得分调用其他是可能的。

例如,意图识别器可以在稳定状态下独立于变量识别器操作。在其得分达到阈值时,意图识别器可以针对该意图中潜在存在的变量调用一个或多个变量识别器。

例如,领域识别器可以连续运行并为许多可能的领域或个体意图中的每一个计算得分。在得分达到阈值时,领域识别器可以调用一个或多个意图识别器。域识别器还可以视情况调用变量识别器。

例如,变量识别器可以连续运行并计算概率得分。一旦得分达到阈值,变量识别器就可以调用一个或多个可能依赖于变量的意图识别器。变量识别器可以基于识别出多个枚举变量中的哪个变量来调用意图识别器。这对于避免调用不理解所有变量值的意图识别器是有用的。这对于允许训练跨多种变量类型起作用的变量识别器也是有用的。例如,可以针对london(伦敦)的兴趣点名称类型变量和街道名称类型变量训练单个变量识别器。将仅针对兴趣点值而不是街道名称值调用关闭当日时间意图(closingtimeofdayintents)。针对paris(巴黎),将训练用于兴趣点和街道名称的单独的变量识别器。类似地,可以针对特定用户使用或在销售特定产品的位置使用的不同口语对多种变量类型的变量识别器进行训练。

系统搭建

以下是创建和增强能够进行神经语音到意思转换的系统所涉及的过程。

添加意图—为了向系统添加意图,设计人员可以就意图的措辞集思广益,并将那些措辞以随机顺序放入系统中,以从表达意图的读者那里获得各种各样的语音数据。这种系统的一个开放示例是mozillacommonvoice(摩斯拉通用声音),其中参与者大声朗读句子,以使得他们的手机或计算机捕捉到他们的声音。这样的系统对于收集表达新意图的各种措辞的各种各样的声音可能是有用的。

创建变量识别器—对于意图中的每种类型的变量,都有必要具有变量识别器。它必须能够识别该变量的所有受支持的值(例如,城市的名称)。有可能根据覆盖所有变量值的对齐的经转录语音记录来训练变量识别器。还有可能通过语音记录收集系统来收集特定变量值的记录。

新的意图可以使用适当类型的现有变量识别器。但是,如果意图可以识别该变量识别器无法识别的变量的值,则可能需要为新的变量值收集新的声音记录。声音收集系统可以通过如下方式来实现这一点:编写供声音供体阅读的句子,用需要更多声音数据的变量的值替换句子中的变量词语的值来提高训练准确性。

变量识别器可以独立于意图识别器进行训练,但是如果利用在实际表达的意图中使用的上下文来进行训练可以实现更好的性能,因为人们单独说一个词语与在上下文中说不同。可以利用意图措辞的记录独立地训练意图识别器。意图识别器将学会忽略音频记录中表示变量值的信息,只要它在记录之间有显著差异即可。将具有特定变量值的音频部分清零或向其添加随机噪声也是不错的。联合训练意图识别器及其支持的变量识别器可以实现更快的训练以达到所需准确性。

一旦投入使用,就可以捕获用户声音查询并将其用于重新训练识别器,从而提高未来的准确性。一种可能性是让人类数据标记者收听查询音频,查看响应,并简单地指示关于响应是否适合于该查询的正确或错误信号。对于人类标记者,另一种可能性是收听查询音频,并简单地指出该查询寻址到已知领域集合中的哪一者(如果有的话)。对于人类标记者,另一种可能性是收听查询音频,同时看到如下显示,该显示指示哪个api被命中并且具有哪些自变量,并且指示哪些自变量是错误的,以及对于错误的自变量,正确的api命中或自变量值应当是什么。

对于系统,另一种可能性是具有特殊意图识别器,该识别器被训练为识别关于先前的虚拟助手响应不令人满意的指示。诸如“no(不是)”或“imeant(我的意思是)”之类的词语或恼怒的语气可以作为此类指示。不满意识别器可用于将在先的表述标记为可能不正确,并优先考虑人工标记或其他用于标记或改善训练数据的自动过程。

创建神经语音到意思的虚拟助手系统很难启动,但是随着该系统被使用以及从使用中收集数据,它会变得更好且更容易。

全局和混合识别器

一种可能的途径是使用分立的特定于领域的识别器。这对于构建模块化的可配置虚拟助手是有用的。例如,平台可以支持为支持汽车控制和天气领域但不支持烹饪领域的汽车配置第一虚拟助手,并且为支持天气和烹饪领域但不支持汽车控制领域的智能扬声器配置第二虚拟助手。分立的识别器还具有使得开发人员能够独立地添加、删除、和升级意图识别而无需重新训练全局模型的优点。它要求每个意图输出概率得分(该得分将在意图之间被归一化)、以及用于为自然语言表述选择最可能的意图的最终选择阶段。

另一种途径是训练全局的跨领域意图识别器。这对于最小化特定于应用的系统中的冗余是有用的。全局意图识别器的优点是可以针对所有可能的意图进行训练,因此可以自动选择最可能的意图。

无论是全局途径还是分立途径,意图识别器都具有触发对意图作出反应的输出。这实现了常规问答虚拟助手中的话语结束检测器的功能。

混合途径是可能的,其中通过保持固定的低级特征并为新的或改进的意图训练高级特征而不需要后向传播到所保持的低级特征权重和偏差,来对全局意图识别器进行再训练。

实现神经语音到意思识别器的一些途径是cnn-lstm-dnn或序列到序列(seq-to-seq)或包括注意力(attention)的rnn变换器模型。图8示出了具有4层并且可以用于意图识别器的示例。更多或更少的层是可能的。它具有最低的输入层,该最低的输入层是对音频样本帧或其频谱进行运算的卷积层。它计算第1层特征概率的集合。第二层是递归层。以双圆圈示出了递归节点。递归可以是长期短期记忆(lstm)类型。第2层特征被输入到较小的第三层,该第三层也是递归的并且也可以是lstm层。第3层特征由前馈层使用,前馈层从外部识别器获取输入,以带x的圆圈表示。外部识别可以来自一个或多个变量识别器和/或领域识别器。在这样的架构中,当用作意图识别器时,顶层节点的组合会产生最终输出,该最终输出指示应该发生api命中。

对于4层神经语音到意思网络的一个实施例,该表格示出了对于每个特征的复杂性水平,在科学术语中和常规asr-nlu系统术语中可能适当的类比(analogy)。

独立变量识别器

与图8中的架构类似的架构可能用于变量识别器。卷积输入、递归、和一些深度前馈层是适当的。当用作变量识别器时,可能有许多(可能是数千个)输出节点,每个输出节点代表一个枚举的变量值。还可以存在最终的softmax层,该softmax层使得下游系统能够识别单个最可能的变量值。

一些系统连续运行变量识别器。它们使用具有识别共同特征(例如,声音共振峰)的底层的多任务学习,并且丢弃无关的信息,例如,特定于性别和年龄的声学信息。较高的层将倾向于是学习区分特定变量值的层。

但是有可能为所有变量训练单一识别器,这样做的好处是避免了重复针对低级特征的计算。随着新值(例如新的地点名称或新的名人的名字)变为已知,可配置和可升级的系统需要频繁地对变量识别器进行再训练。一些系统按类型将变量识别器分开,例如按地点名称、人物名称、和公司名。某些系统按地理位置(例如,北美和欧洲)将变量识别器分开。某些系统按语言(例如,大陆中文、日语、和英语)将变量识别器分开。某些系统按应用(例如,汽车、智能扬声器、和零售企业)将变量识别器分开。

常用人物名称的变量识别器可用于要求访问用户的个人联系人列表的意图。处理这种意图的api需要接收已识别的名称,并对联系人列表中名称的多个已知发音的集合进行语音学匹配,并且如果识别出的名称与地址簿中的任何名称都不匹配,则返回错误信号。在某些系统中,单独的变量识别器适用于名字和姓氏。

联合训练的变量识别器

有可能联合训练意图识别器和变量识别器,例如在bingliu的论文(sigdial2016会议论文集,第22-30页,losangeles,usa(美国洛杉矶),2016年9月13日至15日)中所描述的。但是,liu的途径(a)在进行波束搜索时覆盖范围较小,因为输出空间就可能的变量标签数量而言是指数级的;(b)在确定变量时不了解全局意图。

2通路(2-pass)途径可规避缺乏全局意图知识。第一通路着眼于有足够长的时间来确定整个句子的意图/领域。第二通路以第一通路中预测的意图为条件。第二通路预测(一个或多个)变量的值。2通路途径的缺点在于要求在第一通路中处理完整的句子,第二通路才能开始,这使得为了满足实时要求存在大的处理功率需求尖峰来运行第二通路。

第三种途径解决了前两种途径的问题,同时也只需要进行一个通路即可。第三种途径按如下方式从词语/声学信号中分离出变量值预测的条件概率:

由于唯一关心的是预测最可能的领域和/或意图的变量值,因此该途径将上式中的求和转换为argmax,从而根据以下等式得出最可能的(domain(领域),intent(意图),variable(变量))三元组:

domain*,intent*,variabie*=argmaxdomain,intent,variablep(domain|x)p(intent|domain,x)p(variable|domain,intent,x)

假设我们有d个领域、每个领域有平均i个意图、和每个意图有平均s个变量。上面的等式的复杂度为o(dis),其可以是成千上万的。此外,我们对输入中的每个特征都执行此操作,从而使总复杂度达到o(tdis),其中t是输入时间步长的总数。为了降低复杂度,可以通过考虑w个最可能的意图/领域的波束宽度来在领域/意图上进行波束搜索。这将复杂度降低到o(tws)。对于实际情况,w可以在5到20的近似范围内。

虽然这种途径预测w个最有可能的意图的变量及其值,但是该模型会通过摄取每个输入特征来不断完善其意图概率分布。在t个时间步长结束时,分布p(intent|x)被用作重新评分机制,以对相应变量进行重新加权,从而使最终输出与整个句子的意图一致。

通过这种途径,覆盖率是w/i而不是w/kt,其中w是波束宽度,i是不同意图的数量,k是来自bingliu等人(2016)的不同变量标签的数量,t是输入特征的总数。因为i<<kt,所以与bingliu等人(2016)相比,我们的方法具有呈指数级改善的覆盖率,同时保持变量的条件分布在计算上易于处理。

asr识别器

某些领域需要任意文本。例如,用于发送命令文本消息的领域需要完整的词汇表asr。文本转录实际上是一种特殊的变量识别器。

考虑训练意图识别器来发送文本消息。系统可以学习如下措辞,在该措辞中,文本由开头的“text(发文本)”和末尾的“to(到)”界定。例如,这支持“textiloveyoutomymom(发文本我爱你到妈妈)”。

但是,为了支持诸如“textgotothestoretomymom(发文本去商店到妈妈)”之类的其中单词“to”出现在asr中的措辞,得益于使用基于注意力的模型,其中该模型能够在预测标签的同时着眼于输入的两端。标签可以是例如message_begin、message_end、to_person_begin和to_person_end。为此,必须具有完整的句子,因此不可能通过着眼于词语并预测其标签来以迭代的方式进行。

领域识别器

领域是与通用数据源或类似主题有关的意图识别器的合集或具有多个意图输出的单个经训练的识别器。

为了减少支持多个领域的系统中的推断时间处理,训练领域识别器以在特定于领域的意图识别器之间进行选择,并且仅运行一个或少数可能识别语音的特定于领域的意图识别器。

多语种

这些技术的好处在于它们与语言无关。不同的口语只是不同习得的对意图的措辞。神经翻译器本质上是嵌入空间中的编码器-解码器。对于合理数量的意图,维度可以比完整的人类语言到语言翻译器小得多。

该系统可以使用神经翻译功能,其中意图本质上只是翻译的另一种目标语言。图9示出了习得的语义空间。通过共享的语义空间,可以将任何口语的表述映射到另一语言的表述。同样,可以将表述映射到意图,就好像它们是口语一样。

这具有另外的令人惊奇的效果:允许创建反向网络,该反向网络可以从一组意图自变量中以人类语言生成语法正确的可听语音。

请注意,由于语言之间的借用词语,跨语言的变量识别器已经存在很多重叠。例如,词语“kfc”和“iphone”在所有语言中都被使用,国际知名音乐家名字的列表被跨语言使用。

意图识别器可以使用现有的语义空间语言翻译器模型学习任何语言的措辞。这是实用的,因为与语言中所有可能的句子的意思相比,虚拟助手仅支持极少数的意图。意图json可用于形成带有其参数的api请求以及选择适合于提供给用户的api响应数据值。

量化准确性

常规系统测量asr的词语错误率。没有关于语法解释准确性的行业标准度量。解释是否正确可能是主观的。准确性的更实际衡量标准是总体用户满意度。这也是量化神经语音到意思的准确性的最有意义的方式。当然,使用大量训练数据可提高准确性,并且某些数据比其他数据更有用。

大多数意图识别器的系统识别比口头表述中的词语的可能组合更少的可能意图。大多数变量识别器识别的枚举值少于口头表述中的词语的可能组合。因此,意图和变量识别器的预测空间要小得多,从而要获得令人满意的性能,需要的绝对准确性要低得多。

就给出错误的断言或缺失实际表述而言,测量意图识别器的准确性可与测量语句侦测器的准确性相比拟。在具有语句侦测器和话语结束检测器的系统中使用神经语音到意思可以通过避免不使用时的命中断言来进一步提高准确性。此外,在唤醒语句之后,在话语结束检测时,基于神经语音到意思的系统具有界定的语音段,已知该语音段具有完整的表述,可在该语音段上进行操作以确定所表达的意图(如果有的话)。

获取数据的成本

建立神经语音到意思系统并使其准确的最大挑战之一是获取足够的训练数据和足够多样化的训练数据。

对于以少量意图开始且其中用户具有合理期望的系统而言,建立具有用户接受的足够准确性的系统是相对容易的。例如:针对盲人的基于语音的时钟具有一个意图;声音控制的灯泡具有两个意图:打开和关闭;或虚拟气象学家支持10到20个意图,例如,针对今天、明天、或接下来的10天中每一天的一般天气报告、温度报告、或降水报告中每一者的简短或长篇报告。

可以关于为每种人类语言仔细选择的约100个措辞来训练20种意图的虚拟气象学家。尽管在人类语言中存在不止每意图100/20=5个措辞,但是使用具有注意力的lstm模型将从各种措辞中的关键词识别意图。例如,对措辞“whatistoday’shightemperature(今天的高温是多少)”和“tellmethehightemperaturefortoday(告诉我今天的高温)”的训练将识别几乎任何其他具有语音段“hightemperature(高温)”和“today(今天)”的合理用户措辞。

许多志愿者将阅读例如100个语句,以换取10美元的礼品券。如今可找到每100个语句读数甚至不到10美元的质量数据源。从100到1000个声音可能足以训练具有可接受准确性的20种意图的识别器。训练数据的成本为1000到10,000美元。

看到具有可标识的类似意图的一系列语句的读者将倾向于使用不自然的声音风格来避免其任务的单调乏味。训练系统可以将针对不同类型的设备、api、或上下文的意图的文本样本随机化,以防止读数不自然。此外,系统可以随机化自然语句中的变量值以收集变量的语音数据。

收集“志愿”读者声音记录的一些方式是通过可下载的电话app、具有语音输入功能(例如,mozillacommonvoice)的网页、或在公共场所放置隔离噪音的记录棚。

一些愚笨的读者可能会说他们看到的文本之外的东西。在使用数据进行训练之前,可能使用常规的asr对照文本来检查声音。如果读者给出低于高百分比(例如90%)的正确读数,则其礼品券将被拒绝。

需要关于各种各样的声音的集合来训练针对各种各样用户的基于语音的系统。可能例如通过facebook或googleadwords购买有针对性的广告,以吸引使训练集合多样化所需的声音记录志愿者的类型。例如,一个性别的人更有可能对声音记录机会的一般通知做出响应,因此购买针对不太可能做出响应的群体的广告是一种确保各种各样的训练数据集合的方式。

多领域虚拟助手可能具有100个领域,每个领域平均具有100个通用意图,每种意图在10种主要语言的每一者中平均具有10个有效措词,每种语言都需要1000个声音来获得良好的准确性。这需要大约10亿个记录。按照每记录0.01美元的平均每记录成本,虚拟助手的训练费用仅为1000万美元。

专业领域的助理可能便宜得多。单语言的虚拟助手可能便宜得多。

收集数据

也可以从不同措辞的数据库中收集训练数据。这样的数据库作为保存来自已有虚拟助手系统的用户的声音话语数据的结果而存在。通常,这些记录在统计上与训练未来的神经语音到意思虚拟助手特别有关。这样的系统通常具有与意图数据结构或与立即再现意图数据结构的能力一起存储的音频记录。

理想的数据源将包括以前产生不正确的意图的声音记录,专业人员利用正确的意图对这些记录进行了标记。促进高效检查的一种方式是创建基于web的界面,使人们同时收听语音音频、看到虚拟助手的响应、键入或点击关于是否正确的指示。第二阶段的网页仅仅着眼于检查为不正确的数据,并提供音频和几种可能的正确意图的视图以供选择,并提供选项来指示是否都不正确或在可能的情况下输入正确的意图。

根据经检查和标记的清洁数据的数据库,训练过程可以按意图对该数据库进行过滤以独立地为每个意图识别器提供训练数据。

与获取的清洁数据相比,收集的数据趋向于具有更多的措辞多样性。因此,它可能对于精确的模型训练更有价值,但是它可能相对更昂贵,因为它需要专业人员花费时间来进行检查和标记。此外,它还具有冷启动问题,即只有在系统已进入现场并被用户使用后,数据才可用。

训练数据的tts生成

产生或扩充训练数据集(尤其是克服冷启动问题)的另一种方式是使用参数tts来针对使用高参数多样性的可标识措辞生成语音音频。这是最不昂贵的,但必须仅用于训练数据集的一部分,否则训练将过度拟合(overfit)tts合成器的属性。第一代tts系统是拼接的。它们从声音供体的记录合成了语音。现代tts使用参数的集合来定义所生成语音的声音的声响。模型(例如,生成的神经网络)使用这些参数来从文本产生语音。参数tts系统正变得越来越复杂,有能力来为合成语音带来更大的变化和真实感。这使得tts能够廉价地生成更多训练数据,而不会导致经训练的模型过度拟合tts的属性。

某些领域要求支持数百万个变量值的变量识别器。例如,这发生在具有查看可在mall-mart大箱零售超市购买的商品的意图的应用中,该应用支持诸如“showme<item>(向我展示<商品>)”之类的措词,其中<item>(<商品>)是能够指代商店库存中的数百万个商品中的任一商品的变量。当收集读取这些商品名称中的每一者的声音记录不切实际时,可能使用由tts生成的语音音频的数据集来训练变量识别器。

图10示出了神经tts生成器1001的图示。它接受变量值的文本作为输入。系统可以接受词语、字母、或音素作为输入。系统可以接受不同数量的输入。tts生成器1001使用具有一组权重的神经网络将输入文本转换为输出语音音频。神经tts生成器的一些隐藏节点是递归的。

在设计听起来自然的tts生成器时,主要目标是学习听众评估为听起来自然且令人愉悦的参数集。这不是生成数据以训练变量识别器的主要目标。重要的是找到许多不同的参数集,这些参数集一起产生与将使用该系统的扬声器的范围相匹配的语音音频。

实现该目标的一种途径是创建具有各种各样的声音的语料库。这些声音可能都在说一个特定的语句,例如虚拟助手的唤醒语句。这些声音可能都在说不同的语句。然后:

1.根据相关特征,使用声音分析(例如,i向量指纹识别)算法,针对所有声音记录计算质心值以及距捕获所有自然声音的质心的距离。重要的是,该算法不仅要确保存在人类声音特性(共振峰模式或真实的有声语音频率),而且还要确保不存在非人类声音特性(例如,噪声或其他在人类语音中不会出现的伪迹(artifact))。

2.使用基本的参数化神经生成tts引擎,来根据参数集为语句生成语音音频

3.分析所生成的语音音频以找到其距质心的距离

4.如果生成的音频超出自然范围,则丢弃参数集

5.否则,计算从质心到所生成的语音音频的特征值的向量,并保存参数集及其向量值

6.应用成本函数来选择下一参数集,该参数集支持距所保存的参数集的向量的较大距离但仍在距质心的自然距离内

7.返回到步骤1,进行多次迭代

8.针对覆盖较大范围的音素和双音素的至少几个不同的特定语句,重复上述过程

9.针对变量识别器需要识别的每个变量值,针对每个保存的参数集,生成语音音频作为用于训练变量识别器的初始训练集。

从tts训练神经语音到意思的一种途径是:

1.确定多个词语,这些词语可以是意图的措辞中的变量的值;

2.确定代表虚拟助手的用户的声音多样性的多个参数集;

3.为多个词语合成多个语音音频段,这些段是根据多个参数集合成的;并且

4.使用合成的语音音频段训练变量识别器,该变量识别器能够计算语音音频中的多个词语中的任一词语出现的概率。

还可能在措辞的语音音频段上训练意图识别器,其中,意图识别器的输入是从变量识别器输出的概率。可选地,为了合成语音,有可能在措辞内的变量的上下文中针对相邻的语音学信息进行合成。即,在词语之前和之后是什么词语/音素。音素的发音受之前或之后刚刚说出的其他音素的影响。这在所有语言中都是无意中发生的,但特别地在某些语言中是根据语言学规则发生的。法语的连音规则就是一个示例。

针对强调措词内的变量,可选地也可能这样做。自然语音中的口头语句,尤其是命令,通常包含强调。可以将强调放在变量词语上,以帮助听者捕获最相关的信息。例如,“howistheweatherinaustin(奥斯汀的天气如何)”,从而不与“howistheweatherinboston(波士顿的天气如何)”相混淆。也可以将强调放在带有关键语义信息的其他词语上。例如,“bookaflightfromlondontohongkong(预订从伦敦到香港的航班)”。

下面是一种确定多个参数集的途径,该多个参数集以最小偏差表示用户的声音的多样性。

1.获取代表各种各样的声音的多个自然人的语音音频记录;

2.分析这些记录以计算语音特征的嵌入空间内所记录的语音向量;

3.计算表示嵌入空间内记录的语音向量的范围的区域;

4.根据损失函数,按照梯度下降的方式来学习多个语音合成参数集,该损失函数通过如下方式计算得出:

4a.根据所述多个参数集中的参数集合成语音段;

4b.分析合成的语音段以计算空间中的合成语音向量;并且

4c.计算与空间内的合成语音向量的聚类(clustering)成比例的损失。

与聚类成比例的损失意味着倾向于学习多个参数集,这些参数集生成近似均匀的声音声响分布。这样避免偏向某些说话者类型,并最大程度地减少训练准确模型所需的数据量。

利用经过良好训练的一组语音合成参数集,有可能根据语音合成参数集来合成一个或多个枚举词语的语音段;并使用它来训练变量识别器,其中训练数据包括枚举词语的合成语音段。训练数据还可以包括其他数据样本。

按一般方式学习嵌入空间。但是,也可以根据工程师或科学家已知相关的参数来选择它们。

在生成参数集、合成音频、并对其进行分析以计算其嵌入向量时,某些参数集有可能生成落在自然声音范围之外的语音。在这种情况下,简单地丢弃这样的参数集将是合理的。

为了避免学习参数集被过于严格地局限于用于学习可允许的声音的范围的自然声音的数据集,在该区域周围添加一些余量是合理的。不应丢弃合成落入该区域(包括其余量)内的音频段的参数集。应该使用它们来训练捕获异常声音的识别器模型。

通过tts生成训练数据的上述途径的混合是可能的,通常类似于特定于应用的变体的途径也是可能的。

平台基础架构

一些公司提供了为各种各样的设备提供虚拟助手功能的平台。它们还提供对各种数据源领域和行动能力领域的访问。平台支持的领域越多,它对设备用户就越有用,并且连接到平台的设备用户越多,第三方领域提供商通过该平台提供内容的价值就越大。竞争激烈的虚拟助手平台提供商需要不断成长,以支持越来越多的领域意图,这些意图可以通过越来越多类型的设备访问越来越多类型的数据。

这样的平台通常会为可能用于许多领域意图(例如数字和位置名称)的变量提供某些内置的变量识别器。平台还将承载比变量识别器更多的意图识别器,因为每个领域通常有一个或多个意图识别器,并且可以有成千上万的第三方域提供商通过该平台提供其数据和行动能力服务。也可能具有特定于领域的变量识别器,例如识别特定零售商处可获得的产品的名称的识别器。

图11示出了供一个或多个用户1101使用的非常小的平台的示例。一个或多个用户通过诸如移动电话1102、家用设备1103、或汽车1104之类的设备通过声音命令访问领域。这些设备能够通过网络1106(例如,互联网或5g移动设备网络)访问平台1105。平台1105可以由与设备制造商和网络提供商独立的公司提供。

设备将包含语音的数字音频流或记录发送到平台。平台提供商提供内置的公共变量识别器,例如,针对位置名称1107、餐馆名称1108、地址1109、数字1110的识别器。

一些平台可以构建特定于用户的变量识别器,例如,针对朋友名称1111的识别器,该识别器使用用户的联系人列表内的数据,并从用户声音的记录和具有相同词汇拼写的名称的已知音频段来进行训练。

某些平台可以提供特定于领域的变量识别器,这些特定于领域的变量识别器或者是由领域提供商来提供的,或者是由平台提供商使用来自领域提供商的可识别变量值的声音数据来训练的。图11没有示出特定于领域的变量识别器。

平台1105还包含领域识别器1112。在已知或标记的特定于领域的语音记录上训练领域识别器1112。对于传入的语音音频,它预测哪个领域意图对于识别该查询是正确的。平台可以使用它来调节意图识别器的运行或断言接受,或重新为意图识别器的假设评分。这提高了平台的准确性,从而改善了用户体验,当平台为某些第三方领域提供对未经良好训练的意图识别器的响应时,尤其如此。

领域提供商提供按领域的意图识别器。领域提供商(可能与平台提供商结合)针对其领域可以响应的意图训练识别器模型。在图11的系统中,当意图识别器1114断言命中时,具有天气数据的天气信息域提供商1113实现对其api的命中。天气提供商api命中从位置名称变量识别器1107接收地点名称值。仅当位置名称识别器在接收到触发天气意图识别器的音频的时间段内断言有效的位置名称时,对api的curl请求才会发生。类似地,具有食物数据1115的食物信息提供商接收由食物意图识别器1116在存在来自餐馆名称变量识别器1108的有效餐馆名称的情况下触发的api命中。

智能灯泡的提供商1117使得它们能够在照明意图识别器1118触发api命中时由语音到意思平台控制。照明意图api及其识别器不需要来自变量识别器的输入,因为灯泡的功能除了打开和关闭以及使灯更亮或更暗的能力外,不需要任何信息。

导航命令提供商1119将导航控制和信息发送给用户设备,例如,移动电话1102或汽车1104,但不发送给家用设备1103。导航领域api访问由导航意图识别器1120控制,导航意图识别器1120恰好需要餐馆名称、地址、或朋友名称变量之一。

具有发送消息1121的能力的领域由消息意图识别器1122触发的api命中来控制。它需要有效的朋友名称变量作为消息的目的地。它还需要消息文本,该文本可以可选地包括数字。它还可以包括使用通用自动语音识别功能识别为转录的任意文本。这没有在图11中示出。

诸如移动电话、家用设备、和汽车之类的客户端设备的开发人员可以通过平台选择他们可以访问的领域,从而选择应该运行哪些意图识别器以从其设备进行查询。这是有用的,因为例如家用设备无法执行导航,因此不需要识别导航意图。

补充基于语法的系统

有可能通过分析大型查询数据库、对每个查询进行语法解析以找到其大体意图、并生成按频率排序的意图的列表,来使用来自基于语法的系统的现有数据来引导基于神经的途径。接下来,将变量值替换为标签(例如city(城市)和number(数量))

示例:“what’stheweatherin<city>(<城市>中的天气怎么样)”

示例“what’s<number>plus<number>(<数量>加上<数量>是多少)”

然后,对于最常见的通用意图,找到用户用于产生意图的各种措词,然后将针对该意图的查询音频用作针对意图识别器的训练数据。

针对变量识别器,针对匹配将要学习的变量值的实例搜索可信转录。使用经修整、对齐的音频段来学习每个变量值。

具有可信语法解释的查询可用作训练数据。已知不合语法的查询也可用作负面的训练示例。随着神经语音到意思识别器关于更多数据的再训练,它变得能够为语法中未出现的措辞准确地计算意图假设。这可用于向语法编写者提供反馈,以辅助他们改进语法。这对于快速向系统添加新的理解功能特别有用。语法开发人员尽其最大的努力预料措辞,在野外使用一段时间后,系统向语法开发人员给出反馈以改进语法。

具有对应于不同意图的多个加权语法的混合系统可以根据权重,从各种语法计算意图假设得分,以猜测最可能的意图。同时,系统可以使用神经模型计算意图假设得分。最终的意图决策可以取决于基于语法的得分和基于神经的得分之间的加权平均值。

也可能使用语法生成与语法匹配的句子。将tts应用于此类句子可以产生如上所述的训练音频段。各种各样的tts参数和生成的句子措辞可以创建非常准确的神经语音到意思意图识别器。

会话状态

当触发命中时,神经语音到意思系统可以存储变量类型的记录及其在api命中或其他结果操作中使用的值。可能存在多个存储的变量类型和值,例如位置名称、时间、人名、男人名、和女人名。前面提到的变量和值的集合被称为会话状态。

可以关于包括代词或对过去的语义信息的引用的其他语言指示符的语音来训练意图识别器。例如,在英语中,“there(那儿)”一词指的是过去提到的地点,例如,跟在先前的句子“whereisthenearesticecreamshop(最近的冰淇淋店在哪里)”之后的“let’sgothere(我们去那儿吧)”。“then(那时)”一词可以指过去提到的时间。“him(他)”、“her(她)”、“he(他)”和“she(她)”这些词指的是过去提到的人。

在一段时间后,可以丢弃旧的会话状态信息,在该段时间后,人们可能会忘记会话中旧的会话状态信息。可替代地,可以在一定数量的会话转折(turn)之后丢弃会话状态信息。此外,每当识别出变量类型的新值时,就必须丢弃该变量类型的先前存储的值,因为人类会话中的代词仅指代任何变量类型的最新值。

系统不仅可以使用用户语音中识别的新变量值替换会话状态信息,还可以使用用于根据api响应中的信息向用户提供响应的值来替换会话状态信息。例如,如果虚拟助手提供了用户响应回答:“thenearesticecreamshopisjust3blocksupthestreet.(最近的冰淇淋店就在沿着这条街走3个街区。)”,系统将存储place变量值“3blocksupthestreet(沿着这条街走3个街区)”。

一些系统为每个用户会话存储单个会话状态历史记录。因此,地理查询“whatisthepopulationofnewyork?(纽约的人口是多少?)”之后的天气查询“what’stheweatherthere?(那里的天气如何?)”,将针对天气查询的位置槽位使用值“newyork(纽约)”。

一些系统为每个领域存储会话状态历史记录。因此,查询历史记录例如“where’sthenearestbagelshop?(最近的百吉饼店在哪里?)”,“howmanybagelshopsarethereinpocatello?(波卡特洛有几家百吉饼店?)”,“givemedirectionsthere.(给我到那儿去的指引。)”将给出到最近的百吉饼店的指引,而不是到波卡特洛的指引。

一种识别何时使用在会话状态中存储的信息而不是变量值的途径是:关于用代词以及到其指称对象的指针标记的会话音频来训练模型。并不关注特定的指称对象,但是训练以识别先前查询的特定意图中的代词和到自变量的指针对于学习指示这样的查找要求的特征是重要的。训练可以包括先前的特定意图和从机器到用户的响应二者,因为代词可以指代响应中的语义信息,而不仅是来自先前的查询。

也可能使用神经图灵机(neuralturingmachine)途径,例如graves(arxiv:1410.5401v2[cs.ne],2014年12月10日)所给出的。神经图灵机可以(根据概率)在存储器中存储信息并检索信息,如注意力机制所指示的。

语言学复杂性

以下考虑因素对于系统实现高的用户满意度而言不是必需的。对虚拟助手的绝大多数查询(99%或更多)在语言学上都很简单,不会从下面的考虑因素中受益。但是,对于一些虚拟助手而言,支持语言学上复杂的查询是一个卖点。以下是一些具有挑战性的情况以及如何应对它们。

negatives(否定词)—一种途径是针对否定词语(例如,“not(不)”、“except(除了)”、“without(没有)”)训练变量识别器。基于词语的时间相对于查询的动词特征,恰好在否定词之前(对于某些语言,例如英语)或之后(对于某些其他语言),输出意图获得意图中的否定指示符。如果api协议支持,则否定指示符可以随api请求一起被传递。它也可以用于调节或过滤来自api命中的响应。

另一种途径是训练具有否定含义的数据样本。有可能从人类录制的语音数据或tts生成的数据来合成具有否定含义的示例。

doublenegativesandmid-sentencecorrections(双重否定和中间句更正)—这不是主要的问题,因为它们很少见,并且用户会理解为什么响应是无意义的。

compoundqueries(复合查询)—有可能从标记的音频或合成的单个查询来训练查询边界识别器。就英语而言,“and(和)”一词将趋向于作为用于辨别复合查询的高权重特征。

crm

图12a示出了示例非暂态计算机可读介质,其是旋转磁盘。数据中心通常使用磁盘来存储数据和代码,包括用于服务器处理器的指令。磁盘存储包括指令的代码,该指令如果由一台或多台计算机执行,则将使得该计算机执行本文所述方法的步骤。可能有旋转光盘和其他机械移动的存储介质。

图12b示出了示例非暂态计算机可读介质,其是闪速随机存取存储器(ram)芯片。数据中心通常使用闪存来存储服务器处理器的数据和代码。移动设备通常使用闪存来为片上系统设备中的处理器存储数据和代码。闪速ram芯片存储包括指令的代码,该指令如果由一台或多台计算机执行,则将使该计算机执行本文所述方法的步骤。可能有利用引线或焊锡球封装的其他非移动存储介质。

各种类型的计算机可读介质适合于存储包括根据各种实施例的指令的代码。

soc

图13a示出了封装的片上系统器件1300的底侧,片上系统器件1300具有用于表面安装焊接至印刷电路板的球栅阵列。对于各种芯片实现方式,各种封装形状和尺寸是可能的。片上系统(soc)器件控制本文所述的许多嵌入式系统实施例。

图13b示出了片上系统1300的框图。它包括计算机处理器(cpu)核心1301的多核集群和图形处理器(gpu)核心1302的多核集群。处理器通过片上网络1303连接到用于易失性程序和数据存储的片外动态随机存取存储器(dram)接口1304以及用于将计算机程序代码非易失性地存储在闪速ram非暂态计算机可读介质中的闪速接口1305。soc1300还具有用于显示gui的显示接口1306和用于连接至各种i/o接口设备(如不同外围设备所需的)的i/o接口模块1307。i/o接口支持诸如触摸屏传感器、地理位置接收器、麦克风、扬声器、蓝牙外设、以及usb设备(例如,键盘和鼠标)之类的传感器。soc1300还包括网络接口1308,以允许处理器通过有线或无线连接(例如,wifi、3g、4g长期演进(lte)、5g、和其他无线接口标准无线电以及以太网连接硬件)访问互联网。通过执行通过接口1304存储在ram设备中或通过接口1305存储在ram设备中的指令,cpu1301和gpu1302执行如本文所述的方法的步骤。

服务器

图14a示出了根据一些实施例的机架安装式服务器刀片多处理器服务器系统1400。它包括多个并行运行软件的网络连接的计算机处理器。

图14b示出了服务器系统1400的框图。它包括计算机处理器(cpu)内核的多核集群1401和图形处理器(gpu)内核的多核集群1402。处理器通过板级互连1403连接到用于程序和数据存储的随机存取存储器(ram)设备1404。服务器系统1400还包括网络接口1408,以允许处理器访问互联网。通过执行存储在ram设备1404中的指令,cpu1401和gpu1402执行如本文所述的方法的步骤。

特殊样板

示出和描述的示例使用某些口语。各种实施例类似地针对其他语言或语言的组合进行操作。示出和描述的示例使用某些知识领域。各种实施例类似地针对其他领域或领域的组合进行操作。

一些实施例是无屏的,例如没有显示屏的听筒。一些实施例是固定的,例如自动售货机。一些实施例是移动的,例如汽车。一些实施例是便携式的,例如移动电话。一些实施例是用于植入人体中的。一些实施例包括诸如键盘或触摸屏之类的人工接口。一些实施例包括使用人的思想作为自然语言表述的形式的神经接口。

一些实施例通过在通用可编程处理器(cpu)(例如,具有arm或x86架构的处理器)上运行软件来起作用。一些功率敏感的实施例和一些要求特别高性能(例如用于神经网络训练)的实施例使用硬件优化。一些实施例在专用的片上系统中使用具有可配置指令集的应用可定制处理器,例如来自synopsys的arc处理器和来自cadence的xtensa处理器。一些实施例使用烧制在现场可编程门阵列(fpga)内的专用硬件块。一些实施例使用图形处理单元(gpu)的阵列。一些实施例使用具有定制逻辑的专用集成电路(asic)来给出最佳性能。一些实施例采用硬件描述语言代码,例如以verilog语言编写的代码。

本文描述和要求保护的物理机器的一些实施例可在许多变量中编程,这些变量的组合实质上提供了无限多种操作行为。本文的一些实施例由提供大量参数的软件工具来配置,这些软件参数的组合实质上提供了所描述和要求保护的本发明的无限多种物理机器实施例。使用这样的软件工具来配置硬件描述语言表示的方法体现了所描述和要求保护的发明。物理机器可以体现本文描述和要求保护的机器,例如:半导体芯片;根据所描述和要求保护的本发明的机器的逻辑或功能行为的硬件描述语言表示;以及被安排为存储这种硬件描述语言表示的一种或多种非暂态计算机可读介质。

硬件块、定制处理器指令、协处理器和硬件加速器以特别高的性能和能效执行神经网络处理或部分神经网络处理算法。这为电池供电的设备提供了较长的电池寿命,并降低了同时服务于许多客户端设备的数据中心的散热成本。

通用样板

本领域技术人员将认识到许多修改和变化。这些修改和变化包括所公开的特征的任何相关组合。

各种实施例是使用人与机器中任一者或其组合的行为的方法。一些实施例是被安排为存储用于本文描述的方法的这种指令的一种或多种非暂态计算机可读介质的系统。一些实施例是物理设备,例如,半导体芯片;这种设备的逻辑或功能行为的硬件描述语言表示;以及被安排为存储这种硬件描述语言表示的一种或多种非暂态计算机可读介质。

本文中记载原理、特征和实施例的描述涵盖其结构和功能等效物。

再多了解一些

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

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

相关文章

  • 日榜
  • 周榜
  • 月榜