CN113168336A - 基于实验参数适配功能电话的客户端应用 - Google Patents

基于实验参数适配功能电话的客户端应用 Download PDF

Info

Publication number
CN113168336A
CN113168336A CN201980043199.7A CN201980043199A CN113168336A CN 113168336 A CN113168336 A CN 113168336A CN 201980043199 A CN201980043199 A CN 201980043199A CN 113168336 A CN113168336 A CN 113168336A
Authority
CN
China
Prior art keywords
client application
server
assistant
request
parameters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980043199.7A
Other languages
English (en)
Inventor
迭戈·阿卡梅
亚伯拉罕·李
万宇杰
什丽娅·拉古纳坦
雷蒙德·卡里诺
季锋
沙施瓦特·拉尔达斯
尼克拉斯·韦斯特曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN113168336A publication Critical patent/CN113168336A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

一些实施方式涉及基于实验参数,在功能电话上适配客户端应用。这些实施方式中的一些涉及适配助理客户端应用,其中,助理客户端应用与远程助理组件交互,以经由功能电话的助理客户端应用提供自动助理功能。一些实施方式附加地或替代地涉及确定功能电话上的助理客户端应用的调用是对结合该调用接收的语音数据的转录的请求,还是对响应于语音数据的转录的助理响应(例如,包括基于转录以及除转录之外并且可选地缺少转录本身的助理内容)的请求。

Description

基于实验参数适配功能电话的客户端应用
背景技术
术语“功能电话(feature phone)”是用于描述缺乏现代智能手机的全部能力范围的一类手持计算机的返璞词。功能电话通常缺乏触摸屏,而是选择非触摸显示器(例如,背光LCD屏幕)和物理键盘和/或物理导航按钮。功能电话可以进一步包括低质量的麦克风、低质量的摄像头、用于Wi-Fi连接的硬件、用于宽带蜂窝网络连接(例如3G、4G和/或5G)的硬件和/或全球定位系统(GPS)组件。
已经为功能电话开发了使得能够下载和安装(和/或预加载)应用的移动操作系统。这些应用可以是例如可以与JavaScript一起使用的基于HTML 5的应用。这种操作系统的一个非限制性示例是由Kai OS Technologies Inc.开发的基于Linux的移动操作系统KaiOS。许多功能电话经由基于HTML 5的应用,使得用户能够体验与在现代智能手机上体验的功能相似的功能,但是具有较少的硬件资源使用(例如,较少的内存使用、较少的处理器使用等)。
尽管由功能电话操作系统执行的基于HTML 5的应用可以提供减少的硬件使用(与它们的现代智能手机相对物相比),但功能电话操作系统和/或功能电话的有限硬件资源也为有效实现各种应用带来了技术挑战。这类应用的一个示例在本文中被称为“助理客户端应用”(并且有时也称为“自动助理客户端应用”、“交互式个人助理应用”、“智能个人助理应用”、“个人语音助理应用”等)。
发明内容
本文公开的一些实施方式涉及基于实验参数来适配功能电话上的客户端应用。这些实施方式中的一些涉及适配助理客户端应用,其中,助理客户端应用与远程助理组件交互,以经由功能电话的助理客户端应用提供自动助理功能。在基于实验参数适配客户端应用时,客户端应用的新版本未安装在功能电话上。相反,为功能电话上的客户端应用提交了一个或多个参数,其中,所提交的参数,包括当客户端应用正执行时由客户端应用使用并且适配客户端应用本身的行为的客户端侧参数-和/或包括以服务器令牌形式的、由客户端应用发送到与客户端应用相关联的远程组件的服务器侧参数-并且使远程组件生成针对映射到服务器令牌定制的实验的响应内容,并且将所生成的响应内容发送到客户端应用以用于渲染。这可以允许功能电话以对用户更好的方式进行操作,无需更新客户端应用的版本或无需重新安装客户端应用。
在各种实施方式中,功能电话上的应用被配置为与远程配置服务器对接,以提取该应用的实验参数(如果有的话)。当应用正在功能电话的操作系统的前台中执行时,该应用可以与远程配置服务器对接。例如,作为应用的打开过程的一部分和/或在应用打开但处于空闲时,该应用可以与远程配置服务器对接。与远程配置服务器对接可以可选地响应于一个或多个标准(诸如自从与远程配置服务器的最新对接以来经过的阈值时间量、自从与远程配置服务器的最新对接以来发生应用打开的阈值量,和/或其他标准)而发生。这样的标准可以限制各种功能电话与远程配置服务器的交互的量,从而节省否则将由更大量的交互消耗的带宽和/或节省否则将由处理更大量的交互消耗的远程配置服务器上的资源。
在与远程配置服务器对接时,应用为该应用提取新的实验参数(如果有的话)。在各种实施方式中,应用可以向远程配置服务器提供用于该应用的当前提交的实验参数的指示(例如,如本文所述,经由发送当前提交的服务器令牌),并且远程配置服务器可以至少部分地基于当前提交的实验参数的指示,确定是否为该应用提供新的实验参数(和/或提供多个可用实验参数中的哪一个)。
当应用提取新的实验参数时,可以将新的实验参数写到功能电话的本地存储(例如,事务数据库),无需立即将所提取的实验参数实现为所提交的参数。换句话说,可以存储和排队新的实验参数以实现为所提交的参数,无需立即将其实现为所提交的参数。相反,应用可以监视提交条件的发生,并且仅响应于提交条件的发生,将排队的新实验参数提交为所提交的参数。通过在提交新的实验参数之前等待提交条件的发生,将不会鉴于新的实验参数而立即适配该应用。
等待提交条件的发生(而不是立即提交新的实验参数并适配应用)可以实现各种益处。例如,立即提交新的实验参数可能会带来缺点,诸如用户与应用之间的会话期间的延迟(例如,应用可以暂时“冻结”)可能导致一个或多个功能在会话期间被更改–导致错误和/或用户的混乱(由此导致会话被延长)等。另一方面,可以选择提交条件,以便减轻先前和/或其他缺点。
例如,提交条件可以是应用的关闭条件。关闭条件可以响应于(经由用户界面输入的)关闭应用的用户请求和/或关闭应用的操作系统请求。当提交条件为关闭条件时,可以在关闭应用之前(例如,在操作系统取消分配被分配给应用的内存之前),将新的实验参数指派为所提交的参数。将新实验参数指派为所提交的参数的任何延迟将不影响用户与助理应用之间的交互,因为这样的交互将停止,而不管作为关闭条件的结果如何。此外,在再次打开应用之前,所提交的参数将不被应用利用,直到应用被再次打开为止,从而防止应用的功能的任何会话中更改。
作为另一个示例,提交条件可以是打开条件。打开条件可以响应于(经由用户界面输入的)打开应用的用户请求和/或打开应用的操作系统请求。当提交条件为打开条件时,作为应用打开的一部分,可以将新的实验参数指定为所提交的参数,并且新的实验参数可以由应用利用该打开,或与该打开一起使用的以前提交的参数,以及由应用利用该应用的下次打开实现的所提交的新的实验参数来实现。使用这种方法,将新的实验参数指定为所提交的参数的任何延迟将不影响用户与助理应用之间仍在进行的交互,因为这种交互直到打开应用时才会发生。此外,在应用被打开时或当应用直到应用被再次打开时,将利用提交的新的实验参数,从而防止应用的功能的任何会话中更改。
在各种实施方式中,提交新的实验参数包括将新的实验参数写到用于所提交的参数的某个数据库位置(例如,将其从功能电话的ROM中的临时位置传递到指派给所提交的参数的位置)和/或将用于新的实验参数的临时“标志(flag)”或其他临时指示改变为所提交的“标志”或其他所提交的指示。
当新的实验参数被提交为所提交的参数时,应用在被打开时,将所提交的参数读取到操作系统的内存缓存中,以在打开应用时由应用使用。在各种实施方式中,所提交的参数包括将由应用包括在到与应用相关联的远程组件的请求中的一个或多个服务器令牌。例如,服务器令牌可以被包括在请求的头部中,也可以被序列化为请求的一部分。远程组件响应于请求而生成响应内容,并且可以进一步基于服务器令牌来生成响应内容。在各种实施方式中,响应内容是渐进式web应用内容,并且响应于该请求,该响应内容被发送到生成请求的应用以由该应用渲染。
服务器令牌可以包括服务器侧实验标识符,远程组件可以将该服务器侧实验标识符映射到一个或多个实验以在生成响应内容时在服务器上触发。例如,服务器侧实验可以包括指示应当生成什么类型的响应内容的实验(例如,响应应当包括:文本、可听输出、文本和可听输出、文本和图像、包括在请求中的音频数据的转录或基于转录的响应等),从而指示响应于该请求,由远程组件生成并且发送到应用以用于渲染的响应内容。服务器令牌可以进一步可选地包括一个或多个客户端侧实验标识符,该客户端侧实验标识符识别作为提交的新实验参数(例如,下述所述的客户端标志值)的结果,由客户端应用实现的一个或多个客户端侧实验。这可以使得响应于提供响应内容而接收到的反馈(例如,用户的明确反馈或从用户对响应内容的反应推断出的反馈)被映射到服务器侧实验和客户端侧实验的组合。通过在多个功能电话之间,对于各个服务器侧和客户端侧实验对进行实验,可以利用反馈来确定服务器侧和客户端侧实验对,从而导致提高(根据一个或多个评估量度)应用的性能。然后,可以对大量功能电话的应用实现这样的提高性能的实验对,和/或将其合并到应用的未来版本中,从而导致提高了许多功能电话上的应用的性能。应注意到,服务器侧令牌的传送使得执行和跟踪服务器侧实验,无需账户标识符或其他“登录”信息对于应用是已知的。换句话说,即使当对应的应用正在以“注销”模式被利用时(例如,不要求提供账户标识符或其他“登录”信息)时,服务器侧实验也可以实现服务器侧实验过程以及基于反馈的适配。
在各种实施方式中,所提交的参数附加地或可替代地包括更改客户端应用的一个或多个方面的一个或多个客户端标志值。换句话说,尽管服务器令牌使得从远程组件返回的内容针对相应的实验定制,但是客户端标志值更改了客户端应用本身的一个或多个方面。在一些实施方式中,客户端标志值中的一个或多个可以更改如何渲染从远程组件返回的接收内容。例如,客户端标志值可以指示用于所接收的内容的背景颜色、用于渲染所接收的内容中的文本的颜色、用于所接收的内容中的文本的字体、用于所接收的内容中的文本的大小等。在一些实施方式中,客户端标志值中的一个或多个可以附加地或替代地更改发送到远程组件的请求的格式和/或请求中包括什么内容。在一些实施方式中,客户端标志值中的一个或多个可以附加地或替代地更改客户端应用的其他方面,诸如多久一次(和/或在什么条件)与配置服务器对接以检查更新的实验配置、多久一次(和/或在什么条件下)其将某些数据提供给远程组件(例如,提供给远程组件以用于将某些话音到文本处理偏向联系人数据中包括的联系人)等。
鉴于功能电话的各种约束和/或功能电话的操作系统,本文所述的技术的上述和/或其他实施方式可以实现应用的实验测试。作为一个非限制性示例,功能电话操作系统通常使得在任何给定时间,有限数量(例如,一个)的应用在操作系统的前台中执行,从而阻止任何应用在操作系统的后台运行(或仅使得非常有限数量的应用在后台运行)。上文所述的实施方式可以实现功能电话的客户端应用的适配,在无需应用在后台运行的同时执行适配的情况下,并且使用减轻用户感知的应用的延迟和/或中断(并因此延长)用户与应用的会话的技术来实现实验。
本文公开的一些实施方式附加地或替代地涉及确定调用功能电话上的助理客户端应用是对结合该调用所接收的语音数据的转录的请求,还是对响应于语音数据的转录的助理响应(例如,包括基于转录以及除转录之外并且可选地缺少转录本身的助理内容)的请求。在那些实施方式中的一些中,可以响应于在功能电话处接收到的某些用户界面输入(诸如长按某个硬件按钮(例如,按压该硬件按钮长于1秒、2秒、3秒或其他阈值)),来调用(即,使得打开)助理客户端应用。在那些实施方式的一些版本中,功能电话的用户(例如,在长按期间和/或之后)提供口头输入以及某些用户界面输入,并且客户端应用向远程助理组件发送请求,该请求包括捕获口头输入并且经由助理应用的麦克风检测到的音频数据。该请求进一步包括当接收到调用用户界面输入时,正在功能电话上执行的另一个应用的文本输入字段是否是活动的指示。例如,如果光标或显示器的当前活动部分的其他指示符被聚焦在文本输入字段上,则可以认为该文本输入字段是活动的。光标(或其他指示符)可以可选地由另一应用渲染,并且可以由用户经由功能电话的导航硬件按钮控制。
在各种实施方式中,当请求包括另一个应用的文本输入字段是活动的指示时,远程助理组件执行音频数据的话音到文本处理,以生成口头话语的一个或多个转录,并且响应于该请求,发送转录中的至少一个转录(例如,根据话音到文本处理确定为最可能的转录)。然后,可以将转录中的至少一个转录自动地合并到另一个应用的文本输入字段中(例如,通过助理客户端应用,通过与另一个应用的API或其他通信协议对接)–或可以被呈现为用户的可选择的选项,并且如果肯定地选择(例如,经由功能电话的硬件按钮),则将其合并到另一个应用的文本输入字段中。
在各种实施方式中,当请求包括另一个应用的文本输入字段不活动(或没有其他应用活动)的指示时,远程助理组件执行音频数据的话音到文本处理以生成口头话语的一个或多个转录,然后确定响应于该转录但包括除了转录以外的信息(并且可选地缺少转录)的助理响应。例如,远程助理组件可以执行转录的自然语言理解(NLU),以确定意图和用于该意图的参数、基于该意图和参数生成结构化的请求、基于结构化的请求生成响应助理内容,并且发送助理响应内容以用于由助理应用渲染。
以这些和其他方式,可以响应于相同的用户界面输入来调用助理应用,但是助理应用对口头输入的响应可以至少部分地基于当调用助理应用时,输入文本字段是否是活动的。例如,假设消息传递应用在功能电话上执行并显示所接收的消息“want to go to thelake tomorrow(明天想去湖边)”,并显示“reply(回复)”文本输入字段。在第一场景中,如果回复输入字段是活动的,并且用户调用助理并说“what’s the weather for tomorrow(明天天气如何)”,则远程助理组件可以处理相应的音频数据以生成“what’s the weatherfor tomorrow”的转录,并且可以将该转录自动地合并到回复输入字段中(或甚至作为回复自动地发送或被呈现以用于可选择的合并到回复输入字段中。在第二种场景中,如果回复输入字段不是活动的,并且用户调用助理并说“what’s the weather for tomorrow”,则远程助理组件可以:处理对应的音频数据以生成“what’s the weather for tomorrow”的转录;基于该转录,确定意图“weather forecast(天气预报)”以及参数“tomorrow(明天)”和“current location of the user(用户的当前位置)”;响应于包括意图和参数的结构化请求来接收“tomorrow”的天气预报;并且发送天气预报以用于经由助理应用渲染。如上所述,在两种场景中对相同音频数据的不同处理可以视包括文本输入字段是否是活动的不同的指示的对应的请求而定。以这些和其他方式,可以简化功能电话上的用户界面输入,因为在两种场景中都可以利用相同的硬件元件输入来调用助理应用,并且在两种场景中都可以利用相同的简洁口头输入来实现取决于文本输入字段是否是活动状态的(并且用户无需说要求更多带宽以发送和/或更大处理能力以处理的更长的短语,诸如“transcribe thefollowing___(转录以下___)”或“give me an assistant response for thefollowing____(给我以下____的助理响应)”)的不同结果。
与实验参数有关的实施方式可以结合确定是否转录口头输入,或者基于口头输入生成助理响应的实施方式来实现,这些实施方式包括基于文本输入字段是否是活动状态的和/或基于其他考虑(例如,另一个应用的屏幕快照、另一个应用的上下文、一般上下文(例如,一天中的时间、一周中的一天、功能电话的位置等))做出这样的确定的实施方式。例如,可以配置服务器令牌,指示远程自动助理组件是仅返回最佳转录,还是在至少一些情况下返回多个转录。例如,服务器令牌可以被映射到实验,在该实验中,当最佳转录与小于第一置信水平相关联时,并且第二最佳转录与大于第二置信水平相关联(例如,第一转录不太自信,第二最好转录几乎自信一样)时,返回两个最佳转录。而且,例如,客户端侧标志值可以被映射到实验,在该实验中,客户端设备在请求中包括另一个应用的上下文和/或一般上下文的指示,并且服务器侧令牌可以被映射到在确定请求是转录请求还是对助理内容的请求时,考虑另一个应用的上下文和一般上下文的指示的实验。作为又一个示例,客户端侧标志值可以指示返回的转录是自动地合并到活动文本输入字段中,还是首先被呈现为可选元素,该可选元素当被选择时,然后被合并到活动文本输入字段中。
本文公开的一些实施方式附加地或可替代地涉及使得功能电话的助理应用(或其他应用)能够更频繁和/或更动态地更新的各种技术。这样的技术可以将助理应用的更新与操作系统更新分离和/或与操作系统提供者的延迟审查分离。利用这样的技术可以实现更快提供更新的特征和/或更快地提供纠正错误和/或安全问题的更新。
在那些实施方式中的一些中,助理应用(或其他应用)被分离成外壳组件和核心组件。外壳组件可以使用适当的核心内容和下载/管理用于核心组件的更新的核心内容,管理核心组件的加载。外壳组件还可以包括敏感字符串,诸如API密钥。外壳组件可以为核心组件加载核心内容,核心内容可以包括Java脚本代码(或其他面向对象的编程语言代码)、本地化消息和/或诸如超文本标记语言代码和/或编码样式表的资产。核心组件在被加载时,可以有效地操作为渐进式web应用,在执行各种功能时依赖于加载的Java脚本代码、本地化消息和/或资产。另一方面,外壳组件的功能是有限的,并且它不能单独地执行助理应用的至少用户对接功能。相反,外壳组件的功能被约束为例如以下一项或多项:管理核心组件的加载、下载/管理用于核心组件的更新的核心内容和/或其他有限功能。
在各种实施方式中,外壳组件将是初始地响应于打开助理应用的请求而打开的唯一组件。在那些实施方式中,外壳组件可以检查用于存在于挂起缓存中的任何更新的核心内容的挂起缓存。响应于外壳组件从远程更新服务器先前检索更新的核心内容,更新的核心内容可以存在于挂起缓存中。如果更新的核心内容存在于挂起缓存中,则外壳组件可以将更新的核心内容传递到实时缓存中,从挂起缓存中可选地删除更新的核心内容,并且删除实时缓存中的所有或一些当前核心内容。然后,外壳组件可以使用传递到实时缓存的更新的核心内容,从实时缓存中加载核心组件。如果更新的核心内容不存在于挂起缓存中(例如,以前已经被传递到实时缓存中,并且自检索以来没有新的更新内容),则外壳组件可以使用存在于实时缓存中的核心内容来加载核心组件。存在于实时缓存中的核心内容可以是在打开助理应用的以前的迭代中,以前从挂起缓存传递到实时缓存中的核心内容。利用挂起缓存和实时高速缓存两者可以确保在加载核心组件时利用了适当的核心内容(例如,确保没有混合来自两个不同版本的核心内容)。
外壳组件可以响应于满足一个或多个条件,与更新服务器对接以检查新的更新的核心内容,并且如果存在这样的更新的核心内容,则检索更新的核心内容并且将其存储在挂起缓存中。例如,外壳组件可以响应于核心组件的加载和/或响应于确定自从上一次对接以检查新的更新的核心内容以来经过了至少阈值持续时间,来对接以检查新的更新的核心内容。在与更新服务器对接时,外壳组件可以可选地提供核心内容的当前版本的指示,并且仅当更新服务器指示有较新的兼容版本可用时,才检索更新的核心内容。
如上所述,核心组件不会立即实现任何检索到的更新的核心内容。相反,将检索到的更新的核心内容存储在单独的挂起缓存中,以防止其实现,直到继打开助理应用之后为止,此后,外壳应用将所检索到的更新的核心内容传递到实时缓存,然后为核心组件加载更新的核心内容。这可以实现各种益处,诸如防止无意中同时利用核心内容的两个冲突版本和/或防止在用户与应用之间的会话期间,加载核心组件的新版本期间的延迟。
可以结合与实验参数有关的实施方式和/或结合确定是转录口头输入还是基于口头输入生成助理响应的实施方式来实现与(例如,使用外壳和核心分裂技术)更新应用有关的实施方式。例如,实验参数仍然可以用于核心内容的各种版本,并且令牌可以由核心组件管理。作为另一个示例,生成要部署为对各种功能电话的更新的核心内容的新版本时可以利用来自先前实验的评估量度。作为又一个示例,核心内容的更新版本可以指示远程自动助理组件仅返回最佳转录,还是在至少一些情况下返回多个转录。作为又一个示例,核心内容的更新版本可以指示返回的转录被自动地合并到活动文本输入字段中,还是首先被呈现为可选元素,在该可选元素被选择时,然后被合并到活动文本输入字段中。
将上述描述提供为本文描述的各种实施方式的概述。在下文中,更详细地描述这些和其他实施方式。
在一些实施方式中,提供一种方法,该方法由助理客户端应用执行,所述助理客户端应用由功能电话的一个或多个处理器执行,并且该方法包括:当所述助理客户端应用正在所述功能电话的操作系统的前台中执行时,与远程配置服务器对接以提取用于所述助理客户端应用的实验参数。所提取的实验参数可以包括:一个或多个客户端标志值,所述一个或多个客户端标志值在被提交时,更改所述助理客户端应用的一个或多个方面,以及一个或多个服务器令牌,所述一个或多个服务器令牌在被提交时,由所述助理客户端应用合并到到远程助理服务器的请求中,以使所述远程助理服务器生成针对所述一个或多个服务器令牌定制的响应。该方法进一步包括将所提取的实验参数写到所述功能电话的本地存储。将所提取的实验参数写到所述本地存储使所提取的实验参数排队,以用于响应于所述助理客户端应用的提交条件的发生而实现为所提交的参数,无需立即将所提取的实验参数实现为所提交的参数。该方法进一步包括检测所述提交条件的发生;并且响应于检测到所述提交条件的发生:将所提取的实验参数提交为所述助理客户端应用的所提交的参数。该方法进一步包括继将所提取的实验参数提交为所提交的参数之后并且当关闭所述助理客户端应用时:接收打开所述助理客户端应用的请求;并且响应于接收到所述请求,打开所述助理客户端应用。打开所述助理客户端应用包括将所提交的参数的所述一个或多个客户端标志值和所述一个或多个服务器令牌读取到所述助理客户端应用的内存缓存中。将所述一个或多个客户端标志值读取到所述内存缓存中导致所述助理客户端应用的一个或多个方面被更改,以及将所述一个或多个服务器令牌读取到所述内存缓存中导致由所述助理客户端应用将所述一个或多个服务器令牌包括在到所述远程助理服务器的请求中。
本文公开的技术的这些和其他实施方式可以可选地包括下述特征中的一个或多个。
在一些实施方式中,功能电话包括显示器,但缺少任何触摸屏。
在一些实施方式中,所述提交条件是关闭条件。所述关闭条件可以响应于用户请求或操作系统请求,以关闭所述助理客户端应用。在那些实施方式的一些中,将所提取的实验参数提交为所提交的参数包括:在接收到所述用户请求或所述操作系统请求之后但在关闭所述助理客户端应用之前,阻止所述助理客户端应用,直到将所提取的实验参数提交为所提交的参数为止。在那些实施方式的一些版本中,该方法进一步包括检测所提取的实验参数被提交为所提交的参数;以及响应于所述关闭条件并且在检测到提交了所提取的实验参数之后,关闭所述助理客户端应用。关闭所述助理客户端应用可以包括使所述操作系统取消分配被分配给所述助理客户端应用的所有内存。
在一些实施方式中,所述提交条件是打开条件。所述打开条件可以响应于打开所述助理客户端应用的先前请求,其中,所述先前请求先于打开所述助理客户端应用的请求并且在将所提取的实验参数写到所述本地存储器之后。
在一些实施方式中,与所述远程配置服务器对接以提取用于所述助理客户端应用的实验参数是响应于确定自所述功能电话的助理客户端应用上一次与所述远程配置服务器对接以提取所述实验参数以来已经过去了至少阈值时间量。
在一些实施方式中,该方法进一步包括:在打开所述助理客户端应用之后,接收经由所述客户端设备的至少一个麦克风检测到的语音数据;向所述远程助理服务器发送包括所述语音数据和所提交的参数的一个或多个服务器令牌的请求;以及从所述远程助理服务器接收响应于所述请求要渲染的内容,其中,该内容是针对所提交的参数的一个或多个服务器令牌定制的。在那些实施方式的一些中,该方法进一步包括基于所提交的参数的所述客户端标志值中的至少一个客户端标志值来渲染所述内容。例如,所述内容可以包括文本,并且基于所提交的参数的所述客户端标志值中的至少一个客户端标志值来渲染所述内容可以包括:以由所述客户端标志值中的至少一个客户端标志值指定的颜色来渲染所述文本,以由所述客户端标志值中的至少一个客户端标志值指定的字体来渲染所述文本,和/或利用由所述客户端标志值中的至少一个客户端标志值指定的大小来渲染所述文本。在一些实施方式中,所述一个或多个服务器令牌影响所述内容是所述语音数据的转录还是助理响应,其中,所述语音数据的转录要被合并到当检测到所述语音数据时是活动的文本输入字段中,所述助理响应是响应于所述语音数据的转录,但是缺少所述语音数据的转录。在一些实施方式中,所述一个或多个服务器令牌影响所述内容包括:所述语音数据的单个最佳转录,还是所述语音数据的单个最佳转录,以及所述语音数据的一个或多个附加候选转录。在一些实施方式中,所述内容至少包括所述语音数据的第一转录和所述语音数据的第二转录,以及所述本地标志的至少一个本地标志指示同时显示所述第一转录和所述第二转录,还是顺序地显示所述第一转录和所述第二转录。
在一些实施方式中,所述内容是被提供为渐进式web应用的助理响应。
在一些实施方式中,所述一个或多个本地标志包括至少一个本地标志,该至少一个本地标志更改与远程配置服务器的下一次对接将在何时发生以检查用于所述助理客户端应用的新实验参数。
在一些实施方式中,所述一个或多个本地标志包括至少一个本地标志,所述至少一个本地标志更改在功能电话上本地存储的一个或多个联系人将在何时被发送到所述远程助理服务器以供所述远程助理服务器用在将某些话音到文本处理偏向所述一个或多个联系人。
在一些实施方式中,提供一种方法,该方法由客户端应用执行,所述客户端应用由功能电话的一个或多个处理器执行,该方法包括:接收打开所述客户端应用的请求;并且响应于接收到所述请求,打开所述客户端应用。打开所述客户端应用包括将当前提交的参数读取到所述客户端应用的内存缓存中,其中,所述一个或多个当前提交的参数包括:导致所述客户端应用的一个或多个方面被更改的客户端标志值,以及一个或多个服务器令牌,所述一个或多个服务器令牌由所述客户端应用包括在到远程服务器的请求中并且使所述远程服务器生成基于所述一个或多个服务器令牌的对所述请求的响应。该方法进一步包括当所述客户端应用响应于所述打开而正在所述操作系统的前台中执行时,确定与远程配置服务器对接以提取用于所述客户端应用的实验参数。该方法进一步包括与所述远程配置服务器对接以提取用于所述客户端应用的更新的实验参数。该方法进一步包括将所提取的更新的实验参数写到所述功能电话的本地存储。将所述更新的提取的实验参数写到所述本地存储使更新的所提取的实验参数排队,以响应于所述客户端应用的提交条件的发生来替换当前提交的参数而提交,而不立即替换当前提交的参数来提交所更新的所提取的实验参数。该方法进一步包括检测所述提交条件的发生;以及响应于检测到所述提交条件的发生:提交所提取的更新的实验参数,包括用所提取的更新的实验参数替换当前提交的参数中的一个或多个。
技术的这些和其他实施方式可以包括下述特征中的一个或多个。
在一些实施方式中,所述提交条件是关闭条件。在那些实施方式的一些中,该方法进一步包括接收打开所述客户端应用的新请求,所述新请求是提交所提取的更新的实验参数之后,打开所述客户端应用的第一请求;以及响应于接收到所述新请求,打开所述客户端应用,其中,打开所述客户端应用包括将一个或多个所提取的更新的实验参数读取到所述客户端应用的内存缓存中。
在一些实施方式中,所述客户端应用是助理客户端应用。
在一些实施方式中,所述一个或多个所提取的更新的实验参数包括不透明服务器令牌,所述不透明服务器令牌被合并到从所述客户端应用到远程服务器的请求中。所述不透明服务器令牌包括服务器侧实验标识符,所述服务器侧实验标识符在所述远程服务器处被映射到一个或多个实验以响应于识别所述不透明服务器令牌中的所述服务器侧实验标识符而在所述远程服务器上触发。在那些实施方式的一些中,不透明服务器令牌被认为是不透明的,因为它不直接识别要触发的实验,而是只能利用远程服务器上可用的数据被映射到实验(从而防止仅基于包含在功能手机处的数据直接映射到实验)。
在一些实施方式中,提供一种方法,该方法至少部分地由客户端应用执行,所述客户端应用由一个或多个处理器执行,并且包括:在所述功能电话上执行的客户端应用的实例期间,与远程更新服务器对接以提取用于所述客户端应用的核心组件的更新的核心内容。该方法进一步包括在所述实例期间,将更新的核心内容存储在所述功能电话的挂起缓存中,而不将更新的核心内容存储在实时缓存中,也不通过执行的客户端应用实现所述更新的核心内容。该方法进一步包括响应于关闭条件的发生而关闭所述客户端应用,其中,关闭所述客户端应用终止所述实例。该方法进一步包括继将所述更新的核心内容存储在所述挂起缓存中之后,以及继关闭所述客户端应用之后:接收打开所述客户端应用的请求。所述请求是在终止所述实例之后,打开所述客户端应用的第一请求(但不一定是终止后的任何类型的第一请求)。该方法进一步包括响应于接收到所述请求,执行所述客户端应用的外壳组件。该方法进一步包括通过所述客户端应用的外壳组件,并且先于响应于所述请求加载所述客户端应用的核心组件:确定所述挂起缓存包括所述更新的核心内容。该方法进一步包括响应于确定所述挂起缓存包括所述更新的核心内容:将所述更新的核心内容传递到所述功能电话的实时缓存。该方法进一步包括通过所述外壳组件并且在将所述更新的核心内容传递到所述实时缓存之后:使用所述更新的核心内容,从所述实时缓存中加载所述核心组件。该方法进一步包括在生成响应于在所述功能电话处接收的一个或多个用户界面输入的响应内容时,使用加载有所述更新的核心内容的所述核心组件。
技术的这些和其他实施方式可以包括下述特征中的一个或多个。
在一些实施方式中,所述更新的核心内容包括面向对象的编程语言代码、标记语言代码和/或样式表语言。
在一些实施方式中,所述更新的核心内容包括Java脚本代码、超文本标记语言代码和/或级联样式表。
在一些实施方式中,由所述客户端应用的外壳组件执行与所述远程更新服务器对接以提取所述更新的核心内容。在那些实施方式的一些版本中,在由所述外壳组件加载使用先前核心内容的核心组件之后,由所述外壳组件执行与所述远程更新服务器对接以提取所述更新的核心内容,其中,加载有所述先前核心内容的核心组件被用在所述实例中。在那些版本的一些中,在所述功能电话上执行的所述客户端应用的实例响应于打开所述客户端应用的先前请求。在那些版本中,该方法进一步包括响应于所述先前请求:通过所述客户端应用的外壳组件并且先于响应于所述先前请求加载所述客户端应用的核心组件:确定所述挂起缓存不包括任何更新的核心内容;以及响应于确定所述挂起缓存不包括任何更新的核心内容:基于先前内容被包括在所述实时缓存中,使用所述先前内容来加载所述核心组件。在那些实施方式的一些附加或替代版本中,响应于确定自所述外壳组件上一次与所述远程更新服务器对接以来已经经过了至少阈值时间量,执行与所述远程更新服务器对接以提取所述更新的核心内容。
另外,一些实施方式包括一个或多个计算设备的一个或多个处理器(例如,功能电话的处理器),其中,一个或多个处理器可操作以执行存储在相关联的存储器中的指令,并且其中,指令被配置成使得执行本文所述的方法中的任何一个。一些实施方式还包括一个或多个非暂时性计算机可读存储介质,其存储可由一个或多个处理器执行以执行本文所述的方法中的任何一个的计算机指令。
应当意识到,本文更详细描述的前述概念和附加概念的所有组合被设想为是本文公开的主题的一部分。例如,出现在本公开的结尾处的所要求保护的主题的所有组合被设想为是本文公开的主题的一部分。
附图说明
图1是其中可以实现本文公开的实施方式的示例环境的框图。
图2描绘了示出通过功能电话的应用来实现实验配置参数的示例方法的流程图。
图3描绘了示出由与应用相关联的远程服务器,基于包括在由应用发送的服务器令牌中的实验参数来生成响应的示例方法的流程图。
图4描绘了示出响应于来自助理客户端应用的包括语音数据的请求,确定是传送转录内容还是响应内容的示例的流程图。
图5A、5B、5C1、5C2和5C3示出了用户与功能电话的助理客户端应用的交互以获得口头输入的转录以用于合并在另一客户端应用的文本输入字段中的各种示例。
图6A、6B和6C示出了用户与功能电话的助理客户端应用交互以响应于口头输入而获得响应助理内容的示例。
图7描绘了示出通过功能电话的应用来实现应用更新的示例性方法的流程图。
图8示出了计算设备的示例架构。
具体实施方式
现在转到图1,示出了可以实现本文公开的技术的示例环境。示例环境包括一个或多个功能电话101。每个功能电话101选择性地执行自动助理客户端应用106(在本文中被称为“助理客户端应用106”或“助理客户端app 106”)的相应实例。一个或多个基于云的自动助理组件119(在本文中也可以被统称为自动助理的“远程助理服务器”)可以在经由通常用114表示的一个或多个一个或多个局域网和/或广域网(例如互联网)可通信地耦合到功能电话101的一个或多个计算系统上实现。尽管本文使用单数形式的“服务器”指代“远程助理服务器”,但应当理解的是,在许多实施方式中,“远程助理服务器”是服务器和/或其他计算系统的集合,诸如使用云基础设施实现的高性能服务器的一个或多个集群。
在各种实施方式中,助理客户端应用106的实例,借助于其与一个或多个基于云的自动助理组件119的交互,可以形成从用户的角度来看,就像是自动助理120的逻辑实例,用户可以参与该自动助理120进行人机对话、获得语音转录等。在图1中以虚线示出了这种自动助理120的一个实例。因此,应当理解的是,参与在相应功能电话101上执行的助理客户端应用106进行交互的每个用户实际上可以参与自动助理120的他或她自己的逻辑实例进行交互。为了简洁和简化起见,如本文中用作“服务”特定用户的术语“自动助理”将是指在由用户操作的功能电话101上执行的助理客户端应用106和(可以在多个助理客户端应用106当中共享的)一个或多个基于云的自动助理组件119的组合。
一个或多个功能电话101可以包括与智能手机相似但缺乏现代智能手机的全部能力范围的各种计算设备。在各种实施方式中,一个或多个功能电话101可以缺少触摸屏,而是包括非触摸显示器(例如,背光LCD屏幕)和物理键盘和/或物理导航按钮。在各种实施方式中,功能电话101中的一个或多个功能电话101可以附加地或可替代地包括专门为功能电话设计的移动操作系统104。一些这样的操作系统可以限制安装在其上的应用在后台运行,或者会严重限制可以在后台运行的应用的量(例如,仅允许一个应用在后台运行,或者仅如果满足了严格限制的内存使用极限才允许应用在后台运行)。此外,一些这样的操作系统可以附加或替代地要求应用利用某些标记语言,诸如可以与JavaScript一起使用的HTML 5。
在一些实施方式中,功能电话101可以配备有具有一个或多个视野的一个或多个视觉传感器102,尽管这不是必需的。视觉传感器102可以采用各种形式,诸如低质量的数码相机。一个或多个视觉传感器102可以由例如图像捕获模块109使用,以捕获部署了功能电话101的环境的图像帧(静止图像或视频)。然后,将这些图像帧发送给基于云的助理组件119,作为请求的一部分,基于图像帧由基于云的助理组件119生成助理内容,并且将助理内容返回给助理客户端应用106以用于渲染。例如,捕获叶子的图像可以被发送到基于云的助理组件119,并且返回助理内容,该助理内容识别了叶子源自的植物以及关于植物的附加细节。该请求可以可选地包括如本文所述的所提交的配置的服务器令牌,以及针对被映射到服务器令牌的实验定制的助理内容。附加地或可替代地,助理内容可以由助理客户端应用106以由所提交的配置的客户端标志值所指示的方式渲染和/或以由所提交的配置的客户端标志值所指示的方式生成请求。
另外,在许多实施方式中,功能电话101配备有一个或多个麦克风103。麦克风103可以检测音频数据,诸如捕获功能电话101的用户的口头话语、环境声音等的音频数据。如本文所述,可以包括所检测到的音频数据(可选地被压缩)以及助理客户端应用106对基于云的助理组件119的请求。例如,可以经由结合请求,在助理客户端应用106和基于云的助理组件119之间建立的流式传输信道,将检测到的音频数据作为流式传输音频数据提供给基于云的助理组件119。也如本文中所述,在一些情况下,基于云的助理组件119可以通过执行话音到文本处理(例如,经由下文所述的话音到文本组件117)来转录音频数据,并且将所转录的文本提供给助理客户端应用106,以由助理客户端应用106合并到在调用助理客户端应用106时是活动的另一个应用的文本输入字段中。
也如本文所述,在一些其他情况下,基于云的助理组件119可以通过执行话音到文本处理来转录音频数据、基于该转录生成助理请求、基于助理请求获得响应助理内容,并且将响应助理内容提供给助理客户端应用106,以由助理客户端应用106渲染。与发送到基于云的助理组件119的音频数据相关联的请求可以可选地包括如本文所述的所提交的配置的服务器令牌,以及使响应该请求返回的转录或助理内容针对被映射到服务器令牌的实验定制。附加地或可替代地,助理内容或转录可以由助理客户端应用106以所提交的配置的客户端标志值所指示的方式渲染,和/或以客户端标志值所指示的方式来生成请求。
操作基于云的自动助理组件119的功能电话101和计算设备中的每一个可以包括用于存储数据和软件应用的一个或多个存储器、用于访问数据并执行应用的一个或多个处理器,以及促进通过网络的通信的其他组件。由基于云的自动助理组件119执行的操作可以分布在多个计算机系统上。基于云的自动助理组件119可以被实现为例如在通过网络彼此耦合的一个或多个位置中的一台或多台计算机上运行的计算机程序。
如上所述,在各种实施方式中,功能电话101可以操作自动助理客户端应用106或自动助理120的“客户端部分”。在各种实施方式中,自动助理客户端应用106可以包括应用打开/调用模块107、话音捕获模块108、图像捕获模块109、请求模块110、输出模块111、实验提取模块1121和实验提交模块1122
应用打开/调用模块107可以响应于在功能电话106处接收到的某些用户界面输入,诸如长按某个硬件按钮(例如,按压多功能硬件按钮长于1秒、2秒、3秒或其他阈值),使得助理客户端应用106被调用(例如,在操作系统104的前台被打开并执行)。如本文所述,操作系统104可以防止助理客户端应用106在后台运行(经常或在某些条件下),并且当应用打开模块107打开助理应用107时,从完全关闭的状态打开助理应用107。当应用打开模块107打开应用时,可以将当前提交的参数从提交参数数据结构113读取到操作系统104的存储器105中的内存缓存。应用打开模块107可以将当前民提交的参数直接写到内存缓存,或在写当前提交的参数时与操作系统104对接。提交参数数据结构113可以是功能电话101上可用的本地存储的一部分,并且存储要由助理客户端应用106使用的当前民提交的参数。如本文中更详细所述,存储在提交参数数据结构113中的当前提交的参数可以包括响应于由实验提取模块1121提取以及响应于实验提交模块1122响应于提交条件的发生而提交那些实验配置参数而存储的实验配置参数。
可以使用硬件和软件的任何组合来实现的话音捕获模块108可以与诸如麦克风103或其他压力传感器的硬件对接以捕获与经由麦克风103捕获的用户的话语和/或其他可听声音相对应的音频数据。此外,话音捕获模块108可以将音频数据(例如,音频数据流和/或音频数据的录音)连同请求一起提供给基于云的助理组件119,以便进一步处理(例如,以提供音频数据的转录或响应于音频数据的助理响应)。
可以使用硬件或软件的任何组合来实现的图像捕获模块109可以被配置为与视觉传感器102对接以捕获与视觉传感器102的视野相对应的一个或多个图像帧(例如,数字照片)。此外,图像捕获模块109可以将图像帧连同请求一起提供给基于云的助理组件119,以进一步处理(例如,以用于提供助理响应)。
可以使用硬件和软件的任何组合来实现的请求模块110生成请求并将请求发送到基于云的助理组件119。该请求可以包括由话音捕获模块108捕获的音频数据、由图像捕获模块109捕获的图像数据,和/或其他数据(诸如上下文数据、指示当调用助理客户端应用106时,另一个应用的文本输入字段是否是活动的数据等)。此外,请求可以包括用于当前提交的实验配置的服务器令牌。例如,请求模块110可以从存储器105的内存缓存中获得服务器令牌,并且可以将服务器令牌包括在请求的头部中,或者以序列化的形式包括为请求的一部分。如本文所述,服务器令牌使得基于云的助理组件119生成对该请求的响应,其中,该响应是对服务器令牌定制的。例如,基于云的助理组件119可以从请求中解包服务器令牌、确定被映射到服务器令牌的服务器侧实验,并且使用所确定的服务器侧实验生成响应。
可以使用硬件和软件的任何组合来实现的输出模块111从基于云的助理组件119接收响应内容(其中,响应内容是响应于由请求模块110发送的请求)。输出模块111进一步输出响应内容。在一些实施方式中,响应内容是助理内容,并且输出模块111使得助理内容经由助理客户端应用渲染。助理内容可以包括要经由功能电话101的显示器可视地渲染的文本、图像和/或其他内容;要经由功能电话的扬声器渲染的音频数据(例如,文本的文本到话音版本),和/或要经由显示器、扬声器和/或其他用户界面输出设备渲染的其他内容。在一些其他实施方式中,响应内容是要被合并到另一应用的文本输入字段中的转录。在那些其他实施方式中的一些中,输出模块111可以与另一个应用对接并且使得转录被自动地合并到另一个应用的文本输入字段中,并且使另一个应用与合并的转录一起被执行和/或带到前台。在那些其他实施方式的一些中,输出模块111可以首先使得转录经由助理客户端应用106被(可视和/或可听地)渲染,并且仅在响应于渲染,接收到肯定用户界面输入时,才使转录被合并到另一应用的文本输入字段中。在其他实施方式中,响应内容可以是不一定由助理应用渲染的助理内容。例如,响应于包括与口头话语“call Geraldine(呼叫杰拉尔丁)”相对应的语音数据的请求,可以提供响应助理内容,使得输出模块111与功能电话101的电话拨号应用对接以使电话拨号应用拨打名为Geraldine的联系人。另外,例如,响应于包括与口头话语“turn on the living room lights(打开客厅灯)”相对应的语音数据的请求,可以将响应助理内容提供给控制“living room lights(客厅灯)”的第三方系统以使灯被“turn on(打开)”,并且可以提供响应助理内容,使得输出模块111确认灯被打开(例如,可听内容“OK,living room lights are turned on(好的,打开了客厅灯)”)。
可以使用硬件和软件的任何组合来实现的实验提取模块1121可以与远程配置组件140(在本文中也称为“远程配置服务器”,其可以包括一个或多个服务器)对接,以提取用于助理客户端应用106的更新实验参数(如果有的话)。当助理客户端应用106正在功能电话101的操作系统104的前台中执行时,实验提取模块1121可以与远程配置组件140对接。例如,作为应用的打开过程的一部分和/或在应用打开但空闲时,实验提取模块1121可以与远程配置组件140对接。与远程配置组件140对接可以可选地响应于一个或多个标准(诸如自从与远程配置服务器的最新对接以来经过阈值时间量、自从与远程配置组件140的最新对接以来发生打开助理客户端应用106的阈值数量,和/或其他标准)而发生。这样的标准可以限制各种功能电话与远程配置服务器交互的量,从而节省否则将由更大量的交互消耗的带宽和/或节省否则将由处理更大量的交互消耗的远程配置组件140处的资源。
在与远程配置组件140交互时,实验提取模块1121为应用提取新的实验参数(如果有的话)。在各种实施方式中,实验提取模块1121可以向远程配置组件140提供用于助理客户端应用的当前提交的实验参数的指示(例如,经由发送在内存缓存中加载的当前提交的服务器令牌),以及远程配置组件140可以至少部分地基于当前提交的实验参数的指示来确定是否为助理客户端应用106提供新的实验参数(和/或提供多个可用实验参数中的哪一个)。应当注意到,在各种实施方式中,远程配置组件140试图向不同的功能电话提供不同的实验配置和/或试图仅向一定比例和/或一定量的功能电话提供实验配置。以这些和其他方式,远程配置组件可以选择和限制何时提供实验配置,并且那些组件和/或其他组件可以在将各种实验配置参数推出到附加电话的附加助理客户端应用,或者将其合并为助理客户端应用的新版本的一部分之前,对各种实验配置参数执行分析。例如,远程配置组件140可以从多个可用的实验配置142A-N中选择实验配置,以提供给实验提取模块1121。可用的实验配置142A-N中的每个可用的实验配置142A-N可以是唯一服务器令牌和客户端标志值对。
当通过实验提取模块1121提取新实验参数时,可以将新实验参数写到功能电话101的本地存储(例如,事务数据库),而不立即将所提取的实验参数实现为所提交的参数。换句话说,可以存储和排队新的实验参数以实现为所提交的参数,而不立即将其实现为所提交的参数。相反,实验提交模块1122可以监视提交条件的发生,并且仅响应于提交条件的发生而将排队的新实验参数提交为所提交的参数。在一些实施方式中,将排队的新实验参数提交为所提交的参数包括将它们存储在提交参数数据结构113中(从而替换任何冲突的参数)和/或以其他方式将新实验参数标记为提交。通过在提交新的实验参数之前等待提交条件的发生,将不会鉴于新的实验参数立即适配助理客户端应用106。
在一些实施方式中,提交条件可以是助理客户端应用106的关闭条件。关闭条件可以响应于(经由用户界面输入的)关闭应用的用户请求和/或关闭应用的操作系统请求。当提交条件是关闭条件时,实验提交模块1122可以在关闭助理客户端应用106之前(例如,在由操作系统取消分配被分配给应用的内存之前),将新的实验参数指派为所提交的参数。在一些其他实施方式中,提交条件可以是打开条件。打开条件可以响应于(经用户界面输入的)打开应用的用户请求和/或打开应用的操作系统请求。当提交条件是打开条件时,实验提交模块1122可以将新的实验参数指派为所提交的参数,作为打开助理客户端应用106的一部分,并且由应用打开模块107利用该打开(例如,通过将所提交的参数读取到内存缓存中)-或者由应用打开模块107利用该打开使用的以前所提交的参数,以及由应用打开模块107利用下次打开助理客户端应用106实现的所提交的新实验参数来实现。
当新的实验参数由实验提交模块1122提交为所提交的参数时,应用打开模块107当打开助理客户端应用106时,将所提交的参数读取到存储器105的内存缓存中,以在打开应用时,由助理客户端应用106使用。在各种实施方式中,所提交的参数包括要由请求模块110包括在到基于云的助理组件119的请求中的一个或多个服务器令牌。基于云的助理组件119响应于该请求,生成响应内容,并且可以进一步基于服务器令牌生成响应内容。在各种实施方式中,响应内容是渐进式web应用内容,并且响应于该请求,将其发送到助理客户端应用106以由输出模块111渲染。
服务器令牌可以包括服务器侧实验标识符,基于云的助理组件119可以将其映射到一个或多个实验以触发生成响应内容。例如,服务器侧实验可以包括指示应当生成哪种类型的响应内容、在生成响应内容时应当与(下文所述的)哪些第三方计算服务130(如果有的话)交互、应当将来自搜索模块150的多少搜索结果提供为响应内容等的实验。服务器令牌可以进一步可选地包括一个或多个客户端侧实验标识符,该客户端侧实验标识符识别作为所提交的实验参数(例如,客户端标志值)的结果,由助理客户端应用106实现的一个或多个客户端侧实验。这可以使得将响应于提供响应内容而接收到的反馈(例如,用户的明确反馈或从用户对响应内容的反应推断出的反馈)映射到服务器侧实验和客户端侧实验的组合。通过在多个功能电话之间对各种服务器侧和客户端侧实验对进行实验,可以利用反馈来确定导致应用的性能提高(根据一个或多个评估量度)的服务器侧和客户端侧实验对。然后,可以对大量功能电话的应用实现这样的提高性能的实验对,和/或将其合并到应用的未来版本中,从而使得提高了许多功能电话上的应用的性能。应注意到,服务器侧令牌的发送使得执行和跟踪服务器侧实验,无需账户标识符或其他“登录”信息对应用是已知的。换句话说,即使对应的正用正在以“注销”模式被利用(例如,不要求提供账户标识符或其他“登录”信息)时,服务器侧实验也可以实现服务器侧实验过程以及基于反馈的适配。
在各种实施方式中,所提交的参数附加地或可替代地包括更改助理客户端应用106的一个或多个方面的一个或多个客户端标志值。换句话说,尽管服务器令牌使得从远程组件返回的内容针对相应的实验定制,但是客户端标志值更改了助理客户端应用106本身的一个或多个方面。在一些实施方式中,客户端标志值中的一个或多个客户端标志值可以更改输出模块111如何渲染从基于云的助理组件119返回的接收内容。在一些实施方式中,客户端标志值中的一个或多个客户端标志值可以附加地或替代地更改由请求模块110生成的请求的格式和/或请求中包括什么内容。在一些实施方式中,客户端标志值中的一个或多个客户端标志值可以附加地或替代地更改客户端应用的其他方面,诸如实验提取模块1121多久一次与远程配置服务器对接以检查更新的实验配置、多久一次(和/或在什么条件下)其将某些数据提供给远程组件(例如,提供给基于云的助理组件119以用于由STT模块117将某些话音到文本处理偏向联系人数据中包括的联系人)等。
基于云的助理组件119包括话音到文本(“STT”)模块117和文本到话音(“TTS”)模块116。STT模块117可以处理与请求一起接收的音频数据,并将其中包括的口头输入转换为文本(从而创建口头输入的转录)。在各种实施方式中,STT模块117可以访问各种STT模型,可选地,每个STT模型都符合不同的语言和/或方言,并且可以基于请求模块111的对应请求所包括的数据来选择那些模型的子集(例如,一个子集)。例如,请求模块111可以在请求中包括用于功能电话101的设置的优选语言和/或用于功能电话的多种候选语言,以及在执行STT处理中使用的那些模型。在一些实施方式中,STT模块117可以将话音的音频录音转换为一个或多个音素,并且然后将一个或多个音素转换为一个或多个候选转录。附加地或替代地,在一些实施方式中,STT模块117可以采用状态解码图。在一些实施方式中,STT模块117可以生成用户的话语的多个候选文本解释。候选转录中的每个候选转录可以与指示转录正确的置信度的对应分数相关联。这样的分数可以基于例如音素和候选转录之间的匹配度。在各种实施方式中,当来自助理客户端应用106的请求包括它是转录请求的指示时,STT模块117可以将请求的音频数据转换为文本,并将该文本提供给响应模块124以响应于该请求来提供。在那些实施方式中,可以省略自然语言处理器、TTS模块116和/或自然语言生成器的处理。
TTS模块116可以被配置为将文本数据(例如,由自动助理120制定的自然语言响应)转换为计算机生成的话音输出。在一些实施方式中,TTS模块116可以将计算机生成的话音输出提供给功能电话101,以例如使用一个或多个扬声器来直接输出。
基于云的自动助理组件119还包括意图匹配器135,该意图匹配器135可以被配置为基于随请求提供的音频数据的转录、随请求提供的上下文数据和/或基于其他信号,诸如传感器信号、在线信号(例如,从Web服务获得的数据)等来确定请求的意图。在一些实施方式中,意图匹配器135可以包括自然语言处理器122。自然语言处理器122可以被配置为处理所转录的音频数据、经由功能电话101,由用户生成的键入的自然语言输入等,以及可以生成(例如,以文本形式的)注释输出以供自动助理120的一个或多个其他组件使用。例如,自然语言处理器122可以处理由用户经由功能电话101的一个或多个用户界面输入设备生成的自然语言自由形式的输入。所生成的注释输出包括自然语言输入的一个或多个注释以及自然语言输入的术语中的一个或多个(例如,全部)术语。
在一些实施方式中,自然语言处理器122被配置成标识和注释自然语言输入中的各种类型的语法信息。例如,自然语言处理器122可以包括形态模块,该形态模块可以将单个单词分离为词素和/或例如利用它们的类别注释这些词素。自然语言处理器122还可以包括话音标注器的一部分,该话音标注器被配置成利用术语的语法角色来注释该术语。例如,话音标注器的该部分可以用其话音的一部分,诸如“名词”、“动词”、“形容词”、“代词”等标记每个术语。此外,例如,在一些实施方式中,自然语言处理器122可以附加地和/或可替代地包括被配置为确定自然语言输入中的术语之间的句法关系的依赖性语法剖析程式(未图示)。例如,依赖性语法剖析程式可以确定哪些术语修改了其他术语、句子的主语和动词等等(例如,解析树),并且可以对这种依赖性进行注释。
在一些实施方式中,自然语言处理器122可以附加地和/或可替代地包括实体标注器(未图示),该实体标注器被配置为注释一个或多个片段中的实体引用,诸如对人的引用(包括例如文学人物、名人、公众人物等)、组织、位置(真实的和虚构的)等等。在一些实施方式中,关于实体的数据可以被存储在一个或多个数据库中,诸如存储在知识图(未图示)中。在一些实施方式中,知识图可以包括代表已知实体的节点(并且在一些情况下,实体属性),以及连接节点并且代表实体之间的关系的边。例如,“香蕉”节点可以(例如,作为子节点)连接到“水果”节点,“水果”节点继而可以(例如,作为子节点)连接到“农产品”和/或“食物”节点。作为另一个示例,称为“Hypothetical café(假想咖啡馆)”的餐厅可以由节点表示,该节点还包括诸如其地址、所供应食物的类型、营业时间、联系信息等属性。在一些实施方式中,“Hypothetical Cafe”节点可以通过边(例如,代表子与父关系)连接到一个或多个其他节点,诸如“餐厅”节点、“企业”节点、代表餐厅所位于的城市和/或州的节点等等。
自然语言处理器122的实体标注器可以以高粒度级(例如,以使得能够标识对诸如人的实体类别的所有引用)和/或低粒度级(例如,以使得能够标识对诸如特定人的特定实体的所有引用)注释对实体的引用。实体标注器可以依赖于自然语言输入的内容来解析特定实体和/或可以可选地与知识图或其他实体数据库进行通信以解析特定实体。
在一些实施方式中,自然语言处理器122可以附加地和/或可替代地包括被配置成基于一个或多个场境提示来对同一实体的引用进行分组或“聚类”的共指关系解析器(未图示)。例如,可以利用共指关系解析器来将术语“there(那里)”解析为自然语言输入“Iliked Hypothetical Cafe last time we ate there(我喜欢我们上一次去用过餐的Hypothetical Cafe)”中的“Hypothetical Cafe”。
在一些实施方式中,自然语言处理器122的一个或多个组件可以依赖于来自自然语言处理器122的一个或多个其他组件的注释。例如,在一些实施方式中,在注释对特定实体的所有提及时,命名的实体标注器可以依赖于来自于共指关系解析器和/或依赖性语法剖析程式的注释。同时,例如,在一些实施方式中,在聚类对同一实体的引用时,共指关系解析器可能依赖于来自依赖性语法剖析程式的注释。在一些实施方式中,在处理特定自然语言输入时,自然语言处理器122的一个或多个组件可以使用相关的先前输入和/或特定自然语言输入之外的其他相关数据来确定一个或多个注释。
意图匹配器135可以使用各种技术来例如基于来自自然语言处理器122的输出(可以包括自然语言输入的注释和术语)以确定用户的意图。在一些实施方式中,意图匹配器135有权访问一个或多个数据库(未图示),该数据库包括例如语法之间的多个映射和响应动作(或更一般地,意图)。在许多情况下,这些语法可能会随着时间的流逝而被选择和/或学习,并且可能代表用户的最常见意图。例如,一个语法“play<artist>(播放<艺术家>)”可以被映射到调用响应动作的意图,该响应动作使得在由用户操作的功能电话101上播放<artist>的音乐。另一语法“[weather|forecast]today(今日[天气|预报])”可以是可以与诸如“what’s the weather today(今天的天气如何)”和“what’s the forecast fortoday?(今天的天气预报是什么?)”的用户查询匹配的。
在一些实施方式中,映射到请求中包括的服务器令牌的实验可以指示意图匹配器135进行意图匹配。例如,在一些实施方式中,实验可以指示意图匹配器135应当使用“更宽松的”意图匹配规则。例如,意图匹配器135可以确定语法“<artist>”被映射到推断的意图,该推断的意图使得在用户操作的功能电话101上播放<artist>的音乐-即使术语“play”(或类似术语)可能会丢失。因此,按照由服务器令牌指示的实验,意图匹配器135可以响应于仅包括艺术家姓名或仅包括歌曲名称,并且省略“play”或任何其他“动作”术语的口头话语,使得在功能电话上播放艺术家的歌曲。
除了或代替语法,在一些实施方式中,意图匹配器135可以单独地或结合一个或多个语法,采用一个或多个所训练的机器学习模型。这些所训练的机器学习模型也可以被存储在一个或多个数据库中,并且可以被训练以识别意图,例如,通过将指示用户话语和/或任何检测到的用户提供的视觉提示的数据嵌入到简化的维度空间中,并且然后例如使用诸如欧几里得距离、余弦相似度等的技术来确定哪些其他嵌入(以及因此,意图)最接近。
如在“play<artist>”示例性语法中所看到的,一些语法具有可以用插槽(Slot)值(或“参数”)填充的插槽(例如,<artist>)。插槽值可以以各种方式确定。用户通常会主动提供插槽值。例如,对于语法“Order me a<topping>pizza(为我订购<topping>比萨)”,用户可能会说短语“order me a sausage pizza(给我订购一份香肠比萨)”,在这种情况下,自动地填充槽<topping>。附加地或替代地,如果用户调用包括要用插槽值填充的插槽的语法,而无需用户主动提供插槽值,则自动助理120可以向用户征求这些插槽值(例如,“whattype of crust do you want on your pizza?(您想要哪种比萨饼皮?)”)。
在一些实施方式中,自动助理120可以充当用户与一个或多个第三方计算服务130(或“第三方代理”或“代理”)之间的中介。这些第三方计算服务130可以是接收输入并提供响应输出的独立软件过程。一些第三方计算服务可以采取第三方应用的形式,该第三方应用可以在或可以不在与操作例如基于云的自动助理组件119的计算系统分开的计算系统上操作。可以由意图匹配器135识别的一种用户意图将是参与三方计算服务130。例如,自动助理120可以向应用编程接口(“API”)提供对用于控制智能设备的服务的访问。用户可以调用自动助理120并且提供诸如“I’d like to turn the heating on(我想打开暖气)”的命令。意图匹配器135可以将该命令映射到触发自动助理120参与第三方服务交互的语法,从而使得打开用户的暖气。第三方服务可以为自动助理120提供需要填充的最小插槽列表,以便实现(或“解析”)打开暖气的命令。在该示例中,插槽可以包括暖气要被设定到的温度以及要打开暖气的持续时间。自动助理120可以生成征求用于插槽的参数的自然语言输出并且(经由功能电话101)将其提供给用户。在一些实施方式中,可以由对应于包括在对应请求中的服务器令牌的实验参数来指示参与哪些第三方计算服务130。
响应模块124可以被配置为接收由意图匹配器135输出的预测/估计意图以及相关联的插槽值(无论是由用户主动提供还是从用户征求)并且履行(或“解析”)意图。在各种实施方式中,用户意图的履行(或“解析”)可以使得例如通过响应模块124,生成/获得各种履行信息(也称为“响应”信息或“解析信息”)。如下文所述,在一些实施方式中,可以将履行信息提供给自然语言生成器126,其可以基于该履行信息来生成自然语言输出。
履行(或“解析”)信息可以采取各种形式,因为可以以多种方式履行(或“解析”)意图。假设用户请求纯粹的信息,诸如“Where were the outdoor shots of'The Shining'filmed?(“The Shining”的外景拍摄在哪里?)”。可以例如通过意图匹配器1S6,将用户的意图确定为搜索查询。可以将搜索查询的意图和内容提供给响应模块124,其如图1所示,响应模块124可以与被配置成为搜索响应信息的文档的语料库和/或其他数据源(例如,知识图等)的一个或多个搜索模块150通信。响应引擎124可以向搜索模块150提供指示搜索查询的数据(例如,查询的文本、降维嵌入等)。搜索模块150可以提供响应信息,诸如GPS坐标,或者其他更明确的信息,诸如“Timberline Lodge,Mt.Hood,Oregon(俄勒冈州胡德山的森林界线小屋)”。该响应信息可以形成由响应模块124生成的履行信息的一部分。
附加地或可替代地,响应模块124可以被配置成例如从意图匹配器135接收用户的意图和由用户提供或使用其他手段确定的任何插槽值(例如,用户的GPS坐标、用户偏好设置等)并且触发响应动作。响应动作可以包括例如订购商品/服务、启动计时器、设置提醒、发起电话呼叫、播放媒体、发送消息等。在一些这样的实施方式中,履行信息可以包括与履行、确认响应(在一些情况下可以从预先确定的响应中选择)等相关联的插槽值。
自然语言生成器126可以被配置成基于从各个源获得的数据来生成和/或选择自然语言输出(例如,被设计为模仿人类话音的单词/短语)。在一些实施方式中,自然语言生成器126可以被配置成将与履行意图相关联的履行信息接收为输入,并且基于该履行信息来生成自然语言输出。附加地或可替代地,自然语言生成器126可以从诸如第三方应用的其他源接收信息(例如,所需的插槽),其可以用来组成用于该用户的自然语言输出。
尽管为了简单起见,在图1中未示出,但应当注意到,如本文所述,在各种实施方式中,助理客户端应用106可以被分离为外壳组件和核心组件。此外,在那些实施方式中的一些中,外壳组件可以与远程更新服务器(可选地,与远程配置组件分离)对接,以选择性地提取更新的核心内容以加载核心组件。此外,在那些实施方式中的一些中,外壳组件可以在管理提取的核心内容和/或为核实组件加载适当的核心内容时,使用本地挂起更新缓存和实时更新缓存,如本文所述。
图2是示出了通过功能电话的应用,实现实验配置参数的示例性方法200的流程图。为了方便起见,参考执行该操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如功能电话101的助理客户端应用106。此外,尽管以特定顺序示出了方法200的操作,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框202,系统接收打开助理客户端应用的请求。例如,该请求可以是在功能电话上接收到的某些用户界面输入。例如,某些用户界面输入可以是长按硬件按钮,并且功能电话的操作系统可以响应于检测到长按硬件按钮而提供打开助理客户端应用的请求。
在可选框204A,系统为助理客户端应用提交任何已检索但尚未提交的参数。框204A被示为可选的,因为在方法200的各种实施方式中,可以实现框204A或框204B中的仅一个。此外,在方法200的每次迭代中可以不实现框204A和框204B中的一个,如本文所述。当实现框204A时,系统可以提交在方法200先前迭代中,在框224中检索到但尚未实现为所提交的参数的参数。在各种实施方式中,提交参数包括将参数写到用于所提交的参数的某个数据库位置和/或将用于参数实验参数的临时“标志”或其他临时指示改变为提交“标志”或其他提交指示。
系统进行到框206和220。系统可以并行和/或顺序地执行框206和220(和/或相应的下游框)。在框220,系统确定是否应当从远程配置服务器请求新的实验配置参数。在一些实施方式中,系统基于自请求新实验配置参数以来经过的阈值时间量和/或基于一个或多个其他标准来确定请求新实验配置参数。在其他实施方式中,可以省略框220,并且结合每次打开助理客户端应用来请求新的实验配置参数。
如果在框220,系统确定不请求新的实验配置参数,则系统进行到框222,并且不请求新的实验配置参数。如果在框220,系统确定请求新的实验配置参数,则系统进行到框224并且与远程配置服务器对接以提取新的实验参数(如果有的话)。在各种实施方式中,系统可以(例如,如本文所述,经由传送当前提交的服务器令牌)向远程配置服务器提供用于应用的当前提交的实验参数的指示,并且远程配置服务器可以至少部分地基于当前提交的实验参数的指示,确定是否为该应用提供新的实验参数(和/或提供多个可用实验参数中的哪一个)。
在框226,系统本地存储检索到的实验参数,而不将检索到的实验参数提交给存储器,直到下次发生框204A或框204B为止。
在框206,系统将当前提交的配置读取到用于助理客户端应用的内存缓存。在实现框204A的实施方式中,当前提交的配置可以是在框204A的先前迭代中提交的配置(如果尚未提交的参数在当前迭代中在框204A处提交,则其可以在方法200的当前迭代中,或者如果尚未提交的参数在当前迭代中在框204A处可用,则其可以在方法200的先前迭代中)。在实现框204B的实施方式中,当前提交的配置可以是在框204B的先前迭代中提交的配置(如果尚未提交的参数在紧接在前的迭代中的框204B处提交,则其可以在方法200的紧接在前的迭代中,或者如果尚未提交的参数在紧接在前的迭代中的框204B处可用,则其可以在方法200的进一步在前的迭代中)。
在框208,系统接收与打开助理客户端应用的请求相关联的语音数据、图像和/或其他输入。例如,系统可以接收语音数据,该语音数据基于在打开助理客户端应用之后和/或期间(例如,缓存的)在麦克风处接收到的所检测的口头话语。
在框210,系统基于在框208中接收到的输入来生成请求。在基于输入来生成请求时,系统可以可选地执行子框210A和/或子框210B。在子框210A,系统基于所提交的配置的客户端标志值来生成请求。例如,系统可以至少部分地基于所提交的配置的客户端标志值,格式化请求和/或确定要包括在请求中的非服务器令牌值。在子框210B,系统在请求中(例如,在头部中或串行地)合并入所提交的配置的服务器令牌。如本文所述,服务器令牌可以包括服务器侧实验标识符,远程组件可以将该服务器侧实验标识符映射到一个或多个实验以在生成响应内容时在服务器上触发。
在框212,系统响应于在框212中生成的请求来接收内容。如本文所述,所接收的内容可以是例如转录或助理内容。此外,如本文所述,接收到的内容基于请求,并且可以基于请求中包括的服务器令牌指示的实验来定制。例如,服务器侧实验可以包括指示应当生成哪种类型的响应内容的实验。
在框214,系统渲染在框212处接收的所接收的响应内容。在一些实施方式中,框214包括子框214A,其中,系统基于所提交的配置的客户端标志值来渲染响应内容。例如,客户端标志值可以指示用于所接收的内容的背景颜色、用于渲染所接收的内容中的文本的颜色、用于所接收的内容中的文本的字体、用于所接收的内容中的文本的大小等。
在框216,系统确定是否已经接收到任何进一步的输入。如果系统已经接收到进一步的输入,则系统返回到框208。如果系统没有接收到进一步的输入,则在框218触发关闭条件。
在框230,系统监视关闭条件的发生。该关闭条件可以是执行框218的结果,或者是用户界面输入的结果,该结果指示明确期望关闭助理客户端应用(例如,致动硬件按钮,使得当前正在执行的应用关闭、导航至并选择其他关闭图标/符号的“X”),或来自功能电话的操作系统的请求(例如,清除内存以用于新的应用打开请求)。无论发生条件的原因如何,如果在框212确定关闭条件,则系统进行到可选框204B和框234。如果未确定关闭条件,则系统回到框230并继续监视关闭条件。
在框204B,系统为助理客户端应用提交任何已检索但尚未提交的参数。框204B被示为可选的,因为在方法200的各种实施方式中,可以实现框204A或框204B中的仅一个(以及可以在方法200的各种迭代中不实现任一个)。当实现框204B时,系统可以提交在方法200的当前迭代中,在框224中检索到但尚未实现为所提交参数的参数。在各种实施方式中,提交参数包括将参数写到用于所提交的参数的某个数据库位置和/或将用于参数实验参数的临时“标志”或其他临时指示改变为提交“标志”或其他提交指示。
在框234,系统关闭助理客户端应用。系统在检测到在框204B处提交参数之后(当实现框204B时),可以关闭助理客户端应用。关闭助理客户端应用可以包括例如使得由操作系统取消分配被分配给助理客户端应用的内存。
尽管结合助理客户端应用描述了图2的方法200,但是应当理解到,可以结合各种替代应用来执行方法200和/或其变体。例如,由功能电话执行的其他应用可以类似地生成请求并将其发送到关联的远程服务器,并且响应于该请求而接收以渐进式web应用的形式和/或其他形式的响应内容。此外,那些其他应用可以与远程配置服务器对接,并且在请求中合并标识当前服务器侧实验和/或当前客户端侧实验的服务器令牌。
图3是示出示例性方法300的流程图,该示例性方法300由与应用相关联的远程服务器基于包括在由应用发送的服务器令牌中的实验参数来生成响应。为了方便起见,流程图的操作可以参考执行该操作的系统来描述。该系统可以包括各种计算机系统的各种组件,诸如基于云的助理组件119。此外,尽管以特定顺序示出了方法300的操作,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框302,系统接收由助理客户端应用生成的请求。
在框304,系统识别包括在框302接收的请求中的服务器令牌。
在框306,系统从服务器令牌中识别一个或多个服务器侧实验标识符。
在可选框308,系统还从服务器令牌中识别一个或多个客户端侧实验标识符。
在框310,系统部分地基于映射到一个或多个服务器侧实验标识符的一个或多个服务器侧实验来生成对所接收到的请求的响应。
在框312,系统发送响应以供助理客户端应用渲染。
在框314,系统接收针对该响应的反馈。反馈可以包括由用户提供的明确反馈,诸如响应于在渲染响应之后,向用户提供的提示而提供的反馈(例如,“how did you likethis response(您觉得该响应如何)”的提示,具有用户可选的选项,诸如(“3=相当好”、“2=好”,“1=不好”)。反馈可以附加地或替代地包括隐含反馈,诸如如果用户在响应后继续参与助理客户端应用,基于用户参与响应的时间量的反馈(例如,小于1秒或大于10秒可以指示负面反馈,而在1到10秒之间可以指示正面反馈)(例如,如果用户利用类似的请求,继续参与助理客户端应用,这可以是负面反馈)等。
在框316,系统基于反馈生成用于服务器侧实验和/或客户端侧实验的一个或多个度量。例如,系统可以使用相同服务器侧实验和/或相同客户端侧实验,基于反馈并且基于反馈的附加实例来生成度量,该该反馈的附加实例是基于为在其他助理客户端应用处渲染而提供的响应来提供的。例如,度量可以基于明确用户反馈的平均值或其他统计度量。可以使用框308的客户端侧实验标识符的可选标识来将反馈与服务器侧/客户端侧实验对相关联。可以利用这样的度量来确定服务器侧实验、客户端侧实验和/或客户端侧实验对,导致(根据度量)提高应用的性能。然后,这样性能提高的实验可以针对大量功能电话的应用实施,和/或将其合并到应用的未来版本中,从而使得许多功能电话上应用的性能提高。此外,可以利用这样的度量来(根据度量)确定用于应用的服务器侧实验、客户端侧实验和/或客户端侧实验对下降性能。然后,可以将这种性能下降的实验从应用的实现中移除,和/或防止其合并到应用的未来版本中,从而使得许多功能电话上的应用的性能提高。
图4是示出了示例性方法400的流程图,该示例性方法400确定响应于来自助理客户端应用的包括语音数据的请求,是发送转录还是响应内容。为了方便起见,流程图的操作参考执行该操作的系统来描述。该系统可以包括各种计算机系统的各种组件,诸如基于云的助理组件119。此外,尽管以特定顺序示出了方法400的操作,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框402,系统接收由功能电话的助理客户端应用生成的请求。助理客户端应用生成的请求可以包括以下一项或多项:语音数据、该请求是助理请求还是转录请求的指示以及可选的服务器令牌。如本文所述,请求是助理请求还是转录请求的指示可以至少部分地基于在调用助理客户端应用时,正在功能电话上执行的另一应用的文本输入字段是否是活动的。
在框404,系统使用针对至少一种所选择的语言的至少一个话音到文本处理器来对该语音数据生成一个或多个转录。
在框406,系统确定该请求是否为转录请求。在一些实施方式中,系统基于包括在框402的请求中的指示是否指示该请求是转录请求来确定该请求是否为转录请求。在一些实施方式中,在确定请求是否是转录请求时,系统附加地或可替代地利用对转录、上下文数据和/或与请求一起被包括的其他数据的分析(例如,意图匹配)。在各种实施方式中,系统利用映射到可选地与框402的请求一起接收的服务器令牌的实验标准,确定该请求是否是转录请求。例如,服务器令牌可以指示系统在确定请求是否是转录请求时,应当利用转录的分析(例如,意图匹配)。例如,系统可以至少部分地基于转录的意图匹配而没有找到该转录的任何匹配意图来确定该请求是转录请求。
如果在框406,系统确定该请求是转录请求,则系统进行到框408。在框408,系统将响应于在框402接收到的请求将所生成的转录中的一个或多个发送到功能电话。在响应于该请求而发送所生成的转录中的一个或多个时,系统可以可选地执行子块408A或子块408B。在子框408A,系统可以发送单个最佳转录,以使得单个最佳转录自动合并到在生成请求时是活动的文本输入字段中。替代地,在子框408B,系统可以发送一个或多个可选转录,当经由功能电话的输入选择了转录中的一个时,使得将所选择的转录合并到当生成请求时是活动的文本输入字段中。在一些实施方式中,系统执行子块408A、子块408B还是块408处的替代子块可以可选地基于可选地与块402处的请求一起接收的服务器令牌。例如,服务器令牌可以指示映射到执行框408A,而不执行框408B的实验。
如果在框406,系统确定在框402处接收的请求中不包括转录请求,则系统进行到框410。
在框410,系统基于转录中的一个来生成结构化助理请求。例如,系统可以执行转录的自然语言理解(NLU)以确定意图和意图的参数,并且基于意图和参数生成结构化助理请求。
在框412,系统基于结构化系统请求,与一个或多个系统对接,以确定响应于转录中的一个的助理内容。
在框414,系统将响应内容发送到功能电话。例如,系统可以发送响应助理内容,以由功能电话的助理应用渲染。同样地,例如,系统可以发送响应助理内容,以使功能电话与另一个应用对接。在各种实施方式中,在框412处生成的助理内容包括在框404处生成的转录以外的内容,并且可以可选地省略该转录。
图5A、5B、5C1、5C2和5C3示出了用户与功能电话的助理客户端应用对接以获得口头输入的转录,以用于合并在另一客户端应用的文本输入字段中的各种示例。
图5A包括具有导航按钮510、第一可选按钮511、第二可选按钮512、麦克风520、扬声器530、光标540、功能电话显示器550和活动的的文本输入字段560的功能电话500。当光标540被定位在文本输入字段560中时,文本输入字段被认为是活动的。光标540可以响应于用户使用导航按钮510的箭头来定位光标,使光标540被定位在文本输入字段中,或者可以自动地将光标540定位在文本输入字段中(例如,通过“MESSAGES(消息)”应用)。尽管示出了光标540,但是可以提供替代符号或其他指示以指示显示器550的哪个区域是活动的。功能电话显示器550示出了“MESSAGES”应用,其中,用户已经从Bob接收到初始消息551。来自Bob的初始消息551陈述“Check out these pictures from Kona(查看来自Kona的这些图片)。”
图5B包括当“MESSAGES”应用处于图5A中图示的状态时,在已经调用助理客户端应用之后的功能电话500。例如,可以响应于用户长按导航按钮510或另一个按钮(例如511或512)的中心来调用助理客户端应用。功能电话显示器550示出了助理客户端应用。响应于调用了助理客户端应用,助理客户端应用可以提供指示561“*Listening*”以指示自动助理应用准备好接收来自用户的口头输入。响应于指示561,用户可以将由功能电话500的麦克风520检测到并且提供为语音数据的口头输入562,提供给助理客户端应用。在该示例中,口头输入562是“Where is Kona?(科纳在哪里?)”。
至少部分地基于当调用助理客户端应用时“MESSAGES”应用的文本输入字段(图5A的540)是活动的,口头输入562可以由助理应用确定为是对口头输入的转录的请求(与对助理内容的请求相反)。图5C1、5C2和5C3示出了如何将口头输入的转录渲染给用户和/或合并到图5A的文本输入字段540中的一些替代示例。特别地,图5C1、5C2和5C3示出了可以在用户提供图5B中的口头输入562之后的界面的示例。
在图5C1中,功能电话显示器550示出了带有自动地并入文本输入字段540中的转录“Where is Kona?”的“MESSAGES”应用。例如,助理应用可以与“MESSAGES”应用对接以使转录被自动地合并并且可选地,使“MESSAGES”应用在图5C1所示状态下再次自动地执行(当响应于调用助理客户端应用而关闭“MESSAGES”应用时)。
在图5C2中,功能电话显示器550示出了“AUTOMATED ASSISTANT”应用,以及转录“where is Kona”,以及指示用户可以选择导航按钮510(例如,中心点击)以将转录包括在“MESSAGES”应用的文本输入字段560中或选择按钮511以取消(例如,在不将转录合并到文本输入字段560中的情况下回到“MESSAGES”应用)的指令。如果选择了导航按钮510,则助理客户端应用可以与“MESSAGES”应用对接(例如,如参考图5C1所述)以使转录被合并到文本输入字段560中。
图5C3类似于图5C2,不同之处在于,渲染了“where is kona”的“最确信”转录,以及“where is kono”的“次最确信”的转录。此外,在图5C3中,提供了指令564C31和564C32,该指令564C31和564C32指令用户如何挑选“where is kona”和“where is kono”转录-或者“cancel(取消)”。如果(例如,使用导航按钮510的导航箭头)导航到转录中的一个,然后选择了导航按钮510(例如,中心按压),则助理客户端应用可以与“MESSAGES”应用对接(例如,如参考图5C1所述),以使对应的转录被合并到文本输入字段560中。
图6A、6B和6C示出了用户与功能电话的助理客户端应用对接以响应于口头输入而获得响应助理内容的示例。
图6A包括具有主按钮610、第一可选按钮611、第二可选按钮612、麦克风620、扬声器630、光标640、功能电话显示器650,并且没有活动的文本输入字段的功能电话600。由于光标640被定位在文本输入字段660之外,因此文本输入字段660被认为是不活动的。功能电话显示器650示出了“MESSAGES”应用,其中,用户已经从Bob接收到初始消息651。Bob的初始消息651指出“Check out these pictures from Kona。”因此,图6A与图5A相同,但文本输入字段660是不活动的。
图6B包括当“MESSAGES”应用处于图6A中图示的状态时,已经调用了助理客户端应用之后的功能电话600。例如,可以响应于用户长按导航按钮610或另一个按钮(例如611或612)的中心来调用助理客户端应用。功能电话显示器650示出了“AUTOMATED ASSISTANT”应用。响应于发起自动助理应用正被调用,自动助理应用可以提供指示661“*Listening*”以指示自动助理应用准备好接收来自用户的口头输入。响应于指示661,用户可以将由功能电话600的麦克风620检测到并且提供为语音数据的口头输入662,提供给助理客户端应用。在该示例中,口头输入662是“Where is Kona?”。
至少部分地基于当调用助理客户端应用时“MESSAGES”应用的文本输入字段(图6A的640)是不活动的,口头输入662可以由助理应用(和/或远程自动助理组件)确定为对响应于口头输入的助理内容的请求(与对口头输入的转录的请求相反)。图6C示出了这样的助理内容的示例,以及如何经由助理应用将其渲染给用户。因此,尽管在图5B和图6B中都提供了口头输入“where is kona”,但取决于当调用助理应用时,“MESSAGES”应用的文本输入字段的状态,助理应用(和/或相关联的助理服务器)可以以不同的方式响应。
在图6C中,功能电话显示器650示出了“AUTOMATED ASSISTANT”应用以及在助理应用中渲染的响应助理内容663“Kona is a town on the west coast of Hawaii island…(科纳是夏威夷岛西海岸的一个城镇…)”,并且可以附加地和//或可替代地被可听地渲染(例如,可以渲染其TTS转换)。
图7是示出了通过功能电话的应用来实现应用更新的示例方法700的流程图。为了方便起见,流程图的操作参考执行该操作的系统来描述。该系统可以包括各种计算机系统的各种组件,诸如功能电话101的助理客户端应用106。此外,尽管以特定顺序示出了方法700的操作,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框702,系统接收打开功能电话的应用的请求。例如,该请求可以是在功能电话上接收到的某些用户界面输入。
在框704,系统确定功能电话的本地存储中的挂起更新缓存是否为空。框704可以由功能电话的应用的外壳组件执行,无需加载应用的核心组件。
如果在框704,系统确定挂起的更新缓存不为空,则系统进行到框706,并且将挂起的更新缓存传递到实时更新缓存。框706可以由功能电话的应用的外壳组件执行,无需加载应用的核心组件。
在框708,系统确定框706的传递是否完成。如果否,则系统继续框706的传递。如果是,则系统进行到框710。框708可以由功能电话的应用的外壳组件执行,无需加载应用的核心组件。应当注意到,如果系统在框704处确定挂起的更新缓存为空,则系统也可以直接进行到框710。
在框710,系统从实时更新缓存中提供核心应用。例如,通过为核心组件加载实时更新缓存的内容,应用的外壳组件可以来从实时更新缓存提供核心应用。例如,可以将包括在实时更新缓存中的JavaScript、HTML和/或CSS加载到内存中并由核心组件执行。
系统从框710进行到框712和714。在框712,系统运行所提供的核心应用,直到发生关闭条件为止。这可以包括核心组件执行从实时更新缓存加载的内容。
在框714,系统确定是否从远程更新服务器请求新的更新的核心内容。框714可以由外壳组件执行。如果在框714,系统确定不请求新的更新的核心内容,则系统进行到框716,并且不请求新的更新的核心内容。如果在框714,系统确定请求新的更新的核心内容,则系统进行到框718,并且与远程更新服务器对接以提取新的更新的核心内容(如果有的话)。在各种实施方式中,系统可以向远程更新服务器提供当前核心内容的指示,并且远程更新服务器可以至少部分地基于该指示来确定是否为应用提供新的核心内容。框718可以由外壳组件执行。
如果在框718提取新的更新的核心内容,则系统进行到框720,并且将新的更新的核心内容本地存储在挂起的更新缓存中,而不将新的更新的核心内容传递到实时更新缓存直到下次发生框706为止。下次出现框706将处于方法700的后续迭代中(当在先前迭代中执行框720时)。方法700的后续迭代将在当前迭代中的关闭条件之后发生,并且接收到打开客户端应用的另一个请求。应当注意到,在方法700的各种迭代中,不是所有的块都将被执行。例如,如果在给定迭代中框704处的确定为“是”,则在给定迭代中不执行框706。而且,例如,如果在给定迭代中,在框718处未提取新的更新的核心内容,则在给定迭代中将不执行框720。
图8示出了计算设备810的示例性架构。该计算设备810通常包括至少一个处理器814,其经由总线子系统812与多个外围设备通信。这些外围设备可以包括存储子系统824(包括例如,存储器子系统825和文件存储子系统826);用户界面输入设备822;用户界面输出设备820;以及网络接口子系统816。输入和输出设备允许用户与计算设备810交互。网络接口子系统816提供到外部网络的接口,并且耦合到其他计算设备中的相应接口设备。
用户界面输入设备822可以包括键盘;诸如鼠标、轨迹球、触摸板或图形输入板的指向设备;扫描仪;合并到显示器的触摸屏;诸如语音识别系统的音频输入设备;麦克风;和/或其他类型的输入设备。通常,使用术语“输入设备”旨在包括所有可能类型的设备以及将信息输入到计算设备810中或通信网络上的方式。
用户界面输出设备820可以包括显示子系统、打印机、传真机或诸如音频输出设备的非可视显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于创建可视图像的一些其他机制。显示子系统还可以诸如经由音频输出设备来提供非视觉显示。通常,使用术语“输出设备”旨在包括所有可能类型的设备以及从计算设备810向用户或另一台机器或计算系统输出信息的方式。
存储子系统824存储提供本文所述的一些或全部模块的功能的编程和数据构造。例如,存储子系统824可以包括执行本文所述的一个或多个方法的逻辑。
这些软件模块通常由处理器814单独或与其他处理器结合地执行。存储子系统中使用的存储器825可以包括多个存储器,该多个存储器包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)830以及存储固定指令的只读存储器(ROM)832。文件存储子系统826可以提供用于程序和数据文件的持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移除介质、CD-ROM驱动器、光盘驱动器或可移除介质盒。实现某些实施方式的功能的模块可以可选地由文件存储子系统826存储在存储子系统824中,或者存储在处理器814可访问的其他机器中。
总线子系统812提供一种机制,其用于使计算设备810的各种组件和子系统按照预期彼此通信。尽管总线子系统812被示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。
计算设备810可以是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器群、或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,所描绘的计算设备810的描述仅旨在作为用于说明一些实施方式的目的的特定示例。计算设备810的许多其他配置可能具有比计算设备810更多或更少的组件。
在本文讨论的某些实施方式可以收集或使用关于用户的个人信息(例如,从其他电子通信中提取的用户数据、有关用户社交网络的信息、用户的位置、用户的时间、用户的生物特征信息以及用户的活动和人口统计信息、用户之间的关系等)的情况下,向用户提供一个或多个机会来控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用有关用户的信息。也就是说,仅在如愿从相关用户接收到明确的授权后,本文讨论的系统和方法才收集、存储和/或使用用户的个人信息。
例如,为用户提供对程序或特征是否收集关于该特定用户或与程序或特征相关的其他用户的用户信息的控制。为要对其收集个人信息的每个用户提供一个或多个选项,以允许控制与该用户有关的信息收集,以提供关于是否收集信息以及信息的哪些部分要被收集的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。另外,某些数据在被存储或使用之前,可能会以一种或多种方式被处理,使得移除个人可识别信息。作为一个示例,可以处理用户的身份,使得不能确定个人可识别信息。作为另一示例,用户的地理位置可以被概括为更大的区域,使得不能确定用户的具体位置。

Claims (32)

1.一种至少部分地由助理客户端应用执行的方法,所述助理客户端应用由功能电话的一个或多个处理器执行,所述功能电话包括显示器,但是缺少任何触摸屏,所述方法包括:
当所述助理客户端应用正在所述功能电话的操作系统的前台中执行时,与远程配置服务器对接以提取用于所述助理客户端应用的实验参数,其中,所提取的实验参数包括:
一个或多个客户端标志值,所述一个或多个客户端标志值在被提交时,更改所述助理客户端应用的一个或多个方面,以及
一个或多个服务器令牌,所述一个或多个服务器令牌在被提交时,由所述助理客户端应用合并在到远程助理服务器的请求中,以使所述远程助理服务器生成针对所述一个或多个服务器令牌定制的响应;
将所提取的实验参数写到所述功能电话的本地存储,其中,将所提取的实验参数写到所述本地存储使所提取的实验参数排队,以响应于所述助理客户端应用的提交条件的发生而实现为所提交的参数,而不立即将所提取的实验参数实现为所提交的参数;
检测所述提交条件的发生;
响应于检测到所述提交条件的所述发生:
将所提取的实验参数提交为所述助理客户端应用的所提交的参数;
继将所提取的实验参数提交为所提交的参数之后并且当所述助理客户端应用关闭时:
接收打开所述助理客户端应用的请求;
响应于接收到所述请求,打开所述助理客户端应用,打开所述助理客户端应用包括将所提交的参数中的所述一个或多个客户端标志值和所述一个或多个服务器令牌读取到用于所述助理客户端应用的内存缓存中,其中,将所述一个或多个客户端标志值读取到所述内存缓存中使所述助理客户端应用的所述一个或多个方面被更改,以及其中,将所述一个或多个服务器令牌读取到所述内存缓存中使由所述助理客户端应用将所述一个或多个服务器令牌包括在到所述远程助理服务器的请求中。
2.如权利要求1所述的方法,其中,所述提交条件是关闭条件,其中,所述关闭条件响应于用户请求或操作系统请求,以关闭所述助理客户端应用。
3.如权利要求2所述的方法,其中,将所提取的实验参数提交为所提交的参数包括:在接收到所述用户请求或所述操作系统请求之后但在关闭所述助理客户端应用之前,阻止所述助理客户端应用,直到将所提取的实验参数提交为所提交的参数为止。
4.如权利要求3所述的方法,进一步包括:
检测所提取的实验参数被提交为所提交的参数;以及
响应于所述关闭条件并且在检测到所提取的实验参数被提交之后,关闭所述助理客户端应用,其中,关闭所述助理客户端应用包括由所述操作系统取消分配向所述助理客户端应用分配的所有内存。
5.如权利要求1所述的方法,其中,所述提交条件是打开条件,所述打开条件响应于打开所述助理客户端应用的先前请求,所述先前请求在打开所述助理客户端应用的请求之前并且在将所提取的实验参数写到所述本地存储之后。
6.如权利要求1所述的方法,其中,与所述远程配置服务器对接以提取用于所述助理客户端应用的实验参数是响应于确定自所述功能电话的所述助理客户端应用上一次与所述远程配置服务器对接以提取所述实验参数以来已经过去了至少阈值时间量。
7.如权利要求1所述的方法,进一步包括:
在打开所述助理客户端应用之后,接收经由所述客户端设备的至少一个麦克风检测到的语音数据;
向所述远程助理服务器发送包括所述语音数据和所提交的参数的所述一个或多个服务器令牌的请求;以及
响应于所述请求从所述远程助理服务器接收要渲染的内容,其中,对于所提交的参数的所述一个或多个服务器令牌中的不同令牌,所述内容不同。
8.如权利要求7所述的方法,进一步包括基于所提交的参数的所述客户端标志值中的至少一个客户端标志值来渲染所述内容。
9.如权利要求8所述的方法,其中,所述内容包括文本,并且其中,基于所提交的参数的所述客户端标志值中的至少一个客户端标志值来渲染所述内容包括:
以由所述客户端标志值中的至少一个客户端标志值指定的颜色来渲染所述文本,
以由所述客户端标志值中的至少一个客户端标志值指定的字体来渲染所述文本,或者
以由所述客户端标志值中的至少一个客户端标志值指定的大小来渲染所述文本。
10.如权利要求7所述的方法,其中,所述一个或多个服务器令牌影响所述内容是:
被合并到当检测到所述语音数据时是活动的文本框中的所述语音数据的转录,还是
对所述语音数据的所述转录进行响应但是缺少所述语音数据的所述转录的所述助理响应。
11.如权利要求7所述的方法,其中,所述一个或多个服务器令牌影响所述内容包括:
所述语音数据的单个最佳转录,还是
所述语音数据的单个最佳转录,以及所述语音数据的一个或多个附加候选转录。
12.如权利要求7所述的方法,其中,所述内容至少包括所述语音数据的第一转录和所述语音数据的第二转录,并且其中,所述本地标志中的至少一个本地标志指示所述第一转录和所述第二转录被同时显示还是被顺序地显示。
13.如权利要求7所述的方法,其中,所述内容是被提供为渐进式web应用的助理响应。
14.如权利要求7所述的方法,进一步包括:
由所述远程助理服务器接收包括所述语音数据和所提交的参数的所述一个或多个服务器令牌的所述请求;
在所述远程服务器处并且基于所述请求中包括的所述一个或多个服务器令牌,选择要在所述远程服务器上触发的一个或多个实验,所选择的一个或多个实验是要在所述远程服务器上触发的可用实验的子集;以及
在所述远程助理服务器处,基于所选择的一个或多个实验来生成内容。
15.如权利要求1所述的方法,其中,所述一个或多个本地标志包括至少一个本地标志,所述至少一个本地标志更改与所述远程配置服务器的下一次对接将在何时发生以检查用于所述助理客户端应用的新实验参数。
16.如权利要求1所述的方法,其中,所述一个或多个本地标志包括至少一个本地标志,所述至少一个本地标志更改在所述功能电话上本地存储的一个或多个联系人将在何时被发送到所述远程助理服务器以供所述远程助理服务器用在将某些话音到文本处理偏向所述一个或多个联系人。
17.一种至少部分地由客户端应用执行的方法,所述客户端应用由功能电话的一个或多个处理器执行,所述方法包括:
接收打开所述客户端应用的请求;
响应于接收到所述请求,打开所述客户端应用,打开所述客户端应用包括将当前提交的参数读取到所述客户端应用的内存缓存中,其中,所述一个或多个当前提交的参数包括:
客户端标志值,所述客户端标志值使所述客户端应用的一个或多个方面被更改,以及
一个或多个服务器令牌,所述一个或多个服务器令牌由所述客户端应用包括在到远程服务器的请求中并且使所述远程服务器生成基于所述一个或多个服务器令牌的对所述请求的响应;
当所述客户端应用响应于所述打开而正在所述操作系统的前台中执行时,确定与远程配置服务器对接以提取用于所述客户端应用的实验参数;
与所述远程配置服务器对接以提取用于所述客户端应用的更新的实验参数,所述更新的实验参数包括一个或多个更新的服务器令牌以替换所述一个或多个服务器令牌,并且被配置为使所述远程服务器生成基于所述一个或多个更新的服务器令牌的响应;
将所提取的更新的实验参数写到所述功能电话的本地存储,其中,将所述更新的提取的实验参数写到所述本地存储使更新的所提取的更新的实验参数排队,以响应于所述客户端应用的提交条件的发生替换当前提交的参数而提交,而不立即替换当前提交的参数来提交更新的所提取的实验参数;
检测所述提交条件的发生;
响应于检测到所述提交条件的发生:
提交所提取的更新的实验参数,包括用所提取的更新的实验参数替换当前提交的参数中的一个或多个。
18.如权利要求17所述的方法,其中,所述提交条件是关闭条件,其中,所述关闭条件响应于用户请求或操作系统请求,以关闭所述客户端应用。
19.如权利要求18所述的方法,进一步包括:
接收打开所述客户端应用的新请求,所述新请求是提交所提取的更新的实验参数之后打开所述客户端应用的第一请求;
响应于接收到所述新请求,打开所述客户端应用,打开所述客户端应用包括将一个或多个所提取的更新的实验参数读取到所述客户端应用的内存缓存中。
20.如权利要求17所述的方法,其中,所述客户端应用是助理客户端应用。
21.如权利要求17所述的方法,其中,所述一个或多个更新的服务器令牌包括不透明服务器令牌,所述不透明服务器令牌被合并到从所述客户端应用到远程服务器的请求中,并且其中,所述不透明服务器令牌包括服务器侧实验标识符,所述服务器侧实验标识符在所述远程服务器处被映射到一个或多个实验以响应于识别所述不透明服务器令牌中的所述服务器侧实验标识符而在所述远程服务器上触发。
22.一种至少部分地由客户端应用执行的方法,所述客户端应用由功能电话的一个或多个处理器执行,所述方法包括:
接收打开所述客户端应用的请求;
响应于接收到所述请求,打开所述客户端应用,打开所述客户端应用包括将当前提交的参数读取到所述客户端应用的内存缓存中;
当所述客户端应用响应于所述打开而正在所述操作系统的前台中执行时,确定与远程配置服务器对接以提取用于所述客户端应用的实验参数;
与所述远程配置服务器对接以提取用于所述客户端应用的更新的实验参数;
拒绝将所述更新的实验参数作为所述当前提交的参数的替换提交,直到检测到所述客户端应用的提交条件发生为止;
检测所述提交条件的发生;
响应于检测到所述提交条件的所述发生:
提交所提取的更新的实验参数,包括用所提取的更新的实验参数替换所述当前提交的参数中的一个或多个。
23.如权利要求21所述的方法,其中,所述更新的实验参数包括一个或多个服务器令牌,所述一个或多个服务器令牌由所述客户端应用包括在到远程服务器的请求中并且被配置为使所述远程服务器生成基于所述一个或多个服务器令牌的对所述请求的响应。
24.一种至少部分地由客户端应用执行的方法,所述客户端应用由功能电话的一个或多个处理器执行,所述功能电话包括显示器,但是缺少任何触摸屏,所述方法包括:
在所述功能电话上执行的客户端应用的实例期间,与远程更新服务器对接以提取用于所述客户端应用的核心组件的更新的核心内容;
在所述实例期间,将所述更新的核心内容存储在所述功能电话的挂起缓存中,而不将所述更新的核心内容存储在实时缓存中,并且不由执行的客户端应用实现所述更新的核心内容;
响应于关闭条件的发生而关闭所述客户端应用,其中,关闭所述客户端应用终止所述实例;
继将所述更新的核心内容存储在挂起缓存中之后,以及继关闭所述客户端应用之后:
接收打开所述客户端应用的请求,所述请求是在终止所述实例之后打开所述客户端应用的第一请求;
响应于接收到所述请求,执行所述客户端应用的外壳组件;
通过所述客户端应用的所述外壳组件,并且在响应于所述请求加载所述客户端应用的核心组件之前:
确定所述挂起缓存包括所述更新的核心内容;
响应于确定所述挂起缓存包括所述更新的核心内容:
将所述更新的核心内容传递到所述功能电话的实时缓存;
通过所述外壳组件并且在将所述更新的核心内容传递到所述实时缓存之后:
使用来自所述实时缓存的所述更新的核心内容加载所述核心组件;以及
在生成响应于在所述功能电话处接收的一个或多个用户界面输入的响应内容时,使用加载有所述更新的核心内容的所述核心组件。
25.如权利要求24所述的方法,其中,所述更新的核心内容包括面向对象的编程语言代码、标记语言代码和/或样式表语言。
26.如权利要求24所述的方法,其中,所述更新的核心内容包括Java脚本代码、超文本标记语言代码和/或级联样式表。
27.如权利要求24所述的方法,其中,与所述远程更新服务器对接以提取所述更新的核心内容是由所述客户端应用的所述外壳组件执行的。
28.如权利要求27所述的方法,其中,与所述远程更新服务器对接以提取所述更新的核心内容是在由所述外壳组件使用先前核心内容加载核心组件之后由所述外壳组件执行的,其中,加载有所述先前核心内容的所述核心组件被用在所述实例中。
29.如权利要求28所述的方法,其中,在所述功能电话上执行的所述客户端应用的所述实例响应于打开所述客户端应用的先前请求,并且进一步包括,响应于所述先前请求:
通过所述客户端应用的所述外壳组件并且先于响应于所述先前请求加载所述客户端应用的所述核心组件:
确定所述挂起缓存不包括任何更新的核心内容;
响应于确定所述挂起缓存不包括任何更新的核心内容:
基于所述先前内容被包括在所述实时缓存中,使用所述先前内容来加载所述核心组件。
30.如权利要求28所述的方法,其中,与所述远程更新服务器对接以提取所述更新的核心内容是响应于确定自所述外壳组件上一次与所述远程更新服务器对接以来已经过去了至少阈值时间量而执行的。
31.一种功能电话,包括至少一个处理器,所述至少一个处理器执行所存储的指令以执行如权利要求1至30中的任一项所述的方法。
32.一种存储指令的非暂时性计算机可读介质,所述指令在由功能电话的一个或多个处理器执行时,执行如权利要求1至30中的任一项所述的方法。
CN201980043199.7A 2018-08-27 2019-08-27 基于实验参数适配功能电话的客户端应用 Pending CN113168336A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862723442P 2018-08-27 2018-08-27
US62/723,442 2018-08-27
PCT/US2019/048324 WO2020046920A1 (en) 2018-08-27 2019-08-27 Adapting client application of feature phone based on experiment parameters

Publications (1)

Publication Number Publication Date
CN113168336A true CN113168336A (zh) 2021-07-23

Family

ID=67953852

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980043199.7A Pending CN113168336A (zh) 2018-08-27 2019-08-27 基于实验参数适配功能电话的客户端应用

Country Status (4)

Country Link
US (3) US11216292B2 (zh)
EP (1) EP3791272A1 (zh)
CN (1) CN113168336A (zh)
WO (1) WO2020046920A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180034961A1 (en) * 2014-02-28 2018-02-01 Ultratec, Inc. Semiautomated Relay Method and Apparatus
US10389876B2 (en) 2014-02-28 2019-08-20 Ultratec, Inc. Semiautomated relay method and apparatus
US20180270350A1 (en) 2014-02-28 2018-09-20 Ultratec, Inc. Semiautomated relay method and apparatus
US10586537B2 (en) * 2017-11-30 2020-03-10 International Business Machines Corporation Filtering directive invoking vocal utterances
WO2020046920A1 (en) 2018-08-27 2020-03-05 Google Llc Adapting client application of feature phone based on experiment parameters
US11928724B2 (en) * 2020-08-20 2024-03-12 Block, Inc. Customer-device application sites accessible via merchant-managed identifiers
CA3197123A1 (en) * 2020-11-04 2022-05-12 John Bohan Jiang System and method for providing personalized context
US11836479B2 (en) 2022-02-23 2023-12-05 Microsoft Technology Licensing, Llc Mimic components for deploying experimental webpage features

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080270111A1 (en) * 2007-04-30 2008-10-30 Ram Prakash Hanumanthappa System, method to generate transliteration and method for generating decision tree to obtain transliteration
US20130347088A1 (en) * 2012-06-26 2013-12-26 International Business Machines Corporation Remote Direct Memory Access Authentication of a Device
US20140257807A1 (en) * 2013-03-06 2014-09-11 Nuance Communications, Inc. Speech recognition and interpretation system
CN104486093A (zh) * 2014-11-19 2015-04-01 广州华多网络科技有限公司 一种网络互动方法及相关设备、系统
CN105247511A (zh) * 2013-06-07 2016-01-13 苹果公司 智能自动化助理
CN105808200A (zh) * 2010-01-18 2016-07-27 苹果公司 智能自动化助理
CN106406921A (zh) * 2015-07-29 2017-02-15 深圳市腾讯计算机系统有限公司 一种安装补丁的方法及装置
CN106909448A (zh) * 2010-10-13 2017-06-30 谷歌公司 用于执行应用的方法、系统和客户端设备
CN107430852A (zh) * 2015-05-27 2017-12-01 谷歌公司 在支持语音的电子设备中对语音输入的在线处理的选择性中止
CN107480161A (zh) * 2016-06-08 2017-12-15 苹果公司 用于媒体探究的智能自动化助理
CN107895577A (zh) * 2016-10-03 2018-04-10 谷歌公司 使用长尾语音命令的任务发起
CN108090109A (zh) * 2016-11-21 2018-05-29 谷歌有限责任公司 基于先前对话内容在自动化对话会话中提供提示
CN108270843A (zh) * 2016-12-30 2018-07-10 谷歌有限责任公司 生成和传送对适当第三方代理的调用请求
CN108369596A (zh) * 2015-12-11 2018-08-03 微软技术许可有限责任公司 个性化自然语言理解系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003079225A1 (en) 2002-03-11 2003-09-25 University Of Southern California Named entity translation
US7039172B2 (en) 2002-05-14 2006-05-02 Avaya Technology Corp. Dual language caller ID with asian language support
US8433557B2 (en) 2010-05-07 2013-04-30 Technology Development Center, King Abdulaziz City For Science And Technology System and method of transliterating names between different languages
US9852728B2 (en) 2015-06-08 2017-12-26 Nuance Communications, Inc. Process for improving pronunciation of proper nouns foreign to a target language text-to-speech system
WO2020046920A1 (en) 2018-08-27 2020-03-05 Google Llc Adapting client application of feature phone based on experiment parameters

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080270111A1 (en) * 2007-04-30 2008-10-30 Ram Prakash Hanumanthappa System, method to generate transliteration and method for generating decision tree to obtain transliteration
CN105808200A (zh) * 2010-01-18 2016-07-27 苹果公司 智能自动化助理
CN106909448A (zh) * 2010-10-13 2017-06-30 谷歌公司 用于执行应用的方法、系统和客户端设备
US20130347088A1 (en) * 2012-06-26 2013-12-26 International Business Machines Corporation Remote Direct Memory Access Authentication of a Device
US20140257807A1 (en) * 2013-03-06 2014-09-11 Nuance Communications, Inc. Speech recognition and interpretation system
CN105247511A (zh) * 2013-06-07 2016-01-13 苹果公司 智能自动化助理
CN104486093A (zh) * 2014-11-19 2015-04-01 广州华多网络科技有限公司 一种网络互动方法及相关设备、系统
CN107430852A (zh) * 2015-05-27 2017-12-01 谷歌公司 在支持语音的电子设备中对语音输入的在线处理的选择性中止
CN106406921A (zh) * 2015-07-29 2017-02-15 深圳市腾讯计算机系统有限公司 一种安装补丁的方法及装置
CN108369596A (zh) * 2015-12-11 2018-08-03 微软技术许可有限责任公司 个性化自然语言理解系统
CN107480161A (zh) * 2016-06-08 2017-12-15 苹果公司 用于媒体探究的智能自动化助理
CN107895577A (zh) * 2016-10-03 2018-04-10 谷歌公司 使用长尾语音命令的任务发起
CN108090109A (zh) * 2016-11-21 2018-05-29 谷歌有限责任公司 基于先前对话内容在自动化对话会话中提供提示
CN108270843A (zh) * 2016-12-30 2018-07-10 谷歌有限责任公司 生成和传送对适当第三方代理的调用请求

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: ""how to store json-patch operations in redis queue and guarantee theirconsistency?-Stack Overflow"", pages 1 - 2, Retrieved from the Internet <URL:《https://stackoverflow.com/questions/25831739/how-to-store-json-patch-operations-in-redis-queue-and-guarantee-their-consistency》> *
姚琳;梁春霞;张德干;: "基于实例推理的人机对话系统的设计与实现", 计算机应用, no. 03, pages 259 - 262 *
顾亚平: ""基于智能语音交互技术的智慧语音助理系统实现"", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》, pages 138 - 659 *

Also Published As

Publication number Publication date
US20240118910A1 (en) 2024-04-11
EP3791272A1 (en) 2021-03-17
US20220107824A1 (en) 2022-04-07
US11216292B2 (en) 2022-01-04
US11966764B2 (en) 2024-04-23
US20200364067A1 (en) 2020-11-19
WO2020046920A1 (en) 2020-03-05

Similar Documents

Publication Publication Date Title
US11966764B2 (en) Adapting client application of feature phone based on experiment parameters
US11227124B2 (en) Context-aware human-to-computer dialog
JP6686226B2 (ja) 適切なエージェントの自動化アシスタント呼び出し
US11113481B2 (en) Adapting automated assistants for use with multiple languages
US20210097999A1 (en) Rendering responses to a spoken utterance of a user utilizing a local text-response map
CN113614825A (zh) 用于自动语音识别的字词网格扩增
CN113574503B (zh) 在功能手机处主动缓存瞬时助手动作建议

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination