基于话音的通信的制作方法

文档序号:17729155发布日期:2019-05-22 02:43阅读:234来源:国知局
基于话音的通信的制作方法

本申请要求于2016年9月1日以christofrankdevaraj等人的名义提交的标题为“voice-basedcommunications”的美国专利申请no.15/254,359的优先权。

本申请要求于2016年9月1日以christofrankdevaraj等人的名义提交的标题为“indicatorforvoice-basedcommunications”的美国专利申请no.15/254,458的优先权。

本申请要求于2016年9月1日以christofrankdevaraj等人的名义提交的标题为“indicatorforvoice-basedcommunications”的美国专利申请no.15/254,600的优先权。

上述申请通过引用整体并入本文。



背景技术:

言语辨识系统已经发展到人类可以依靠言语与计算设备进行交互的程度。这样的系统基于接收到的音频输入的各种质量,使用多种技术来识别由人类用户说出的单词。言语辨识结合自然语言理解处理技术,实现对计算设备的基于言语的用户控制,以基于用户的口头命令来执行任务。言语辨识和自然语言理解处理技术的组合在此被称为“言语处理”。言语处理还可以涉及将用户的言语转换成文本数据,然后可将文本数据提供给各种基于文本的软件应用。

言语处理可由计算机、手持设备、电话计算机系统、公共电话亭和多种其他设备用来改进人机交互。

附图说明

为了更全面地理解本公开,现在参考结合附图的以下描述。

图1a示出了用于通过言语控制设备改变基于话音的交互的系统。

图1b示出了用于在消息传递期间通过言语控制设备向用户输出信号的系统。

图2是言语处理系统的概念图。

图3是用于自然语言理解的多域架构方法的概念图。

图4示出了已存储的、并与用户配置文件相关联的数据。

图5a到图5d是示出通过言语控制设备改变基于话音的交互的信号流程图。

图6a和图6b是示出通过言语控制设备改变基于话音的交互的信号流程图。

图7是示出通过言语控制设备改变基于话音的交互的信号流程图。

图8a和图8b是示出通过言语控制设备的用户界面的信令输出的信号流程图。

图9是示出通过言语控制设备的用户界面的信令输出的信号流程图。

图10a到图10c示出了通过言语控制设备向用户输出的示例信号。

图11a和图11b示出了通过言语控制设备向用户输出的示例信号。

图12示出了通过言语控制设备向用户输出的示例信号。

图13是概念性地示出根据本公开的实施方案的言语控制设备的示例部件的框图。

图14是概念性地示出根据本公开的实施方案的服务器的示例部件的框图。

图15示出了与本公开的系统一起使用的计算机网络的示例。

具体实施方式

自动言语辨识(asr)是计算机科学、人工智能和语言学的涉及将与言语相关联的音频数据转换成代表该言语的文本的领域。同样,自然语言理解(nlu)是计算机科学、人工智能和语言学的涉及使计算机能够从包含自然语言的文本输入中获得含义的领域。asr和nlu经常一起用作言语处理系统的一部分。

从计算角度来看,asr和nlu会十分昂贵。也就是说,在合理的时间范围内处理asr和nlu可能需要大量的计算资源。因此,当执行言语处理时,可以使用分布式计算环境。典型的这种分布式环境可以涉及具有一个或多个传声器的本地或其他类型的客户端设备,所述传声器被配置为捕获来自说话的用户的声音并将这些声音转换成音频信号。然后,音频信号可以被发送到远程设备进行进一步处理,例如将音频信号转换成最终命令。然后,取决于命令本身,命令可以由远程设备和用户设备的组合来执行。

在某些配置中,言语处理系统可以被配置为在设备之间传递口头消息。也就是说,第一设备可以捕获命令系统向与第二设备相关联的接收者发送消息的话语。作为响应,第二设备的用户可以说出话语,话语由第二设备捕获,然后将其发送到系统以进行处理,以将消息发送回第一设备的用户。以这种方式,言语控制系统可以促进设备之间的口头消息传递。

然而,这种消息传递的一个缺点是,对于与系统的每次口头交互,用户可能需要说出唤醒词(以“唤醒”用户设备)以及消息的接收者两者,如此系统才能知道如何路由话语中包括的消息。这种传统配置可能会给用户与系统之间的交互带来摩擦,特别是当两个用户在他们之间交换多个消息时。

本公开提供了用于通过言语控制设备改变基于话音的交互的技术。言语控制设备捕获包括唤醒词部分和有效载荷部分的音频,用于发送到服务器以在言语控制设备之间中继消息。响应于确定通信改变触发(例如相同两个设备之间的重复消息)的发生,系统可以自动改变言语控制设备的模式,例如不再需要唤醒词,不再需要指出期望的接收者,或者以话音聊天模式自动连接两个言语控制设备。当言语控制设备的模式改变时,系统可以使用不同的协议来管理如何在系统的设备之间交换消息和其他数据。例如,当系统从在设备之间交换话音消息切换到在设备之间启动同步呼叫(例如,电话呼叫)时,系统可以停止使用消息传递协议并激活或调用实时协议(例如,互联网话音传输协议(voip))。响应于确定进一步的通信改变触发的发生,系统可以启动言语控制设备之间的实时同步呼叫。下面说明了系统进行的通信改变触发和处理的各种示例。如本文所述的通信改变触发可以是由系统基于配置的阈值的满足而确定的。也就是说,系统可以被配置为在未接收到来自用户的明确指示的情况下改变通信交换。

本公开还提供了用于输出关于基于话音的交互的视觉(或音频、触觉等)指示的技术。这样的指示可以使用第一设备的用户界面来提供反馈,反馈指出第二设备的输入部件(例如,传声器)正处于接收用户输入(例如对从第一用户的设备发送的消息的回复)的过程中。在服务器将消息内容发送到接收者的言语控制设备之后,服务器可以接收来自接收者的言语控制设备的该设备正在检测言语的指示。作为响应,然后服务器使第一言语控制设备输出视觉指示,其中视觉指示表示接收者言语控制设备正在检测言语。这样,应当理解,视觉指示可以用于使言语控制设备的用户不会彼此“抢着说”(即,防止言语控制设备的用户同时说出消息)。

图1a示出了被配置为改变言语控制设备之间的基于话音的交互的系统100。虽然图1a和下图/讨论以特定顺序示出了系统100的操作,但是,所描述的步骤可以以不同的顺序执行(以及移除或添加某些步骤)而不脱离本公开的意图。如图1a所示,系统100可以包括分别在第一用户5和第二用户7本地的一个或多个言语控制设备110a和110b。系统100还包括一个或多个网络199和通过网络199连接到设备110a和110b的一个或多个服务器120。服务器120(可以是一个或多个不同的物理设备)可以能够执行如本文所述的传统言语处理(诸如asr、nlu、查询解析等)。单个服务器可能能够执行所有言语处理,或者多个服务器可以组合以执行言语处理。此外,服务器120可以被配置为执行某些命令,诸如回答由第一用户5和/或第二用户7说出的查询。另外,某些言语检测或命令执行功能可以由设备110a和110b执行。

如图1a所示,用户5可以说出话语(由输入音频11表示)。输入音频11可以由设备110a的一个或多个传声器103a和/或与设备110a分离的传声器阵列(未示出)捕获。传声器阵列可以连接到设备110a,使得当传声器阵列接收输入音频11时,传声器阵列将对应于输入音频11的音频数据发送到设备110a。可选地,传声器阵列可以连接到移动计算设备(未示出,例如智能电话、平板电脑等)的伴随应用。在本示例中,当传声器阵列捕获输入音频11时,传声器阵列将对应于输入音频11的音频数据发送到伴随应用,伴随应用将音频数据转发到设备110a。如果设备110a捕获输入音频11,则设备110a可以将输入音频11转换为音频数据,并将音频数据发送到服务器120。可选地,如果设备110a从传声器阵列或伴随应用接收到对应于输入音频11的音频数据,则设备110a可以简单地将接收到的音频数据转发到服务器120。

服务器120最初响应于接收(150)包括唤醒词部分和有效载荷部分的音频数据,在言语控制设备之间传递消息。有效载荷部分可以包括接收者信息和消息内容。这样的消息传递可以通过使用如本文详细描述的消息域和相关联的协议来进行。服务器120如此传递消息,直到服务器120确定(152)第一通信改变触发的发生。说明性通信改变触发包括是否满足或超过第一言语控制设备110a和第二言语控制设备110b之间的消息交换阈值数量、在阈值时间量内发生的消息交换的阈值数量或者两个言语控制设备110a/110b的用户同时在其相应设备的阈值距离内。在确定第一通信改变触发的发生之后,服务器120响应于接收到包括有效载荷数据(例如,消息内容数据)的音频数据,在相同的言语控制设备之间传递(154)消息。消息的传递可以通过使用如本文详细描述的消息传递域和相关联协议来进行。服务器120使用消息传递域来传递消息,直到服务器120确定(156)第二通信改变触发的发生。在确定第二通信改变触发的发生之后,然后服务器120启动(158)言语控制设备之间的实时呼叫。启动实时呼叫可以涉及使用如本文详细描述的实时呼叫域和相关联的实时协议。实时通信会话/呼叫可能涉及在接收到音频数据时(在操作参数内)在设备之间传递音频数据。

可选地,在确定(152)第一通信改变触发之后,服务器120可以直接启动(158)实时呼叫。这可以在不同的配置情况下发生,例如当通信改变触发以某个接收者为前提时。例如,与始发言语控制设备110a相关联的用户配置文件可以指出与“妈妈”的通信将通过实时呼叫发生。因此,如果原始消息是向“妈妈”发出的,则服务器120可以响应于确定第一消息的接收者是“妈妈”而促进实时呼叫。

根据各种实施方案,服务器120可以使一个或两个言语控制设备使用相应的设备用户界面来输出视觉指示,其中视觉指示表示正在使用哪个域来交换通信/消息。例如,当需要唤醒词时,言语控制设备上的灯可以发出蓝光,当不再需要唤醒词时可以发出绿光,而当促进实时呼叫时可以发出黄光。

除了如上所述将基于话音的交换改变为基于话音的呼叫之外,还可以在视频通信的背景中使用上述教导。例如,如果两个人正在交换视频消息,则本文所描述的技术可以用于将视频消息的交换改变为视频呼叫。在另一示例中,如果在交换基于话音的消息时确定一些人处于摄像机的视野中,则系统可以被配置为基于一些人处于摄像机的视野中,来将通信改变为视频呼叫。因此,以下关于检测言语、捕获音频等的教导也可以应用于检测视频、捕获视频等。

每个言语控制设备都可以具有多于一个用户。系统100可以使用基于话音的说话者id或用户id来识别捕获的音频的说话者。每个说话者id或用户id都可以是话音签名,其使得系统能够确定设备的正在说话的用户。这是有益的,因为当通信改变触发涉及设备的单个用户时,它允许系统改变通信,如本文所述的。说话者id或用户id可用于确定谁正在说话,并自动识别说话者的用户配置文件以用于后续处理。例如,如果设备的第一用户说出消息,此后设备的第二用户说出消息,则系统能够基于话音签名区分这两个用户,从而防止系统基于不同用户说出的消息来确定单个通信改变触发。

图1b示出了用于在消息传递期间通过设备用户界面输出信号以指出接收者的设备正在检测响应言语的系统。如图1b所示,系统从第一言语控制设备110a接收(160)输入音频。然后,系统确定(162)输入音频对应于用于第二言语控制设备110b的消息内容。然后,系统将消息内容发送(164)到第二言语控制设备110b。然后,系统使用第二言语控制设备110b来检测(166)言语,并使(168)第一言语控制设备110a输出指示符,其中指示符表示第二设备正在检测言语,其中言语可以响应于消息内容,并且因此通知第一言语控制设备110a的用户,可即将回复。指示符可以是视觉的、可听的或听觉的。在示例中,指示符对于支持视频的设备可以是可视的。

在讨论了图2的整个言语处理系统之后,下面将讨论升级基于话音的交互的进一步细节。图2是传统上如何处理说出的话语的概念图,允许系统捕获和执行用户说出的命令,例如可能跟随唤醒词的口头命令。所示的各种部件可以位于相同或不同的物理设备上。图2中所示的各种部件之间的通信可以直接或通过网络199发生。音频捕获部件,例如设备110的传声器103,捕获对应于说出的话语的音频11。然后,设备110使用唤醒词检测模块220,处理音频,或对应于音频的音频数据,以确定是否在音频中检测到关键字(例如唤醒词)。在检测到唤醒词之后,设备将对应于话语的音频数据111发送到包括asr模块250的服务器120。可以在传输之前从位于设备110上的声学前端(afe)256输出音频数据111。或者音频数据111可以是不同的形式,以便由远程afe256(例如与asr模块250位于一起的afe256)进行处理。

唤醒词检测模块220与设备110的其他部件(例如传声器(未示出))一起工作以检测音频11中的关键字。例如,设备110可以将音频11转换为音频数据,并利用唤醒词检测模块220处理音频数据以确定是否检测到言语,且如果检测到言语,则确定包括言语的音频数据是否与对应于特定关键字的音频签名和/或模型匹配。

设备110可以使用各种技术来确定音频数据是否包括言语。一些实施方案可以应用话音活动检测(vad)技术。这种技术可以基于音频输入的各种定量方面,例如音频输入的一帧或多帧之间的频谱斜率;一个或多个谱带中音频输入的能级;一个或多个谱带中音频输入的信噪比;或其他定量方面,来确定音频输入中是否存在言语。在其他实施方案中,设备110可以实现有限分类器,其被配置为将言语与背景噪声区分开。分类器可以通过诸如线性分类器、支持向量机和决策树之类的技术来实现。在其他实施方案中,可以应用隐马尔可夫模型(hmm)或高斯混合模型(gmm)技术来将音频输入与言语存储设备中的一个或多个声学模型进行比较,声学模型可以包括对应于言语、噪声(诸如环境噪声或背景噪声)或静音的模型。还可以使用其他技术来确定音频输入中是否存在言语。

一旦在由设备110接收到的音频中检测到言语(或者与言语检测分开),设备110可以使用唤醒词检测模块220来执行唤醒词检测,以确定用户打算何时向设备110说出命令。该过程也可以称为关键字检测,其中唤醒词是关键字的特定示例。具体地,通常在不执行语言分析、文本分析或语义分析的情况下执行关键字检测。相反,分析输入音频(或音频数据)以确定音频的特定特性是否匹配预先配置的声学波形、音频签名或其他数据,以确定输入音频是否“匹配”与关键字对应的已存储的音频数据。

因此,唤醒词检测模块220可以将音频数据与已存储的模型或数据进行比较,以检测唤醒词。用于进行唤醒词检测的一种方法应用通用大词汇表连续言语辨识(lvcsr)系统来解码音频信号,在所得到的网格或混淆网络中进行唤醒词搜索。lvcsr解码可能需要相对较高的计算资源。用于进行唤醒词定位的另一种方法分别为每个关键的唤醒词字和非唤醒词言语信号构建隐马尔可夫模型(hmm)。非唤醒词言语包括其他口头词语、背景噪声等。可以存在构建的一个或多个hmm,用于对非唤醒词言语特性进行建模,其被称为填充模型。维特比解码用于搜索解码图中的最佳路径,并且进一步处理解码输出以作出关键字存在的判断。通过结合混合dnn-hmm解码框架,该方法可以扩展到包括判别信息。在另一个实施方案中,唤醒词定位系统可以直接建立在深度神经网络(dnn)/递归神经网络(rnn)结构上,而不涉及hmm。这样的系统可以通过在dnn的背景窗口内堆叠帧或使用rnn来使用背景信息估计唤醒词的后验。应用后续后验阈值调整或平滑,以作出判断。也可以使用用于唤醒词检测的其他技术,例如本领域中已知的技术。

一旦检测到唤醒词,用户设备110就可以“醒来”并开始将对应于输入音频11的音频数据111发送到服务器120以进行言语处理。对应于该音频的音频数据可以被发送到服务器120以便路由到接收者设备,或者可以被发送到服务器以进行言语处理,以解释所包括的言语(用于实现话音通信和/或用于执行言语中的命令的目的)。音频数据111可以包括对应于唤醒词的数据,或者可以在发送之前由用户设备110移除音频数据的对应于唤醒词的部分。此外,如本文所述,用户设备110可在检测到高于阈值的言语/口头音频时“醒来”。在由服务器120接收到时,asr模块250可以将音频数据111转换为文本。asr将音频数据转录成文本数据,文本数据表示包含在音频数据中的言语的单词。然后,文本数据可以由其他部件用于各种目的,例如执行系统命令、输入数据等。音频数据中的口头话语被输入到被配置为执行asr的处理器,然后,处理器基于话语和存储在asr模型存储设备252c中的预先建立的语言模型254之间的相似性,对话语进行解释。例如,asr过程可以将输入音频数据与声音(例如,子字单元或音素)和声音序列的模型进行比较,以识别与在音频数据的话语中说出的声音序列匹配的词。

可以给可以解释口头话语的不同方式(即,不同的假设)的每个指定概率或置信度分数,其表示一组特定的单词匹配在话语中说出的那些单词的可能性。置信度分数可以基于许多因素,包括例如话语中的声音与语言声音模型(例如,存储在asr模型存储设备252中的声学模型253)的相似性,以及与声音匹配的特定单词将被包括在句子中特定位置的可能性(例如,使用语言或语法模型)。因此,对口头话语的每个潜在的文本解释(假设)均与置信度分数相关联。基于所考虑的因素和所指定的置信度分数,asr过程250输出音频数据中的已辨识的最可能的文本。asr过程也可以输出网格或n最佳列表形式的多个假设,其中每个假设均对应于置信度分数或其他分数(诸如概率分数等)。

执行asr处理的一个或多个设备可以包括声学前端(afe)256和言语辨识引擎258。声学前端(afe)256将来自传声器的音频数据转换为用于由言语辨识引擎处理的数据。言语辨识引擎258将言语辨识数据与声学模型253、语言模型254以及用于辨识在音频数据中传达的言语的其他数据模型和信息进行比较。afe可以减少音频数据中的噪声,并将数字化的音频数据划分成表示时间间隔的帧,afe确定表示音频数据质量的多个值(称为特征)以及表示帧内音频数据的特征/质量的一组值(称为特征向量)。如本领域中已知的,可以确定许多不同的特征,并且每个特征都表示可以用于asr处理的一些音频质量。afe可以使用多种方法来处理音频数据,例如梅尔频率倒谱系数(mfcc)、感知线性预测(plp)技术、神经网络特征向量技术、线性判别分析、半相关协方差矩阵或本领域技术人员已知的其他方法。

言语辨识引擎258可以参考存储在言语/模型存储设备(252)中的信息,来处理来自afe256的输出。可选地,可以由执行asr处理的设备从内部afe之外的另一个源接收前端处理后的数据(诸如特征向量)。例如,设备110可以将音频数据处理成特征向量(例如,使用设备上的afe256),并通过网络199将该信息发送到服务器,用于进行asr处理。特征向量可以经编码地到达服务器,在这种情况下,在由执行言语辨识引擎258的处理器进行处理之前,可以将所述特征向量解码。

言语辨识引擎258试图将所接收到的特征向量与存储的声学模型253和语言模型254中已知的语言音素和单词进行匹配。言语辨识引擎258基于声学信息和语言信息,来计算特征向量的辨识分数。声学信息用于计算声学分数,该分数表示由一组特征向量表示的既定声音与语言音素匹配的可能性。语言信息用于通过考虑什么声音和/或单词用于彼此的背景中来调整声学分数,从而改进asr过程将输出在语法上讲得通的言语结果的可能性。使用的特定模型可以是通用模型,或者可以是对应于特定域(例如音乐、银行业等)的模型。

言语辨识引擎258可以使用多个技术来匹配特征向量与音素,例如使用隐马尔可夫模型(hmm)来确定特征向量可能匹配音素的可能性。接收到的声音可以表示为hmm的状态之间的路径,并且多个路径可能表示同一声音的多个可能的文本匹配。

在进行asr处理之后,可以由言语辨识引擎258将asr结果发送到其他处理部件,这些处理部件可以是执行asr的设备本地的,和/或分布在网络199上。例如,以言语的单个文本表示、包括多个假设和相应分数的n最佳列表、网格等的形式存在的asr结果,可以被发送到诸如服务器120之类的服务器,用于进行自然语言理解(nlu)处理,诸如将文本转换成命令以由设备110、服务器120或另一设备(诸如运行诸如搜索引擎之类的特定应用的服务器等)执行。

执行nlu处理260的设备(例如,服务器120)可以包括各种部件,包括潜在专用的处理器、存储器、存储设备等。被配置为用于进行nlu处理的设备可以包括命名实体辨识(ner)模块252和意图分类(ic)模块264、结果排名和分发模块266以及nlu存储设备273。nlu过程也可使用存储在实体库存储设备282中的地名辞典信息(284a-284n)。地名辞典信息可以用于实体解析,例如,将asr结果与不同实体(诸如歌曲名称、联系人姓名等)进行匹配。地名辞典可以链接到用户(例如,特定地名辞典可以与特定用户的音乐收藏相关联),可以链接到某些域(例如购物),或可以各种其他方式组织。

nlu过程获取文本输入(诸如,经过asr250基于话语11处理的),并试图对文本进行语义解释。即,nlu过程基于个别单词确定文本背后的含义,并且然后实现该含义。nlu处理260解释文本串,以推导用户的意图或期望的动作,以及文本中的允许设备(例如,设备110)完成该动作的相关的多条信息。例如,如果使用asr250来处理口头话语并输出文本“给妈妈打电话”,则nlu过程可以确定用户打算激活他的/她的设备上的电话,并开始向匹配实体“妈妈”的联系人打电话。

nlu可以处理与同一话语有关的数个文本输入。例如,如果asr250输出n个文本段(作为n最佳列表的一部分),则nlu可以处理所有n个输出以获得nlu结果。

nlu过程可以被配置为解析、标记和注释文本作为nlu处理的一部分。例如,对于文本“给妈妈打电话”,可以将“打电话”标记为命令(执行打电话),并可以将“妈妈”标记为命令的特定实体和目标(并可以将对应于存储在联系人列表中的“妈妈”的实体的电话号码包括在批注结果中)。

为正确地执行对言语输入的nlu处理,nlu过程260可被配置为确定话语的“域”,以便确定并缩窄由端点设备(例如,服务器120或设备110)提供的哪些服务可能相关。例如,端点设备可以提供与跟电话服务、联系人列表服务、日历/日程安排服务、音乐播放器服务等的交互有关的服务。单个文本查询中的单词可能涉及多于一个的服务,并且一些服务可能在功能上被链接(例如,电话服务和日历服务都可以利用来自联系人列表的数据)。

名称实体辨识模块262以asr结果的形式接收查询,并试图识别可用于解释含义的相关语法和词汇信息。为此,名称实体辨识模块262可以通过识别可能与接收到的查询相关的潜在域来开始。nlu存储设备273包括识别与特定设备相关联的域的设备数据库(274a-274n)。例如,设备110可以与用于音乐、电话、日历、联系人列表和设备专用通信(而不包括视频)的域相关联。另外,实体库还可以包括关于特定设备上的特定服务的数据库条目,所述数据库条目由设备id、用户id或者家庭id或者某一其他指示符来编索引。

域可以表示具有共同主题的离散的一组活动,诸如“购物”、“音乐”、“日历”等。因此,每个域均可以与特定的语言模型和/或语法数据库(276a-276n)、一组特定的意图/动作(278a-278n)以及特定的个性化词典(286)相关联。每个地名辞典(284a-284n)均可以包括与特定用户和/或设备相关联的域索引词汇信息。例如,地名辞典a(284a)包括域索引词汇信息286aa至286an。例如,用户的音乐域词汇信息可能包括专辑标题、艺术家姓名和歌曲名称,而用户的联系人列表词汇信息可能包括联系人的姓名。由于每个用户的音乐收藏和联系人列表大概不同,因此,这种个性化的信息改进了实体的分辨率。

使用适用于每个识别域的规则、模型和信息来处理查询。例如,如果查询潜在地涉及通信和音乐两者,则将使用用于通信的语法模型和词汇信息对查询进行nlu处理,并且将使用用于音乐的语法模型和词汇信息来处理该查询。对基于查询由每组模型产生的响应进行评分(下面进一步讨论),来自所有应用域的总体排名最高的结果通常被选择为正确的结果。

意图分类(ic)模块264解析查询以确定每个识别域的一个或多个意图,其中意图对应于对查询作出响应的要执行的动作。每个域均与链接到意图的单词的数据库(278a-278n)相关联。例如,音乐意图数据库可以将诸如“安静”、“音量关闭”和“静音”之类的单词和短语链接到“静音”意图。ic模块264通过将查询中的单词与意图数据库278中的单词和短语进行比较来识别每个识别域的潜在意图。

为了生成特定的解释的响应,ner262应用与相应的域相关联的语法模型和词汇信息。每个语法模型276均包括在言语中通常会发现的关于特定域的实体的名称(即,名词)(即,通用术语),而来自地名辞典284的词汇信息286是针对用户和/或设备而个性化的。例如,与购物域相关联的语法模型可以包括当人们讨论购物时通常使用的单词的数据库。

由ic模块264识别的意图被链接到具有要填充的“时隙”或“字段”的域特定语法框架(包括在276中)。例如,如果“播放音乐”是识别的意图,则一个或多个语法(276)框架可以对应于诸如“播放{艺术家姓名}”、“播放{专辑名称}”、“播放{歌曲名称}”、“播放{艺术家姓名}的{歌曲名称}”等等的句子结构。然而,为了使辨识更加灵活,这些框架通常不会被构造成句子,而是基于将时隙与语法标签相关联。

例如,ner模块260可以在辨识命名实体之前解析查询,以基于语法规则和模型,将单词识别为主语、宾语、动词、介词等。所识别的动词可由ic模块264用来识别意图,然后,ner模块262使用该意图来识别框架。用于“播放”意图的框架可以指定适用于播放所识别的“宾语”和任何宾语修饰语(例如,介词短语)的时隙/字段的列表,诸如{艺术家姓名}、{专辑名称}、{歌曲名称}等。然后,ner模块260搜索域特定和个性化词典中的对应字段,尝试将标记为语法宾语或宾语修饰语的查询中的单词和短语与数据库中识别的单词和短语进行匹配。

这个过程包括语义标记,它是根据单词或单词组合的类型/语义含义来标记单词或单词组合。解析可以使用启发式语法规则来执行,或者可以使用诸如隐马尔可夫模型、最大熵模型、对数线性模型、条件随机场(crf)等的技术来构建ner模型。

例如,查询“播放滚石乐队的妈妈的小帮手(mother’slittlehelper)”可能被解析并标记为{动词}:“播放”、{宾语}:“妈妈的小帮手”、{宾语介词}:“by”以及{宾语修饰语}:“滚石乐队”。在此过程中的此刻,基于与音乐域相关联的单词数据库,将“播放”识别为动词,ic模块264将确定该动词对应于“播放音乐”意图。关于“妈妈的小帮手”和“滚石乐队”的含义,还没有进行确定,但根据语法规则和模型,确定这些短语与查询的语法宾语有关。

然后,使用链接到意图的框架来确定应该搜索哪些数据库字段来确定这些短语的含义,例如搜索用户的地名辞典中与框架时隙的相似之处。因此,“播放音乐意图”框架可能表明尝试基于{艺术家姓名}、{专辑名称}和{歌曲名称}来解析识别的宾语,而相同意图的另一个框架可能表明尝试基于{艺术家姓名}来解析宾语修饰语,并基于链接到所识别的{艺术家姓名}的{专辑名称}和{歌曲名称}来解析宾语。如果对地名辞典的搜索没有使用地名辞典信息来解析时隙/字段,则ner模块262可以搜索与域相关联的通用词的数据库(在存储设备273中)。因此,例如,如果查询是“播放滚石乐队的歌曲”,则在未能通过“滚石乐队”确定名为“歌曲”的专辑名称或歌曲名称之后,ner262可以在域词汇表中搜索单词“歌曲”。在替代方案中,可以在地名辞典信息之前检查通用词,或者两者都可以尝试,可能会产生两个不同的结果。

由ner模块262使用的比较过程可以分类(即,评分)数据库条目与经标记的查询单词或短语的匹配程度,查询的语法结构与所应用的语法框架的对应程度,以及基于数据库是否指出条目与被识别为填充框架的其他时隙的信息之间的关系。

ner模块262也可以使用背景操作规则来填充时隙。例如,如果用户先前已经请求暂停特定歌曲并且此后请求话音控制设备“请恢复播放我的音乐”,则ner模块262可以应用基于推断的规则来填充与用户当前希望播放的歌曲(即在用户请求暂停音乐时播放的歌曲)的名称相关联的时隙。

nlu处理的结果可以被标记以将含义赋予查询。因此,例如,“播放滚石乐队的妈妈的小帮手”可能会产生以下结果:{域}音乐、{意图}播放音乐、{艺术家姓名}“滚石乐队”、{媒体类型}歌曲以及{歌曲名称}“妈妈的小帮手”。作为另一个示例,“播放滚石乐队的歌曲”可能会产生:{域}音乐、{意图}播放音乐、{艺术家姓名}“滚石乐队”、{媒体类型}歌曲。

然后,可以将nlu处理的输出(其可以包括标记的文本、命令等)发送到命令处理器290,该命令处理器可以作为系统100的一部分位于相同或单独的服务器120上。可以基于nlu输出来确定目的地命令处理器290。例如,如果nlu输出包括播放音乐的命令,则目的地命令处理器290可以是被配置为执行音乐播放命令的音乐播放应用,诸如位于设备110上或音乐播放设备中的应用。如果nlu输出包括搜索请求,则目的地命令处理器290可以包括被配置为执行搜索命令的搜索引擎处理器,诸如位于搜索服务器上的搜索引擎处理器。

本文所描述的系统的nlu操作可以采用多域架构的形式,例如图3中所示的那种多域架构。在多域架构中,每个域(其可以包括定义诸如音乐、书籍等更大概念的一组意图和实体时隙)被单独构建,并且在对文本(例如从asr部件250输出的文本)执行nlu操作的运行时操作期间可供nlu部件260使用。每个域均可以具有专门配置的部件以执行nlu操作的各个步骤。例如,消息域302(域a)可以具有ner部件262-a,其识别哪些时隙(即,输入文本的部分)可以对应于与该域相关的特定实体。ner部件262-a可以使用机器学习模型,例如域特定条件随机场(crf)来识别对应于实体的部分以及识别对应于文本部分的实体类型。例如,对于文本“告诉约翰·史密斯,我向他问好”,经过针对消息域302训练的ner262-a可以辨识文本的部分[约翰·史密斯]对应于实体。消息域302还可以具有其自己的意图分类(ic)部件264-a,其确定文本的意图,假定文本在被所规定的域内。ic部件可以使用诸如域特定的最大熵分类器之类的模型来识别文本的意图。消息域302还可以具有其自己的时隙填充部件310-a,其可以应用规则或其他指令以将来自先前阶段的标签或令牌标准化为意图/时隙表示。精确的转换可能取决于域(例如,对于旅行域,提及“波士顿机场”的文本指代可以转换为表示机场的标准bos三字母代码)。消息域302还可以具有其自己的实体解析部件312-a,其可以参考权威源(诸如域特定知识库),该权威源用于具体地识别在传入文本中识别的实体指代中引用的精确实体。特定意图/时隙组合也可以绑定到特定源,然后可以使用该特定源来解析文本(例如通过提供信息或响应于用户查询而执行的命令)。来自实体解析部件312-a的输出可以包括命令、信息或其他nlu结果数据,指出域特定nlu处理如何处理文本以及系统应如何响应文本,根据该特定域。

如图3所示,多个域可以利用不同的域特定部件,基本上并行地操作。此外,每个域都可以在交换消息或其他通信时实现某些协议。也就是说,对于实时呼叫,域b304可以具有其自己的ner部件262-b、ic模块264-b、时隙填充部件310-b和实体解析部件312-b。该系统可以包括本文未描述的额外域。输入到域a302的nlu流水线中的相同文本也可以输入到域b304的nlu流水线中,其中域b304的部件将对文本进行操作,就好像文本与域b相关,对于不同域的不同nlu流水线,以此类推。每个域特定的nlu流水线都将创建其自己的域特定nlu结果,例如nlu结果a(对于域a)、nlu结果b(对于域b)、nlu结果c(对于域c),以此类推。

这种多域架构导致狭义定义的意图和时隙,这些意图和时隙对于每个特定域都是特定的。这部分是由于不同的模型和部件(例如域特定的ner部件、ic模块等,以及相关模型)被训练为仅针对指定域进行操作。此外,域的分离会导致类似的动作在域之间被分别表示,即使在动作中存在重叠。例如,“下一首歌”、“下一本书”和“下一”都可以是相同动作的指示符,但是由于域特定处理限制,将在不同域中以不同方式定义。

服务器120还可以包括关于用户帐户的数据,由图4中所示的用户配置文件存储设备402示出。用户配置文件存储设备可以位于服务器120附近,或者可以以其他方式,例如通过网络199,与各种部件进行通信。用户配置文件存储设备402可以包括与跟系统100进行交互的各个用户、帐户等相关的各种信息。为了说明,如图4所示,用户配置文件存储设备402可以包括关于与特定各个用户帐户404相关联的设备的数据。在示例中,用户配置文件存储设备402是基于云的存储设备。这样的数据可以包括不同设备的设备识别符(id)和互联网协议(ip)地址信息以及用户的名称和设备的位置。用户配置文件存储设备可以另外包括特定于每个设备的通信改变触发、每个设备的指示偏好等。在示例中,每个设备要输出的指示的类型可以不存储在用户配置文件中。相反,指示的类型可以取决于背景。例如,如果系统正在交换视频消息,则指示可以是可视的。再例如,如果系统正在交换音频消息,则指示可以是可听见的。

每个用户配置文件都可以存储一个或多个通信改变路径。此外,每个通信改变路径都可以包括单个通信改变触发或多个通信改变触发,这些通信改变触发表示何时应该发生通信改变。应当理解,具有m个通信改变触发的n个通信改变路径可以存储在单个用户配置文件中。每个通信改变路径对于用户与其进行通信的不同个人都可以是唯一的。例如,当用户与其妈妈进行通信时可以使用一个通信改变路径,当用户与其配偶进行通信时可以使用另一个通信改变路径等。每个通信改变路径对于一种通信类型(例如,音频消息传递、视频消息传递等)也可以是唯一的。每个通信改变路径对于通信中涉及的设备类型也可以是唯一的。例如,用户可以具有为用户车内的设备配置的第一通信改变路径、为用户卧室中的设备配置的第二通信改变路径等。

用户配置文件的一些或所有通信改变路径可以是动态的。也就是说,通信改变路径可以取决于外部信号。说明性外部信号包括与设备的接近度。例如,当正在与用户的妈妈进行通信,而用户的妈妈不在她的设备附近时,可以使用一个通信改变路径,和当正在与用户的妈妈进行通信,而用户的妈妈在她的设备附近时,可以使用第二通信改变路径。例如,言语控制设备110可以捕获一个或多个图像,并将与其对应的图像数据发送到服务器120。服务器120可以确定图像数据包括人的表示。服务器120还可以基于人的表示在图像数据中的位置来确定人与设备110的接近度。对通信改变路径的动态选择也可能会受到机器学习的影响。例如,通信改变路径可以被配置为当用户在晚上的特定时间之后与其妈妈进行通信时将通信改变为实时呼叫。然后,系统可以确定用户在阈值时间量内改变通信的时间的某一百分比。基于该确定,系统可以建议用户修改/更新通信改变路径以不如此快速地将消息传递改变为实时呼叫。

每个通信升级路径都可以包括一个或多个通信改变。一种类型的通信改变涉及消除对唤醒词部分的需要,因此口头音频仅需要包括命令(例如,使系统发送消息的语言)和消息内容。第二种类型的通信改变涉及消除对唤醒词部分和命令的需要,因此口头音频仅需要包括消息内容。第三种类型的通信改变涉及替换默认的唤醒词,并使消息的接收者的姓名(例如,妈妈、约翰等)作为唤醒词。第四种类型的通信改变是将消息交换改变为实时呼叫。

图5a到图5d示出了通过言语控制设备改变基于话音的交互。第一言语控制设备110a捕获包括唤醒词部分和有效载荷部分的口头音频(如502所示)。例如,言语控制设备110a可以处于睡眠模式,直到检测到口头唤醒词,其触发言语控制设备110a醒来和捕获音频(其可以包括所述口头唤醒词和其后的言语)以进行处理和发送到服务器120。言语控制设备110a将对应于所捕获的口头音频的音频数据发送到服务器120(如504所示)。

服务器120对接收到的音频数据执行asr,以确定文本(如506所示)。服务器120可以确定文本的唤醒词部分和有效载荷部分,并对有效载荷部分执行nlu(如508所示)。执行nlu处理可以包括服务器120标记有效载荷部分的接收者信息(如510所示)、标记有效载荷部分的消息内容信息(如512所示)、以及用“发送消息”意图标记来标记整个有效载荷部分(如514所示)。例如,所接收到的音频数据的有效载荷部分可以对应于文本“告诉约翰·史密斯,我向他问好”。根据该示例,服务器120可以将“约翰·史密斯”标记为接收者信息,可以将“问好”标记为消息内容信息,并且可以用“发送消息”意图标记来标记话语。可以使用消息域302来执行用消息意图标记来标记有效载荷部分和/或可以使系统例如使用消息传递命令处理器290来执行进一步的消息传递命令。

使用标记的接收者信息,服务器120确定与接收者相关联的设备(例如,言语控制设备110b)(如图5b中的516所示)。为了确定接收者设备,服务器120可以使用与言语控制设备110a和/或说出初始音频的用户相关联的用户配置文件。例如,服务器120可以访问用户配置文件的表以匹配表中的对应于被标记的接收者信息(即,“约翰·史密斯”)的文本。一旦识别出匹配文本,服务器120就可以识别与表中的匹配文本相关联的接收者设备。

服务器120还使用与“发送消息”意图标记相关联的服务器120的域和相关联的协议,来生成输出音频数据(如518所示)。输出音频数据可以包括从言语控制设备110a接收到的口头音频。可选地,输出音频数据可以包括由计算机基于从言语控制设备110a接收到的消息内容的文本生成的文本到言语(tts)音频数据。服务器120将输出音频数据发送到接收者设备(如520所示),其将音频数据输出到接收者(如522所示)。在示例中,接收者的言语控制设备110b可以不输出音频数据,直到它检测到来自接收者的这样做的命令为止。这样的命令可以是接收者的对应于“我的消息是什么?”、“我有任何消息吗?”等的口头话语。

服务器120在第一言语控制设备110a和第二言语控制设备110b之间执行消息传递,如上文参考图5a和图5b的步骤502-522所详细描述的(例如,通过消息域)(如524所示),直到服务器120确定通信改变触发的发生(如526所示)。通信改变触发可以使服务器120使用与用于执行先前通信/过程的域不同的另一域和对应协议来执行后续通信/过程。可选地,系统可以调整对未来消息的处理以不需要某些口头数据(例如唤醒词或接收者的指示)。所确定的通信改变触发可以呈现多种形式。通信改变触发可以基于是否满足或超过第一言语控制设备110a和第二言语控制设备110b之间的消息交换的阈值数量。例如,消息交换的阈值数量可以由言语控制设备110a/110b中的任一个的用户进行设置,并且可以在相应的用户配置文件中表示。应当理解,与第一言语控制设备110a的用户配置文件相关联的消息交换的阈值数量可以不同于与第二言语控制设备110b的用户配置文件相关联的消息交换的阈值数量。在这种情况下,服务器120用来确定何时应该发生通信改变的阈值可以是首先满足或超过的阈值(即,具有较少数量的所需消息交换的阈值)。通信改变触发还可以或可选地基于在阈值时间量内发生的消息交换的阈值数量。例如,消息交换的阈值数量和/或阈值时间量可以由言语控制设备110a/110b中的任一个的用户进行设置,并且可以在相应的用户配置文件中表示。应当理解,与第一言语控制设备110a的用户配置文件相关联的消息交换的阈值数量和阈值时间量可以不同于与第二言语控制设备110b的用户配置文件相关联的消息交换的阈值数量。在这种情况下,服务器120用来确定何时应该发生通信改变的阈值可以是首先满足或超过的阈值。通信改变触发还可以或可选地基于两个言语控制设备110a/110b的用户同时在其相应设备的阈值距离内。应当理解,可以基于单个通信改变触发的满足来发生通信改变。还应当理解,可以基于多于一个通信改变触发的满足来发生通信改变。

一旦确定了一个或多个通信改变触发,取决于实现方式,服务器120重新配置来自第一/第二言语控制设备的话语,以不要求在接收到的音频数据中存在唤醒词部分或接收者信息(如528所示)。例如,这可以使用消息域302和相关联的协议来完成。另外,在步骤528发生的重新配置可以指示言语控制设备110b输出所接收到的通信,而不首先检测对应于这样做的命令的言语。此外,服务器120可以向言语控制设备110a/110b中的一个或两个发送信号,指出第一言语控制设备110a和第二言语控制设备110b之间的通信正被改变(如530所示)。言语控制设备可以输出表示设备正在“听”以尝试捕获消息内容的指示。另外,言语控制设备还可以输出表示接收者的设备正在捕获口头消息内容的指示。然后,言语控制设备110a和/或言语控制设备110b可以输出表示不再需要唤醒词音频的信号(如图5c中的532所示)。由言语控制设备110a/110b中的一个或两个输出的信号可以是静态指示或运动指示,如下文所述。

此后,言语控制设备110a捕获来自用户的仅包括有效载荷信息的口头音频(如534所示),并将对应于有效载荷信息的音频数据发送到服务器120(如536所示)。服务器120对接收到的音频数据执行asr,以确定文本(如538所示),并对有效载荷信息文本执行nlu处理(如540所示)。执行nlu处理可以包括服务器120标记有效载荷信息文本的接收者信息、标记有效载荷信息文本的消息内容信息以及用即时消息意图标记来标记整个有效载荷信息文本。例如,接收到的音频数据的有效载荷信息可以陈述“你什么时候完成项目?”。根据本示例,服务器120可以将“你什么时候完成项目”标记为消息内容信息,并且可以使用“发送即时消息”意图标记来标记话语。使用消息意图标记来标记有效载荷信息文本可以使服务器120使用消息域302执行下游过程。通过不要求输入音频中存在接收者信息,服务器120可以假设接收者设备与先前通信中使用的接收者设备相同,从而无需服务器120再次确定接收者设备。

服务器120还使用与“发送即时消息”意图标记相关联的服务器120的域和相关联的协议,来生成输出音频数据(如542所示)。例如,消息域302可以与即时消息意图标记相关联。输出音频数据可以包括从言语控制设备110a接收到的口头音频。可选地,输出音频数据可以包括由计算机基于从言语控制设备110a接收到的口头音频生成的文本到言语(tts)音频数据。服务器120将输出音频数据发送到接收者设备(即,言语控制设备110b)(如544所示),其将音频数据的音频输出到接收者(如图5d中的546所示)。如上所述,在步骤528发生的重新配置可以指示言语控制设备110b输出所接收到的通信,而无需首先接收来自用户的这样做的命令。这样,应当理解,言语控制设备110b可以在步骤546将音频数据输出到接收者,而无需首先接收这样做的命令。也就是说,言语控制设备110b可以自动播放音频数据。

服务器120在第一言语控制设备110a和第二言语控制设备110b之间执行即时消息传递,如上文参考图5c到图5d的步骤534-546所详细描述的(例如,通过即时消息域并且不需要唤醒词音频数据)(如548所示),直到服务器120确定另一通信改变触发的发生(如550所示)。第二确定的通信改变触发可以呈现多种形式。与第一通信改变触发类似,第二通信改变触发可以基于是否满足或超过第一言语控制设备110a和第二言语控制设备110b之间的消息交换的阈值数量、基于阈值时间量内发生的消息交换的阈值数量和/或基于两个言语控制设备110a/110b的用户同时在其相应设备的阈值距离内。用于确定第一通信改变触发和第二通信改变触发的阈值可以是相同的(例如,每个都需要5个消息交换)或不同(例如,第一通信改变发生在使用消息域302进行5次消息交换之后,和第二通信改变发生在使用消息域302进行7次消息交换之后)。可以使用在第一通信改变之后不重置的单个计数器来确定针对每个通信改变触发的消息交换。根据前面的示例,第一通信改变可以在计数器达到5次消息交换(即,使用消息域302进行5次消息交换)之后发生,和第二通信改变可以在计数器达到12次消息交换(即,使用消息域302进行7次消息交换)之后发生。可选地,可以使用不同的计数器或在第一通信改变之后重置的单个计数器来确定针对每个通信改变的消息交换。根据前面的示例,第一通信改变可以在计数器达到5次消息交换(即,使用消息域302进行5次消息交换)之后发生,然后计数器可以重置为零,和第二通信改变可以在计数器达到7次消息交换(即,使用消息域302进行7次消息交换)之后发生。针对第一通信改变和第二通信改变,用户需要所在的与言语控制设备110a/110b的阈值距离可以相同或不同。此外,与第一通信改变类似,第二通信改变可以基于单个通信改变触发或多于一个通信改变触发的满足而发生。

一旦确定了第二通信改变触发,取决于实现方式,服务器120重新配置以使用在言语控制设备110a和言语控制设备110b之间建立实时呼叫的域和相关联的协议(如552所示)。例如,这样的域可以是实时呼叫域304。本文所使用的实时呼叫是指通过服务器120在言语控制设备110a/110b之间促进的呼叫,其中可以在言语控制设备之间打开直接通信信道。例如,在实时呼叫期间,系统可以将音频数据从第一言语控制设备110a发送到第二言语控制设备110b,而不对音频数据执行言语处理(例如asr或nlu),从而使第一言语控制设备110a的用户能与第二言语控制设备110b的用户“直接说话”。可选地,系统可以执行言语处理(例如asr或nlu)但是不存在用于系统的命令,可以在设备110a/110b之间来回传递音频数据。例如,如下面参考图7所讨论的,可以结束实时呼叫。

服务器120可以向言语控制设备110a/110b中的一个或两个发送信号,指出已建立实时呼叫(如554所示)。然后,言语控制设备110a和/或言语控制设备110b输出表示用户可以说话的信号,好像他/她正在进行点对点呼叫(如556所示)。本文所使用的实时或点对点呼叫/通信是指通过服务器120在言语控制设备110a/110b之间促进的呼叫。也就是说,实时呼叫或点对点呼叫是一种这样的通信,其中音频被设备简单地捕获,作为音频数据发送到服务器,并且服务器仅将接收到的音频数据发送到接收者设备,接收者设备输出音频,无需首先接收到这样做的命令。由言语控制设备110a/110b中的一个或两个输出的信号可以是静态指示或运动指示,如下文所述。然后,系统执行实时通信会话(如558所示)。可以由系统执行实时通信会话,直到确定降级触发(如本文详述)。

当在言语控制设备之间执行通信时,系统可以使用控制数据大小、传输速度等的各种类型的协议。例如,可以使用第一协议来控制需要存在唤醒词部分和接收者内容的通信的交换。可使用第二协议来控制不需要唤醒词部分但仍需要接收者内容的通信的交换。可以使用第三协议来控制不包含nlu意图的通信的交换。也就是说,当既不需要唤醒词部分也不需要接收者内容时,可以使用第三协议,因为系统基于过去同时发生的消息交换来假定接收者。当执行言语控制设备之间的同步呼叫时,可以使用诸如voip之类的实时协议。

图6a和图6b示出了基于消息的预期接收者通过言语控制设备改变基于话音的交互。第一言语控制设备110a捕获包括唤醒词部分和有效载荷部分的口头音频(如502所示)。例如,言语控制设备110a可以处于睡眠模式,直到检测到口头唤醒词,其触发言语控制设备110a醒来并捕获包括所述口头唤醒词和其后的言语的音频。言语控制设备110a将对应于所捕获的口头音频的音频数据发送到服务器120(如504所示)。

服务器120对接收到的音频数据执行asr,以确定文本(如506所示)。服务器120确定文本的唤醒词部分和有效载荷部分,并对有效载荷部分执行nlu(如508所示)。执行nlu处理可以包括服务器120标记有效载荷部分的接收者信息(如510所示)、标记有效载荷部分的消息内容信息(如512所示)以及用“发送消息”意图标记来标记整个有效载荷部分(如514所示)。例如,所接收到的音频数据的有效载荷部分可以陈述“告诉妈妈,我说过我将很快到那里。”根据该示例,服务器120可以将“妈妈”标记为接收者信息,可以将“我将很快到那里”标记为消息内容信息,并且可以将话语与“发送消息”意图标记相关联。如上所述,通信改变路径和通信改变触发可以通过用户配置文件来配置。根据该实施方案,服务器120可以基于消息的预期接收者来确定通信改变。例如,服务器120使用标记的接收者信息,可以访问言语控制设备110a的用户配置文件,并确定指出与“妈妈”的通信将通过实时呼叫来执行的通信改变路径(如图6b中的602所示)。此后,服务器120重新配置以使用在言语控制设备110a和言语控制设备110b之间建立实时呼叫的域和相关联的协议(如552所示)。例如,这样的域可以是实时呼叫域304。服务器120可以向言语控制设备110a/110b中的一个或两个发送信号,指出已建立实时呼叫(如554所示)。然后,言语控制设备110a和/或言语控制设备110b输出表示用户可以说话的信号,好像他/她正在进行点对点呼叫(如556所示)。由言语控制设备110a/110b中的一个或两个输出的信号可以是静态指示或运动指示,如下文所述。然后,系统执行实时通信会话(如558所示)。可以由系统执行实时通信会话,直到确定另一个通信改变触发(如本文详述)。

图7示出了通过言语控制设备改变基于话音的交互。服务器120通过与实时呼叫相关联的域和相关联协议在言语控制设备110a/110b之间交换通信(如702所示),直到服务器120确定通信改变触发的发生(如704所示)。例如,这样的域可以是实时呼叫域304。通信改变触发可以呈现各种形式。通信改变触发可以基于言语控制设备110a/110b中的任一个的用户多任务处理(即,使服务器120执行与实时呼叫无关的任务)。通信改变触发还可以或可选地基于满足或超过不活动阈值时间长度(例如,确定在n分钟内未发生交换)。通信改变触发还可以或可选地基于用户指令(例如,言语控制设备110a/110b中的任一个的用户陈述例如“关闭呼叫”、“停止呼叫”、“结束呼叫”等等)。通信改变触发还可以或可选地基于源自言语控制设备110a/110b两者的用户的指示(例如,用户都彼此在阈值秒数内说出“再见”、“拜拜”等)。另外,通信改变触发还可以或可选地基于服务器120在实时呼叫的交换中检测到唤醒词。通信改变可以基于确定满足一个或多于一个通信改变触发来发生。

在确定改变应该发生之后,服务器120停止实时呼叫(如706所示)并将表示这种情况的信号发送到言语控制设备110a/110b中的一个或两个(如708所示)。然后,言语控制设备110a和/或言语控制设备110b输出表示实时呼叫已经停止的信号(如710所示)。由言语控制设备110a/110b中的一个或两个输出的信号可以是静态指示或运动指示,如下文所述。改变通信可能涉及在该时间点停止言语控制设备110a/110b之间的所有通信。可选地,改变通信可能涉及将通信改变为与实时呼叫不同的第二形式。例如,第二通信形式可能涉及服务器120在第一言语控制设备110a和第二言语控制设备110b之间执行即时消息通信,如上文参考图5c到图5d的步骤534-546所详细描述的(如548所示),直到服务器120确定通信改变触发的发生。

图8a和图8b示出了通过言语控制设备的用户界面的信令输出。言语控制设备110a捕获口头音频(如802所示),将捕获的口头音频编译成音频数据,并将音频数据发送到服务器120(如504所示)。

服务器120对音频数据执行asr,以确定文本(例如,“告诉约翰·史密斯,我向他问好”)(如506所示),并对文本执行nlu(如804所示)。服务器120在经nlu处理的文本内定位标记的接收者信息(即,“约翰·史密斯”)(如806所示),并根据其确定接收者设备(如808所示)。例如,服务器120可以访问与言语控制设备110a和/或其用户相关联的用户配置文件。通过使用用户配置文件,服务器120可以在表中定位对应于接收者信息(即,“约翰·史密斯”)的文本,并且可以识别表内的与接收者信息相关联的接收者设备信息。服务器120还确定经nlu处理的文本内的已标记的消息内容(例如,“你好”)(如810所示)。

服务器120将指出消息内容正被或将被发送到接收者设备(即,言语控制设备110b)的信号发送到发出初始口头音频数据的言语控制设备110a(如812所示)。响应于接收到消息,言语控制设备110a输出表示消息内容(即,你好)正被发送或将被发送到接收者设备的视觉指示(如814所示)。例如,视觉指示可以包括输出静态指示符(例如,某种颜色等)或运动指示符(例如,闪烁或频闪元素、连续移动等)。可以根据用户配置文件偏好来配置视觉指示输出。可选地,响应于接收到消息,言语控制设备110可以输出触觉和/或可听指示(如816所示)。触觉指示可以包括言语控制设备110a振动和/或与言语控制设备110a通信的远程设备(例如,智能手表)振动。远程设备和言语控制设备110a可以通过位于与用户配置文件相关联的用户设备的单个表中来进行通信。可听指示可以包括计算机生成的/tts生成的言语和/或用户生成的言语,其对应于例如“正在发送您的消息”或“您的消息立刻将被发送。”可听指示,如触觉指示,可以由言语控制设备110a、远程传声器阵列和/或远程设备(例如,智能手表)输出。远程设备、传声器阵列和言语控制设备110a可以通过位于与用户配置文件相关联的用户设备的单个表中来进行通信。

服务器120还将包括消息内容的音频数据发送到所确定的接收者设备(即,言语控制设备110b)(如818所示)。应当理解,步骤814-818(以及其他图的其他步骤)可以以各种顺序发生,并且也可以同时发生。然后,言语控制设备110b输出对应于消息内容的音频(如522所示)。当言语控制设备110b检测到响应于消息内容的言语时(如820所示),并且言语控制设备110b将表示这种情况的信号发送到服务器120(如图822所示)。然后,服务器120向言语控制设备110a发送信号,指出言语控制设备110b正在检测言语(如824所示)。服务器120可以基于例如检测到的言语中指出的接收者姓名或者言语控制设备110a/110b是不需要唤醒词音频数据的即时消息交换的一部分来确定检测到的言语是响应于输出音频的。另外,在示例中,服务器120可以使言语控制设备110b输出询问用户用户是否想要回复所接收到的消息的音频。然后,服务器120可以从第二言语控制设备110b接收音频数据,对音频数据执行asr以确定文本数据,确定文本数据包括指出响应意图的至少一个单词(例如,是),并且由此确定此后接收到的音频数据是对原始消息的响应。在另一示例中,服务器120可以从第二言语控制设备110b接收音频数据,使用言语处理来确定所接收到的音频数据的音频签名与原始消息的接收者的基于话音的说话者id匹配,并由此确定此后接收到的音频数据是对原始消息的响应。响应于接收到信号,言语控制设备110a输出表示言语控制设备110b正在检测言语的视觉指示(如图826所示)。例如,视觉指示可以包括输出静态指示符(例如,某种颜色等)或运动指示符(例如,闪烁或频闪元素、连续移动等)。可以根据用户配置文件偏好来配置视觉指示输出。在示例中,一旦不再输出视觉指示,接收者响应于原始消息所说出的音频可以由言语控制设备110a输出。可选地,响应于接收到信号,言语控制设备110a可以输出触觉和/或可听指示(如828所示)。触觉指示可以包括言语控制设备110a振动和/或与言语控制设备110a通信的远程设备(例如,智能手表)振动。远程设备和言语控制设备110a可以通过位于与用户配置文件相关联的用户设备的单个表中来进行通信。可听指示可以包括计算机生成的/tts生成的言语和/或用户生成的言语,其对应于例如“约翰·史密斯正在响应您的消息”或“约翰·史密斯正在讲话”。可听指示,如触觉指示,可以由言语控制设备110a、远程传声器阵列和/或远程设备(例如,智能手表)输出。远程设备、传声器阵列和言语控制设备110a可以通过位于与用户配置文件相关联的用户设备的单个表中来进行通信。

图9示出了通过言语控制设备的用户界面的信令输出。言语控制设备110a捕获包括唤醒词部分和接收者信息的口头音频(如902所示)。言语控制设备110a将捕获到的接收者信息音频转换为音频数据,并将音频数据发送到服务器120(如904所示)。可选地,言语控制设备110a可以将对应于唤醒词部分和接收者信息两者的音频数据发送到服务器120。在该示例中,服务器120可以将接收者信息音频数据与唤醒词部分音频数据隔离,并丢弃唤醒词部分音频数据。服务器120可以对接收者信息音频数据执行言语处理(例如,asr和nlu)(如906所示)。例如,服务器120可以对接收者信息音频数据执行asr,以创建接收者信息文本数据,并且可以对接收者信息文本数据执行nlu,以识别接收者姓名。如果发出所接收到的音频数据的言语控制设备110a与多个用户相关联,则服务器120可以执行各种过程,以确定哪个用户说出了唤醒词部分和接收者信息音频(如图908所示)。

通过使用经言语处理的接收者信息音频数据并且知道接收者信息音频的说话者,服务器120使用与接收者信息音频的说话者相关联的用户配置文件来确定接收者的设备,以将未来数据发送到所述设备(如910所示)。如果接收者仅与用户配置文件中的一个设备相关联,则该设备是将向其发送数据的设备。如果接收者与用户配置文件中的多个设备相关联,则可以使用各种信息来确定将向哪个接收者设备发送数据。例如,可以确定接收者的物理位置,并且可以将数据发送到最接近接收者的设备。在另一个示例中,可以确定接收者当前正在使用哪个设备,并且可以将数据发送到当前正在使用的设备。在又一个示例中,可以确定接收者当前正在使用哪个设备,并且可以将数据发送到最接近当前正在使用的设备的第二设备。在另一示例中,由服务器120确定的设备(即,将向其发送未来数据的设备)可以是分发器设备(例如,路由器),其中分发器设备确定将向接收者的多个设备中的哪一个发送数据。

服务器120向所确定的接收者的设备发送指出消息即将到来的信号(如912所示)。当服务器120将消息内容文本数据发送到tts部件时,可以将信号发送到接收者设备。出于说明的目的,所确定的接收者的设备可以是言语控制设备110b。然后,言语控制设备110b输出表示消息即将到来的指示(如914所示)。由言语控制设备输出的指示可以是如本文所述的视觉指示、可听指示和/或触觉指示。

消息发送者的言语控制设备110a还捕获包括消息内容的口头音频(如916所示)。言语控制设备110a将消息内容口头音频转换为音频数据,并将消息内容音频数据发送到服务器120(如918所示)。在示例中,言语控制设备110b在言语控制设备110a捕获消息内容音频时并且当服务器120从言语控制设备110a接收消息内容音频时输出指示。服务器120可以将消息内容音频数据发送到先前确定的接收者设备(如920所示),其输出包括消息内容的音频(如922所示)。可选地,服务器120可以执行如上文针对步骤910所述的过程,以确定将消息内容音频数据发送到哪个接收者设备。因此,应当理解,取决于情况,输出表示消息即将到来的指示的接收者设备以及输出消息内容的接收者设备可以是同一设备,或者可以是不同的设备。

图10a至图10c示出了如本文所讨论的视觉指示符的示例。视觉指示可以通过言语控制设备110的光环1002输出。光环1002可以位于言语控制设备110上的使得言语控制设备110的用户能够充分看到的任何位置。取决于要传递的消息,可以通过光环1002输出不同颜色。例如,光环1002可以发出绿光以指出消息正在被或将被发送到接收者设备。在另一示例中,光环1002可以发出蓝光以指出接收者设备正在检测或捕获口头音频。还应当理解,光环1002可以发出单色的不同色调以传递不同的消息。例如,光环(在图10a中示为1002a)可以输出一种颜色的深色调以表示第一消息,光环(在图10b中示为1002b)可以输出一种颜色的中等色调以表示第二消息,和光环(在图10c中示为1002c)可以输出一种颜色的浅色调以表示第三消息。虽然示出了三种色调,但是本领域技术人员应当理解,可以实现一种颜色的多于三种或少于三种色调,这取决于要传递多少不同的消息。此外,尽管图10a至图10c的视觉指示符示例可以是静态的,但是,它们也可以看似以某种方式移动。例如,视觉指示符可以闪烁、频闪或围绕/沿着设备110的表面连续移动。

图11a和图11b示出了如本文所述的运动指示。如图所示,光环1002可以被配置为看起来好像光环1002的一部分围绕言语控制设备110移动。虽然未示出,但是还应当理解,光环1002和/或led1202/1204可以被配置为闪烁、频闪等。

图12示出了如本文所述的另一视觉指示。根据图11,静态视觉指示可以通过led1202/1204或某一其他类似的发光设备输出。led1202/1204可以位于言语控制设备110上的使得言语控制设备110的用户能够充分看到的任何位置。取决于要传递的消息,可以通过led1202/1204输出不同颜色。例如,led1202/1204可以发出绿光以指出消息正在被或将被发送到接收者设备。在另一示例中,led1202/1204可以发出蓝光以指出接收者设备正在检测或捕获口头音频。还应当理解,led1202/1204可以发出单色的不同色调以传递不同的消息。例如,led1202/1204可以输出一种颜色的深色调以表示第一消息,输出一种颜色的中等色调以表示第二消息,以及输出一种颜色的浅色调以表示第三消息。虽然描述了三种色调,但是本领域技术人员应当理解,可以实现一种颜色的多于三种或少于三种色调,这取决于要传递多少不同的消息。应当理解,光环1002和led1202/1204两者都可以在同一言语控制设备110上实现,并且可以使用所描述的指示(和其他指示)的不同变化。

虽然上面讨论了视觉指示符作为指示符的示例,但是也可以使用诸如音频指示符、触觉指示符等之类的其他指示符来指出传入消息、正在说出回复等。

图13是概念性地示出可以与所描述的系统一起使用的用户设备110(例如,如本文所述的言语控制设备110a和110b)的框图。图14是概念性地示出可以辅助asr处理、nlu处理或命令处理的诸如远程服务器120之类的远程设备的示例部件的框图。系统中可以包括多个这样的服务器120,例如用于执行asr的一个(多个)服务器120、用于执行nlu的一个(多个)服务器120等。在操作中,这些设备(或设备组)中的每一个设备都可以包括驻留在相应设备(110/120)上的计算机可读和计算机可执行指令,这将在下面进一步讨论。

这些设备(110/120)中的每一个都可以包括一个或多个控制器/处理器(1304/1404),每个控制器/处理器都可以包括用于处理数据和计算机可读指令的中央处理单元(cpu),以及用于存储相应设备的数据和指令的存储器(1306/1406)。存储器(1306/1406)可以分别包括易失性随机存取存储器(ram)、非易失性只读存储器(rom)、非易失性磁阻(mram)和/或其他类型的存储器。每个设备还都可以包括数据存储部件(1308/1408),用于存储数据和控制器/处理器可执行指令。每个数据存储部件都可以分别包括一种或多种非易失性存储类型,例如磁存储、光存储、固态存储等。每个设备还都可以通过相应的输入/输出设备接口(1302/1402)连接到可移动或外部非易失性存储器和/或存储设备(例如可移动存储卡、存储器密钥驱动器、网络存储设备等)。

用于操作每个设备(110/120)及其各种部件的计算机指令可由相应设备的控制器/处理器(1304/1404)执行,在运行时使用存储器(1306/1406)作为临时“工作”存储设备。设备的计算机指令可以以非暂时性的方式存储在非易失性存储器(1306/1406)、存储设备(1308/1408)或外部设备中。可选地,除了软件之外或替代软件,可执行指令中的一些或全部可被嵌入相应设备上的硬件或固件中。

每个设备(110/120)都包括输入/输出设备接口(1302/1402)。各种部件都可以通过输入/输出设备接口(1302/1402)连接,这将在下面进一步讨论。另外,每个设备(110/120)都可以包括地址/数据总线(1324/1424),用于在相应设备的部件之间传送数据。除了(或代替)通过总线(1324/1424)连接到其他部件,设备(110/120)内的每个部件也都可以直接连接到其他部件。

参考图13的设备110,设备110可以包括显示器1318,其可以包括被配置为接收有限触摸输入的触摸界面1019。或者设备110可以是“无头的”并且可以主要依赖于口头命令来进行输入。作为向用户指出已经打开另一设备之间的连接的方式,设备110可以配置有视觉指示符,例如led或类似部件(未示出),其可以改变颜色、闪光或以其他方式通过设备110提供视觉指示。设备110还可以包括输入/输出设备接口1302,其连接到各种部件,诸如音频输出部件,诸如扬声器101、有线耳机或无线耳机(未示出)或能够输出音频的其他部件。设备110还可以包括音频捕获部件。音频捕获部件可以是例如传声器103或传声器阵列、有线耳机或无线耳机(未示出)等。传声器103可以被配置为捕获音频。如果包括传声器阵列,则可以基于由阵列的不同传声器捕获的声音之间的时间和幅度差异,通过声学定位来确定到声音的原点的近似距离。设备110(使用传声器103、唤醒词检测模块220、asr模块250等)可以被配置为确定对应于检测到的音频数据的音频数据。设备110(使用输入/输出设备接口1002、天线1014等)还可以被配置为将音频数据发送到服务器120以进一步处理或使用诸如唤醒词检测模块220之类的内部部件来处理数据。

例如,通过天线1314,输入/输出设备接口1302可以通过无线局域网(wlan)(例如wifi)无线电、蓝牙和/或无线网络无线电,例如能够与无线通信网络(例如长期演进(lte)网络、wimax网络、3g网络等)通信的无线电,连接到一个或多个网络199。也可以支持有线连接,如以太网。通过网络199,言语处理系统可以分布在网络环境中。

设备110和/或服务器120可以包括asr模块250。设备110中的asr模块可以具有有限的或扩展的能力。asr模块250可以包括存储在asr模型存储部件252中的语言模型254,以及执行自动言语辨识过程的asr模块250。如果包括有限的言语辨识,则asr模块250可以被配置为识别有限数量的单词,例如由设备检测到的关键字,而扩展言语辨识可以被配置为辨识大得多的单词范围。

设备110和/或服务器120可以包括有限或扩展的nlu模块260。设备110中的nlu模块可以具有有限的或扩展的能力。nlu模块260可以包括名称实体辨识模块262、意图分类模块264和/或其他部件。nlu模块260还可以包括存储的知识库和/或实体库,或者那些存储设备可以分开放置。

设备110和/或服务器120还可以包括命令处理器290,命令处理器被配置为执行与如上所述的口头命令相关联的命令/功能。

设备110可以包括唤醒词检测模块220,其可以是单独的部件或可以包括在asr模块250中。唤醒词检测模块220接收音频信号并检测音频中特定表达(例如配置的关键字)的出现。这可以包括检测特定时间段内的频率变化,其中频率的变化会导致系统辨识为对应于关键字的特定音频签名。关键字检测可以包括分析各个方向音频信号,例如在适用的情况下经过波束成形后处理的那些信号。也可以使用关键字检测(也称为关键字定位)领域中已知的其他技术。在一些实施方案中,设备110可以被共同配置以识别其中检测到唤醒表达或者其中可能已经发生唤醒表达的一组方向音频信号。

唤醒词检测模块220接收捕获的音频并处理音频(例如,使用模型232)以确定音频是否对应于设备110和/或系统100可辨识的特定关键字。存储设备1308可以存储与关键字和功能有关的数据,以使唤醒词检测模块220能够执行上述算法和方法。在设备110被配置为由用户访问网络之前,可以基于已知信息预先配置本地存储的言语模型。例如,模型可以是特定于用户设备被运送到或被预测位于的区域的语言和/或口音,或者是特定于用户自己的语言和/或口音,基于用户配置文件等。在一个方面,可以使用来自另一设备的用户的言语或音频数据来预训练模型。例如,用户可以拥有用户通过口头命令操作的另一个用户设备,并且该言语数据可以与用户配置文件相关联。然后,在用户设备110被递送给用户或被配置为由用户访问网络之前,可以利用来自其他用户设备的言语数据并将其用于训练设备110的本地存储的言语模型。唤醒词检测模块220可以访问存储设备1308并使用音频比较、模式辨识、关键字定位、音频签名和/或其他音频处理技术,将捕获的音频与存储的模型和音频序列进行比较。

如上所述,可以在单个言语处理系统中使用多个设备。在这样的多设备系统中,每个设备均可以包括用于执行言语处理的不同方面的不同部件。多个设备可以包括重叠的部件。如图13和图14所示,设备110和服务器120的部件是示例性的,并可以作为独立设备放置,或者可以整体地或部分地包括作为较大设备或系统的部件。

为了创建输出言语,服务器120可以配置有文本到言语(“tts”)模块1410,其将文本数据变换为表示言语的音频数据。然后,可以将音频数据发送到设备110以便回放给用户,从而创建输出言语。tts模块1410可以包括用于将输入文本转换为言语的tts存储设备。例如,tts模块1410可以包括其自己的控制器/处理器和存储器,或者可以使用服务器120或其他设备的控制器/处理器和存储器。类似地,用于操作tts模块1410的指令可以位于tts模块1410内,服务器120的存储器和/或存储设备内,或者位于外部设备内。

可以处理输入到tts模块1410的文本以执行文本标准化、语言分析和语言韵律生成。在文本标准化期间,tts模块1410处理文本输入并生成标准文本,将诸如数字、缩写词(例如apt.、st.等)和符号($、%等)之类的东西转换为写出来的单词的等效文本。

在语言分析期间,tts模块1410分析标准化文本中的语言以生成对应于输入文本的语音单位序列。该过程可以称为语音转录。语音单位包括声音单位的符号表示,最终由系统100将其组合并输出为言语。为了进行言语合成的目的,可以使用各种声音单位来划分文本。tts模块1410可以基于音素(各个声音)、半音素、双连音(一个音素的后半部分与相邻音素的前半部分连接)、双音素(两个连续音素)、音节、单词、短语、句子或其他单位来处理言语。每个单词都可以映射到一个或多个语音单位。可以使用由系统100例如存储在tts存储设备中的语言词典来执行这种映射。由tts模块1410执行的语言分析还可以识别不同的语法成分,例如前缀、后缀、短语、标点符号、句法边界等。tts模块1410可以使用这样的语法成分来制作自然发声的音频波形输出。语言词典还可以包括字母到声音规则和可以用于发出tts模块1410可能会遇到的先前未识别的单词或字母组合的其他工具。通常,语言词典中包括的信息越多,言语输出的质量就越高。

基于语言分析,tts模块1410然后可以执行语言韵律生成,其中言语单位用期望的韵律特性(也称为声学特征)进行注释,这些韵律特性指出期望的语音单位在最终输出言语中如何发音。在该阶段期间,tts模块1410可以考虑并结合伴随文本输入的任何韵律注释。这种声学特征可以包括音高、能量、持续时间等。声学特征的应用可以基于tts模块1410可用的韵律模型。这种韵律模型表明在某些情况下特定的语音单位如何发音。例如,韵律模型可以考虑音素在音节中的位置、音节在单词中的位置、单词在句子、短语或段落中的位置、相邻的语音单位等。与语言词典一样,带有较多信息的韵律模型与带有较少信息的韵律模型相比,可以产生更高质量的言语输出。可以理解,当文本作品的较大部分可用于tts模块1410时,tts模块1410可以分配跨该部分变化的更强健且复杂的韵律特征,从而使该部分听起来更人性化,导致更高质量的音频输出。

tts模块1410可以生成符号语言表示,其可以包括用韵律特性注释的语音单位的序列。然后,可以将该符号语言表示转换为言语的音频波形,以输出到音频输出设备(例如传声器),并最终输出给用户。tts模块1410可以被配置为以有效的方式将输入文本转换为高质量的自然发声言语。这样的高质量言语可以被配置为尽可能地像人类说话者一样发声,或者可以被配置为听者可以理解而不试图模仿特定的人类话音。

tts模块1410可以使用一种或多种不同方法来执行言语合成。在下面进一步描述的称为单位选择的一种合成方法中,tts模块1410将符号语言表示与记录言语的数据库(例如话音语料库的数据库)进行匹配。tts模块1410将符号语言表示与数据库中的口头音频单位进行匹配。选择匹配单位并将它们连接在一起以形成言语输出。每个单位都包括对应于语音单位的音频波形,例如特定声音的短.wav文件,以及与.wav文件相关联的各种声学特征的描述(例如其音高、能量等),以及其他信息,例如语音单位出现在单词、句子或短语中的位置、相邻的语音单位等。通过使用单位数据库中的所有信息,tts模块1410可以将单位(例如,单位数据库中的)与输入文本进行匹配,以创建自然发声波形。单位数据库可以包括语音单位的多个示例,以向系统100提供用于将单位连接成言语的许多不同选项。单位选择的一个好处是,取决于数据库的大小,可以生成自然发声言语输出。如上所述,话音语料库的单位数据库越大,系统越有可能构建自然发声言语。

在称为参数合成的另一种合成方法中,诸如频率、音量和噪声之类的参数由tts模块1410改变,以产生人工言语波形输出。参数合成可以使用声学模型和各种统计技术来将符号语言表示与期望的输出言语参数进行匹配。参数合成可以包括在高处理速度下准确的能力,以及在没有与单位选择相关联的大型数据库的情况下处理言语的能力,但是通常还会产生可能与单位选择不匹配的输出言语质量。单位选择和参数技术可以单独执行或组合在一起和/或与其他合成技术组合以产生言语音频输出。

可以按如下方式来执行参数言语合成。tts模块1410可以包括声学模型或其他模型,其可以基于音频信号操纵,将符号语言表示转换为文本输入的合成声学波形。声学模型包括可用于将特定音频波形参数分配给输入语音单位和/或韵律注释的规则。规则可用于计算表示特定音频输出参数(诸如频率、音量等)对应于输入符号语言表示的部分的可能性的分数。

如图15所示,多个设备(120、110、110c-110f)可以包含系统100的部件,并且设备可以通过网络199连接。网络199可以包括本地或专用网络,或者可以包括诸如互联网之类的广域网。设备可以通过有线或无线连接来连接到网络199。例如,言语控制设备110、平板计算机110e、智能电话110c、智能手表110d和/或车辆110f可以通过无线服务提供商、wifi或蜂窝网络连接等连接到网络199。包括其他设备作为联网的支持设备,诸如服务器120、应用开发者设备或其他。支持设备可以通过有线连接或无线连接来连接到网络199。联网设备110可以使用一个或多个内置或连接的传声器103或音频捕获设备来捕获音频,处理由asr、nlu或同一设备或通过网络199连接的另一设备的其他部件(例如一个或多个服务器120的asr250、nlu260等)执行。

本文所公开的概念可以应用在多个不同的设备和计算机系统内,包括例如通用计算系统、言语处理系统和分布式计算环境。

本公开的上述各方面都意在是说明性的。选择它们是为了解释本公开的原理和应用,而并非意图为穷举性的或限制本公开。所公开的方面的许多修改和变化对于本领域技术人员来说可能是明显的。计算机和言语处理领域的普通技术人员应该认识到,这里描述的部件和处理步骤可以与其他部件或步骤或者部件或步骤的组合互换,并且仍然实现本公开的益处和优点。此外,对于本领域技术人员而言应明显的是,可以在没有本文公开的一些或全部特定细节和步骤的情况下实施本公开。

所公开的系统的各方面可以被实现为计算机方法或者被实现为诸如存储器设备或非暂时性计算机可读存储介质的制品。计算机可读存储介质可以是计算机可读的并且可以包括用于使计算机或其他设备执行在本公开中描述的过程的指令。计算机可读存储介质可以由易失性计算机存储器、非易失性计算机存储器、硬盘驱动器、固态存储器、闪存驱动器、可移除盘和/或其他介质来实现。另外,模块和引擎中的一个或多个的部件可以固件或硬件的形式来实现,诸如声学前端256,尤其包括模拟和/或数字滤波器(例如,作为固件被配置到数字信号处理器(dsp)的滤波器))。

前述内容也可以根据以下条款来理解。

1.一种计算机实现的方法,其包括:

从与第一用户配置文件相关联的第一言语控制设备接收包括第一唤醒词部分和第一命令部分的第一输入音频数据;

对所述第一命令部分执行言语处理,以确定表示第二用户配置文件的第二名称和第一消息内容的第一文本数据;

使用所述第一用户配置文件,确定与所述第二用户配置文件相关联的第二言语控制设备;

在第一时间,向所述第二言语控制设备发送对应于所述第一消息内容的第一输出音频数据;

在所述第一时间之后的第二时间,从所述第二言语控制设备接收包括第二唤醒词部分和第二命令部分的第二输入音频数据;

对所述第二命令部分执行言语处理,以确定表示与所述第一用户配置文件相关联的第一名称和第二消息内容的第二文本数据;

在所述第二时间之后的第三时间,向所述第一言语控制设备发送对应于所述第二消息内容的第二输出音频数据;

确定所述第一时间和所述第二时间在第一阈值时间段内;

在所述第一言语控制设备和所述第二言语控制设备之间建立消息传递连接;

向所述第一言语控制设备发送信号以发送另外的音频数据以进行处理而不检测唤醒词部分;

在所述第三时间之后的第四时间,从所述第一言语控制设备接收包括第三消息内容但没有唤醒词部分的第三输入音频数据;

对所述第三输入音频数据执行言语处理,以确定表示所述第三消息内容但不表示所述第二用户的所述第二名称的第三文本数据;以及

在所述第四时间之后的第五时间,向所述第二言语控制设备发送包括所述第三消息内容的第三输出音频数据。

2.根据条款1所述的计算机实现的方法,其还包括:

在所述第五时间之后的第六时间,从所述第二言语控制设备接收包括第四消息内容但不包括唤醒词部分或所述第一用户的所述第一名称的第四输入音频数据;

确定所述第六时间和所述第五时间在第二阈值时间段内;以及

响应于所述第六时间和所述第五时间在所述第二阈值时间段内,打开所述第一言语控制设备与所述第二言语控制设备之间的第一实时通信会话信道,所述第一实时通信会话信道涉及从所述第一言语控制设备和第二言语控制设备接收到的、要在没有进行言语处理的情况下进行交换的音频数据。

3.根据条款2所述的计算机实现的方法,其还包括:

当发生通信改变触发时关闭所述第一实时通信会话信道,所述通信改变触发是下列各项中的至少一项:没有从所述第一言语控制设备接收到音频数据的第三阈值时间段、检测到来自所述第一言语控制设备的唤醒词部分、从所述第一言语控制设备接收到非通信命令、或从所述第一言语控制设备接收到进一步的输入音频数据,所述进一步的输入音频数据包括指出应关闭所述第一实时通信会话信道的至少一部分。

4.根据条款1所述的计算机实现的方法,其还包括:

从所述第二言语控制设备接收图像数据;

确定所述图像数据包括人的表示;

基于所述图像数据中的所述表示的位置,确定所述人与所述第二言语控制设备的接近度;以及

在所述第一言语控制设备和所述第二言语控制设备之间建立第二消息传递连接,所述第二消息传递连接将口头音频的所需唤醒词部分从默认唤醒词改变为口头音频的接收者的姓名。

5.一种系统,其包括:

至少一个处理器;以及

存储器,包括指令,所述指令可操作以由所述至少一个处理器执行,以执行一组动作,从而将所述至少一个处理器配置为:

从第一设备接收输入音频数据,所述输入音频数据包括唤醒词部分和命令部分;

基于所述输入音频数据来确定文本数据;

基于所述文本数据,向第二设备发送第一消息;

确定来自所述第二设备的打算发往所述第一设备的第二消息;

确定从所述第一设备发送到所述第二设备的第一数量的消息和从所述第二设备发送到所述第一设备的第二数量的消息所经过的时间量;

确定所述时间量小于第一阈值时间段;以及

将数据发送到所述第一设备,所述数据使得所述第一设备将音频数据发送到所述至少一个处理器,而无需所述第一设备检测唤醒词。

6.根据条款5所述的系统,其中所述指令进一步将所述至少一个处理器配置为:

确定从所述第一设备发送到所述第二设备的第三数量的消息和从所述第二设备发送到所述第一设备的第四数量的消息所经过的第二时间量;

确定所述第二时间量小于第二阈值时间段;以及

在所述第一设备和所述第二设备之间建立实时通信会话,所述实时通信会话包括在所述第一设备和第二设备之间交换音频数据而不执行言语处理。

7.根据条款5所述的系统,其中所述指令进一步将所述至少一个处理器配置为:

访问与所述第一设备相关联的用户配置文件,

其中确定所述经过的时间量包括识别所述用户配置文件中与所述第二设备相关联的所述第一数量的消息。

8.根据条款5所述的系统,其中所述指令进一步将所述至少一个处理器配置为:

从所述第一设备接收第二输入音频数据;

确定所述第二输入音频数据包括用户名;

使用与所述第一设备相关联的用户配置文件,确定附属所述用户名的第三设备;

使用所述用户配置文件,基于所述第二输入音频数据包括所述用户名,确定应该发生实时通信会话;以及

在所述第一设备和所述第三设备之间建立实时通信会话。

9.根据条款8所述的系统,其中所述指令进一步将所述至少一个处理器配置为:

确定下列各项中的至少一项:没有接收到音频数据的第二阈值时间段、接收到包括唤醒词部分的音频数据、接收到包括非通信命令的音频数据、或接收到包括指出应该关闭所述实时通信会话的至少一部分的音频数据;以及

关闭所述实时通信会话。

10.根据条款8所述的系统,其中响应于第一人在所述第一设备的第一接近度内并且第二人在所述第三设备的第二接近度内,进一步促进发生所述实时通信会话。

11.根据条款5所述的系统,其中所述指令进一步将所述至少一个处理器配置为:

当所述第二设备正在捕获音频或文本中的至少一种时,使所述第一设备输出指示,所述指示是视觉的、可听的或触觉的中的至少一种。

12.根据条款5所述的系统,其中所述指令进一步将所述至少一个处理器配置为:

使所述第一设备输出合成言语,指出音频数据将实时发送到所述第二设备,并且唤醒词功能被禁用。

13.一种计算机实现的方法,其包括:

从第一设备接收输入音频数据,所述输入音频数据包括唤醒词部分和命令部分;

基于所述输入音频数据来确定文本数据;

基于所述文本数据,向第二设备发送第一消息;

确定来自所述第二设备的打算发往所述第一设备的第二消息;

确定从所述第一设备发送到所述第二设备的第一数量的消息和从所述第二设备发送到所述第一设备的第二数量的消息所经过的时间量;

确定所述时间量小于第一阈值时间段;以及

将数据发送到所述第一设备,所述数据使所述第一设备发送音频数据,而无需所述第一设备检测唤醒词。

14.根据条款13所述的计算机实现的方法,其还包括:

确定从所述第一设备发送到所述第二设备的第三数量的消息和从所述第二设备发送到所述第一设备的第四数量的消息所经过的第二时间量;

确定所述第二时间量小于第二阈值时间段;以及

在所述第一设备和所述第二设备之间建立实时通信会话,所述实时通信会话包括在所述第一设备和第二设备之间交换音频数据而不执行言语处理。

15.根据条款13所述的计算机实现的方法,其还包括:

访问与所述第一设备相关联的用户配置文件,

其中确定所述经过的时间量包括识别所述用户配置文件中与所述第二设备相关联的所述第一数量的消息。

16.根据条款13所述的计算机实现的方法,其还包括:

从所述第一设备接收第二输入音频数据;

确定所述第二输入音频数据包括用户名;

使用与所述第一设备相关联的用户配置文件,确定附属所述用户名的第三设备;

使用所述用户配置文件,基于所述第二输入音频数据包括所述用户名,确定应该发生实时通信会话;以及

在所述第一设备和所述第三设备之间建立实时通信会话。

17.根据条款16所述的计算机实现的方法,其还包括:

确定下列各项中的至少一项:没有接收到音频数据的第二阈值时间段、接收到包括唤醒词部分的音频数据、接收到包括非通信命令的音频数据、或接收到包括指出应该关闭所述实时通信会话的至少一部分的音频数据;以及

关闭所述实时通信会话。

18.根据条款16所述的计算机实现的方法,其中响应于第一人在所述第一设备的第一接近度内并且第二人在所述第三设备的第二接近度内,进一步促进发生所述实时通信会话。

19.根据条款13所述的计算机实现的方法,其还包括:

当所述第二设备正在捕获音频或文本中的至少一种时,使所述第一设备输出指示,所述指示是视觉的、可听的或触觉的中的至少一种。

20.根据条款13所述的计算机实现的方法,其还包括:

使所述第一设备输出合成言语,指出音频数据将实时发送到所述第二设备,并且唤醒词功能被禁用。

21.一种计算机实现的方法,其包括:

从第一言语控制设备接收第一输入音频数据;

对所述第一输入音频数据执行言语处理以确定文本数据;

确定所述文本数据的第一部分对应于消息接收者姓名;

确定所述文本数据的第二部分对应于第一消息内容;

向所述第一言语控制设备发送第一信号,所述第一信号使所述第一言语控制设备输出第一视觉指示,所述第一视觉指示表示正在发送对应于所述第一输入音频数据的消息;

使用与所述第一言语控制设备相关联的用户配置文件,确定与所述消息接收者的所述姓名相关联的第二言语控制设备;

在第一时间,向所述第二言语控制设备发送对应于所述第一消息内容的第一输出音频数据;

从所述第二言语控制设备接收指出所述第二言语控制设备正在检测言语的第二信号;以及

向所述第一言语控制设备并且在所述第一时间之后的第二时间,发送第三信号,所述第三信号使所述第一言语控制设备输出第二视觉指示,所述第二视觉指示表示所述第二言语控制设备正在检测言语。

22.根据条款21所述的计算机实现的方法,其中:

所述第一视觉指示包括第一颜色,和所述第二视觉指示包括所述第一颜色和第一运动,所述第一运动包括闪烁、频闪或沿所述第一言语控制设备的边缘的移动之一;以及

所述第一信号还使所述第一言语控制设备输出可听指示,所述可听指示表示正在发送对应于所述第一输入音频数据的所述消息。

23.根据条款21所述的计算机实现的方法,其还包括:

使所述第二言语控制设备输出询问所述第二言语控制设备的用户所述用户是否想要回复所述第一消息内容的音频;

从所述第二言语控制设备接收第二输入音频数据;

对所述第二输入音频数据执行asr以确定第二文本数据;以及

确定所述第二文本数据包括单词是。

24.根据条款21所述的计算机实现的方法,其中确定所述第二言语控制设备还包括:

从所述用户配置文件中与所述接收者姓名相关联的设备接收图像数据;以及

确定从所述第二言语控制设备接收到的所述图像数据包括人的表示。

25.一种系统,其包括:

至少一个处理器;以及

存储器,包括指令,所述指令可操作以由所述至少一个处理器执行,以执行一组动作,从而将所述至少一个处理器配置为:

从第一设备接收输入音频数据;

处理所述输入音频数据以确定消息内容;

向第二设备并且在第一时间,发送对应于所述消息内容的输出音频数据;

从所述第二设备并且在所述第一时间之后的第二时间,接收所述第二设备已检测到对所述输出音频数据的回复中的言语的指示;以及

在所述第二时间之后的第三时间,由所述第一设备输出视觉指示符,所述视觉指示符表示所述第二设备正在接收对所述消息内容的回复。

26.根据条款25所述的系统,其中所述视觉指示包括第一颜色或第一运动中的至少一种。

27.根据条款25所述的系统,其中所述指令进一步配置所述至少一个处理器以使用与所述第一设备相关联的用户配置文件来识别所述第二设备。

28.根据条款25所述的系统,其中所述指令进一步将所述至少一个处理器配置为:

使所述第二设备输出由文本到言语(tts)处理创建的音频数据;

从所述第二设备接收第二输入音频数据;

对所述第二输入音频数据执行asr以确定第二文本数据;

确定所述第二文本数据包括单词是;以及

基于确定所述第二文本数据包括所述单词是,确定所述言语是在对所述输出音频数据的回复中。

29.根据条款25所述的系统,其中所述指令进一步将所述至少一个处理器配置为:

在所述第二时间之后的所述第三时间,由所述第一设备输出可听指示符,所述可听指示符表示所述第二设备已检测到对所述输出音频数据的回复中的言语。

30.根据条款29所述的系统,其中使用文本到言语处理来生成所述可听指示符,所述文本到言语处理使用用户先前说出的言语。

31.根据条款25所述的系统,其中所述指令进一步将所述至少一个处理器配置为:

使所述第二设备输出由文本到言语(tts)处理创建的音频数据;

从所述第二设备接收第二输入音频数据;

使用基于话音的说话者id来确定所述第二输入音频数据对应于由所述消息内容的接收者说出的音频;以及

基于所述第二输入音频数据对应于所述消息内容的所述接收者所说出的音频,确定所述言语是在对所述输出音频数据的回复中。

32.根据条款25所述的系统,其中所述输入音频数据包括唤醒词部分和消息内容。

33.一种计算机实现的方法,其包括:

从第一设备接收输入音频数据;

处理所述输入音频数据以确定消息内容;

向第二设备并且在第一时间,发送对应于所述消息内容的输出音频数据;

从所述第二设备并且在所述第一时间之后的第二时间,接收所述第二设备已检测到对所述输出音频数据的回复中的言语的指示;以及

在所述第二时间之后的第三时间,由所述第一设备输出视觉指示符,所述视觉指示符表示所述第二设备正在接收对所述消息内容的回复。

34.根据条款33所述的计算机实现的方法,其中所述视觉指示包括第一颜色或第一运动中的至少一种。

35.根据条款34所述的计算机实现的方法,其还包括使用与所述第一设备相关联的用户配置文件来识别所述第二设备。

36.根据条款35所述的计算机实现的方法,其中所述指令进一步将所述至少一个处理器配置为:

使所述第二设备输出由文本到言语(tts)处理创建的音频数据;

从所述第二设备接收第二输入音频数据;

对所述第二输入音频数据执行asr以确定第二文本数据;

确定所述第二文本数据包括单词是,

其中基于确定所述第二文本数据包括所述单词是,确定所述言语是在对所述输出音频数据的回复中。

37.根据条款33所述的计算机实现的方法,其还包括:

在所述第二时间之后的所述第三时间,由所述第一设备输出可听指示符,所述可听指示符表示所述第二设备已检测到对所述输出音频数据的回复中的言语。

38.根据条款37所述的计算机实现的方法,其中使用文本到言语处理来生成所述可听指示符,所述文本到言语处理使用用户先前说出的言语。

39.根据条款33所述的计算机实现的方法,其还包括:

使所述第二设备输出由文本到言语(tts)处理创建的音频数据;

从所述第二设备接收第二输入音频数据;

使用基于话音的说话者id来确定所述第二输入音频数据对应于由所述消息内容的接收者说出的音频;以及

基于所述第二输入音频数据对应于所述消息内容的所述接收者所说出的音频,确定所述言语是在对所述输出音频数据的回复中。

40.根据条款33所述的计算机实现的方法,其中所述输入音频数据包括唤醒词部分和消息内容。

41.一种计算机实现的方法,其包括:

在第一时间段中:

从第一言语控制设备接收包括接收者信息的第一输入音频数据;

对所述第一输入音频数据执行言语处理,以确定第一文本数据,所述第一文本数据包括接收者姓名;

使用与所述第一言语控制设备相关联的用户配置文件,确定与所述接收者姓名相关联的第二言语控制设备;

使所述第二言语控制设备输出表示消息内容即将到来的指示;

在第二时间段中:

从所述第一言语控制设备接收包括所述消息内容的第二输入音频数据;

使用与所述第一言语控制设备相关联的用户配置文件,确定与所述接收者姓名相关联的第三言语控制设备;以及

使所述第三言语控制设备输出所述消息内容。

42.根据条款41所述的计算机实现的方法,其中所述指示包括第一颜色、具有第一运动的第一颜色或第一音频中的至少一种,所述第一运动包括闪烁、频闪或沿着所述第一言语控制设备边缘移动之一,所述第一音频是使用文本到言语处理生成的。

43.根据条款41所述的计算机实现的方法,其还包括:

执行自然语言处理以识别接收者姓名;以及

向所述第二言语控制设备发送信号,所述信号使所述第二言语控制设备输出所述指示,同时将对应于所述第二输入音频数据的第二文本数据发送到文本到言语部件。

44.根据条款41所述的计算机实现的方法,其中确定所述第二言语控制设备还包括:

从所述用户配置文件中与所述接收者姓名相关联的设备接收图像数据;以及

确定从所述第二言语控制设备接收到的图像数据包括人的表示。

45.一种系统,其包括:

至少一个处理器;以及

存储器,包括指令,所述指令可操作以由所述至少一个处理器执行,以执行一组动作,从而将所述至少一个处理器配置为:

从第一设备接收包括接收者信息的第一输入音频数据;

确定与所述接收者信息相关联的第二设备;

使所述第二设备输出表示消息内容即将到来的指示;

从所述第一设备接收包括所述消息内容的第二输入音频数据;以及

使所述第二设备输出所述消息内容。

46.根据条款45所述的系统,其中确定所述第二设备包括:

访问与所述第一设备相关联的用户配置文件;以及

识别所述用户配置文件中的所述接收者信息。

47.根据条款45所述的系统,其中确定所述第二设备包括:

确定所述接收者的位置;以及

基于所述第二设备接近所述接收者,从与接收者配置文件相关联的多个设备中选择所述第二设备。

48.根据条款45所述的系统,其中确定所述第二设备包括确定所述第二设备当前正在使用中。

49.根据条款45所述的系统,其中确定所述第二设备包括:

从包括所述第二设备的多个设备中确定第三设备当前正在使用中;以及

基于所述第二设备与所述第三设备的接近度来选择所述第二设备。

50.根据条款45所述的系统,其中所述指示包括颜色或具有运动的所述颜色。

51.根据条款50所述的系统,其中在从所述第一设备接收到所述第二输入音频数据的同时由所述第二设备输出所述指示。

52.根据条款55所述的系统,其中所述指示是可听指示,所述可听指示是使用文本到言语(tts)处理生成的。

53.一种计算机实现的方法,其包括:

从第一设备接收包括接收者信息的第一输入音频数据;

确定与所述接收者信息相关联的第二设备;

使所述第二设备输出表示消息内容即将到来的指示;

从所述第一设备接收包括消息内容的第二输入音频数据;以及

使所述第二设备输出所述消息内容。

54.根据条款53所述的计算机实现的方法,其中确定所述第二设备包括:

访问与所述第一设备相关联的用户配置文件;以及

识别所述用户配置文件中的所述接收者信息。

55.根据条款53所述的计算机实现的方法,其中确定所述第二设备包括:

确定所述接收者的位置;以及

基于所述第二设备接近所述接收者,从与接收者配置文件相关联的多个设备中选择所述第二设备。

56.根据条款53所述的计算机实现的方法,其中确定所述第二设备包括确定所述第二设备当前正在使用中。

57.根据条款53所述的计算机实现的方法,其中确定所述第二设备包括:

从包括所述第二设备的多个设备中确定第三设备当前正在使用中;以及

基于所述第二设备与所述第三设备的接近度来选择所述第二设备。

58.根据条款53所述的计算机实现的方法,其中所述指示包括颜色或具有运动的所述颜色。

59.根据条款58所述的计算机实现的方法,其中在从所述第一设备接收到所述第二输入音频数据的同时由所述第二设备输出所述指示。

60.根据条款53所述的计算机实现的方法,其中所述指示是可听指示,所述可听指示是使用文本到言语(tts)处理生成的。

如在本公开中所使用的,除非另有具体说明,否则术语“一”或“一个”可以包括一个或多个项目。此外,除非另有具体说明,否则措辞“基于”旨在表示“至少部分基于”。

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