CN115699036A - 支持跨平台、边缘-云混合人工智能服务的智能层 - Google Patents
支持跨平台、边缘-云混合人工智能服务的智能层 Download PDFInfo
- Publication number
- CN115699036A CN115699036A CN202180034494.3A CN202180034494A CN115699036A CN 115699036 A CN115699036 A CN 115699036A CN 202180034494 A CN202180034494 A CN 202180034494A CN 115699036 A CN115699036 A CN 115699036A
- Authority
- CN
- China
- Prior art keywords
- artificial intelligence
- intelligence service
- user
- service request
- service module
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Abstract
一种用于提供人工智能(AI)服务的方法和相关联的系统。该方法包括从在第一用户设备的操作系统上操作的用户交互应用接收未实现的AI服务请求。如果第一用户设备中的第一AI服务模块能够处理未实现的请求,则处理未实现的服务请求以生成并提供实现的请求并提供给用户交互应用。如果第一AI服务模块不能处理未实现的请求,则向具有第二服务模块或云AI服务模块的第二设备发送未实现的请求,以生成实现的AI服务请求。然后,将实现的AI服务请求发送到用户设备,然后发送到用户交互应用。AI模块可以跨许多不同的操作系统和设备类型操作。来自一个AI模块的更新可以被推送到其他AI模块。
Description
相关申请的交叉引用
本申请要求2020年3月17日提交的美国临时申请第62/991,038号的优先权,并通过引用并入本文。
技术领域
本发明涉及虚拟助理,尤其涉及用于跨多个平台的人工智能层的方法和装置。
背景技术
用于跨平台AI(人工智能)的当前系统通常基于三种方法中的任一种。第一种是开发跨平台“运行时”,用户可以在他们选择的平台(PC、云)上开发AI模型,然后将其部署到运行时,该运行时在一系列平台上有本机实现。部署是指使软件(诸如AI模型)或操作系统可供使用的过程。然后,运行时只在本地执行模型。这种方法的缺点很多。首先,应用或模型开发者不可能扩展运行时环境。其次,同一操作系统上的应用开发者不能共享相同的运行时资源,因为部署到运行时的每个模型都必须复制其所有数据和参数来执行。第三,模型编译器对硬件细节没有概念,因此在特定平台上优化运行时变得不可能。此外,没有能力划分执行,使得一些模型在云环境中运行,相反,一切都必须以非常静态的方式在运行时的范围内运行。
第二种方法是将SDK(软件开发套件)包含在应用开发者的二进制文件中,以便他们能够利用安装在SDK中的AI功能。SDK在安装它的设备上本地提供所有服务。这种方法的缺点是SDK非常静态,模型开发者无法扩展平台。同样,由于SDK完全在设备上运行,设备-云混合程序是不可能的。通过这种方式,即使解决了第一种方法的一些缺点,也引入了许多新的缺点。
最后一种方法是通过基于云的API。在这些系统中,应用开发者将小型SDK与他们的应用捆绑在一起,其中所有智能服务请求都被代理到云执行环境。在这个系统中,只有预处理和后处理在设备上运行,并且主要的AI计算在云服务器上进行。这种方法没有利用设备的硬件能力,并且引入了大量的网络开销,从而降低了操作速度。同样,它涉及设备管理范围之外的云服务的编排。
发明内容
为了克服现有技术的缺点并提供额外的益处,本发明涉及跨多个平台上开发人工智能(“AI”)服务,其中可将功能划分为在部署设备、同一网络中的本地设备或云和本地服务的混合组合上进行计算。通过这样做,应用开发者可以执行高级AI原语,而不必考虑设备的执行能力或云可用性。高级原语的示例是将图像传递给虚拟助理并对图像进行分类。
公开了一种用于提供人工智能服务的方法。在一个实施例中,该方法包括从安装在第一用户设备的操作系统中的用户交互应用接收未实现的人工智能服务请求。该方法确定第一用户设备中是否存在能够处理未实现的人工智能服务请求的第一人工智能服务模块。如果可以找到该第一人工智能服务模块,并且该第一人工智能服务模块能够处理未实现的人工智能服务请求,则该第一人工智能服务模块将用于处理未实现的人工智能服务请求,以实现未实现的人工智能服务请求。在处理时,实现的人工智能服务请求将被生成并提供给用户交互应用。另一方面,如果没有找到第一人工智能服务模块,或者第一人工智能服务模块不能处理未实现的人工智能服务请求,则未实现的人工智能服务请求被发送到具有第二人工智能服务模块的第二用户设备,或者发送到具有云人工智能服务模块的云计算环境,以处理和实现未实现的人工智能服务请求。当未实现的人工智能服务请求被处理和实现时,生成实现的人工智能服务请求,并将其发送到第一用户设备,然后发送到用户交互应用。
在一个实施例中,发现阶段用于识别具有第二人工智能服务模块的第二用户设备。第二用户设备也可以是云计算环境,其上存储有云人工智能服务模块。在一个实施例中,第一用户设备中的人工智能服务模块周期性地重复发现阶段。在一个实施例中,第二人工智能服务模块在与第一用户设备的第一人工智能服务模块的操作系统不同类型的操作系统上操作。在一个实施例中,发现阶段还用于检测第一用户设备上的第一人工智能服务模块使用的库的更新,并且更新的库被发送到第二设备中的第二人工智能服务模块。在一个实施例中,第一人工智能服务模块是第一用户设备的操作系统顶部(top)上的人工智能层。
公开了提供人工智能服务的第二种方法。在一个实施例中,该方法包括从运行在第一类型的操作系统上的用户交互应用接收未实现的人工智能服务请求。该方法确定是否存在能够处理未实现的人工智能服务请求的第一人工智能服务模块。如果第一人工智能服务模块能够处理未实现的人工智能服务请求,则第一人工智能服务模块将处理未实现的人工智能服务请求以生成实现的人工智能服务请求。另一方面,如果第一人工智能服务模块不能实现未实现的人工智能服务请求,则未实现的人工智能服务请求将被发送到第二人工智能服务模块。第二人工智能服务模块与第二类型的操作系统兼容,并且能够在第二类型的操作系统中操作。第一类型的操作系统和第二类型的操作系统是不同的。第二人工智能服务模块用于处理未实现的人工智能服务请求,以生成实现的人工智能服务请求。
在一个实施例中,该方法可确定实现的人工智能服务请求是否与第一类型的操作系统和用户交互应用兼容并能在第一类型的操作系统和用户交互应用中操作。如果实现的人工智能服务请求与第一类型的操作系统和用户交互应用兼容并能够在第一类型的操作系统和用户交互应用中操作,则实现的人工智能服务请求被发送到用户交互应用。另一方面,如果实现的人工智能服务请求与第一类型的操作系统和用户交互应用不兼容或不能在第一类型的操作系统和用户交互应用中操作,则实现的人工智能服务请求被转换成与第一类型的操作系统和用户交互应用兼容并能在第一类型的操作系统和用户交互应用中操作的第二实现的人工智能服务请求。则第二实现的人工智能服务请求替代为被发送到用户交互应用。在一个实施例中,第一人工智能服务模块和第二人工智能服务模块兼容并能够跨不同类型的操作系统操作。在一个实施例中,第一人工智能服务模块在第一类型的操作系统顶部上操作,以直接与用户交互应用通信。在一个实施例中,第二人工智能服务模块在云计算环境上执行。在一个实施例中,第二人工智能模型可以与第二人工智能模块相关联。第二人工智能模型可以更新。该更新然后将被推送到与第一人工智能服务模块相关联的第一人工智能模型。在一个实施例中,第一人工智能服务模块可以在以下之一上操作:智能手机、支持人工智能的扬声器、汽车、电视、具有屏幕和AI能力的机械设备、智能手表、平板计算机或笔记本计算机。
还公开了一种人工智能服务系统。在一个实施例中,该系统包括用户计算设备。该用户设备具有用户接口和被配置为与第二计算设备通信的收发器、被配置为运行机器可执行代码的处理器、以及存储非暂时性机器可执行代码的存储器。该非暂时性机器可执行代码被配置为接受来自运行在用户计算设备上的操作系统或运行在操作系统上的用户交互应用的未实现的人工智能服务请求。该非暂时性机器可执行代码被配置为处理未实现的人工智能服务请求,以确定第一人工智能服务模块是否能够处理未实现的人工智能服务请求。如果第一人工智能服务模块能够处理未实现的人工智能服务请求,则非暂时性机器可执行代码被配置为用第一人工智能服务模块来处理未实现的人工智能服务请求,以实现未实现的人工智能服务请求,从而生成实现的人工智能服务请求。另一方面,如果第一人工智能服务模块不能实现未实现的人工智能服务请求,则非暂时性机器可执行代码被配置为将未实现的人工智能服务请求发送到在第二计算设备上操作的第二人工智能服务模块,其中用第二人工智能服务模块处理未实现的人工智能服务请求,以实现未实现的人工智能服务请求,从而生成实现的人工智能服务请求。该非暂时性机器可执行代码被配置为然后将实现的人工智能服务请求发送给用户交互应用或操作系统。
在一个实施例中,第二人工智能服务模块在与第一人工智能服务模块不同的操作系统上操作。在一个实施例中,第二人工智能服务模块在云计算环境上执行。在一个实施例中,第一人工智能服务模块还被配置为向第二人工智能服务模块发送与第一人工智能服务模块相关联的人工智能模型的更新。在一个实施例中,第一人工智能服务模块和第二人工智能服务模块兼容并能够跨不同类型的操作系统操作。在一个实施例中,第一人工智能服务模块在第一类型的操作系统顶部上操作,以直接与用户交互应用通信,从而为用户交互应用启用人工智能服务。
本申请通过在操作系统顶部部署层,而不是向个人开发者提供SDK,对上述三种现有技术方法进行了改进。该层允许AI程序由应用开发者通过该层所做的透明硬件和网络优化来执行。此外,AI层可以具有由单个开发者部署的新功能,使得在该层顶部上运行的OS上的其他用户或应用也可以利用该新功能。AI层能够运行在移动操作系统、消费者桌面操作系统、云服务器操作系统或嵌入式操作系统顶部上。术语“层”是指动态库。系统和处理可以是分布式的,并且能力是本地的,在另一设备上,在云中,或者以任何组合。术语系统被定义为表示软件、硬件或两者,它们实现并提供这里描述的功能。该层确定请求是可以在本地运行,还是应该从运行在另一设备或云中的库中请求。层方法为调度计算提供了以下功能:
·整个操作过程中只需安装单个层。安装后,应用和系统服务可以通过该同一层路由所有请求。
·该层可以监控操作系统资源,以确定是否可以本地执行所请求的智能服务的执行。
·在云计算环境中,该层可以监控运行在与操作系统相同的网络上的设备上的其他连接层可用的资源。在当前层上不可能进行的计算可以传递到那些层或其他位置。
·该层可以监控部署在云环境中的层中可用的资源。该层能够确定网络延迟和设备上的计算争用之间的权衡,以便将请求传递给云层。
该创新还提供了开发者可部署新的AI服务或在预建服务的顶部上进行更新和构建的机制。预建服务是定义良好的AI模型,具有特定的用例。预构建的服务可以是针对特定领域(诸如电子商务和销售)的自然语言处理。这可以通过以下功能来实现:
·开发者可以将他们的数据集上传到云层进行训练。数据集可以包括开发者的产品清单、语言数据集或用于训练模型的任何信息集。下一次服务被触发时,云层可以提供更新的执行。
·设备上的用户可以对其本地层进行改变。当下一层将计算传递给云层时,云层可以接收更新的模型。
·本地层是指运行在即时设备上的软件库。
·云层是指跨互联网的服务器上托管的aiOS功能。本地层决定何时调用云层。
附图说明
附图中的组件不一定按比例绘制,重点在于说明本发明的原理。在附图中,在不同的视图中,相同的附图标记表示相应的部分。
图1示出了在单个用户设备上运行的独立AI层。这种配置克服了上述限制。
图2示出了用户如何使用单个aiOS同时与多个设备通信。
图3示出了配置为与云AI层通信的设备。
图4示出了位于不同设备上的AI层的框图。
图5示出了该设备-设备-云部署的实施例,其中AI层可将服务请求卸载至存储在另一设备中的另一AI,该另一设备进一步将该服务请求卸载至存储在云中的另一AI。
图6示出了在驻留在3个不同位置的3个独立的aiOS上实现的服务请求的生命周期。
图7是示出路由服务请求的示例性过程的操作流程图。
图8是aiOS训练的示例方法的流程图。
图9示出了通过本地和第三设备实现的面向用户的请求的示例性生命周期的流程图。
图10示出了从本地设备上的aiOS向一个或多个其他aiOS分发ML模型的本地更新的示例性方法的流程图。
图11示出了使用aiOS处理用户请求的一般生命周期的流程图。
图12示出了接收器输入的流程图,以展示跟踪模型的本地更新以及本地模型何时从aiOS远程接收更新的aiOS存储器模块。
图13示出了示例性用户设备的框图。
图14示出了网络环境中的计算、移动设备或服务器的示例实施例。
具体实施方式
术语表:
AI服务:AI服务是作为程序和方法提供给程序以实现人工智能目标的服务。示例可能包括图像建模、文本建模、预测、规划、推荐、搜索、语音处理、音频处理、音频生成、文本生成、图像生成等等。
设备:设备是至少运行网络控制器和CPU的任何元件。可选地,加速器可以以GPU或其他专用硬件加速器的形式被附加。这个加速器可以加速AI服务的计算。
操作系统(“OS”):操作系统是支持计算机基本功能的软件,诸如调度任务、执行应用和控制硬件。操作系统向其他软件提供对这些功能的访问。
应用(“App”):app是在任何面向用户的设备上运行的任何软件,所述设备诸如移动设备、智能手表、平板计算机、家用扬声器、可穿戴设备(包括智能戒指、眼镜、助听器、CarPlay设备、安全摄像机、网络摄像头、电视、投影屏幕监视器、条形音箱、个人计算机、耳机、耳塞和笔记本计算机设备),其中用户可通过触摸、音频、视觉或被动方式进行交互。
精细调整/训练:可在数据集上“调整”AI服务,以为特定用例提供专门和增强功能。模型是用一组标准数据“训练”的,例如用于单词检测的音频文件。精细调整将允许特定任务的训练的最后一步。例如,在一阶段,用户说出定义的单词,模型根据用户的声音和口音进行训练。
如本文所述,本申请引入了新的和改进的方法和装置,用于跨多个平台提供AI服务。这种改进的方法使用动态AI层或AI操作系统(“aiOS”)来促进任何用户交互应用和AI服务部署在其上的任何平台之间的兼容性。用户交互应用可以包括用户可以与之交互的设备上可执行的任何应用软件,诸如但不限于虚拟助理、音乐播放器、搜索引擎、天气应用(weather app)、游戏、录音机或日历。
例如,用户交互应用可以是仅允许基于文本的用户输入(诸如通过文本输入位置)的天气应用。如果天气应用的开发者希望添加AI功能,诸如语音识别(允许用户通过语音命令输入位置),使用传统方法,开发者将无法跨多个平台部署该功能。可能存在硬件限制,因为一些设备,诸如智能手表,可能没有内置的语音识别功能。在这种情况下,开发者将无法在安装在某些设备或不同设备(诸如电话和计算机)上的天气应用上实现语音识别功能,因为这些设备使用不同的硬件来实现语音识别。在这种情况下,开发者可能需要提供许多不同版本的软件应用,以确保与每种类型的硬件兼容。
此外,可能存在软件(诸如Android OS和iOS)限制,因为不同的平台,需要不同的编码语言。在这种情况下,开发者可能需要实现与不同语言兼容的不同版本的语音识别功能。还可能存在网络限制,因为一些设备可以访问互联网,而其他设备则不能。例如,安装在车辆中的天气应用中的语音识别可能只能利用天气应用本身提供的本地数据库,因为车辆可能没有Wi-Fi连接。另一方面,安装在智能手机上的天气应用中的语音识别可能会利用基于云的数据库,因为智能手机可以接入Wi-Fi。在这种情况下,开发者可能再次需要根据天气应用在其上操作的设备来实现不同版本的语音识别功能。
另一方面,使用本文公开的方法和装置,开发者可在使用任何操作系统的任何设备上部署单一版本的更新天气应用,因为AI层或aiOS可以克服硬件、软件或网络差异以实现操作。
图1示出了在单个用户设备上运行的独立AI层。这种配置克服了上述限制。
在图1中,设备100(诸如智能手机、平板计算机或任何其他设备)包括操作系统104(诸如iOS或Android)。安装在设备操作系统104中的是用户交互应用112。用户交互应用112可以包括用户可以与之交互的设备上可执行的任何应用软件,诸如但不限于虚拟助理、音乐播放器、搜索引擎、天气应用、游戏、录音机或日历。AI层114也被安装在设备操作系统104中。AI层114可被安装在设备操作系统104(包括用户交互应用112)中的所有应用访问。
使用上述示例,用户交互应用112可为天气应用,其原始形式不具有语音识别功能。因此,用户108可以提供包括音频输入的输入,天气应用可以将该音频输入识别为天气应用不能实现的服务请求。因此,天气应用将服务请求传递给AI层114,AI层114然后使用由AI层114提供的语音识别特征来实现服务请求。在一个实施例中,AI层114可以首先尝试利用设备操作系统104上提供的语音识别特征来实现服务请求。
图2详细说明了用户如何使用单个aiOS同时与多个设备通信。在图2中,用户200向用户可以直接与之交互的任何设备208-228提供用户输入204。这些设备208-228然后直接与aiOS 232通信。
用户200可与之交互的设备实例可包括汽车设备(诸如CarPlay设备208),个人电子设备(诸如智能手机212或平板计算机216(或个人计算机、笔记本计算机设备)),可穿戴设备(诸如智能手表220(或智能戒指、眼镜、助听器、耳机、耳塞)),家用设备(诸如家用扬声器224(或安全摄像头、网络摄像头、电视、投影屏幕监视器、声棒)),或任何其他设备228。用户200可以通过提供包括语音、文本或图像数据的用户输入,诸如向个人电子设备208-220发送音频命令、文本命令或图像或视频文件,从家用设备224接收用户输出,诸如音乐、图片、视频,或者两者(例如智能手机212既可以接收用户输入又可以提供用户输出)来与这些设备208-228交互。
当用户200向一个或多个设备208-228提供用户输入204时,用户输入204通过一个或多个设备208-228传递到aiOS 232,其同时协调和促进用户-设备交互和设备-设备交互。例如,用户200可能正在驾驶并希望查看天气。用户200可以向智能手机212提供语音输入形式的用户输入204—“天气如何?”。智能手机212通过在智能手机212的屏幕上显示天气的文本和图像来用其自己的天气输出进行响应,但是同时使用aiOS 232向CarPlay设备208发送相同的天气信息。aiOS 232允许CarPlay设备208接收由智能手机212以CarPlay设备208可以识别的格式(诸如纯文本格式)提供的天气信息并进行处理(诸如通过汽车扬声器读取纯文本格式提供给用户的天气状况)。尽管结合语音识别以示例的方式进行了讨论,但是aiOS可以跨许多不同的硬件/软件平台执行任何AI相关的功能或服务,诸如但不限于音频、图像、视频、对象、个性化、搜索、预测、文本识别或涉及文本、音频和视觉输入的任何组合的任何其他预测任务。
可以理解的是,这些设备中的每一个可具有明显不同的硬件,并可操作不同的操作系统。因此,这里公开的方法和装置被配置为在这些设备中的每一个上运行,从而可以容易地跨多个不同的平台部署。此外,用户的语音数据库、优选的数据库、历史数据库被跨不同平台的每个安装使用,从而改进操作。
新颖性的的一个方面在于,本文公开的方法和装置可分布式运行,并具有服务发现和感知功能,使得设备或实例可将服务请求卸载至附近的设备或这些服务的云安装版本。图3示出了实施例,其中AI层可以将服务请求卸载到存储在云中的另一AI层。
图3示出了配置为与云AI层通信的设备。设备300包括设备操作系统304。设备300可以是被配置为执行一个或多个软件应用并与用户交互的任何计算设备。安装在设备操作系统304中的是用户交互应用308。用户交互应用308可以包括用户可以与之交互的设备上可执行的任何应用软件,诸如但不限于虚拟助理、音乐播放器、搜索引擎、天气应用、游戏、录音机或日历。第一AI层312也安装在设备操作系统304中。第一AI层312可被安装在设备操作系统304(包括用户交互应用308)中的所有应用访问。第二AI层316存储在远程基于云的数据库320中。两个AI层312、316可以经由任何类型的电子连接(诸如有线网络、光通信、Wi-Fi、蓝牙、蜂窝网络、网状网络等)相互访问。
使用上述示例,用户交互应用308可为天气应用,其原始形式不具有语音识别功能。因此,用户324可以提供包括音频输入的输入,天气应用可以将该音频输入识别为天气应用不能实现的服务请求。因此,天气应用将服务请求传递给第一AI层312,尝试使用其自己的语音识别特征来实现服务请求。在一个实施例中,第一AI层312可以首先尝试利用设备操作系统304上提供的语音识别特征来实现服务请求。
然而,如果第一AI层312无法实现服务请求(诸如由于不具备内置语音识别功能的限制),第一AI层312可将服务请求卸载至第二AI层316。第二AI层316可以使用其自己的资源(诸如第二AI层316中的内置语音识别特征)来实现服务请求。第二AI层316然后可以将与实现的服务请求相关的信息传递回第一AI层312,并且第一AI层312将把与实现的服务请求相关的信息传递给设备操作系统304以供进一步处理,就好像第一AI层312是执行转换的层一样。尽管结合语音识别以示例的方式进行了讨论,但是AI层可以跨许多不同的硬件/软件平台(诸如但不限于音频、图像、视频、对象、个性化、搜索、预测、文本识别或涉及文本、音频和视觉输入的任何组合的任何其他预测任务)执行任何AI相关的功能或服务。
图4示出了位于不同设备上的AI层的框图。在该实施例中,第一设备中的AI层可以将服务请求卸载到存储在另一设备中的另一AI层。本文公开的方法和装置通过其使术语表中定义的应用连接设备到设备的能力是可水平缩放的。
在图4中,第一设备400包括第一设备操作系统404。安装在第一设备操作系统404中的是用户交互应用408。第一AI层412也安装在第一设备操作系统404中。第一AI层412可被安装在第一设备操作系统404(包括用户交互应用408)中的所有应用访问。第二设备416包括第二设备操作系统420。安装在第二设备操作系统420中的是第二AI层424。安装在第二设备操作系统420中的所有应用都可以访问第二AI层。两个AI层412、424可以经由任何类型的电子连接(诸如有线网络、光通信、Wi-Fi、蓝牙、蜂窝网络等)相互访问。
使用上述示例,用户交互应用408可为天气应用,其原始形式不具有语音识别功能。因此,用户428可以提供包括音频输入的输入,天气应用可以将该音频输入识别为天气应用不能实现的服务请求。因此,天气应用将服务请求传递给第一AI层412,尝试使用其自己的语音识别特征来实现服务请求。在一个实施例中,第一AI层412可以首先尝试利用第一设备操作系统404上提供的语音识别特征来实现服务请求。
然而,如果第一AI层412无法实现服务请求(诸如由于不具备内置语音识别功能的限制),第一AI层412可将服务请求卸载至第二AI层424。第二AI层424可以使用其自己的资源(诸如第二AI层424中的内置语音识别特征)来实现服务请求。在一个实施例中,第二AI层424可以首先尝试利用第二设备操作系统420上提供的语音识别特征来实现服务请求。第二AI层424然后可以将与实现的服务请求相关的信息传递回第一AI层412,并且第一AI层412将把与实现的服务请求相关的信息传递给设备操作系统404以供进一步处理,就好像第一AI层412是执行转换的层一样。尽管结合语音识别以示例的方式进行了讨论,但是AI层可以跨许多不同的硬件/软件平台(诸如但不限于音频、图像、视频、对象、个性化、搜索、预测、文本识别或涉及文本、音频和视觉输入的任何组合的任何其他预测任务)执行任何AI相关的功能或服务。
第二级服务请求卸载通过设备加云的组合实现。图5示出了这种设备-设备-云部署的实施例,其中AI层可以将服务请求卸载到存储在另一设备中的另一AI,该另一设备进一步将该服务请求卸载到存储在云中的又一AI。
在图5中,第一设备500包括第一设备操作系统504。安装在第一设备操作系统504中的是用户交互应用508。第一AI层512也安装在第一设备操作系统504中。第一AI层512可被安装在第一设备操作系统504(包括用户交互应用508)中的所有应用访问。第二设备516包括第二设备操作系统520。安装在第二设备操作系统520中的是第二AI层524。AI层528存储在远程基于云的数据库532中。三个AI层512、524、528可以经由任何类型的电子连接(诸如有线网络、光通信、Wi-Fi、蓝牙、蜂窝网络等)相互访问。
因此,用户536可与用户交互应用508(对天气应用的语音命令,诸如“天气如何”)进行交互,以创建服务请求(诸如检索天气信息)。通常,用户交互应用508利用第一AI层512将服务请求部署到第一设备操作系统504(诸如,在天气应用不具有其自己的语音识别特征的情况下,通过利用第一AI层512中的语音识别特征来实现服务请求)。然而,在第一AI层512不足以执行这种部署的情况下(例如,没有其自己的语音识别特征),第一AI层512可以将服务请求卸载到第二AI层524。如果第二AI层524也不足以执行这样的部署,则第二AI层524可以进一步将服务请求卸载到第三AI层528。
在一个实施例中,在默认情况下,第一AI层512可首先尝试将服务请求卸载至同一网络上另一设备的AI层(诸如第二AI层524),若设备上的AI层无法实现服务请求,此类服务请求仅可卸载至云上的AI层(诸如第三AI层528)。在一个实施例中,第一AI层512可以确定哪个AI层是优选的,包括云上的AI层,并且服务请求可以首先被卸载到优选的AI层。
在一个实施例中,AI层优选的可自动更新。例如,如果先前的卸载请求被拒绝(诸如,如果AI层发生故障,或者存储AI层的设备已经离线),则该AI层可能在设定的时间段内或无限期地不再被指定为优选AI层。
实现服务请求后,第三AI层528可将服务请求传回第一AI层512,以传递至第一设备操作系统504进行进一步处理。该设备-设备-云卸载过程发生在后端,使得从用户交互应用508的角度来看,第一AI层512执行服务请求。
尽管通过与语音识别相关的示例进行了讨论,但AI层可在多种不同的硬件/软件平台(诸如但不限于音频、图像、视频、对象、个性化、搜索、预测、文本识别,或涉及文本、音频和视觉输入的任何组合的任何其他预测任务)上执行任何AI相关功能或服务。
本文公开的系统使用发现来部署在多个本地和云实例上。例如,像手表这样的设备可能不具备处理复杂视频的能力,可能会将复杂的请求分流到另一个本地设备(诸如智能手机)。智能手机进而可以利用本地模型来处理视频帧,以确定该视频的特征,诸如视频中的情感和语音。最后,情感和文本流被传输到云,在云里,情感和文本的通用推理模型确定意图并实现用户对视频的请求。然后,可以在用户不知道解决方案路径的情况下,将结果发送回用户。
图6展示了在驻留在3个不同位置的3个独立的aiOS上实现的服务请求的生命周期。在图6中,第一本地设备600容纳第一aiOS。第一本地设备600可以是具有有限能力的用户设备(诸如仅具有音频能力的扬声器,或者具有简单语音识别能力的智能手机)。第一aiOS 604包括用于处理第一设备600可以本地实现的请求的本地服务模块608,以及用于路由第一设备600不能本地实现的服务请求的路由器服务模块612。第二设备616容纳第二aiOS 620。第二设备616可以是更有能力的设备,诸如具有高级语音识别和处理能力的智能手机。云或远程基于云的数据库624容纳第三aiOS 628。三个aiOS 604、620、628可以经由任何类型的电子连接(诸如有线网络、光通信、Wi-Fi、蓝牙、蜂窝网络等)相互访问。
如前图所述,当用户632试图与本地设备600上的用户交互应用进行交互,且用户交互应用将用户输入识别为用户交互应用无法实现(诸如不具备一项或多项功能)的服务请求时,用户交互应用可将服务请求传递至第一aiOS 604。当服务请求进入第一aiOS 604时,服务请求的生命周期开始。在图6中,服务请求是语音请求634的形式,但是服务请求可以是任何数字格式。
第一aiOS 604可首先尝试在其本地服务模块608中处理语音请求624。本地服务模块608可以首先尝试使用第一本地设备600上的自动语音识别(“ASR”)特征638来本地处理语音请求634(诸如使用本地设备600上可用的软件和硬件来将语音转换成文本请求654格式)。如果本地ASR 638不能本地处理语音请求634,则语音请求642可以被路由到路由器服务模块612,以将服务请求卸载到另一aiOS 620、628。
如果本地ASR 638能够本地处理语音输入634,则本地服务模块608可通过定位本地设备600中的本地域646,尝试本地实现服务请求(诸如使用本地设备600或第一aiOS 604上可用的软件和硬件实现服务请求)。域是一组功能或模块,用于管理一组公共规则或实现一个公共目标(在本例中,用于处理服务请求)。如果本地服务模块608能够定位本地域646,则本地服务模块608将利用所定位的域本地实现服务请求650。如果本地服务模块608不能定位本地域,则文本请求654可以被路由到路由器服务模块612,以将服务请求卸载到另一aiOS 620、628。
接收到路由的语音请求642或文本请求654后,路由器服务模块612可利用数据路由器658将路由的语音请求642或文本请求654发送至另一aiOS 620、628。在图6中,路由的服务请求是语音请求642和文本请求654的形式,但是服务请求可以是任何数字格式。
在一个实施例中,发现服务640可使数据路由器658首先尝试将服务请求卸载至同一网络上另一设备上的aiOS(诸如第二aiOS 620),仅当设备上的aiOS无法实现服务请求时,此类服务请求才可卸载至云上的aiOS(诸如第三aiOS 628)。在其他实施例中,可以在卸载到第二设备616之前尝试云卸载。还预期卸载可以发生在云624和第二设备616两者上,以确保操作有效性。发现服务是发现驻留在其他设备或网络其他部分的服务的常用术语。
在一个实施例中,注册服务模块642可以确定哪些aiOS(包括云中的aiOS)优选的,并且服务请求可首先卸载至优选的aiOS。服务注册描述了软件如何找到从云和其他设备层提供的服务。例如,图像处理模型可能仅在存储在云中的aiOS上可用,而在存储在设备上的aiOS上不可用。注册服务642可以确定这样的图像处理模型存在于何处,并选择最佳的处理模型。
在一个实施例中,注册服务模块642可自动更新aiOS优选。例如,如果先前的卸载请求被拒绝(诸如,如果aiOS发生故障,或者存储aiOS的设备已经离线),则该aiOS可能在设定的时间段内或无限期地不再被指定为优选的aiOS。
实现路由的服务请求后,第二aiOS 620或第三aiOS 628可将服务请求路由回第一aiOS 604进行进一步处理,或发送至第一设备600上的操作系统进行进一步处理。
图7是示出路由服务请求的示例性过程的操作流程图。在该示例操作方法中,使用发现服务和注册服务将服务请求从一个设备上的aiOS或AI层路由到另一设备上的aiOS或AI层,或者路由到云上的aiOS或AI层。
在步骤700中,当设备上的aiOS或AI层确定其无法本地实现服务请求,并指定服务请求路由至另一aiOS或AI层时,激活路由器服务模块。例如,用户在其智能手表上指定一张照片进行面部识别。智能手表上的AI层无法在本地执行面部识别。智能手表上的AI层因此激活其路由器服务模块,以准备将面部识别服务请求卸载到另一aiOS或AI层。
在步骤704中,注册服务确定实现服务请求704所需的服务,以及提供此类服务的可访问aiOS或AI层。使用上面的示例,可访问的aiOS或AI层可以包括智能手表上的AI层、智能手机上的AI层、扬声器上的AI层以及云上的aiOS。智能手表上AI层的注册服务可能会确定智能手机上的AI层和云上的aiOS具有面部识别功能。因此,智能手表的AI层上的注册服务可以将智能手机上的AI层的面部识别服务和云上的aiOS(“注册设备”)注册为要使用的可能服务。
在步骤708中,发现服务执行Wi-Fi发现或任何类型的网络发现,以确定哪些注册的设备可经由本地网络访问。Wi-Fi发现使用标准网络发现层,诸如通用即插即用(UPnP)、服务定位协议和其他协议,来发现可经由本地网络访问的设备上的aiOS或AI层。使用上面的示例,发现服务可以使智能手机上的AI层宣布对本地设备的搜索,并经由这些标准协议执行搜索,以使AI层能够在本地找到其自身的实例,用于特征解析。在一个实施例中,发现服务还可以执行其他可能的xNFC或近场通信发现。
如果没有可经由本地网络(诸如,在前述示例中,智能手机上的AI层显示为离线)访问的注册服务,则在步骤712,路由器服务模块可将服务请求路由至基于云的aiOS或AI层(诸如,在前述示例中,云上的aiOS)。
另一方面,如果发现服务将已注册服务识别为可经由本地网络访问,则在步骤716,注册服务将注册识别的服务。使用前面的示例,如果智能手机上的AI层似乎可以经由本地网络访问,则注册服务会将智能手机上的AI层上的服务注册为识别的服务。在步骤720,在注册识别的服务时,路由器服务模块可以将服务请求路由到本地网络上的一个或多个识别的服务(诸如智能手机上的AI层)。
图8是aiOS训练示例方法的流程图。在图7的方法中,使用语音识别的示例来说明关于开发者和用户如何对aiOS或AI层的训练做出贡献的训练操作和交互,并使用训练的数据来创建可部署的AI模型。在图8中,aiOS存储在云800中,诸如以非暂时状态存储在存储器中,并且可由用于处理数据输入的一个或多个处理器804、808、用于训练AI数据的模型训练器812以及用于创建部署在诸如智能手机、平板计算机或任何其他设备的设备820上的模型的AI模型评估器832来执行。图8示出了存储在云或基于云的远程服务器中的aiOS,但是,这种训练和部署模型适用于存储在任何设备、云或服务器上的任何aiOS或AI层。
数据输入可为设备820的开发者824或用户828的任何输入。开发者824的输入可包括产品清单、语言数据集或模型训练器812可用于训练AI模型的任何信息集。开发者可以编写这样的程序,他们的用户输出ASR、图像(image)或NLP(三者可以同时输入)。使用语音识别的示例,开发者824可以上传包括转录的音频数据832的用户数据集。用户828可以通过与设备820交互来输入一组或多组词汇。词汇可以包括具有相关联的语音模式和/或附加相关联的数据的术语库,其专用于特定主题、人物、领域、语言或任何其他特定属性。开发者824也可以通过他自己与设备820的交互来创建、添加或补充用户数据集。图8示出了语音识别的示例,但是该训练和部署模型适用于任何类型的用户输入,目的是为任何AI服务(诸如但不限于声音、音乐、图像、模式、数学方程、产品、视频或任何其他主题类型或模型)训练数据和部署模型。
aiOS 800可使用任何类型的处理器处理数据输入。对于语音识别,aiOS可以使用转录的音频数据处理器804来处理转录的音频数据832(数字化的语音),并且使用词汇处理器808来处理词汇836。图8还仅示出了语音识别相关数据输入的处理,但是aiOS或AI层可以包括用于任何类型的用户输入的处理器。
模型训练器812使用来自处理器804、808的已处理数据来训练存储在aiOS 800中的现有数据,诸如存储在云计算环境的存储器中的现有数据。aiOS 800,诸如存储在云计算环境的存储器中的现有数据。使用语音识别作为示例,模型训练器812可以更新现有的语音识别算法或者添加新的语音识别算法。这将具有增强模型对于特定任务或用户的准确性或适用性的效果。图8仅示出了语音识别相关数据输入的训练,但是该训练过程可以应用于任何类型的AI服务相关数据。
训练完成以后,模型评估器816可确定是否应更新现有的AI服务模型。该确定可以基于自上次更新以来的时间、AI服务模型的变化程度、周期性地、在AI服务模型的任何变化时、或任何其他基础。使用语音识别作为示例,设备820可以包括当前使用第一版本的ASR模型的用户交互应用。一旦完成训练,模型评估器816可以确定第一版本的ASR模型不再适合处理由用户828提供的新词汇数据836。因此,模型评估器816可以确定第一版本的ASR模型需要更新的模型。图8仅示出了对ASR模型的评估,但是这个评估过程可以应用于任何类型的AI服务模型。
在确定应更新现有模型后,模型评估器816可从训练数据中收集指标,以创建用于部署的更新模型。使用语音识别作为示例,模型评估器816可以创建第二版本的ASR模型840,用于部署到设备820。图8仅示出了ASR模型的创建和部署,但是这个创建和部署过程可以应用于任何设备上的任何类型的AI服务模型。
部署以后,设备826可继续与用户828交互(反之亦然),并且用户可继续为模型训练和创建贡献新词汇数据836。
图9示出了通过本地和第三设备实现的面向用户的请求的示例性生命周期的流程图。面向用户的请求是一种类型的服务请求,其中用户输入查询,该查询以对该查询的响应的形式提示输出。例如,用户可以要求设备900“给我找一份鸡肉食谱”。该设备可以输出“这是一个很棒的鸡肉食谱”的响应。
在图9中,第三设备900容纳一个或多个第三用户交互应用904和第三aiOS 908。第三设备900可以是具有有限AI能力的设备,诸如可穿戴设备(智能手表、智能戒指、眼镜、助听器、耳塞、耳机等)、家庭设备(扬声器、安全摄像机、电视、投影屏幕监视器等)、CarPlay设备或任何其他具有有限AI能力的设备(网络摄像头、音棒等)。主设备912容纳一个或多个主用户交互应用916和主aiOS 920。主设备912可以是具有更健壮的AI能力的设备,诸如智能手机、平板计算机、个人计算机、笔记本计算机设备等。第三和主用户交互应用904、916可以是相同的(诸如安装在智能手表和智能手机上的天气应用)。第三aiOS 908可以经由任何类型的电子连接,诸如有线或无线连接,访问一个或多个主用户交互应用916和主aiOS 920。类似地,主aiOS 920可以经由任何类型的电子连接(诸如有线或无线连接)访问一个或多个第三用户交互应用904和第三aiOS 908。
当用户试图经由用户输入928与第三用户交互应用904进行交互时,第三用户交互应用904可将用户输入928识别为第三用户交互应用904无法实现(诸如不具备一项或多项功能)的服务请求。用户输入928可以包括音频输入、图像输入、文本输入或任何数字格式的输入。例如,用户可以经由音频命令“今天天气如何?”与其智能手表上的天气应用进行交互。天气应用可能没有语音识别功能来处理音频命令。
第三用户交互应用904可将服务请求传递给第三aiOS 908。在图1至图7中更详细地讨论了这个aiOS卸载服务请求的用户交互应用904。当用户输入928进入第三aiOS 908时,面向用户的请求的生命周期开始。尽管结合第三aiOS 908上的用户输入928作为示例进行了讨论,但是面向用户的请求的生命周期可以在用户输入进入任何设备上的任何aiOS或AI层时开始。
第三aiOS 908可首先通过确定本地模型932是否可用于处理用户输入928,尝试本地实现请求。本地模型可以是能够满足用户请求的第三aiOS 908或第三设备900上的操作系统上的模块、特征或功能。用户输入928可以以静态(诸如显示文本或图像)和流式(诸如播放音频或视频)方式处理和输出。
如果找到本地模型932,第三aiOS 908可处理936用户输入928,直到服务请求可被实现。对于面向用户的请求,这样的处理936可以包括生成一个或多个输出940。一些面向用户的请求可能需要一轮或多轮处理944来实现。例如,用户输入928可以包括首先由ASR模型处理的音频,生成ASR输出。然后,ASR输出由NLU(自然语言理解)模型处理,以生成实现服务请求的NLU输出。NLU模型是一种自然语言理解模型,它处理话语或话语序列,试图理解用户使用的语言。话语可以是用户查询的形式。当生成响应输出时,面向用户的请求被实现。该输出可以响应用户请求本身,在这种情况下,第三aiOS 908直接使第三设备900向用户呈现响应输出948。或者该输出可以是中间输出,第三aiOS 908可以将该中间输出发送给用户交互应用904以实现处理,并且用户交互应用904可以完成实现服务请求本身的最后步骤,然后使第三设备900向用户呈现响应输出948。
如果第三aiOS 908无法在本地处理用户输入928,可将用户输入928路由至主用户交互应用916。如果主用户交互应用916也不能处理用户输入928,它可以将用户输入928发送给主aiOS 920。在一个实施例中,第三aiOS 908可以将用户输入928直接路由到主aiOS920。
接收到用户输入928后,主aiOS 920可重复第一aiOS 932-944中的过程,直到用户输入928被完全处理952并生成响应输出956。主aiOS 920然后可以将响应输出956发送回主用户交互应用916,主用户交互应用916可以将响应输出956发送到第三aiOS 908。在一个实施例中,主aiOS 920可以将响应输出956直接发送给第三aiOS 908。第三aiOS 908然后可以将响应输出956发送到第三用户交互应用904,以呈现给用户。
使用上述示例,智能手表天气应用可能无法处理用户音频命令“今天天气如何?”智能手表天气应用可以向智能手表aiOS发送音频命令。如果智能手表aiOS确定它无法在本地处理音频命令,音频命令可能会被路由到智能手机天气应用。如果智能手机天气应用无法处理音频命令,则音频命令可能会被发送到智能手机aiOS。智能手机aiOS可以在智能手机上本地处理音频命令(诸如将音频命令转换为智能手表天气应用可以识别和处理的文本命令)。然后,可以将文本命令发送回智能手机天气应用,然后发送到智能手表aiOS,然后发送到智能手表天气应用,在智能手表天气应用中,文本命令被处理成智能手表上天气的文本或图像显示,或者智能手表的音频输出,以通知用户当前天气。
在一个实施例中,第三aiOS 908可本地实现面向用户请求的第一部分,仅将面向用户请求的第二部分卸载至第一aiOS 920。例如,第三aiOS 908可以包括ASR模型,而主aiOS 920可以包括ASR模型和NLU模型。第三aiOS 908可以使用本地ASR模型来执行面向用户的请求的一部分,并生成ASR输出,然后第三aiOS 908可以将该ASR输出路由到主aiOS920。主aiOS 920然后可以使用它的NLU模型来实现面向用户的请求。
在一个实施例中,一个或多个第三设备、一个或多个主设备和/或一个或多个云或远程云服务器上的aiOS和AI层可相互访问,并将面向用户的请求和任何其他服务请求卸载至一个或多个其他aiOS和/或AI层。
图10示出了从本地设备上的aiOS向一个或多个其他aiOS分发ML模型的本地更新的示例性方法的流程图。“ML模型”被定义为用于处理数据的学习通用函数。尽管结合ML模型以示例的方式进行了讨论,但是这种分布可以应用于任何基于AI或机器学习的模型的更新。术语“模型”被定义为用于实现一些预测或预报的一个函数或一组函数。
在图10中,本地设备1000容纳服务层1004和第一aiOS 1008。本地设备可以是任何第三设备或主设备。服务层可以是能够访问其设备上的aiOS或AI层的任何操作系统,或者是安装在操作系统中能够访问其设备上的aiOS或AI层的任何用户交互应用。另一设备1012(诸如另一第三设备或另一主设备)容纳第二aiOS 1016。云或远程基于云的服务器1020容纳第三aiOS 1024。三个aiOS 1008、1016、1024可以经由任何类型的电子连接(诸如有线或无线连接)相互访问。尽管结合aiOS以示例的方式进行了讨论,但是这种分布可以应用于aiOS和AI层。
服务层1004的用户1028输入可提示第一aiOS 1008处理模型更新1032的输入。如图8中所讨论的,模型处理可以包括输入处理、数据训练和模型评估。尽管结合本地设备中服务层上的用户输入作为示例进行了讨论,但是开发者也可以使用数据集或开发者的任何其他输入来提示模型更新。aiOS或AI层也可以自动发起更新(诸如基于第三方服务或数据的定期维护或更新)。
生成更新模型后,第一aiOS 1008可将本地模型1036部署到服务层1004,远程1040部署到第二aiOS 1016。服务层1004可以向用户1028提供模型更新的反馈。第二aiOS 1016可以在其他设备1012的服务层上本地部署该模型。更新的模型也可以被部署到云1020上的第三aiOS 1024。在一个实施例中,更新的模型被同时部署到所有本地和远程设备和/或云。在一个实施例中,基于用户优选、开发者优选和/或可用资源(诸如用于上传的可用移动数据),更新的模型可以以特定顺序部署,或者仅部署到指定的aiOS或AI层。
在一个实施例中,部署到远程设备或云的更新模型可促进进一步部署。例如,虽然本地设备1000上的第一aiOS 1008不能访问第三设备上的第四aiOS,但是云上的第三aiOS1024可以通过不同的电子连接访问第四aiOS。因此,当从第一aiOS 1008接收到模型更新时,第三aiOS 1024可以进一步将模型更新部署到第四aiOS。第四AIO然后可以在第三设备上本地部署模型更新,并且进一步将模型更新部署到其网络中的aiOS或AI层。这种部署的中继可以发生,直到所有的aiOS和AI层都已经接收到模型更新,并且具有aiOS或AI层的所有设备都已经用模型更新进行了更新。这种跨所有设备和云的分支分发方法利用了云跨多个设备的一致性以及各种设备的处理能力的优势。
尽管通过与启动模型过程和更新程序的本地设备相关的示例进行了讨论,但该程序可在任何设备和任何云或基于云的远程服务器中存储的aiOS和AI层上启动和执行。
图11示出了使用aiOS处理用户请求的一般生命周期的流程图。用户输入(例如,音频、文本、视频)由数据处理器接收,该数据处理器对数据进行分类,并将其发送到适当的ML(机器学习)模型(如果包含在本地的话),或者发送到路由器以检索模型输出。
如果远程,路由器将在访问aiOS云资源之前尝试从其他本地设备获取资源。任何本地或远程的模型输出都将由模型输出处理器以流式或静态的方式进行处理。所有模型输出都将使用解析器返回输出或由后续模型处理。提取器(fetcher)被定义为本地或从云中检索必要的数据来实现查询。
图12示出了接收器输入的流程图,以展示跟踪模型的本地更新以及本地模型何时从aiOS远程接收更新的aiOS存储器模块。每当aiOS解析动作时,解析器就向aiOS存储器模块发送更新,该aiOS存储器模块将为将来的交互更新本地模型。在存储器模块中,有远程模型跟踪器,用于跟踪去往和来自aiOS云的更新需求。当远程模型发布更新时,远程模型提取器将提取更新并将其发送到本地模型更新器。当本地模型有足够多的本地改变时,远程模型跟踪器会将远程更新推送到aiOS云,然后所有与aiOS同步的设备都可以使用这些更新。
如图13和图14所示,该系统包括网络连接,通过该网络连接交换网络流量和数据。一个或多个服务器和一个或多个数据库也是系统的一部分。数据库可以与服务器、用户设备相关联,或者可以是第三方数据库。该系统的用户设备包括能够混合音频或视频输入方法的面向用户的设备、相机和/或麦克风。此外,它可以以灯、显示器、扬声器或触觉的形式为用户提供某种混合形式的显示。该设备可以是手持式固定设备(如TV或壁挂式设备),也可以是可移动设备(诸如桌面显示器)。该设备可以由用户激活,或者如果内部系统确定它应该侦听,则提示用户它是活动的。激活过程可以由视听信号的组合来触发。一旦被激活,该设备就转换到收听状态,在该状态下,它为了转录的目的而记录音频。系统的任何组件可以使用模型的组合将音频转录或翻译成文本。这些模型是每种语言和方言1个(例如,美国-西班牙语和西班牙-西班牙语将被认为是单独的模型)。
图13示出了移动设备的示例实施例,移动设备也称为用户设备,其可以是移动的,也可以不是移动的。这仅仅是一种可能的移动设备配置,因此可以设想,本领域普通技术人员可以不同地配置移动设备。移动设备1300可以包括能够如下所述执行的任何类型的移动通信设备。移动设备可以包括PDA、蜂窝电话、智能电话、平板计算机、无线电子平板、物联网设备、“可穿戴”电子设备或任何其他计算设备。
在该示例性实施例中,移动设备1300配置有外壳1304,外壳1304配置为保护和容纳下述组件。在外壳1304内是处理器1308以及第一和第二总线1312A、1312B(统称为1312)。处理器1308通过总线1312与移动设备1300的其他组件通信。处理器1308可以包括能够如本文所述执行的任何类型的处理器或控制器。处理器1308可以包括通用处理器、ASIC、ARM、DSP、控制器或任何其他类型的处理设备。处理器1308和移动设备1300的其他元件从电池1320或其他电源接收电力。电接口1324提供一个或多个电端口以与移动设备(诸如与第二电子设备、计算机、医疗设备或电源/充电设备)电连接。接口1324可以包括任何类型的电接口或连接器格式。
一个或多个存储器1310是移动设备1300的一部分,用于存储在处理器1308上执行的机器可读代码,并用于存储数据(诸如图像数据、音频数据、用户数据、位置数据、加速度计数据或任何其他类型的数据)。存储器1310可以包括RAM、ROM、闪存、光存储器或微驱动存储器。这里描述的机器可读代码(软件模块和/或例程)是非暂时性的。
作为该实施例的一部分,处理器1308连接至用户接口1316。用户接口1316可以包括被配置为接受用户输入来控制移动设备的任何系统或设备。用户接口1316可以包括以下的一个或多个:麦克风、键盘、滚球、按钮、滚轮、指示键、相机(静态和视频)、触摸板和触摸屏。还提供了触摸屏控制器1330,其通过总线1312接口并连接到显示器1328。
显示器包括配置为向用户显示视觉信息的任何类型的显示屏。屏幕可以包括LED、LCD、薄膜晶体管屏幕、OEL CSTN(彩色超扭曲向列)、TFT(薄膜晶体管)、TFD(薄膜二极管)、OLED(有机发光二极管)、AMOLED显示器(有源矩阵有机发光二极管)、电容触摸屏、电阻触摸屏或这些技术的任意组合。显示器1328从处理器1308接收信号,并且如本领域所理解的,这些信号被显示器翻译成文本和图像。显示器1328还可以包括显示处理器(未示出)或与处理器1308连接的控制器。触摸屏控制器1330可以包括被配置为从覆盖在显示器1328上的触摸屏接收信号的模块。
该示例性移动设备的另一部分是扬声器1334和麦克风1338。扬声器1334和麦克风1338可以由处理器1308控制。麦克风1338被配置为基于处理器1308的控制来接收音频信号并将音频信号转换成电信号。同样,处理器1308可以激活扬声器1334来生成音频信号。这些设备如本领域所理解的那样操作,因此在此不再详细描述。
第一无线收发器1340和第二无线收发器1344也连接到一条或多条总线1312,它们中的每一个都连接到相应的天线1348、1352。第一收发器1340和第二收发器1344被配置为从远程发射机接收输入信号,并对信号执行模拟前端处理以生成模拟基带信号。输入信号可以通过转换成数字格式(诸如通过模数转换器)来进一步处理,用于处理器1308的后续处理。同样,第一收发器1340和第二收发器1344被配置为从处理器1308或移动设备1308的另一组件接收输出信号,并将这些信号从基带上转换到RF频率,以便通过相应的天线1348、1352进行传输。尽管示出了第一无线收发器1340和第二无线收发器1344,但是可以预期,移动设备1300可以仅具有一个这样的系统或者两个或更多个收发器。例如,一些设备支持三频或四频,或者具有Wi-Fi、NFC或其他通信能力。
预期移动设备,且因此第一无线收发器1340和第二无线收发器1344可经配置以根据任何现有或未来开发的无线标准(包括但不限于蓝牙、WI-FI(诸如IEEE 802.11a,b,g,n、无线LAN、WMAN、宽带固定接入、WiMAX、任何蜂窝式技术(包括CDMA、GSM、EDGE、3G、4G、5G、TDMA、AMPS、FRS、GMRS、民用波段无线电、VHF、AM、FM和无线USB)))操作。
连接至第二总线1312B的一个或多个系统也是移动设备的一部分,第二总线1312B也与处理器1308连接。这些设备包括具有相关联的天线1362的全球定位系统(GPS)模块1360。GPS模块1360能够接收和处理来自卫星或其他转发器的信号,以生成关于GPS模块1360的位置、行进方向和速度的位置数据。GPS在本领域中是公知的,因此在此不再详细描述。陀螺仪1364连接到总线1312B,以生成并提供关于移动设备1304的方位的方位数据。提供磁力计1368以向移动设备1304提供方向信息。加速度计1372连接到总线1312B,以提供关于移动设备经受的冲击或力的信息或数据。在一种配置中,加速度计1372和陀螺仪1364生成数据并将其提供给处理器1308,以指示移动设备的移动路径和方向。
提供一个或多个相机(静态、视频或两者)1376,以捕获图像数据,用于存储在存储器1310中,和/或用于通过无线或有线链路的可能传输,或用于以后查看。一个或多个相机1376可以被配置为使用可见光和/或近红外光来检测图像。相机1376还可以被配置为利用图像增强、主动照明或热视觉来在黑暗环境中获得图像。处理器1308可以处理以非暂时状态或暂时状态存储在存储器上的机器可读代码,以执行本文描述的功能。
提供闪光灯和/或手电筒1380,诸如LED灯,且可由处理器控制。闪光灯或手电筒1380可以用作闪光灯或传统的手电筒。闪光灯或手电筒1380也可以被配置为发射近红外光。功率管理模块1384与电池1320连接或监控电池1320,以管理功耗、控制电池充电,并向可能需要不同功率需求的各种设备提供电源电压。
图14为根据一个示例性实施例的诸如上述设备之一的计算或移动设备或服务器的示意图。计算设备1400旨在表示各种形式的数字计算机(诸如智能手机、平板计算机、信息亭、笔记本计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机)。计算设备1450旨在表示各种形式的移动设备(诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备)。这里示出的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文档中描述和/或要求保护的实施方式。
计算设备1400包括处理器1402、存储器1404、存储设备1406、连接至存储器1404和高速扩展端口1410的高速接口或控制器1408,以及连接至低速总线1414和存储设备1406的低速接口或控制器1412。组件1402、1404、1406、1408、1410和1412中的每一个组件使用各种总线互连,并且可以安装在公共主板上或者以其他适当的方式安装。处理器1402可以处理用于在计算设备1400内执行的指令,包括存储在存储器1404中或存储设备1406上的指令,以在外部输入/输出设备(诸如耦合到高速控制器1408的显示器1416)上显示GUI的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备1400,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器1404存储计算设备1400内的信息。在一个实施方式中,存储器1404是一个或多个易失性存储器单元。在另一实施方式中,存储器1404是一个或多个非易失性存储器单元。存储器1404也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
存储设备1406可为计算设备1400提供大容量存储。在一个实施方式中,存储设备1406可以是或包含计算机可读介质,诸如硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备、或设备阵列,包括存储区域网络或其他配置中的设备。计算机程序产品可以有形地包含在信息载体中。计算机程序产品还可以包含指令,当被执行时,这些指令执行诸如上面描述的那些方法的一种或多种方法。信息载体是计算机或机器可读介质,诸如存储器1404、存储设备1406或处理器1402上的存储器。
高速控制器1408管理计算设备1400的带宽密集型操作,而低速控制器1412管理较低的带宽密集型操作。这种功能分配仅仅是示例性的。在一个实施方式中,高速控制器1408耦合到存储器1404、显示器1416(例如,通过图形处理器或加速器),并且耦合到高速扩展端口1410,高速扩展端口1410可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器1412耦合到存储设备1406和低速总线1414。可包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速总线1414可通过例如网络适配器耦合到一个或多个输入/输出设备(诸如键盘、定点设备、扫描仪或诸如交换机或路由器的网络设备)。
计算设备1400可通过多种不同形式实施。例如,它可以被实施为标准服务器1420,或者在一组这样的服务器中多次实施。它也可以被实施为机架式服务器系统1424的一部分。此外,它可以在诸如笔记本计算机1422的个人计算机中实施。或者,来自计算设备1400的组件可以与诸如设备1450的移动设备(未示出)中的其他组件相结合。每个这样的设备可以包含一个或多个计算设备1400、1450,并且整个系统可以由相互通信的多个计算设备1400、1450构成。
计算设备1450包括处理器1452、存储器1464、输入/输出设备(诸如显示器1454)、通信接口1466和收发器1468,以及其他组件。设备1450还可以配备有存储设备,诸如微驱动器或其他设备,以提供额外的存储。组件1450、1452、1464、1454、1466和1468中的每一个都使用各种总线互连,并且这些组件中的多个可以安装在公共主板上或者以其他适当的方式安装。
处理器1452可执行计算设备1450中的指令,包括存储在存储器1464中的指令。处理器可以被实施为包括单独的和多个模拟和数字处理器的芯片的芯片组。例如,处理器可以提供例如设备1450的其他组件的协调,诸如对用户接口、设备1450运行的应用以及设备1450的无线通信的控制。
处理器1452可通过耦合至显示器1454的控制接口1458和显示接口1456与用户通信。显示器1454可以是例如TFT LCD(薄膜晶体管液晶显示器)或有OLED(有机发光二极管)显示器,或者其他合适的显示技术。显示器接口1456可以包括用于驱动显示器1454向用户呈现图形和其他信息的适当电路。控制接口1458可以从用户接收命令,并转换它们以提交给处理器1452。此外,可以提供与处理器1452通信的外部接口1462,以实现设备1450与其他设备的近距离通信。外部接口1462可以例如在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且也可以使用多个接口。
存储器1464存储计算设备1450内的信息。存储器1464可以被实施为一个或多个计算机可读介质、一个或多个易失性存储器单元或一个或多个非易失性存储器单元。还可以提供扩展存储器1474,并通过扩展接口1472连接到设备1450,扩展接口1472可以包括例如SIMM(单列直插存储器模块)卡接口。这种扩展存储器1474可以为设备1450提供额外的存储空间,或者也可以为设备1450存储应用或其他信息。具体地,扩展存储器1474可以包括执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器1474可以作为设备1450的安全模块来提供,且可以用允许安全使用设备1450的指令来编程。此外,可以经由SIMM卡提供安全应用以及附加信息,诸如以不可破解的方式在SIMM卡上放置识别信息。
存储器可包括,例如,如下所述的闪存和/或NVRAM存储器。在一种实施方式中,计算机程序产品有形地包含在信息载体中。计算机程序产品包含指令,当被执行时,这些指令执行诸如上述的那些方法的一种或多种方法。信息载体是计算机或机器可读介质,诸如存储器1464、扩展存储器1474或处理器1452上的存储器,其可以例如通过收发器1468或外部接口1462接收。
设备1450可通过通信接口1466进行无线通信,必要时可包括数字信号处理电路。通信接口1466可以提供各种模式或协议(诸如GSM语音呼叫、SMS、EMS或MMS消息、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等)下的通信。这种通信可以例如通过射频收发器1468进行。此外,可以进行短程通信,诸如使用蓝牙、Wi-Fi或其他这样的收发器(未示出)。此外,GPS(全球定位系统)接收器模块1470可以向设备1450提供附加的导航和位置相关的无线数据,这些数据可以由运行在设备1450上的应用适当的使用。
设备1450还可使用音频编解码器1460进行音频通信,音频编解码器1460可接收来自用户的语音信息,并将其转换为可用的数字信息,诸如具有来自麦克风的模拟输出的数字表示的语音识别能力。音频编解码器1460同样可以为用户生成可听声音,诸如通过扬声器(例如在设备1450的手机中)。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等)并且还可以包括由在设备1450上操作的软件应用生成的声音。
如图所示,计算设备1450可通过多种不同形式实施。例如,它可以被实施为蜂窝电话1482。它也可以被实施为智能电话1480、个人数字助理、计算机平板、计算机、笔记本计算机、智能扬声器、电视、机械臂或其他类似移动设备的一部分。
因此,本文所述系统和技术的各种实施方式可在数字电子电路、集成电路、特别设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些不同的实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施,该可编程系统包括至少一个可编程处理器、至少一个输入设备和至少一个输出设备,该可编程处理器可以是专用或通用的,被耦合以从存储系统接收数据和指令,以及向存储系统发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括可编程处理器的机器指令,可通过高级程序和/或面向对象的编程语言和/或汇编/机器语言实施。如这里所使用的,术语“机器可读介质”、“机器可执行代码”或“计算机可读介质”是指用于向处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,光盘、闪存驱动器、磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。这些信号可以是非暂时性的或暂时性的。
为提供与用户的交互,本文所述的系统和技术可在计算机上实施,所述计算机具有用于向用户显示信息的显示设备,诸如LCD(液晶显示器)监视器、LED、OLED,以及用户可向计算机提供输入的键盘和定点设备(例如,鼠标、操纵杆、轨迹球或类似设备)。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
本文所述的系统和技术可在计算系统(例如,计算设备1400和/或1450)中实施,所述计算系统包括后端组件(例如,作为数据服务器、记账系统、跟踪系统等),或包括中间件组件(例如,应用服务器),或包括前端组件(例如,具有图形用户接口或网页浏览器的客户端计算机,用户可通过所述图形用户接口或网页浏览器与本文所述系统和技术的实施方式进行交互),或后端、中间件、或者前端组件的组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括LAN、WAN和互联网。
计算系统可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在各自的计算机上运行的计算机程序而产生的,并且彼此具有客户端-服务器关系。
虽然已描述了本发明的各种实施例,但本领域普通技术人员应明白,本发明范围内的更多实施例和实施方式是可能的。此外,本文描述的各种特征、元素和实施例可以以任何组合或布置来要求保护或组合。
Claims (20)
1.一种用于提供人工智能服务的方法,包括:
从用户交互应用接收未实现的人工智能服务请求,所述用户交互应用在第一用户设备的操作系统上操作;
确定所述第一用户设备中的第一人工智能服务模块是否能够处理所述未实现的人工智能服务请求;
如果所述第一人工智能服务模块能够处理所述未实现的人工智能服务请求,则用所述第一人工智能服务模块处理所述未实现的人工智能服务请求,以实现所述未实现的人工智能服务请求,从而生成实现的人工智能服务请求,并将所述实现的人工智能服务请求提供给所述用户交互应用;
如果所述第一人工智能服务模块不能处理所述未实现的人工智能服务请求,则:
将所述未实现的人工智能服务请求发送到具有第二人工智能服务模块的第二用户设备或发送到具有云人工智能服务模块的云计算环境,以实现所述未实现的人工智能服务请求,从而生成实现的人工智能服务请求;以及
将所述实现的人工智能服务请求发送到所述用户设备,然后发送到所述用户交互应用。
2.根据权利要求1所述的方法,还包括启动发现阶段以识别第二设备中的第二人工智能服务模块。
3.根据权利要求2所述的方法,其中,所述第二设备是云计算环境中的云人工智能服务模块。
4.根据权利要求2所述的方法,其中,所述发现阶段由所述第一用户设备中的所述第一人工智能服务模块周期性地重复。
5.根据权利要求2所述的方法,其中,所述第二人工智能服务模块在与所述第一人工智能服务模块不同类型的操作系统上操作。
6.根据权利要求1所述的方法,其中,所述人工智能服务模块是所述用户设备的所述操作系统顶部上的人工智能层。
7.根据权利要求2所述的方法,还包括检测所述第一用户设备上的所述第一人工智能服务模块使用的库的更新,并将更新的库发送到所述第二设备中的所述第二人工智能服务模块。
8.一种用于提供人工智能服务的方法,包括:
从用户交互应用接收未实现的人工智能服务请求,所述用户交互应用在第一类型的操作系统上运行;
确定第一人工智能服务模块是否能够处理所述未实现的人工智能服务请求;
如果所述第一人工智能服务模块能够处理所述未实现的人工智能服务请求,则用所述第一人工智能服务模块处理所述未实现的人工智能服务请求,以实现所述未实现的人工智能服务请求,从而生成实现的人工智能服务请求;
如果所述第一人工智能服务模块不能实现所述未实现的人工智能服务请求:
将所述未实现的人工智能服务请求发送到第二人工智能服务模块,所述第二人工智能服务模块运行在第二类型的操作系统上,所述第一类型的操作系统不同于所述第二类型的操作系统;以及
用第二人工智能服务模块处理所述未实现的人工智能服务请求,以实现所述未实现的人工智能服务请求并生成所述实现的人工智能服务请求。
9.根据权利要求8所述的方法,还包括:
确定所述实现的人工智能服务请求是否与所述第一类型的操作系统和所述用户交互应用兼容并能够在所述第一类型的操作系统和所述用户交互应用中操作,
如果所述实现的人工智能服务请求与所述第一类型的操作系统和所述用户交互应用兼容并能够在所述第一类型的操作系统和所述用户交互应用中操作,则将第二实现的人工智能服务请求发送给所述用户交互应用;以及
如果所述实现的人工智能服务请求与所述第一类型的操作系统和所述用户交互应用不兼容或不能在所述第一类型的操作系统和所述用户交互应用中操作,则将所述实现的人工智能服务请求转换成与所述第一类型的操作系统和所述用户交互应用兼容并能在所述第一类型的操作系统和所述用户交互应用中操作的第二实现的人工智能服务请求,并将所述第二实现的人工智能服务请求发送给所述用户交互应用。
10.根据权利要求8所述的方法,其中,所述第一人工智能服务模块和所述第二人工智能服务模块与不同类型的操作系统兼容,并且能够跨不同类型的操作系统操作。
11.根据权利要求8所述的方法,其中,所述第一人工智能服务模块在所述第一类型的操作系统顶部上操作,以直接与所述用户交互应用进行通信。
12.根据权利要求8所述的方法,其中,所述第二人工智能服务模块在云计算环境上执行。
13.根据权利要求8所述的方法,还包括更新与所述第二人工智能服务模块相关联的第二人工智能模型,并将所述更新推送到与所述第一人工智能服务模块相关联的第一人工智能模型。
14.根据权利要求8所述的方法,其中,所述第一人工智能服务模块在以下之一上操作:智能手机、支持人工智能的扬声器、汽车、电视、具有屏幕和AI能力的机械设备、智能手表、平板计算机或笔记本计算机。
15.一种人工智能服务系统,包括:
用户计算设备,具有用户接口和被配置为与第二计算设备通信的收发器;
所述用户计算设备内的处理器,被配置为运行机器可执行代码;
所述用户计算设备内的存储器,存储非暂时性机器可执行代码,所述非暂时性机器可执行代码被配置为:
接受来自运行在所述用户计算设备上的操作系统或运行在操作系统上的用户交互应用的未实现的人工智能服务请求;
处理所述未实现的人工智能服务请求,以确定第一人工智能服务模块是否能够处理所述未实现的人工智能服务请求;
如果所述第一人工智能服务模块能够处理所述未实现的人工智能服务请求,则用所述第一人工智能服务模块处理所述未实现的人工智能服务请求,以实现所述未实现的人工智能服务请求,从而生成实现的人工智能服务请求;
如果所述第一人工智能服务模块不能实现所述未实现的人工智能服务请求:
将所述未实现的人工智能服务请求发送到在所述第二计算设备上操作的第二人工智能服务模块;
用所述第二人工智能服务模块处理所述未实现的人工智能服务请求,以实现所述未实现的人工智能服务请求,从而生成所述实现的人工智能服务请求;以及
将所述实现的人工智能服务请求发送给所述用户交互应用或所述操作系统。
16.根据权利要求15所述的系统,其中,所述第二人工智能服务模块在与所述第一人工智能服务模块不同的操作系统上操作。
17.根据权利要求15所述的系统,其中,所述第二人工智能服务模块在云计算环境上执行。
18.根据权利要求15所述的系统,其中,所述第一人工智能服务模块还被配置为向所述第二人工智能服务模块发送与所述第一人工智能服务模块相关联的人工智能模型的更新。
19.根据权利要求15所述的系统,其中,所述第一人工智能服务模块和所述第二人工智能服务模块与不同类型的操作系统兼容,并且能够跨不同类型的操作系统操作。
20.根据权利要求15所述的系统,其中,所述第一人工智能服务模块在第一类型的操作系统顶部上操作,以直接与用户交互应用通信,从而为所述用户交互应用启用人工智能服务。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062991038P | 2020-03-17 | 2020-03-17 | |
US62/991,038 | 2020-03-17 | ||
PCT/US2021/022827 WO2021188719A1 (en) | 2020-03-17 | 2021-03-17 | An intelligent layer to power cross platform, edge-cloud hybrid artificail intelligence services |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115699036A true CN115699036A (zh) | 2023-02-03 |
Family
ID=77746926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180034494.3A Pending CN115699036A (zh) | 2020-03-17 | 2021-03-17 | 支持跨平台、边缘-云混合人工智能服务的智能层 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210297494A1 (zh) |
CN (1) | CN115699036A (zh) |
WO (1) | WO2021188719A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4118538A4 (en) | 2020-03-10 | 2024-03-20 | Meetkai Inc | PARALLEL HYPOTHETICAL CONCLUSION FOR OPERATION OF A MULTILINGUAL VIRTUAL ASSISTANT WITH MULTIPLE USES AND MULTIPLE DOMAIN |
US20210304020A1 (en) * | 2020-03-17 | 2021-09-30 | MeetKai, Inc. | Universal client api for ai services |
US11921712B2 (en) | 2020-10-05 | 2024-03-05 | MeetKai, Inc. | System and method for automatically generating question and query pairs |
WO2023115579A1 (zh) * | 2021-12-24 | 2023-06-29 | 北京小米移动软件有限公司 | 一种人工智能ai服务提供方法和装置 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020032591A1 (en) * | 2000-09-08 | 2002-03-14 | Agentai, Inc. | Service request processing performed by artificial intelligence systems in conjunctiion with human intervention |
US9172747B2 (en) * | 2013-02-25 | 2015-10-27 | Artificial Solutions Iberia SL | System and methods for virtual assistant networks |
US10756963B2 (en) * | 2015-03-17 | 2020-08-25 | Pulzze Systems, Inc. | System and method for developing run time self-modifying interaction solution through configuration |
US11587559B2 (en) * | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
US10249207B2 (en) * | 2016-01-19 | 2019-04-02 | TheBeamer, LLC | Educational teaching system and method utilizing interactive avatars with learning manager and authoring manager functions |
US10872306B2 (en) * | 2016-04-06 | 2020-12-22 | Smiota, Inc. | Facilitating retrieval of items from an electronic device |
US20170357910A1 (en) * | 2016-06-10 | 2017-12-14 | Apple Inc. | System for iteratively training an artificial intelligence using cloud-based metrics |
WO2017222503A1 (en) * | 2016-06-21 | 2017-12-28 | Hewlett-Packard Development Company, L.P. | Communications utilizing multiple virtual assistant services |
US11188289B2 (en) * | 2016-07-29 | 2021-11-30 | Hewlett-Packard Development Company, L.P. | Identification of preferred communication devices according to a preference rule dependent on a trigger phrase spoken within a selected time from other command data |
US10855714B2 (en) * | 2016-10-31 | 2020-12-01 | KnowBe4, Inc. | Systems and methods for an artificial intelligence driven agent |
US10365932B2 (en) * | 2017-01-23 | 2019-07-30 | Essential Products, Inc. | Dynamic application customization for automated environments |
DK3628101T3 (da) * | 2017-04-28 | 2023-09-18 | Better Therapeutics Inc | Fremgangsmåde og system til administration af livsstils- og sundhedsindgreb |
US10554595B2 (en) * | 2017-05-22 | 2020-02-04 | Genesys Telecommunications Laboratories, Inc. | Contact center system and method for advanced outbound communications to a contact group |
US11061700B2 (en) * | 2017-06-20 | 2021-07-13 | Cleverspeck, LLC | Virtual assistants using state-based artificial intelligence |
US20190122121A1 (en) * | 2017-10-23 | 2019-04-25 | AISA Innotech Inc. | Method and system for generating individual microdata |
US11227448B2 (en) * | 2017-11-14 | 2022-01-18 | Nvidia Corporation | Cloud-centric platform for collaboration and connectivity on 3D virtual environments |
US11295735B1 (en) * | 2017-12-13 | 2022-04-05 | Amazon Technologies, Inc. | Customizing voice-control for developer devices |
US11250336B2 (en) * | 2017-12-28 | 2022-02-15 | Intel Corporation | Distributed and contextualized artificial intelligence inference service |
US10963499B2 (en) * | 2017-12-29 | 2021-03-30 | Aiqudo, Inc. | Generating command-specific language model discourses for digital assistant interpretation |
US20190318219A1 (en) * | 2018-04-11 | 2019-10-17 | International Business Machines Corporation | Personalized artificial intelligence interactions and customized responses of a computer system |
CN110728363B (zh) * | 2018-06-29 | 2022-11-18 | 华为技术有限公司 | 任务处理方法和装置 |
US11151994B2 (en) * | 2019-01-04 | 2021-10-19 | International Business Machines Corporation | Methods and systems for managing voice commands and the execution thereof |
US20200257856A1 (en) * | 2019-02-07 | 2020-08-13 | Clinc, Inc. | Systems and methods for machine learning based multi intent segmentation and classification |
US11544594B2 (en) * | 2019-04-11 | 2023-01-03 | Sunghee Woo | Electronic device comprising user interface for providing user-participating-type AI training service, and server and method for providing user-participating-type AI training service using the electronic device |
WO2020213762A1 (ko) * | 2019-04-18 | 2020-10-22 | 엘지전자 주식회사 | 전자장치, 그 동작방법, 및 복수의 인공지능장치를 포함한 시스템 |
WO2020246634A1 (ko) * | 2019-06-04 | 2020-12-10 | 엘지전자 주식회사 | 다른 기기의 동작을 제어할 수 있는 인공 지능 기기 및 그의 동작 방법 |
US11501753B2 (en) * | 2019-06-26 | 2022-11-15 | Samsung Electronics Co., Ltd. | System and method for automating natural language understanding (NLU) in skill development |
US10827028B1 (en) * | 2019-09-05 | 2020-11-03 | Spotify Ab | Systems and methods for playing media content on a target device |
US11636102B2 (en) * | 2019-09-05 | 2023-04-25 | Verizon Patent And Licensing Inc. | Natural language-based content system with corrective feedback and training |
KR20210066328A (ko) * | 2019-11-28 | 2021-06-07 | 엘지전자 주식회사 | 자연어 이해 모델을 학습시키기 위한 인공 지능 장치 |
US11042369B1 (en) * | 2020-02-03 | 2021-06-22 | Architecture Technology Corporation | Systems and methods for modernizing and optimizing legacy source code |
-
2021
- 2021-03-17 WO PCT/US2021/022827 patent/WO2021188719A1/en active Application Filing
- 2021-03-17 CN CN202180034494.3A patent/CN115699036A/zh active Pending
- 2021-03-17 US US17/204,724 patent/US20210297494A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210297494A1 (en) | 2021-09-23 |
WO2021188719A1 (en) | 2021-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11670302B2 (en) | Voice processing method and electronic device supporting the same | |
US20210297494A1 (en) | Intelligent layer to power cross platform, edge-cloud hybrid artificial intelligence services | |
US11757675B2 (en) | Facilitating portable, reusable, and sharable internet of things (IoT)-based services and resources | |
US11031005B2 (en) | Continuous topic detection and adaption in audio environments | |
US11435980B2 (en) | System for processing user utterance and controlling method thereof | |
CN104303177B (zh) | 执行即时语音翻译的方法及耳机计算装置 | |
US20190267001A1 (en) | System for processing user utterance and controlling method thereof | |
US20210304020A1 (en) | Universal client api for ai services | |
US20220172737A1 (en) | Speech signal processing method and speech separation method | |
CN110503959B (zh) | 语音识别数据分发方法、装置、计算机设备及存储介质 | |
US20180374482A1 (en) | Electronic apparatus for processing user utterance and server | |
CN110136705A (zh) | 一种人机交互的方法和电子设备 | |
US11537360B2 (en) | System for processing user utterance and control method of same | |
KR20140033654A (ko) | 디바이스에 연결된 외부 기기를 제어하는 시스템 및 방법 | |
CN110164421B (zh) | 语音解码方法、装置及存储介质 | |
CN111524501B (zh) | 语音播放方法、装置、计算机设备及计算机可读存储介质 | |
CN113168227A (zh) | 执行电子装置的功能的方法以及使用该方法的电子装置 | |
KR20200052612A (ko) | 사용자 발화를 처리하는 전자 장치, 및 그 전자 장치의 제어 방법 | |
CN111739517B (zh) | 语音识别方法、装置、计算机设备及介质 | |
CN111031386A (zh) | 基于语音合成的视频配音方法、装置、计算机设备及介质 | |
KR20190141109A (ko) | 디바이스에 연결된 외부 기기를 제어하는 시스템 및 방법 | |
US20220172722A1 (en) | Electronic device for processing user utterance and method for operating same | |
US20210398528A1 (en) | Method for displaying content in response to speech command, and electronic device therefor | |
KR102419374B1 (ko) | 사용자 발화를 처리하는 전자 장치 및 그 전자 장치의 제어 방법 | |
KR20210116897A (ko) | 외부 장치의 음성 기반 제어를 위한 방법 및 그 전자 장치 |
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 |