CN111880645A - 基于用户的语音输入确定目标设备并控制目标设备的服务器及其操作方法 - Google Patents

基于用户的语音输入确定目标设备并控制目标设备的服务器及其操作方法 Download PDF

Info

Publication number
CN111880645A
CN111880645A CN202010356462.2A CN202010356462A CN111880645A CN 111880645 A CN111880645 A CN 111880645A CN 202010356462 A CN202010356462 A CN 202010356462A CN 111880645 A CN111880645 A CN 111880645A
Authority
CN
China
Prior art keywords
target device
model
server
information
text
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
CN202010356462.2A
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020190092641A external-priority patent/KR102309540B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN111880645A publication Critical patent/CN111880645A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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
    • 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/187Phonemic context, e.g. pronunciation rules, phonotactical constraints or phoneme n-grams
    • 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/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • 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/223Execution procedure of a spoken command
    • 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)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

提供了一种基于用户的语音输入来控制设备的服务器以及该服务器的操作方法。服务器配置成:确定在包括多个设备的网络环境中的、与从客户机设备接收的用户的语音输入相关的目标设备的类型,基于所确定的类型和所述多个设备的设备信息来确定所述目标设备,以及获得供所确定的目标设备执行操作的操作信息。

Description

基于用户的语音输入确定目标设备并控制目标设备的服务器 及其操作方法
技术领域
本公开涉及一种服务器和所述服务器的操作方法,其用于根据在包括多个设备的网络环境中从用户接收的语音输入中所包括的用户意图来确定要执行操作的目标设备以及用于控制所确定的目标设备。
背景技术
随着多媒体技术和网络技术的发展,可以通过使用设备向用户提供各种服务。特别地,随着语音识别技术的发展,用户可以通过服务代理向设备输入语音(例如,话语、语音输入、语音命令等)并且根据语音输入接收响应消息。
然而,在包括多个设备的家庭网络环境中,当用户想要通过除了通过语音输入等进行交互的客户机设备之外的设备来接收服务时,由于必须选择服务代理,用户变得不方便。特别地,由于可以由多个设备中的每一个提供的服务的类型是不同的,因此需要一种能够通过识别包括在用户的语音输入中的意图来有效地提供服务的技术。
当识别包括在用户的语音输入中的意图时,可以使用人工智能(AI)技术,并且可以使用基于规则的自然语言理解(NLU)技术。
发明内容
提供了一种服务器及其操作方法,更具体地,提供了一种用于在包括多个设备的网络环境中根据语音输入识别用户的意图、根据所确定的意图自动确定要执行操作的设备、并且控制所确定的设备的服务器及其操作方法。
另外的方面将部分地在随后的描述中阐述,并且部分地将从描述中显而易见,或者可以通过对所呈现的实施例的实践来获知。
根据本公开的一个方面,由服务器基于语音输入来控制目标设备的方法包括:接收用户的语音输入;将所接收的语音输入转换为文本;使用第一自然语言理解(NLU)模型对文本进行分析,并基于分析文本的结果确定目标设备;从多个第二NLU模型中选择与所确定的目标设备对应的第二NLU模型;利用所选择的第二NLU模型对文本的至少一部分进行分析,并基于对文本的所述至少一部分的分析结果,获取将由目标设备执行的操作的操作信息;基于所获得的操作信息,输出所获得的操作信息以控制目标设备。
根据本公开的另一方面,服务器包括:通信接口,配置成执行数据通信;存储器,存储包括一个或多个指令的程序;以及处理器,配置成执行存储在存储器中的程序的所述一个或多个指令,以:通过通信接口从所述多个设备中的至少一个接收用户的语音输入;将所接收的语音输入转换为文本;使用第一自然语言理解(NLU)模型分析文本,并基于分析文本的结果确定目标设备;从多个第二NLU模型中选择与所确定的目标设备对应的第二NLU模型;利用所选择的第二NLU模型对文本的至少一部分进行分析,并基于对文本的所述至少一部分进行分析的结果,获得将由目标设备执行的操作的操作信息;控制通信接口输出获得的操作信息,以基于获得的操作信息控制目标设备。
根据本发明的另一方面,计算机可读记录介质记录有用于在计算机上执行方法的程序,所述方法包括:接收用户的语音输入;将所接收的语音输入转换为文本;使用第一自然语言理解(NLU)模型对文本进行分析,并基于分析文本的结果确定目标设备;从多个第二NLU模型中选择与所确定的目标设备对应的第二NLU模型;利用所选择的第二NLU模型对文本的至少一部分进行分析,并基于对文本的所述至少一部分的分析结果,获得将由目标设备执行的操作的操作信息;基于所获得的操作信息,输出所获得的操作信息以控制目标设备。
根据本公开的另一方面,由服务器基于语音输入来控制目标设备的方法包括:基于将与用户对设备的语音输入对应的文本输入到第一自然语言理解(NLU)模型的结果,获得关于目标设备的信息;基于将文本的至少一部分输入到基于所获得的关于目标设备的信息从多个第二NLU模型中确定的第二NLU模型的结果,获得将由目标设备执行的操作的操作信息;输出所获得的操作信息以基于所获得的操作信息控制目标设备。
附图说明
根据以下结合附图的描述,本公开的某些实施方式的上述和其它方面、特征和优点将变得更加明显,其中:
图1是示出包括服务器和多个设备的网络环境的图;
图2A是示出根据实施方式的可在服务器中执行的语音助手的图;
图2B是示出根据实施方式的可在服务器中执行的语音助手的图;
图3是示出根据实施方式的服务器的示意图,该服务器根据用户的语音输入来确定用户意图、确定与用户意图相关的目标设备、并控制目标设备;
图4是示出根据实施方式的由服务器执行的根据来自用户的语音输入的用户意图来确定执行操作的目标设备并控制目标设备的方法的流程图;
图5是示出根据实施方式的由服务器执行的根据来自用户的语音输入的用户意图来确定执行操作的目标设备并控制目标设备的方法的流程图;
图6是示出根据实施方式的由服务器执行的通过从语音输入转换而成的文本来确定目标设备的类型的具体方法的流程图;
图7是示出根据实施方式的由服务器执行的基于从文本和关于多个设备的信息确定的目标设备的类型来确定目标设备的方法的流程图;
图8是示出根据实施方式的在服务器即使考虑多个设备的信息也不能确定目标设备时基于用户的响应输入来确定目标设备的方法的流程图;
图9是示出根据实施方式的由服务器执行的使用第二自然语言理解(NLU)模型获得将由目标设备执行的操作的操作信息的方法的流程图;
图10是描述根据实施方式的由服务器执行的从文本确定第一意图和第二意图以及从动作规划管理模型获得操作信息的方法的图;
图11是示出根据实施方式的客户机设备、服务器、人工智能(AI)助手引擎和物联网(IoT)云服务的操作的流程图;
图12是示出根据实施方式的客户机设备、服务器和IoT云服务器的操作的流程图;
图13是示出根据实施方式的客户机设备、服务器和IoT云服务器的操作的流程图;
图14是示出根据实施方式的客户机设备、服务器和IoT云服务器的框图;
图15是示出根据实施方式的由服务器执行的程序的系统架构的图;
图16示出根据实施方式的由服务器执行的程序的设备类型分类器;
图17示出根据实施方式的由服务器执行的程序的对话设备歧义消除装置;
图18示出根据实施方式的由服务器执行的程序的响应执行管理器;
图19示出根据实施方式的由服务器执行的程序的智能设备解算器(IDR);
图20是示出根据实施方式的动作规划管理模型的示意图;
图21是示出根据实施方式的胶囊数据库的图;以及
图22是示出根据实施方式的设备的组件的框图。
具体实施方式
在整个公开内容中,如“a、b和c中的至少一个”的表述表示:仅a、仅b、仅c、a和b两者、a和c两者、b和c两者、所有的a、b和c或其变体。
尽管在实施方式中使用的术语已经在当前考虑到本公开中所提及的功能而使用的一般术语的层面上进行了描述,但是根据本领域技术人员的意图、先例或新技术的出现,该术语旨在包括各种其它术语。此外,在本文中使用的一些术语可以由申请人任意选择。在这种情况下,这些术语可以被详细限定或者可以从下面的描述中理解。因此,本公开中使用的术语应在贯穿本公开的内容的上下文中理解。
在下文中,除非在上下文中具有明显不同的含义,否则以单数使用的表述涵盖复数的含义。本文所用的术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的相同的含义。
在整个公开内容中,当假定某一部件包括某一元件时,除非提供与相应元件相反的特定含义,否则术语“包括”意味着相应元件可以进一步包括其它元件。在说明书中使用的例如“单元”或“模块”的术语表示用于处理至少一个功能或操作的单元,并且可以利用硬件或软件或硬件和软件的组合来实现。
根据这种情况,本文使用的表述“配置成”可以被用作例如表述“适于”、“具有能力”、“设计成”、“适于”、“制造成”或“能够”。术语“配置成”不一定意味着在硬件方面“专门设计成”。相反,表述“配置成……”的设备可以意味着该设备能够与另外的设备或其它元件一起“操作”。例如,“配置成(或设置成)执行A、B和C的处理器”可以意味着用于执行相应操作的专用处理器(例如,嵌入式处理器)或通过执行存储在存储器设备中的一个或多个软件程序来执行相应操作的通用处理器(例如,中央处理单元(CPU)或应用处理器)。
根据一个或多个实施方式,“第一自然语言理解(NLU)模型”是训练成解释从语音信号转换而来的文本以获得与文本对应的第一意图的模型。第一NLU模型可以是训练成在输入文本时确定用于执行用户想要的操作的设备类型的模型。第一NLU模型可以通过解释输入文本来确定第一意图,并且第一意图可以用于确定设备类型。第一NLU模型还可以用于通过解释输入文本来确定目标设备。
此外,“第二NLU模型”是训练成解释与特定类型的设备相关的文本的人工智能模型。在这点上,可以存在分别对应于多个不同设备类型的多个第二NLU模型。当通过第一NLU模型确定设备类型时,从多个第二NLU模型中选择或确定与设备类型对应的第二NLU模型。从语音信号转换而成的文本被输入到所选择的第二NLU模型。在这种情况下,输入文本可以是从语音信号转换而成的文本的一部分。第二NLU模型可以是训练成通过解释输入文本来确定与用户想要的操作和参数相关的第二意图的模型。第二NLU模型可以是训练成当输入文本时确定与特定设备的类型相关的功能的模型。多个第二NLU模型的存储容量可以大于第一NLU模型的存储容量。
“意图”是指示通过解释文本确定的用户意图的信息。意图是指示用户的话语意图的信息,并且可以是指示用户请求的目标设备的操作的信息。可以通过使用NLU模型解释文本来确定意图。例如,当从用户的语音输入转换而成的文本是“在电视上播放电影复仇者联盟(Avengers)”时,其意图可以是“内容播放”。作为另一个示例,当从用户的语音输入转换而成的文本是“将空调的温度降低到18℃”时,意图可以是“温度控制”。
意图不仅可以包括指示用户的话语意图的信息(下文中,意图信息),而且可以包括与指示用户意图的信息相对应的数值。数值可以指示文本将与指示特定意图的信息相关的概率。作为通过使用NLU模型分析文本的结果,当获得指示用户意图的多项信息时,具有与每个意图信息相对应的最大数值的意图信息可以被确定为意图。
“第一意图”是指示包括在文本中的用户的话语意图的信息,并且可以用于确定多种目标设备类型中的至少一种类型。可以通过使用第一NLU模型分析文本来确定第一意图。
“第二意图”是指示包括在文本中的用户的话语意图的信息,并且可以用于确定将由特定类型的设备执行的操作。此外,第二NLU模型可以是训练成通过解释文本来确定与用户的语音输入相关的设备的操作的模型。可以通过使用第二NLU模型分析文本来确定第二意图。
在本说明书中,“参数”是指用于确定与意图相关的目标设备的详细操作的变量信息。参数是与意图有关的信息,并且多种参数可以对应于一个意图。参数不仅可以包括用于确定目标设备的操作信息的变量信息,而且可以包括指示文本将与变量信息相关的概率的数值。作为通过使用第二NLU模型分析文本的结果,可以获得指示参数的多项变量信息。在这种情况下,可以将多项变量信息之中的具有最大数值的变量信息确定为参数。例如,当从用户的语音输入转换而成的文本是“播放电影复仇者联盟(Avengers)”时,意图可以是“内容播放”,并且参数可以是作为要播放的内容的流派的“电影”和/或可以是作为要播放的内容的标题的“复仇者联盟(Avengers)”。
在本说明书中,“动作规划管理模型”可以是管理与设备的详细操作相关的操作信息以便生成将由目标设备执行的详细操作以及执行详细操作的顺序的模型。动作规划管理模型可以管理与每个设备类型的详细操作以及详细操作之间的关系有关的操作信息。动作规划管理模型可以基于第二意图和从文本输出的参数规划或用于规划将由设备执行的详细操作以及执行详细操作的顺序。
在本说明书中,设备的操作可以意味着设备通过执行特定功能来执行的至少一个动作。操作可以指设备通过执行应用来执行的至少一个动作。操作例如可以指由设备通过执行应用来实现的视频播放、音乐播放、电子邮件、天气信息接收、新闻信息显示、游戏播放、拍摄等。然而,应当理解,这些仅仅是示例,并且操作不限于此。
设备的操作可以基于与从动作规划管理模型输出的详细操作有关的信息来执行。设备可以通过执行与动作规划管理模型输出的详细操作相对应的功能来执行至少一个动作。设备可以存储用于执行与详细操作相对应的功能的指令。当确定出详细操作时(或基于此),设备可以通过确定对应于详细操作的指令并执行所述指令来执行特定功能。
此外,设备可以存储用于执行与详细操作相对应的应用的指令。用于执行应用的指令可以包括用于执行应用本身的指令和用于执行构成应用的具体功能的指令。当确定了详细操作时,设备可以通过执行用于执行与详细操作相对应的应用的指令来执行应用,并且通过执行用于执行与详细操作相对应的应用的具体功能的指令来执行具体功能。
在本说明书中,“操作信息”可以是与将由设备执行的详细操作、每个详细操作与其它详细操作之间的相关性、以及执行详细操作的顺序有关的信息。每个详细操作和其它详细操作之间的相关性可以包括与在执行一个操作之前必须基本上执行的另一个操作有关的信息,以便执行该操作。例如,当要执行的操作是“音乐播放”时,“开机”可以是在“音乐播放”操作之前必须执行的另一个详细操作。操作信息例如可以包括由目标设备执行以执行特定操作的功能、执行功能的顺序、执行功能所需的输入值、以及作为执行功能的结果而输出的输出值,但不限于此。
IoT云服务器是获取、存储和管理多个设备中的每一个的设备信息的服务器。IoT云服务器可以通过利用所存储的设备信息来获取、确定或生成用于控制设备的控制命令。IoT云服务器可以将控制命令发送到被确定为基于操作信息执行操作的设备。IoT云服务器可以从执行操作的设备接收根据控制命令执行操作的结果。IoT云服务器可以配置为独立于本文描述的“服务器”的硬件设备,但不限于此。IoT云服务器可以是说明书中描述的“服务器”的组件,或者可以是设计成被分类为软件的服务器。
在下文中,将通过参考附图解释实施方式来详细描述本公开。然而,本公开可以以许多不同的形式来体现,并且不应被解释为限于在本文中阐述的实施方式。
现在将详细参考其示例在附图中示出的实施方式。
图1是示出包括客户机设备110、多个设备121至127和服务器300的网络环境的图。
参照图1,客户机设备110、多个设备121至127、服务器300和IoT云服务器400可以通过有线或无线通信互连并执行通信。在实施方式中,客户机设备110和多个设备121至127可以通过通信网络(例如,经由直开机信连接、经由接入点等)彼此直接连接,但不限于此。例如,根据另一个实施方式,客户机设备110和多个设备121至127可以连接到服务器300,并且客户机设备110可以通过服务器300连接到多个设备121至127。此外,根据另一个实施方式,多个设备121至127中的一个或多个可以通过通信网络直接连接到客户机设备110,并且多个设备121至127中的一个或多个其它设备和客户机设备110可以连接到服务器300。此外,客户机设备110和多个设备121至127可以连接到IoT云服务器400。在另一个实施方式中,客户机设备110和多个设备121至127中的每一个可以通过通信网络连接到服务器300,并且可以通过服务器300连接到外部IoT云服务器400。在另一个实施方式中,客户机设备110和多个设备121至127可以经由网关或中继来连接。应当理解,客户机设备110、多个设备121至127、服务器300和IoT云服务器400可以以各种方式(包括上述那些)中的任何一种方式彼此连接,并且可以同时以各种方式(包括上述那些)中的两种或更多种方式彼此连接。
客户机设备110、多个设备121至127、服务器300和IoT云服务器400可以通过局域网(LAN)、广域网(WAN)、增值网(VAN)、移动无线通信网络、卫星网络中的至少一种或其组合来连接。无线通信方法可以包括:例如,无线LAN(Wi-Fi)、蓝牙、蓝牙低能量、Zigbee、Wi-Fi直连(WFD)、超宽带(UWB)、红外数据协会(IrDA)、近场通信(NFC)等,但不限于此。
在实施方式中,客户机设备110可以接收用户的语音输入。多个设备121至127中的至少一个可以是接收服务器300和/或IoT云服务器400的(或来自其的)控制命令以执行特定操作的目标设备。可以控制多个设备121至127中的至少一个设备以基于由客户机设备110接收的用户的语音输入来执行特定操作。在实施方式中,多个设备121至127中的至少一个可以从客户机设备110接收控制命令,而不从服务器300和/或IoT云服务器400接收控制命令。
客户机设备110可以从用户接收语音输入(例如,话语)。在实施方式中,客户机设备110可以包括语音识别模块。在实施方式中,客户机设备110可以包括具有有限功能的语音识别模块。例如,客户机设备110可以包括具有检测指定的语音输入(例如,唤醒输入,诸如“Hi Bixby”、“Ok Google”等)或者预处理从一些语音输入获得的语音信号的功能的语音识别模块。在图1中,客户机设备110被示为人工智能(AI)扬声器,但不限于此。在实施方式中,多个设备121至127中的任何一个可以是客户机设备110。
客户机设备110可以通过麦克风接收用户的语音输入,并将所接收的语音输入发送到服务器300。在实施方式中,客户机设备110可以从所接收的语音输入获得或生成语音信号,并将该语音信号发送到服务器300。
在图1所示的实施方式中,多个设备121至127包括灯121、空调122、电视(TV)123、机器人清洁器124、洗衣机125、秤126和冰箱127,但不限于此。例如,多个设备121至127可以包括智能电话、平板个人计算机(PC)、移动电话、视频电话、电子书阅读器、台式PC、膝上型PC、笔记本计算机、工作站、服务器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器、移动医疗设备、相机、可穿戴设备等中的至少一种。在实施方式中,多个设备121至127可以包括家用电器。家用电器可以包括例如电视、数字视频盘(DVD)播放器、音频设备、冰箱、空调、真空吸尘器、烤箱、微波炉、洗衣机、烘干机、空气净化器、机顶盒、家庭自动化控制面板、安全控制面板、游戏控制台、电子钥匙、摄像机、电子相框、咖啡机、烤箱、电饭锅、压力锅等中的至少一种。
服务器300可以基于接收到的语音信号来确定要执行用户想要的操作的目标设备的类型。服务器300可以从客户机设备110接收语音信号,并且执行自动语音识别(ASR)以将语音部分转换为计算机可读文本,其中该语音信号可以是模拟信号或数字信号。服务器300可以通过使用第一NLU模型来解释转换而成的文本,并且基于分析结果来确定目标设备的类型。
服务器300可以通过使用与所确定的目标设备的类型相对应的第二NLU模型来确定将由用户所请求的目标设备执行的操作。应当理解,服务器300可以是单个服务器或者可以是多个服务器。例如,第一服务器可以包括或使用第一NLU模型,并且第二服务器可以包括或使用第二NLU模型,并且第一服务器和第二服务器可以是相同的服务器或不同的服务器。
服务器300可以从IoT云服务器400接收多个设备121至127的信息。服务器300可以通过使用所接收的多个设备121至127的信息以及所确定的目标设备的类型来确定目标设备。此外,服务器300可以控制目标设备(例如,经由IoT云服务器400向或朝向目标设备发送控制命令或信息),使得目标设备可以执行通过IoT云服务器400所确定的操作。下面参考图4至图9详细描述服务器300的操作。
IoT云服务器400可以存储与通过网络连接的多个注册设备121至127有关的信息。在实施方式中,IoT云服务器400可以存储多个设备121至127中的每一个的标识值(例如,设备ID信息)、多个设备121至127中的每一个的设备类型以及多个设备121至127中的每一个的功能能力信息中的至少一种。在实施方式中,IoT云服务器400可以存储与多个设备121至127中的每一个的开机/关机状态有关的状态信息或者由多个设备121至127中的每一个执行的操作。
IoT云服务器400可以向(例如,朝向)多个设备121至127中的目标设备发送用于执行所确定的操作的控制命令。IoT云服务器400可以从服务器300接收关于所确定的目标设备的信息和关于所确定的操作的信息,并且基于所接收的信息将控制命令发送到目标设备。
图2A是示出根据实施方式可在服务器300中执行的语音助手200的图。
图2B是示出根据实施方式可在服务器300中执行的语音助手200的图。
参考图2A和2B,语音助手200可以例如通过执行存储在存储器中的指令的至少一个处理器以软件来实现。此外,语音助手200可被划分或分布成可由不同设备执行的多个可执行软件部分。语音助手200可配置成根据用户的语音输入来确定用户意图,并控制与用户意图相关的或基于用户意图的目标设备。当添加由语音助手200控制的设备时,语音助手200可包括配置成通过学习(例如,深度学习、训练等)用新模型来更新现有模型的第一助手模型200a、以及配置成将与所添加的设备对应的模型添加到所述现有模型的第二助手模型200b。
第一助手模型200a是分析用户的语音输入以确定与用户意图相关的目标设备的模型。第一助手模型200a可以包括ASR模型202、自然语言生成(NLG)模型204、第一NLU模型300a和设备调度器(dispatcher)模型310。在实施方式中,设备调度器模型310可以包括第一NLU模型300a。在另一个实施方式中,设备调度器模型310和第一NLU模型300a可以配置成单独的组件。设备调度器模型310是用于通过使用第一NLU模型300a的分析结果来执行确定目标设备的操作的模型。设备调度器模型310可以包括多个详细模型。
第二助手模型200b是专用于特定设备(或特定类型、类别、种类或设备集)的模型,并且是用于确定由目标设备执行的与用户的语音输入相对应的操作的模型。在图2A中,第二助手模型200b可以包括多个第二NLU模型300b、NLG模型206和动作规划管理模型210。多个第二NLU模型300b可以分别对应于多个不同的设备。
参照图2B,第二助手模型200b可以包括多个动作规划管理模型和多个NLG模型。在图2B中,包括在第二助手模型200b中的多个第二NLU模型可以分别对应于图2A的多个第二NLU模型300b,包括在第二助手模型200b中的多个第二NLU模型中的每一个可以对应于图2A的NLG模型206,包括在第二助手模型200b中的多个动作规划管理模型中的每一个可以对应于图2A的动作规划管理模型210。.
在图2B中,多个动作规划管理模型可以配置成分别对应于多个第二NLU模型。此外,多个NLG模型可以配置成分别对应于多个第二NLU模型。在另一个实施方式中,一个NLG模型可以配置成对应于多个第二NLU模型,和/或一个动作规划管理模型可以配置成对应于多个第二NLU模型。
在图2B中,例如,当添加通过语音助手200控制的设备时(或基于添加通过语音助手200控制的设备),第一NLU模型300a可配置成通过学习等被更新为新模型。此外,当设备调度器模型310配置成包括第一NLU模型300a时,设备调度器模型310可以配置成例如当添加由语音助手200控制的设备时(或基于添加由语音助手200控制的设备)通过学习等将现有模型本身更新为新模型。第一NLU模型300a或设备调度器模型310可以是人工智能(AI)模型。
在图2B中,当由语音助手200控制的设备被添加到现有模型时,可以通过添加与所添加的设备对应的第二NLU模型、NLG模型和动作规划管理模型来更新第二助手模型200b。第二NLU模型、NLG模型和动作规划管理模型可以是在基于规则的系统中实现的模型。
在图2B的实施方式中,第二NLU模型、NLG模型和动作规划管理模型可以是AI模型。第二NLU模型、NLG模型和动作规划管理模型可以根据它们各自的相应设备作为一个模块被管理。在这种情况下,第二助手模型200-b可以包括分别对应于多个设备的多个第二助手模型200b-1、200b-2和200b-3。例如,对应于电视的第二NLU模型、对应于电视的NLG模型以及对应于电视的动作规划管理模型可以由对应于电视的第二助手模型200b-1来管理。此外,对应于扬声器的第二NLU模型、对应于扬声器的NLG模型以及对应于扬声器的动作规划管理模型可以由对应于扬声器的第二助手模型200b-2来管理。此外,对应于冰箱的第二NLU模型、对应于冰箱的NLG模型以及对应于冰箱的动作规划管理模型可以由对应于冰箱的第二助手模型200b-3来管理。
图3是示出根据实施方式的服务器300的示意图,该服务器300根据用户的语音输入来确定用户意图并控制与用户意图相关的目标设备。
参照图3,客户机设备110通过麦克风或从外部设备的麦克风接收来自用户的语音输入。在图2所示的实施方式中,客户机设备110可以是AI扬声器,但不限于此。客户机设备110可以包括语音识别模块。
在实施方式中,客户机设备110可以从用户接收语音输入,该语音输入不指定用于执行增大音量的操作的目标设备的名称,例如“调大音量”。在另一个实施方式中,客户机设备110可以从用户接收包括目标设备的名称的语音输入,例如“在电视上播放电影波西米亚狂想曲(Bohemian Rhapsody)~”。
客户机设备110从通过麦克风接收的语音输入获得语音信号,并将获得的语音信号发送到服务器300。
服务器300可包括程序代码、应用、算法、例程、指令集、NLU引擎和AI模型中的至少一种,所述程序代码包括与语音助手200的基于所接收的语音信号确定目标设备123的功能或操作有关的指令。
服务器300通过执行ASR将从客户机设备110接收的语音信号转换为文本。在实施方式中,服务器300可以通过使用诸如声学模型(AM)或语言模型(LM)之类的预定模型将语音信号转换为计算机可读文本。
服务器300可以通过利用第一NLU模型300a解释文本来确定第一意图。服务器300可以确定与所确定的第一意图相关的目标设备的类型。
服务器300可以考虑所确定的目标设备的类型来确定多个第二NLU模型300b中的与目标设备的类型相对应的第二NLU模型。服务器300可以通过使用多个第二NLU模型300b中的与目标设备的类型相对应的第二NLU模型解释文本来确定第二意图。在这种情况下,输入到第二NLU模型的文本可以是从语音信号转换而成的文本的至少一部分。在实施方式中,服务器300可以通过使用第二NLU模型从文本中确定第二意图和至少一个参数。
服务器300从IoT云服务器400接收多个设备120的信息。多个设备120可以是先前在IoT云服务器400中注册的与例如用户的账户信息相关或相对应的设备。
服务器300可以从IoT云服务器400接收多个先前注册设备120的设备信息。在实施方式中,服务器300可以从IoT云服务器400接收包括多个设备120的功能能力信息、位置信息和状态信息中的至少一者的设备信息。在实施方式中,服务器300可以从IoT云服务器400接收以下状态信息中的至少之一,其包括:多个设备120是否开机/关机、与当前由多个设备120执行的操作有关的信息、与设备的设置有关的信息(例如,音量设置、连接的设备信息和/或设置等)等。
服务器300可以基于所确定的目标设备的类型和从IoT云服务器400接收的设备信息来确定目标设备。服务器300可以通过从多个设备120中选择或确定与所确定的类型相对应的多个候选设备并考虑所选择的多个候选设备的状态信息来确定目标设备。在图3所示的实施方式中,服务器300可以将第三设备123确定为目标设备。
服务器300可以通过使用与所确定的目标设备类型相对应的第二NLU模型来从文本中确定第二意图和参数。在这种情况下,输入到第二NLU模型的文本可以是从语音信号转换而成的文本的至少一部分。服务器300可以基于第二意图和参数来确定将由目标设备执行的操作。在实施方式中,服务器300可以将目标设备的标识信息、第二意图和参数(例如,至少一个参数)发送到动作规划管理模型,并且从动作规划管理模型获得关于用于执行与第二意图和参数有关的操作的详细操作的操作信息。
服务器300将操作信息发送到IoT云服务器400。IoT云服务器400可以将从服务器300获得的操作信息转换为目标设备可读的控制命令(例如,至少一个控制命令)。这里,控制命令是指可由目标设备读取和执行的命令,使得目标设备可以执行包括在操作信息中的详细操作。
在图3的示例中,IoT云服务器400将控制命令发送到被确定为目标设备的第三设备123。
在包括多个设备的相关技术网络环境中,当用户想要经由除了通过语音输入执行诸如对话之类的交互的客户机设备110以外的设备提供服务时,其麻烦在于必须直接选择和操作其它设备。
相反,根据实施方式的服务器300可以通过确定包括在通过客户机设备110接收的用户的语音输入中的意图来自动地确定目标设备,从而向用户提供自动系统环境并提高用户便利性。此外,即使当用户没有说出或不清楚地说出设备的名称或设备的类型时,根据图3所示的实施方式的服务器300也可以考虑设备的状态信息来确定目标设备123,从而提供直观和方便的用户体验(UX)。例如,如果多个设备120是电视,第三设备123开机而第一设备121和第二设备122关机,并且用户提供语音输入“调大音量”,则服务器300可以至少部分地基于多个设备120的开机/关机状态来将第三设备123确定为目标设备。将参考图4和图5详细描述由服务器300执行的详细操作。
图4是示出根据实施方式的由服务器300执行的根据用户的语音输入来确定执行操作的目标设备并控制目标设备的方法的流程图。
参照图4,在操作S410,服务器300接收用户的语音信号。在实施方式中,服务器300可以从客户机设备110接收语音信号。在实施方式中,服务器300可以从客户机设备110获得客户机设备110的标识信息(ID信息)和用户的标识信息中的至少一个。在实施方式中,一旦接收到客户机设备110的标识信息(或基于此),服务器300就可以检索与客户机设备110的标识信息相关的用户的账户信息。
在操作S420,服务器300执行ASR以将接收到的语音信号转换为文本。在实施方式中,服务器300可以执行ASR,以通过使用诸如AM或LM的预限定模型将语音信号转换为计算机可读文本。
在操作S430,服务器300通过使用第一NLU模型来分析转换而成的文本,并基于文本的分析结果来确定目标设备。第一NLU模型可以是训练成解释通过ASR转换所得的文本以确定与用户的语音输入相关的至少一个目标设备的模型。根据实施方式,包括第一NLU模型的设备调度器模型确定与用户的语音输入相关的至少一个目标设备。例如,当从用户的语音输入转换而成的文本是“播放电影波西米亚狂想曲~”时,目标设备可以被确定为电视。
在操作S440中,服务器300通过使用多个第二NLU模型中的与所确定的目标设备相对应的第二NLU模型来获得关于将由目标设备执行的操作的信息。
在实施方式中,服务器300可以从多个第二NLU模型中选择对应于所确定的目标设备的第二NLU模型。作为专用于特定设备的模型的第二NLU模式可以是经训练以确定与由第一NLU模型确定的设备相关并对应于文本的操作的AI模型。操作可以是设备通过执行特定功能来执行的至少一个动作。操作可以表示设备通过执行应用来执行的至少一个动作。
在操作S450,服务器300将所获得的操作信息发送到目标设备。服务器300可以使用所确定的目标设备的操作信息和标识信息(设备ID)将操作信息发送到目标设备。在实施方式中,服务器300确认与在操作S410中获得的用户的账户信息(例如,用户ID)有关(或对应)的用户的多个先前注册设备的设备信息之中的、在操作S430中确定的目标设备的标识。多个设备的设备信息可以通过IoT云服务器400获得。
在实施方式中,服务器300可以直接将操作信息发送到目标设备(例如,经由互联网、目标设备的本地通信网络等),在这种情况下,操作信息可以包括操作命令。在另一个实施方式中,服务器300可以通过IoT云服务器400将操作信息发送到目标设备。在这种情况下,IoT云服务器400可以使用从服务器300接收的操作信息来确认要发送到目标设备的控制命令。IoT云服务器400可以使用目标设备的标识信息将确认的控制命令发送到目标设备。在另一个实施方式中,服务器300可将操作信息传输到目标设备(例如,集线器、网桥、家庭控制器、客户端设备110等)的控制器。
图5是示出根据实施方式的由服务器300执行的根据用户的语音输入来确定执行操作的目标设备并控制目标设备的方法的流程图。
参照图5,在操作S510,服务器300从客户机设备110接收用户的语音信号。在实施方式中,客户机设备110可以通过麦克风(或经由外部设备)接收用户的语音输入(例如话语),并且从用户的语音输入获得语音信号,并且服务器300可以从客户机设备110接收语音信号。客户机设备110可以通过将经由麦克风接收的声音转换为声信号并且从声信号中去除噪声(例如,非语音分量)来获得语音信号。
在实施方式中,当向服务器300发送语音信号时,客户机设备110可以发送客户机设备110的标识信息(例如,客户机设备110的ID信息)和用户的账户信息(例如,用户的ID信息、密码等)中的至少一者。服务器300可以从客户机设备110获得客户机设备110的标识信息(ID信息)或用户的标识信息。在实施方式中,在接收到客户机设备110的标识信息时,服务器300可以检索与客户机设备110的标识信息相关的用户的账户信息。
在操作S520,服务器300执行ASR以将接收到的语音信号转换为文本。在实施方式中,服务器300可以执行ASR,以通过使用诸如AM或LM的预限定模型将语音信号转换为计算机可读文本。当从客户机设备110接收到没有从其中去除噪声的声信号时,服务器300可以从所接收的声信号中去除噪声以获得语音信号并对语音信号执行ASR。
在操作S530,服务器300通过使用第一NLU模型来分析转换而成的文本,并基于文本的分析结果来确定目标设备的类型。第一NLU模型可以是训练成解释通过ASR转换所得的文本以获得对应于该文本的第一意图的模型。这里,第一意图可用于确定多种类型的目标设备中的至少一种类型作为指示用户在文本中的话语意图的信息。例如,当从用户的语音输入转换而成的文本是“播放电影波西米亚狂想曲~”时,第一意图可以是“内容播放”。在实施方式中,第一NLU模型可以是训练成解释通过ASR转换所得的文本以确定与用户的语音输入相关的至少一个目标设备的类型的模型。在另一个实施方式中,包括第一NLU模型的设备调度器模型可以基于第一NLU模型的分析结果来确定与用户的语音输入相关的至少一个目标设备的类型。
服务器300可以通过利用第一NLU模型执行语法分析或语义分析来从转换而成的文本中确定用户的第一意图。在实施方式中,服务器300通过使用第一NLU模型以词素、单词或短语为单位来解析转换而成的文本。服务器300可以通过使用第一NLU模型,使用经解析的词素、单词或短语的语言特征(例如,语法元素)来推断从经解析的文本中提取的单词的含义。服务器300可以通过将该单词的推断含义与由第一NLU模型提供的预限定的意图进行比较来确定与该单词的推断含义相对应的第一意图。
服务器300可以基于第一意图来确定目标设备的类型。在实施方式中,服务器300可以通过使用第一NLU模型来确定与第一意图相关的目标设备的类型。“类型”是指根据预定标准分类的设备的类别。
例如,可以基于设备的功能或用途来确定设备的类型。例如,设备可以被分类为输出声信号的音频设备(例如,扬声器)、输出声信号和图像信号的图像设备(例如,电视)、控制空气温度的空调设备(例如,空调)、清洁设备(例如,机器人清洁器)等,但不限于此。
在另一个实施方式中,服务器300可以基于可以确定第一意图和目标设备类型之间的相关性的匹配模型来确定与从文本中识别的第一意图相关的目标设备类型。可以用预定数值来计算第一意图和目标设备类型之间的相关性。在实施方式中,第一意图和目标设备类型之间的相关性可以被计算为概率值。
服务器300可以通过将匹配模型应用于从第一NLU模型获得的第一意图来确定多种目标设备类型中的与第一意图相关的目标设备类型。在实施方式中,服务器300可以通过将匹配模型应用于第一意图来获得指示第一意图和多种目标设备类型之间的关联程度的多个数值,并且获得在所获得的多个数值中具有最大值的目标设备类型作为最终类型。例如,当第一意图与第一设备类型和第二设备类型中的每一个相关时(或基于此),服务器300可以获得指示第一意图与第一设备类型之间的相关程度的第一数值和指示第一意图与第二设备类型之间的相关程度的第二数值,并将具有第一数值和第二数值中的较高数值的第一设备类型确定为目标设备类型。
例如,指示通过应用匹配模型计算或确定的第一意图“内容播放”与“电视”之间的相关程度的第一数值可以大于指示另一目标设备类型(例如,“冰箱”)和“内容播放”之间的相关程度的第二数值。在这种情况下,服务器300可以将电视确定为与内容播放的第一意图相关的目标设备类型。在另一个示例中,当第一意图是“温度控制”时,指示第一意图和“空调”的相关性的数值可以高于指示第一意图和“电视”之间的相关性的数值。在这种情况下,服务器300可以将空调确定为与温度控制的第一意图相关的目标设备类型。
然而,应当理解,一个或多个其它实施方式不限于上述示例。例如,根据另一个实施方式,服务器300可以通过按升序排列指示第一意图和多个设备类型之间的相关程度的数值来确定预定数量的设备类型。在实施方式中,服务器300可以将具有大于或等于预定阈值的、指示相关程度的数值的设备类型确定为与第一意图相关的设备类型。在这种情况下,多个设备类型可以被确定为目标设备类型。
服务器300可以使用例如基于规则的系统来学习第一意图和目标设备类型之间的匹配模型,但不限于此。服务器300使用的AI模型例如可以是基于神经网络的系统(例如,卷积神经网络(CNN)、递归神经网络(RNN)、支持向量机(SVM)、线性回归、逻辑回归、朴素贝叶斯、随机森林、决策树、k-最近邻算法等。或者,AI模型可以是前述或另一AI模型的组合。
服务器300基于通过使用第一NLU模型和多个设备的信息确定的目标设备类型来确定目标设备。服务器300将在操作S510中从客户机设备110获得的用户的账户信息(例如,用户ID)发送到IoT云服务器400,并从IoT云服务器400请求与用户的账户信息有关的用户的多个先前注册设备的设备信息。IoT云服务器400可以是为每个用户账户存储用户的多个先前注册设备的设备信息的服务器。IoT云服务器400可以与服务器300分离,并且可以通过网络连接到服务器300。服务器300可以从IoT云服务器400接收与用户的账户信息有关的多个注册设备的设备信息。例如,设备信息可以包括设备的标识信息(设备ID信息)、功能能力信息、位置信息和状态信息中的至少一种。
在实施方式中,服务器300可以使用先前存储在服务器300中的用户的账户信息等从IoT云服务器400接收多个设备的设备信息。服务器300可以甚至在接收到语音输入之前从IoT云服务器400接收设备信息,并且可以根据预定周期接收设备信息。
功能能力信息可以是关于执行操作的设备的预定功能的信息。例如,当设备是空调时,空调的功能能力信息可以指示诸如温度升高、温度降低和/或空气净化的功能,并且当设备是扬声器时,扬声器的功能能力信息可以指示诸如音量升高/降低和/或音乐播放的功能。功能能力信息可以预先存储在IoT云服务器400中。然而,本公开不限于此,并且根据另一个实施方式,功能能力信息可以存储在服务器300中。
此外,位置信息是指示设备的位置的信息,并且可以包括例如设备所在地的名称和指示设备的位置的位置坐标值中的至少一种。例如,设备的位置信息可以包括指示住宅中的特定地点的名称(例如卧室或客厅)或者可以包括地点的名称(例如住宅或办公室)。
设备的状态信息可以是指示例如设备的当前状态的信息,诸如开机/关机信息和关于设备当前执行的操作的信息中的至少一者。
在实施方式中,服务器300可以将用户的账户信息和关于在操作S530中确定的目标设备类型的信息发送到IoT云服务器400,并且仅获得关于与用户的账户信息相关的多个先前注册设备中的与所确定的目标设备类型相对应的设备的信息。
在实施方式中,服务器300可以为每个用户账户存储用户的多个先前注册设备的设备信息。在这种情况下,服务器300不向IoT云服务器400请求设备信息,而是可以使用与存储在服务器300中的用户的账户信息有关的、用户的多个先前注册设备的设备信息。此外,服务器300可以使用关于所确定的目标设备类型的信息来仅获得关于用户的多个先前注册设备中的与所确定的目标设备类型相对应的设备的信息。
服务器300可以从与用户的账户信息相关的多个先前注册设备中选择或确定与所确定的目标设备类型相对应的候选设备。可以选择一个候选设备,或者可以选择多个候选设备。当选择一个候选设备时(或基于此),可以将所选择的候选设备确定为目标设备。
在实施方式中,当选择多个候选设备时(或基于此),服务器300可以考虑所选择的多个候选设备的状态信息来确定目标设备。例如,当与“内容播放”的第一意图相关的目标设备类型被确定为“电视”时,服务器300可以确定作为候选设备的客厅电视、主卧室电视和次卧室电视中的当前开机的客厅电视作为目标设备。
在另一个实施方式中,当选择多个候选设备时(或基于此),服务器300可以考虑所选择的多个候选设备的安装位置来确定目标设备。例如,当与“内容播放”的第一意图相关的目标设备类型被确定为“电视”时,服务器300可以确定作为候选设备的客厅电视、主卧室电视和次卧室电视之中的、安装在靠近用户的当前位置的位置处的主卧室电视作为目标设备。在上述示例中,可以从IoT云服务器400获得客厅电视、主卧室电视和次卧室电视中的每一个是否开机/关机以及安装位置信息。根据另一个实施方式,服务器300可以考虑多种因素来确定目标设备,例如考虑多个候选设备的状态信息和位置两者。
服务器300可以基于所确定的类型和从IoT云服务器400接收的设备信息来确定目标设备,但不限于此。当存在与所确定的类型相对应的多个候选设备并且服务器300即使在使用从IoT云服务器400接收的设备信息时也不能确定目标设备时,用户可以通过询问消息请求服务器300确定特定的目标设备。
在操作S530中确定一种目标设备类型,但是本公开不限于此。例如,根据另一个实施方式,服务器300可以在操作S530中确定多种目标设备类型。当确定了多种目标设备类型时,服务器300可以基于多种目标设备类型来确定目标设备。例如,当第一设备类型和第二设备类型被确定为目标设备类型时,服务器300可以从与用户的账户信息相关的多个先前注册设备之中选择与第一设备类型相对应的多个设备,并且基于所选择的多个设备的状态信息和安装位置信息来确定第一候选设备和第二候选设备。此外,服务器300可以从多个先前注册设备中选择与第二设备类型相对应的多个设备,并且基于所选择的多个设备的状态信息和安装位置信息来确定第三候选设备和第四候选设备。服务器300可以将第一候选设备、第二候选设备、第三候选设备和第四候选设备中的任何一个确定为目标设备。
在操作S540,服务器300从多个第二NLU模型中选择与所确定的目标设备的类型相对应的第二NLU模型,并使用所选择的第二NLU模型来获得关于将由目标设备执行的操作的信息。第二NLU模型(其是专用于特定类型的设备的模型)可以是训练成获得与设备相关的第二意图的AI模型,所述第二意图对应于由第一NLU模型确定的类型并对应于文本和参数。第二意图(其是指示包括在文本中的用户的话语意图的信息)可以用于确定将由特定类型的设备执行的操作。
在实施方式中,第二NLU模型可以是训练成通过解释文本来确定与用户的语音输入相关的设备的操作的模型。操作可以是设备通过执行特定功能来执行的至少一个动作。操作可以表示设备通过执行应用或指令而执行的至少一个动作。
在实施方式中,服务器300可以通过使用对应于所确定的目标设备类型的第二NLU模型来分析文本。在这种情况下,输入到第二NLU模型的文本可以是从语音信号转换而成的文本的至少一部分。例如,当设备名称包括在转换而成的文本中时,服务器300可以从文本中去除设备名称,并且将没有设备名称的文本输入到第二NLU模型。也就是说,服务器300可以将转换而成的文本转换成第二NLU模型可分析的格式的文本并将其输入。可由第二NLU模型分析的格式可以是与用作第二NLU模型的训练数据的文本相对应的句子结构。
服务器300通过使用第二NLU模型以词素、单词或短语为单位来分析文本,通过语法分析和语义分析来识别所分析的词素、单词或短语的含义,将所识别的含义与预限定单词相匹配,并确定第二意图和参数。服务器300可以通过使用第二NLU模型从文本中确定第二意图,并且可以将专用、特定或对应于设备类型的意图确定为第二意图而不是第一意图。例如,当设备类型确定为“电视”时(或基于此),服务器300可以通过使用第二NLU模型来分析文本“播放电影波西米亚狂想曲~”,以确定“电影内容播放”作为第二意图。作为另一个示例,当设备类型被确定为“扬声器”时,服务器300可以通过使用第二NLU模型来分析文本“播放电影波西米亚狂想曲~”,以确定“歌曲播放”作为第二意图。
服务器300可以包括多个第二NLU模型,并且可以基于在操作S530中确定的目标设备的类型来选择或确定与目标设备的类型相对应的至少一个第二NLU模型。当选择或确定了至少一个第二NLU模型时(或基于此),服务器300可以通过使用所选择的第二NLU模型解释文本来确定第二意图和参数。
服务器300可以通过使用动作规划管理模型来获得关于与第二意图和参数相关的至少一个详细操作的操作信息,在所述动作规划管理模型中存储有关于确定类型的目标设备的动作规划。动作规划管理模型可以管理关于对于每种设备类型的设备详细操作以及详细操作之间的关系的信息。服务器300可以通过使用动作规划管理模型基于第二意图和参数规划将由设备(或多个设备)执行的详细操作以及执行详细操作的顺序。
服务器300可以通过向动作规划管理模型提供所确定的目标设备的标识信息(用于一个或多个设备的设备ID信息、用于一组设备的组别或场景ID等)以及目标设备类型的标识值,来获得关于将由目标设备执行的一系列详细操作的操作信息。操作信息可以是与将由设备执行的详细操作以及执行详细操作的顺序有关的信息。操作信息可以包括与将由设备执行的详细操作、每个详细操作与其它详细操作之间的相关性以及执行详细操作的顺序有关的信息。例如,操作信息可以包括:由目标设备执行以便执行特定操作的功能中的至少一个、执行功能的顺序、执行功能的输入值(例如,需要的)、以及作为执行功能的结果输出的输出值,但不限于此。
在操作S550,服务器300将所获得的操作信息发送到IoT云服务器400。服务器300可以将所确定的目标设备的操作信息和标识信息(设备ID)发送到IoT云服务器400。
IoT云服务器400可以基于从服务器300接收的操作信息和设备标识信息来获得用于控制目标设备的详细操作的控制命令。根据实施方式,IoT云服务器400可以从先前存储在数据库(DB)中的目标设备的控制命令中选择用于控制操作信息中的目标设备的详细操作的控制命令。IoT云服务器400可以包括DB,在该DB中存储有关于多个设备的控制命令和操作信息。IoT云服务器400可以使用从服务器300接收的设备标识信息来选择DB,并且使用所选择的DB中的操作信息来检索控制命令。
可由设备读取的控制命令可以包括供设备根据操作信息执行至少一个功能并执行详细操作的指令。
IoT云服务器400可以向目标设备发送控制命令。
在包括多个设备的相关技术网络环境中,为了使设备通过接收用户的语音来执行操作,多个设备必须全部具有接收用户的语音输入并根据语音输入进行操作的功能,这导致了设备资源过多的问题。也就是说,当将新设备添加到网络环境中时,必须新开发所有功能来控制新设备。
根据实施方式的服务器300可以将客户机设备110接收的用户的语音输入转换为文本,并且通过使用第一NLU模型来解释文本以确定目标设备的类型,并且通过使用与由第一NLU模型确定的设备类型相对应的第二NLU模型来获得与所分析的文本相关的操作信息,从而减少设备中不必要的资源并且确保系统架构的多功能性。
图6是示出根据实施方式的由服务器300执行的通过从语音输入转换而成的文本来确定目标设备的类型的具体方法的流程图。图6是说明图5的操作S530的具体实施方式的图。
参照图6,在操作S610中,服务器300解析在操作S520中转换而成的文本。在实施方式中,服务器300可以通过使用第一NLU模型以词素、单词和短语中的至少一种为单位来解析文本。例如,服务器300可以将文本“在电视上播放电影波西米亚狂想曲~”解析为“电视”、“波西米亚狂想曲”和“播放”。
在操作S620,服务器300确定设备的名称(或特定的或预先存储的标识符)是否被包括在解析的文本中。在实施方式中,服务器300使用第一NLU模型来分析经解析的词素、单词或短语的语言特征(例如,语法元素),并推断从经解析的文本中提取的单词的含义。服务器300可以通过将该单词的推断含义与由第一NLU模型提供的预定设备名称进行比较来确定与该单词的推断含义相对应的设备名称。例如,服务器300可以通过将通过解析文本“在电视上播放电影波西米亚狂想曲~”而提取的单词或短语与预限定的设备名称进行比较来将“电视”确定为设备名称。在这种情况下,服务器300可以确定文本包括设备名称。
作为另一个示例,即使通过解析文本“在电视上播放电影波西米亚狂想曲~”而提取的单词或短语与预限定的设备名称相比较,当没有提取到对应于设备名称的单词或短语时,服务器300可以确定设备名称不包括在文本中。
当在操作S620中确定设备名称包括在解析的文本中(是)时(或基于此),服务器300基于包括在文本中的目标设备的名称来确定目标设备的类型(操作S630)。例如,当服务器300解析文本“在电视上播放电影波西米亚狂想曲~”并提取“电视”作为设备名称时,服务器300可以确定“电视”作为目标设备类型。
在实施方式中,解析的文本可以包括设备的通用名称和安装位置。在这种情况下,服务器300可以通过将通过解析文本而提取的单词或短语与预限定的单词或短语进行匹配来获得关于设备的通用名称和安装位置的单词。例如,当文本是“在客厅中的电视上播放电影波西米亚狂想曲~”时,服务器300可以解析文本,然后从解析的文本中提取关于设备的通用名称(电视)和安装位置(客厅)的单词。服务器300可以基于所提取的设备的通用名称和安装位置来确定目标设备的类型。
当在操作S620中确定设备名称未包括在解析的文本中(否)时(或基于此),服务器300通过使用第一NLU模型解释文本来识别第一意图(操作S640)。在实施方式中,服务器300可以通过使用第一NLU模型执行语法分析和语义分析中的至少一种来从文本中确定用户的第一意图。服务器300可以通过使用第一NLU模型分析从解析的文本中提取的词素、单词和/或短语的语言特征(例如,语法元素)来推断从解析的文本中提取的单词的含义。服务器300可以通过将该单词的推断含义与由第一NLU模型提供的预限定的意图进行比较来确定与该单词的推断含义相对应的第一意图。例如,服务器300可以将文本“播放电影波西米亚狂想曲~”解析为诸如“波西米亚狂想曲”和“播放”之类的单词或短语的单元,并且将解析的单词或短语与预限定的意图进行比较,以确定播放具有波西米亚狂想曲的标识值(例如,电影标题)的内容的“内容播放”作为第一意图。
在操作S650中,服务器300获得多个设备的特征信息。在实施方式中,服务器300可以从IoT云服务器400接收与用户的账户信息(例如,用户ID)有关的先前在IoT云服务器400中注册的多个设备的特征信息。服务器300可以从IoT云服务器400请求与用户的账户信息有关的多个注册设备的特征信息。服务器300可以从IoT云服务器400接收与用户的账户信息有关的多个注册设备的特征信息。特征信息可以是由服务器300用来确定设备类型的信息。特征信息可以包括设备信息的一部分。特征信息可以包括例如关于多个设备中的每一个的标识值(设备ID)的信息和功能能力信息。
服务器300可以存储与用户的账户信息有关的多个注册设备的特征信息。在这种情况下,服务器300可以使用所存储的特征信息。
在操作S660,服务器300基于第一意图和特征信息来确定目标设备类型。在实施方式中,服务器300可以基于能够确定第一意图和目标设备类型之间的相关性的匹配模型来确定与从文本中识别的第一意图相关的目标设备类型。可以基于第一意图和目标设备的特征信息来预先限定匹配模型。例如,在匹配模型中,至少一个功能可以与由第一意图指示的操作进行匹配。服务器300可以通过基于设备的特征信息识别能够执行与第一意图匹配的功能的设备来确定至少一个设备类型。设备的功能能力信息可以是关于设备可执行的功能的信息。例如,移动电话的功能能力可以包括社交网络服务(SNS)、地图、电话、互联网等,电视的功能能力可以包括内容播放,并且空调的功能能力可以包括空气温度控制。
例如,在匹配模型中,“内容播放”的第一意图可以被限定为匹配具有播放诸如电影或音乐的内容的功能能力的“电视”或“扬声器”。作为另一个示例,在匹配模型中,“温度控制”的第一意图可以被限定为匹配作为具有执行使空气的温度升高或降低的功能的能力的设备的“空调”。
在实施方式中,可以在匹配模型中预先限定第一意图和目标设备类型之间的匹配规则或匹配模式。
在匹配模型中,匹配程度,即第一意图和目标设备类型之间的相关程度,可以被计算为概率值。通过将匹配模型应用于根据文本确定的第一意图,服务器300可以获得指示第一意图和多种目标设备类型之间的匹配程度的多个概率值,并将所获得的多个概率值中具有最大值的目标设备类型确定为最终目标设备类型。
例如,通过应用匹配模型计算所得的指示“内容播放”的第一意图和“电视”之间的匹配程度的第一概率值可以大于指示另一目标设备类型(例如,“冰箱”)和“内容播放”之间的匹配程度的第二概率值。在这种情况下,服务器300可以将电视确定为与“内容播放”的第一意图相关的目标设备类型。作为另一个示例,当第一意图是“温度控制”时,指示第一意图和“空调”之间的匹配程度的概率值可以大于指示第一意图和“电视”之间的匹配程度的概率值。在这种情况下,服务器300可以将空调确定为与“温度控制”的第一意图相关的目标设备类型。
服务器300可以使用例如基于规则的系统来学习或训练第一意图和目标设备类型之间的匹配模型,但不限于此。例如,服务器300使用的AI模型可以是基于神经网络的系统(例如,卷积神经网络(CNN)、递归神经网络(RNN)、支持向量机(SVM)、线性回归、逻辑回归、朴素贝叶斯、随机森林、决策树、k-最近邻算法等)。或者,AI模型可以是前述或另一AI模型的组合。
图7是示出根据实施方式的由服务器300执行的基于从文本和关于多个设备的信息确定的目标设备的类型来确定目标设备的方法的流程图。
参照图7,在操作S710,服务器300通过向IoT云服务器400发送用户的或与用户对应的账户信息来请求设备信息。服务器300可以将从客户机设备110获得的用户的或与用户对应的账户信息(例如,用户ID或设备ID,例如客户机设备的ID)发送到IoT云服务器400,并且向IoT云服务器400请求与用户的账户信息相关的用户的多个先前注册设备的设备信息。
在实施方式中,服务器300可以将关于所确定的目标设备类型的信息连同用户的账户信息一起发送到IoT云服务器400。在这种情况下,服务器300可以仅向IoT云服务器400请求与用户的账户信息相关的多个注册设备中与所确定的目标设备类型相对应的设备的设备信息。
在实施方式中,服务器300可以通过使用用户的账户信息将关于多个设备的信息存储在存储器306中(参见图14)并且检索存储在存储器306中的关于多个设备的信息。
在操作S720,服务器300从IoT云服务器400接收与用户的账户信息相关的多个先前注册设备的设备信息。IoT云服务器400可以根据从服务器300接收的用户的账户信息来存储多个先前注册设备的列表,并且存储包括列表中所包括的多个设备中的每一个的功能能力信息、位置信息和状态信息中的至少一种的设备信息。状态信息可以包括以下至少之一:例如,与用户的账户信息有关的多个先前注册设备的开机/关机信息以及关于当前由多个先前注册设备执行的一个或多个操作的信息。服务器300可以从IoT云服务器400接收多个设备中的每一个的功能能力信息、位置信息和状态信息中的至少一者。
在实施方式中,当服务器300将关于多个设备的信息存储在存储器306中时,服务器300可以在存储在存储器306中的信息中获得关于与的用户的账户信息有关的多个先前注册设备的信息。
在操作S730,服务器300从多个设备中选择或确定与所确定的类型相对应的至少一个设备。在实施方式中,当只有一种类型被确定为与第一意图相关的目标设备类型时(或基于此),服务器300可以选择与所确定的类型相对应的至少一个设备。在另一个实施方式中,当服务器300将多种类型确定为与第一意图相关的目标设备类型时(或基于此),服务器300可以选择分别对应于多种目标设备类型的多个设备。例如,当将包括“电视”和“扬声器”的多种类型确定为目标设备类型时,服务器300可以从与用户的账户信息相关的多个先前注册设备中选择与电视相对应的多个设备,例如,客厅电视、主卧室电视和次卧室电视,以及与扬声器相对应的AI扬声器和蓝牙音频扬声器。
在操作S740中,服务器300通过考虑所选择的多个设备的设备信息(或基于此)来确定是否存在多个目标设备候选。在实施方式中,当存在一种目标设备类型时(或基于此),服务器300可基于对应于目标设备类型的设备的设备信息来确定目标设备候选,并确定是否存在多个所确定的目标设备候选。在另一个实施方式中,当存在多种类型的目标设备时(或基于此),服务器300可以基于对应于多种类型的多个设备中的每一个的状态信息或安装位置信息来确定目标设备候选,并且确定是否存在多个所确定的目标设备候选。
当在操作S740中确定存在一种目标设备类型(否)时(或基于此),服务器300将一个目标设备确定为最终目标设备(操作S750)。
在操作S740中,当存在多个目标设备候选(是)时(或基于此),过程进行到操作
Figure BDA0002473624230000291
这将参考图8进行描述。
图8是示出根据实施方式的在服务器300即使通过考虑多个设备的信息也不能确定目标设备时基于用户的响应输入来确定目标设备的方法的流程图。图8是说明与图7的操作S740中所示的
Figure BDA0002473624230000301
的情况有关的具体实施方式的图。
参照图8,在操作S810中,服务器300通过使用自然语言生成(NLG)模型生成用于选择目标设备的询问消息。服务器300可以生成用于从与在图7的操作S730中选择或确定的特定类型相对应的多个候选设备中选择任何一个目标设备的询问消息。例如,当在图7的操作S730中选择的设备的类型是电视时,在网络中可能存在多个电视,包括“客厅电视”、“主卧室电视”和“次卧室电视”。在操作S810中,服务器300可以执行在所选择的多个设备中确定目标设备的歧义消除操作。在实施方式中,服务器300可以通过使用NLG模型生成询问消息,该询问消息引导或请求用户进行关于确定多个候选设备中的哪一个候选设备作为目标设备的响应。
在实施方式中,询问消息可以是这样的消息,其包括列出了与特定类型相对应的多个设备候选的列表并且请求用户从列表中所包括的多个设备候选中选择目标设备。例如,服务器300可以生成向用户提供以预定顺序列出了多个电视的列表的询问消息,例如“您想哪个电视播放电影波西米亚狂想曲:1.客厅电视;2.主卧室电视;或3.次卧室电视?”。
在另一个实施方式中,询问消息可以是根据安装位置选择多个候选设备的消息。例如,服务器300可以生成基于位置来建议多个电视并请求用户从多个建议的电视中选择目标设备的询问消息,例如“您想哪个电视播放电影波西米亚狂想曲:客厅中的电视;主卧室中的电视;或次卧室中的电视?”。
服务器300可以通过在由NLG模型生成的询问消息中使用文本到语音(TTS)模型将文本形式的询问消息转换为音频信号。
在操作S820,服务器300通过向客户机设备110发送询问消息来请求客户机设备110输出询问消息。服务器300可以将询问消息发送到客户机设备110。服务器300可以将转换成音频信号的询问消息发送到客户机设备110。当客户机设备110是包括显示器的设备时,客户机设备110可以发送文本形式的询问消息。
在操作S830,服务器300从客户机设备110接收用户的响应输入。客户机设备110可以接收用户的、从询问消息中所包括的多个设备中选择特定设备的响应输入。例如,当询问消息是向用户提供以预定顺序列出多个电视的列表的消息时(或基于此),诸如“您想哪个电视播放电影波西米亚狂想曲:1.客厅电视;2.主卧室电视;或3.次卧室电视?”,客户机设备110可以接收通过特定序号来选择目标设备的响应输入,诸如“第一电视”。例如,当询问消息是请求用户基于位置从多个电视中进行选择的消息时(或基于此),例如“您想哪个电视播放电影波西米亚狂想曲:客厅中的电视;主卧室中的电视;或次卧室中的电视?”,客户机设备110可以接收通过安装位置选择目标设备的用户的响应输入,例如“客厅”。服务器300可以从客户机设备110接收用户的响应输入。
用户的响应输入可以以语音信号的形式从客户机设备110发送。
在操作S840,服务器300基于用户的响应输入来确定目标设备。服务器300可以通过ASR过程将接收到的响应输入转换为文本并通过使用NLG模型分析转换而成的文本来提取关于用户选择的目标设备的单词。服务器300可以通过使用NLG模型来解释所提取的单词的含义,并且基于所提取的单词来确定目标设备。
在实施方式中,可以通过ASR过程获得关于用户的响应输入的文本,并且可以通过将所获得的文本与预定文本进行匹配来确定文本的含义。在这方面使用的ASR模型和NLG模型可以是与上面参考图2A和2B描述的模型不同的模型。服务器300可以使用上面参考图2A和2B描述的模型中的至少一个。
图9是示出根据实施方式的由服务器300执行的通过使用第二NLU模型来获得由目标设备执行的操作的操作信息的方法的流程图。图9是说明图5的操作S540的具体实施方式的图。
参照图9,在操作S910中,服务器300通过使用在操作S530中确定的目标设备的类型选择专用于(或特定于、对应于等)目标设备类型的第二NLU模型。第二NLU模型是训练成解释与特定类型的设备有关的文本的模型。第二NLU模型可以是训练成通过解释文本来确定与特定类型的设备相关的第二意图和参数的模型。可存在多个第二NLU模型,其中每个第二NLU模型对应于每个设备类型。在实施方式中,服务器300可以基于所确定的目标设备类型的标识信息从多个第二NLU模型中选择与目标设备类型相对应的第二NLU模型。
在操作S920,服务器300通过使用第二NLU模型分析文本来获得第二意图和参数。在实施方式中,服务器300可以通过使用第二NLU模型以单词和/或短语为单位来解析文本,通过语法分析和语义分析来推断解析的单词和/或短语的含义,将所推断的含义与预限定的单词和参数相匹配,并确定第二意图和参数。在实施方式中,服务器300可以通过使用在操作S910中执行的解析文本的结果来获得第二意图和参数。
第二意图是指示包括在文本中的用户的话语意图的信息,并且可以用于确定将由特定类型的设备执行的操作。可以通过使用第二NLU模型分析文本来确定第二意图。参数是用于确定与第二意图相关的目标设备的详细操作的变量信息。参数是与第二意图有关的信息,并且多种类型的参数可以对应于一个第二意图。参数可以包括用于确定目标设备的操作信息的变量信息和指示文本将与变量信息相关的概率的数值。作为通过使用第二NLU模型分析文本的结果,当获得指示参数的多项变量信息时(或基于此),可以将与每项变量信息相对应的具有最大数值的变量信息确定为参数。例如,在文本“在客厅的电视上播放电影波西米亚狂想曲~”中,第二意图可以是指示与电视相关的操作“内容播放”,并且参数可以确定为“电视”、“客厅的电视”、“电影”或者作为电影标题的“波西米亚狂想曲”。
因为第二NLU模型通过解释文本来确定与特定设备的类型相关的第二意图,所以第二意图可以是比第一意图更特定的数据。下面参考图10详细描述第一意图和第二意图。
在操作S930中,服务器300将第二意图、参数和目标设备的标识信息提供给存储每个设备的动作规划的动作规划管理模型。在实施方式中,服务器300可以向动作规划管理模型提供在操作S920中获得的第二意图和参数以及所确定的目标设备的设备ID。动作规划管理模型可以是管理与设备的详细操作相关的信息以便生成动作规划的模型。动作规划管理模型可以管理与每个设备类型的详细操作相关的信息以及详细操作之间的关系。在实施方式中,动作规划管理模型可以存储与用于执行详细操作的参数值输入相对应的信息或者通过对每种类型的设备执行操作而输出的结果值。
在实施方式中,操作S930可以由IoT云服务器400执行。在这种情况下,服务器300可以将在操作S920中获得的第二意图、参数和目标设备的标识信息发送到IoT云服务器400。IoT云服务器400可以包括动作规划管理模型。
在操作S940,服务器300从动作规划管理模型获得将由目标设备执行的详细操作的操作信息。动作规划管理模型可以根据从服务器300获得的目标设备的标识信息识别目标设备,并且从存储器获得先前存储的指示与目标设备相关的详细操作和详细操作之间的相关性的信息。
动作规划管理模型210可以通过在指示详细操作和详细操作之间的相关性的信息中识别与第二意图和参数相关的详细操作并且规划所识别的详细操作和执行详细操作的顺序,来生成将由目标设备执行的操作信息。操作信息可以包括与将由设备执行的详细操作、详细操作之间的相关性以及执行详细操作的顺序有关的信息。例如,操作信息可以包括由目标设备执行以便执行特定操作的功能、执行功能的顺序、执行功能的输入值(例如,需要的)、以及作为执行功能的结果而输出的输出值中的至少一者,但不限于此。动作规划管理模型可以向服务器300提供操作信息,并且服务器300可以从动作规划管理模型获得操作信息。
在实施方式中,操作S940可以由IoT云服务器400执行。IoT云服务器400接收第二意图、参数和目标设备的标识信息,以获得包括将由目标设备执行的详细操作和执行详细操作的顺序的操作信息。
在操作S950中,服务器300将所获得的操作信息发送到IoT云服务器400,使得可以从IoT云服务器400向目标设备提供控制命令。服务器300可以将所确定的目标设备的操作信息和标识信息发送到IoT云服务器400。
IoT云服务器400可以基于从服务器300接收的操作信息和设备标识信息来获得用于控制目标设备的详细操作的控制命令。在实施方式中,IoT云服务器400可以从先前存储在DB中的目标设备的控制命令中选择用于控制操作信息中的目标设备的详细操作的控制命令。在实施方式中,IoT云服务器400可以使用从服务器300接收的设备标识信息来选择DB,并且使用所选择的DB中的操作信息来检索控制命令。作为设备可读的信息的控制命令可以包括用于供设备执行功能和执行操作的指令。
IoT云服务器400可以向目标设备发送控制命令。
图10是描述根据实施方式的由服务器300执行的从文本确定第一意图和第二意图以及从动作规划管理模型210获得操作信息的方法的图。
参照图10,服务器300可以包括第一NLU模型300a、第二NLU模型300b和动作规划管理模型210。这里,“NLU”是用于解释文本的模型,并且可以在硬件或软件中实现,或者在硬件和软件的组合中实现。在实施方式中,动作规划管理模型210可以(尽管不是必须的)是与服务器300分离的组件,并且可以包括在IoT云服务器400中。
在图10所示的实施方式中,当用户说出“播放电影波西米亚狂想曲~”时,服务器300可以从客户机设备110接收语音信号并执行ASR以将语音信号转换为文本。第一NLU模型300a是训练成解释文本以获得对应于文本的第一意图的模型。第一NLU模型300a可以以词素、单词和短语中的至少一个为单位来解析文本,并且使用解析后的词素、单词和/或短语的语言特征(例如,语法元素)来推断从解析后的文本中提取的至少一个单词的含义。第一NLU模型300a可以通过将该单词的推断含义与预限定的意图进行比较来确定与该单词的推断含义相对应的第一意图。第一意图是指示包括在文本中的用户的话语意图的信息。
例如,当文本是“播放电影波西米亚狂想曲~”时,第一NLU模型300a可以将文本分割成词素、单词等,例如“波西米亚”、“狂想曲”和“播放”。第一NLU模型300a针对每一个分段的词素或单词执行在每个词素或单词上标记语法元素的过程,即,词性、句子结构等。单词“波西米亚”可以用形容词或修饰语来标记,单词“狂想曲”可以用名词或对象来标记,并且单词“播放”可以用动词或谓词来标记。第一NLU模型300a通过使用每个单词、单词的位置/次序以及单词的标记信息来推导每个单词的关系。即,第一NLU模型300a确定“波西米亚”是修饰“狂想曲”的形容词或修饰语,并且组合“波西米亚”和“狂想曲”所得的词语“波西米亚狂想曲”是作为动词或谓词“播放”的对象的名词或对象。第一NLU模型300a通过使用利用语法元素分析文本所得的结果来推断文本中的动词或谓词的含义。例如,第一NLU模型300a可以推断文本“播放电影波西米亚狂想曲~”中的“播放”具有执行“播放某物”的动作的含义。
本文中的第一NLU模型确定对应于以上推断的含义的第一意图。第一NLU模型300a包括关于多个第一意图的信息,并且将关于以上推断的含义的信息与关于多个第一意图的信息进行比较,以确定与推断的含义相对应的第一意图。例如,第一NLU模型300a可以将“播放某物”与关于多个第一意图的信息进行比较,以将对应于“播放某物”的第一意图确定为“内容播放”。
第一NLU模型300a可以是比第二NLU模型300b更简化的模型,所述第一NLU模型300a是在不考虑特定设备类型的情况下解释文本的模型。第一NLU模型300a是解释与输入文本中的谓词或动词相对应的单词的模型。此外,第一NLU模型300a可以配置成通过学习以解释新文本来将整个现有模型更新为新的或更新的模型。
第二NLU模型300b是训练成解释与设备的特定类型相关的文本的模型。第二NLU模型300b可以应用于特定类型的设备,并且可以是训练成通过解释文本来确定第二意图和与用户想要的操作相关的参数的模型。第二NLU模型300b可以将文本解析为词素、单词和短语中的至少一个的单元,通过语法分析和语义分析推断解析后的词素、单词和/或短语的含义,并且将推断出的含义与预限定的单词相匹配以获得第二意图和参数。作为指示包括在文本中的用户的话语意图的信息的第二意图可以用于确定将由特定类型的设备执行的操作。参数涉及与第二意图相关的用于确定目标设备的详细操作的变量信息。参数是对应于第二意图的信息,并且多种类型的参数可以对应于一个第二意图。
例如,当文本是“播放电影波西米亚狂想曲”时,第二NLU模型300b可以将文本分割成词素、单词等,例如“波西米亚”、“狂想曲”和“播放”。第二NLU模型300b针对每一个分段的词素或单词执行将语法元素(即,词性、句子结构等)加标签到每个词素或单词上的过程。单词“波西米亚”可以用形容词或修饰语来标记,单词“狂想曲”可以用名词或对象来标记,并且单词“播放”可以用动词或谓词来标记。第二NLU模型300b通过使用每个单词、单词的位置/次序以及单词的标记信息来推导每个单词的关系。即,第二NLU模型300b确定“波西米亚”是修饰“狂想曲”的形容词或修饰语,并且组合“波西米亚”和“狂想曲”所得的词语“波西米亚狂想曲”是作为动词或谓词“播放”的对象的名词或对象。第二NLU模型300b可以推断文本“播放电影波西米亚狂想曲”具有执行“播放某物”的动作的含义,并且“某物”是对象“波西米亚狂想曲”。
这里,第二NLU模型300b可以获得由第一NLU模型300a分析的结果,并且另外执行一些操作以确定第二意图和参数。例如,第二NLU模型300b可以接收包括在由第一NLU模型300a分析的文本中的每个单词的关系信息。在这种情况下,第二NLU模型300b可以从第一NLU模型300a接收“波西米亚”是修饰“狂想曲”的形容词或修饰语并且组合“波西米亚”和“狂想曲”所得的词语“波西米亚狂想曲”是作为动词或谓词“播放”的对象的名词或对象的信息。第二NLU模型300b可以推断文本“播放电影波西米亚狂想曲”具有执行“播放某物”的动作的含义,并且执行该动作的对象是“波西米亚狂想曲”。
此外,第二NLU模型300b可以分析输入到第一NLU模型300a的转换而成的文本的至少一部分。例如,当在转换而成的文本中包括设备名称时,第二NLU模型300b可以接收并分析在从转换而成的文本中删除设备名称之后剩余的文本。从转换而成的文本中删除设备名称可以由第一NLU模型300a执行,或者可以由第二NLU模型300b执行。
在示例性实施方式中,第二NLU模型300b确定与上面推断的含义相对应的第二意图。第二NLU模型300b包括关于多个第二意图的信息,并且将关于所推断的含义的信息与关于多个第二意图的信息进行比较,以确定与所推断的含义相对应的第二意图。
此外,第二NLU模型300b包括关于多个参数的信息,该多个参数可以是第二意图的对象。例如,第二NLU模型300b将关于对象“波西米亚狂想曲”的信息与关于多个参数的信息进行比较,并确定与第二意图相关的参数。
例如,当设备类型是“电视”时,第二NLU模型300b可以将通过解析文本“播放电影波西米亚狂想曲~”而提取的推断的含义“播放某物”与包括在第二NLU模型300b中的关于多个第二意图的信息进行比较,并且基于指示关于多个第二意图的信息与“播放某物”之间的相关程度的数字值,确定“电影内容播放”作为第二意图。第二NLU模型300b在考虑设备类型的情况下确定表示相关程度的数值。考虑到设备类型是电视,指示“播放”和电影内容播放之间的相关程度的第一数值可以大于指示“播放”和音乐内容播放之间的相关程度的第二数值。因此,当设备类型是电视时,第二NLU模型300b可以将“电影内容播放”确定为与“播放”相关的第二意图。
在另一个示例中,当设备类型是扬声器时,通过第二NLU模型300b解释相同的文本可能导致指示“播放”和音乐内容播放之间的相关程度的第二数值大于指示“播放”和电影内容播放之间的相关程度的第一数值。在这种情况下,第二NLU模型300b可以将“音乐内容播放”确定为与“播放”相关的第二意图。
因为第二NLU模型300b通过根据特定设备的类型反映属性以解释文本来确定第二意图,所以第二意图可以是或者可包括比第一意图更具体的信息。第二NLU模型300b是分析与输入文本中的对象或名词、修饰语或形容词以及谓词或动词相对应的单词的模型。因此,第二NLU模型300b可能花费比第一NLU模型300a更长的时间来解释文本和/或可能通过利用存储在存储器中的更多信息来解释文本。此外,第二NLU模型300b可以配置成将对应于新设备的模型添加到现有模型,以便解释与新设备相关的文本。
第二NLU模型300b可以通过考虑设备类型解释文本来确定参数。当作为分析文本的结果获得指示参数的多个变量信息时,第二NLU模型300b可以确定与每个变量信息对应的具有最大数值的变量信息作为参数。例如,当设备类型是电视时,第二NLU模型300b可以将通过解析文本“播放电影波西米亚狂想曲~”而提取的“波西米亚狂想曲”与包括在第二NLU模型300b中的关于多个参数的信息进行比较,并确定与第二意图相关的参数。在这种情况下,第二NLU模型300b可以将关于多个参数的信息中的与第二意图相关的多个参数的信息与从文本中提取的“波西米亚狂想曲”进行比较,并确定对应于“波西米亚狂想曲”的参数。当第二意图确定为“电影内容播放”时,第二NLU模型300b在与电影内容相关的多个参数之中确定对应于“波西米亚狂想曲”的参数。在另一个示例中,当确定第二意图是“音乐内容播放”时,第二NLU模型300b在与音乐内容相关的多个参数中确定对应于“波西米亚狂想曲”的参数。
服务器300可以向动作规划管理模型210提供所确定的第二意图和参数,并且从动作规划管理模型210获得与第二意图和参数有关的操作信息。在实施方式中,服务器300可以向动作规划管理模型210提供目标设备的类型的标识信息以及第二意图和参数。
动作规划管理模型210可以管理关于用于每种设备类型的设备的详细操作以及详细操作之间的关系的信息。动作规划管理模型210可以根据所获得的目标设备的标识信息识别目标设备,并且从存储器中获得先前存储的指示与目标设备相关的详细操作和详细操作之间的关系的信息。动作规划管理模型210可以通过从关于目标设备的详细操作和详细操作之间的关系的信息中选择与第二意图和参数相关的详细操作并且规划用于执行所选择的详细操作的顺序来获得操作信息。
在图10所示的实施方式中,动作规划管理模型210可以通过获得目标设备类型的标识信息(即电视类型的ID信息)、识别用于播放电影波西米亚狂想曲的多个详细操作(操作A到C)、以及规划执行多个详细操作(操作A到C)的顺序来获得操作信息。这里,例如,操作信息可以包括由目标设备执行以执行特定操作的功能、执行这些功能的顺序、执行这些功能的输入值(例如,使用的或必需的)、以及作为执行这些功能的结果而输出的输出值,但不限于此。
动作规划管理模型210可以通过例如选择执行电影播放器应用的操作A、在网络中或本地存储器内检索电影波西米亚狂想曲的操作B、以及播放检索到的电影波西米亚狂想曲的操作C、以及规划所选择的操作A到C的执行顺序来获得操作信息。
图11是示出根据实施方式的客户机设备110、服务器300和IoT云服务器400的操作的流程图。
参照图11,服务器300可以包括第一助手模型200a和第二助手模型200b。在图11中,第二助手模型200b是包括在服务器300中的组件,但不限于此。例如,根据另一个实施方式,第二助手模型200b可以是与服务器300分离的组件,和/或可以包括在IoT云服务器400中。
第一助手模型200a和第二助手模型200b是包括在服务器300中的组件,并且可以用硬件或软件或硬件和软件的组合来实现。在实施方式中,第一助手模型200a和第二助手模型200b可以包括以下任何一个或至少两个集合:包括指令的程序代码、应用、算法、例程、指令集、AI学习模型等。
在操作S1110,客户机设备110从用户获得语音信号。当用户说话时,客户机设备110可以通过麦克风接收用户的语音输入。客户机设备110可以通过将通过麦克风接收的声音转换为声信号并且从声信号中去除噪声(例如,非语音分量)来获得语音信号。
在操作S1112中,客户机设备110将语音信号发送到服务器300。
在操作S1120中,第一助手模型200a通过使用ASR模型202执行ASR来将语音信号转换为文本。在实施方式中,第一助手模型200a的ASR模型202可以通过使用诸如AM或LM的预限定模型来执行将语音信号转换为计算机可读文本的ASR。当第一助手模型200a从客户机设备110接收到没有从其中去除噪声的声信号时,ASR模型202可以从接收到的声信号中去除噪声以获得语音信号并对语音信号执行ASR。
在操作S1130中,第一助手模型200a的设备调度器模型310通过使用第一NLU模型300a来分析文本,并基于分析结果来确定第一意图。第一NLU模型300a可以是训练成解释文本以获得与文本相对应的第一意图的模型。这里,第一意图可以是指示包括在文本中的用户的话语意图的信息。设备调度器模型310可以通过使用第一NLU模型300a执行语法分析或语义分析来从转换而成的文本确定用户的第一意图。在实施方式中,设备调度器模型310可以通过使用第一NLU模型300a以词素、单词和短语中的至少一个为单位来解析转换而成的文本并且利用解析后的词素、单词和/或短语的语言特征(例如,语法元素)推断从解析后的文本中提取的单词的含义。设备调度器模型310可以通过将该单词的推断含义与由第一NLU模型300a提供的预限定的意图进行比较来确定与该单词的推断含义相对应的第一意图。
在操作S1140中,设备调度器模型310可以基于第一意图来确定目标设备的类型。在实施方式中,设备调度器模型310可以通过利用通过使用第一NLU模型300a获得的第一意图来确定目标设备的类型。
在实施方式中,设备调度器模型310可以基于可以确定第一意图和目标设备类型之间的相关性的匹配模型来确定与从文本中识别的第一意图相关的目标设备类型。可以用预定的数值来计算或确定第一意图和目标设备类型之间的相关性。在实施方式中,第一意图和目标设备类型之间的相关性可以被计算为概率值。
设备调度器模型310可以通过将匹配模型应用于从第一NLU模型300a获得的第一意图来确定多种目标设备类型中的与第一意图相关的目标设备类型。在实施方式中,设备调度器模型310可以通过将匹配模型应用到第一意图来获得指示第一意图和多种目标设备类型之间的关联程度的多个数值,并且获得所获得的多个数值中的具有最大值的目标设备类型作为最终类型。
在操作S1150中,设备调度器模型310基于所确定的类型和多个先前注册设备的设备信息来确定目标设备。在实施方式中,设备调度器模型310可以从IoT云服务器400接收关于用户的账户信息的多个先前注册设备的设备信息。设备调度器模型310可以从IoT云服务器400接收例如与用户的账户信息有关的多个先前注册设备的功能能力信息、位置信息和状态信息中的至少一者。这里,状态信息可以包括以下中的至少之一:多个设备是否开机/关机、关于当前由多个设备执行的操作的信息、关于设备的设置的信息(例如,音量设置、连接的设备信息和/或设置等)等。
设备调度器模型310可以从与用户的账户信息相关的多个先前注册设备中选择与在操作S1140中确定的类型相对应的多个设备,并且基于所选择的多个设备的状态信息来确定目标设备。在实施方式中,设备调度器模型310可以考虑多个所选择的设备的安装位置(或位置)信息来将位于接近用户位置的位置处的设备确定为目标设备。在另一个实施方式中,设备调度器模型310可基于以下各项中的至少一者来确定目标设备:所述多个所选择的设备是否开机/关机、关于当前由所述多个所选择的设备执行的操作的状态信息、关于设备的设置的信息(例如,音量设置、连接的设备信息和/或设置等)等。
在操作S1160中,第一助手模型200a向第二助手模型200b提供经解析的文本和目标设备信息。在实施方式中,设备调度器模型310可以将所确定的目标设备的标识信息(设备ID)连同所解析的文本一起提供给第二助手模型200b。
在操作S1170中,第二助手模型200b通过使用多个第二NLU模型300b之中与在操作S1140中确定的目标设备的类型相对应的第二NLU模型300b分析解析的文本来确定第二意图和参数。在实施方式中,第二助手模型200b可以通过使用第二NLU模型300b来推断从经解析的文本中提取的单词或短语的含义,将所推断的含义与预限定的单词和参数相匹配,并确定第二意图和参数。第二意图是指示包括在文本中的用户的话语意图的信息,并且可以用于确定将由特定类型的设备执行的操作。参数是与第二意图相关的用于确定目标设备的详细操作的变量信息。参数是与第二意图有关的信息,并且多种类型的参数可以对应于一个第二意图。
在操作S1180中,第二助手模型200b的动作规划管理模型210基于第二意图和参数获得或确定将由目标设备执行的操作的操作信息。动作规划管理模型210可以根据从设备调度器模型310获得的目标设备的标识信息识别目标设备,并且基于第二意图和参数解释将由目标设备执行的操作。动作规划管理模型210可以从每个先前存储的设备的操作中选择与解释所得的操作相关的详细操作,并且规划或确定执行所选择的详细操作的顺序。动作规划管理模型210可以使用规划结果获得关于将由目标设备执行的详细操作的操作信息。操作信息可以包括与将由设备执行的详细操作、详细操作之间的关系以及执行详细操作的顺序有关的信息。例如,操作信息可以包括由目标设备执行以便执行详细操作的功能、执行这些功能的顺序、执行这些功能的输入值(例如,需要)、以及作为执行这些功能的结果输出的输出值,但不限于此。
在操作S1190,第二助手模型200b向第一助手模型200a提供通过动作规划管理模型210获得的操作信息。
图12是示出根据实施方式的客户机设备110、服务器300和IoT云服务器400的操作的流程图。图12是说明图11的操作S1150的具体实施方式的图。在图12中,为了便于解释,服务器300仅包括第一助手模型200a,但不限于此。如图11所示那样,服务器300还可以包括第二助手模型200b。在图12中,第一助手模型200a可以包括ASR模型202、NLG模型204、第一NLU模型300a和设备调度器模型310。
在操作S1210,服务器300向IoT云服务器400请求(例如,发送请求)多个设备的设备信息。服务器300可以向IoT云服务器400发送用于请求与用户的账户信息有关的先前在IoT云服务器400中注册的多个设备的设备信息的信号。IoT云服务器400可以是为每个用户账户存储用户的多个先前注册设备的设备信息的服务器。IoT云服务器400可以与服务器300分离,并且可以通过网络连接到服务器300。在实施方式中,服务器300可以将从客户机设备110获得的用户的账户信息(例如,用户ID)发送到IoT云服务器400,并且从IoT云服务器400请求与用户的账户信息有关的用户的多个先前注册设备的设备信息。
在实施方式中,服务器300可以向(或朝向)IoT云服务器400发送关于所确定的目标设备类型的类型信息。在这种情况下,服务器300可以仅向IoT云服务器400请求先前在用户的账户信息中注册的多个设备中的与所确定的类型相对应的设备的信息。
在实施方式中,服务器300可以为每个用户账户存储用户的多个先前注册设备的设备信息。在这种情况下,服务器300不向IoT云服务器400请求设备信息,而是可以使用存储在服务器300中的与用户的账户信息有关的用户的多个先前注册设备的设备信息。此外,服务器300可以使用关于所确定的目标设备类型的信息来仅获得关于用户的多个先前注册设备中的与所确定的目标设备类型相对应的设备的信息。
在操作S1220中,IoT云服务器400可以将与用户的账户信息有关的多个先前注册设备的功能能力信息、位置信息和状态信息中的至少一者的信息发送到服务器300。
在实施方式中,当IoT云服务器400从服务器300获得关于目标设备类型的类型信息时,IoT云服务器400可以仅将关于与用户的账户信息相关的多个先前注册设备之中的、基于类型信息与特定类型相对应的设备的信息发送到服务器300。
在操作S1230中,服务器300通过使用第一助手模型200a的设备调度器模型310基于所确定的类型和所获得的多个设备的信息来确定是否存在多个目标设备候选。在实施方式中,当存在一种目标设备类型时(或基于此),设备调度器模型310可基于对应于目标设备类型的设备的状态信息或安装位置信息来确定目标设备候选,并确定是否存在多个所确定的目标设备候选。
在另一个实施方式中,当存在多种类型的目标设备时(或基于此),设备调度器模型310可以基于对应于多种类型的多个设备中的每一个的状态信息或安装位置信息来确定目标设备候选,并且确定是否存在多个所确定的目标设备候选。
当在操作S1230中确定存在一种目标设备类型(否)时(或基于此),服务器300通过使用第一助手模型200a的设备调度器模型310来基于所确定的类型和所接收的多个设备的信息将一个目标设备确定为最终目标设备(操作S1240)。
当在操作S1230中确定存在多个目标设备候选(是)时(或基于此),服务器300通过使用第一助手模型200a的NLG模型204生成或获得用于在多个候选设备中确定目标设备的询问消息(操作S1250)。服务器300可以通过使用NLG模型204生成用于从对应于特定类型的多个设备中选择任何一个目标设备的询问消息。服务器300可以执行确定多个候选设备中的目标设备的歧义消除操作。在操作S1250中,服务器300可以通过使用NLG模型204生成询问消息,该询问消息引导或请求用户进行关于确定多个设备中的哪个设备作为目标设备的响应。
在实施方式中,询问消息可以是这样的消息,其包括列出了与特定类型相对应的多个设备的列表,并且请求用户从列表中所包括的多个设备中选择目标设备。在另一个实施方式中,询问消息可以是根据安装位置选择多个候选设备的消息。然而,应当理解,这些仅仅是示例,并且一个或多个其它实施方式不限于此。例如,根据另一个实施方式,询问消息可以简单地请求用户提供对目标设备的更具体或明确的话语。
在操作S1260中,服务器300将生成的询问消息发送到客户机设备110。在实施方式中,服务器300的第一助手模型200a可以通过TTS将配置成文本的询问消息转换为音频信号。服务器300可以将转换成音频信号的询问消息发送到客户机设备110。然而,本公开不限于此。当客户机设备110是包括显示器的设备时,服务器300可以将文本数据形式的询问消息发送到客户机设备110。
在操作S1270中,客户机设备110输出从服务器300接收的询问消息。在实施方式中,客户机设备110可以通过扬声器输出转换成音频信号的询问消息。在另一个实施方式中,当客户机设备110是包括显示器的设备时,客户机设备110可以在显示器上显示询问消息。
在操作S1272,客户机设备110接收用户的响应输入。在实施方式中,客户机设备110可以接收从多个候选设备中选择任何一个设备的用户的响应输入。用户的响应输入可以是所选设备的名称,但不限于此。在实施方式中,用户的响应输入可以是包括多个候选设备的列表中所列举的次序,即,序号(例如,第二设备)。在另一个实施方式中,用户的响应输入可以简单地是更具体地提供用户对目标设备的意图或更明确地标识目标设备的另一话语。
在操作S1274中,客户机设备110将从用户接收到的响应输入发送到服务器300。用户的响应输入可以以语音信号的形式从客户机设备110发送。
在操作S1280中,服务器300通过使用第一助手模型200a基于响应输入来确定目标设备。在实施方式中,服务器300可以通过经由ASR过程通过使用ASR模型202将接收到的响应输入转换为文本,并通过使用第一NLU模型300a分析转换而成的文本,来提取关于由用户选择的目标设备的单词。服务器300可以通过使用第一NLU模型300a来解释所提取的单词的含义,并且基于所提取的单词来确定目标设备。在实施方式中,通过ASR过程将用户的响应输入转换为文本并将转换而成的文本与预定文本进行匹配以确定文本的含义的ASR模型202和第一NLU模型300a可以与参照图2A和2B描述的模型不同。然而,本公开不限于此,并且服务器300可以使用参考图2A和2B描述的模型中的至少一个。
在实施方式中,服务器300的设备调度器模型310可以基于从包括在询问消息中的候选设备的列表中选择特定序号的用户响应输入来确定与特定序号匹配的目标设备。根据另一个实施方式,如果服务器300不能基于用户的响应输入来确定目标设备,则可以将操作S1250到S1280重复预定次数。
图13是示出根据实施方式的客户机设备110、目标设备120、服务器300和IoT云服务器400的操作的流程图。图13详细示出在图11的操作S1190之后由客户机设备110、目标设备120、服务器300和IoT云服务器400执行的操作。
参照图13,在操作S1310中,第二助手模型200b向第一助手模型200a提供操作信息。操作S1310与图11的操作S1190相同或相似。
在操作S1320,第一助手模型200a向IoT云服务器400发送操作执行请求信息。在实施方式中,第一助手模型200a可以向IoT云服务器400发送操作信息和目标设备120的标识信息(例如,设备ID)。在实施方式中,第一助手模型200a可以向IoT云服务器400发送交互信息。这里,交互信息可以包括以下至少之一:通过借助服务器300的ASR模型202转换通过客户机设备110接收的用户的语音输入而获得的文本、通过使用NLG模型204和206由服务器300使用NLG模型生成的询问消息、以及通过转换用户的响应输入而获得的文本。
在操作S1330中,IoT云服务器400基于从第一助手模型200a接收的目标设备120的标识信息和操作信息来获得、生成或确定控制命令。在实施方式中,IoT云服务器400可以基于操作信息生成用于使目标设备120执行操作信息中的详细操作的控制命令。所生成的控制命令被发送到目标设备120,并且目标设备120可以通过读取所生成的控制命令来根据执行顺序顺序地执行操作信息中的详细操作。然而,应当理解,本公开不限于此。例如,根据另一个实施方式,IoT云服务器400可以存储对应于操作信息和目标设备120的标识信息的控制命令。
在操作S1340中,IoT云服务器400使用目标设备120的标识信息将在操作S1330中获得、生成或确定的控制命令发送到目标设备120。
在操作S1350中,目标设备120根据接收到的控制命令执行与控制命令相对应的操作。
在操作S1352中,当操作的执行成功完成或失败时(或基于此),目标设备120向IoT云服务器400发送执行操作的结果。当执行操作失败时(或基于此),目标设备120将执行操作的结果连同执行操作失败的原因一起发送到IoT云服务器400。
在操作S1354中,IoT云服务器400将执行操作的结果发送到第一助手模型200a。
在操作S1356中,第一助手模型200a将执行操作的结果发送到第二助手模型200b。在实施方式中,第一助手模型200a可以发送关于目标设备120的类型的信息以及执行操作的结果。
在操作S1360中,第二助手模型200b通过使用NLG模型206生成、获得或确定指示执行操作的结果的响应消息。在实施方式中,第二助手模型200b可以基于所接收的关于目标设备120的类型的信息来生成、获得或确定对应于执行操作的结果的响应消息。响应消息可以是指示目标设备120执行操作的执行结果的消息。
例如,当目标设备120是电视并且电视执行播放电影的操作时,第二助手模型200b可以基于从服务器300接收的电影播放操作的执行结果来生成响应消息“电视已经播放了电影”。
在另一个示例中,当目标设备120是扬声器并且扬声器未能执行增大音量的操作时,第二助手模型200b可以基于执行音量增大操作的结果和从服务器300接收到的故障原因来生成响应消息“因为音量处于其最高状态所以音量增大失败”。在这种情况下,从服务器300接收的执行结果可以是“失败”,并且与执行结果一起接收的失败的原因可以是“当前音量处于最高状态”。
在操作S1360中,第二助手模型200b使用NLG模型206来根据操作执行结果生成、获得或确定响应消息,但不限于此。例如,根据另一个实施方式,响应消息可以预先与动作规划管理模型210中的每个设备类型的动作规划一起存储。动作规划管理模型210可以识别在先前存储的响应消息中的与接收到的操作执行结果对应的响应消息,并获得所识别的响应消息。
在操作S1362,第二助手模型200b向第一助手模型200a发送响应消息。
在操作S1370中,第一助手模型200a基于响应消息生成用于通知操作执行结果的通知内容。在实施方式中,第一助手模型200a可以将文本、音频、图像和动态图像中的至少一者确定为通知内容的格式,并根据所确定的格式生成或获得通知内容。
第一助手模型200a可以执行将文本转换为语音以将文本格式的响应消息转换为音频信号的TTS功能。在实施方式中,服务器300可以基于与从目标设备120接收的布局关键字相对应的布局来生成图像。
在操作S1372中,服务器300的第一助手模型200a将通知内容发送到客户机设备110。在实施方式中,服务器300可以将通知内容发送到目标设备120。服务器300可以根据预限定的规则确定要向其提供通知内容的设备。预限定的规则包括关于用于每个操作的相应通知内容的格式的信息。此外,预限定的规则还可以包括关于输出通知内容的设备的信息。
例如,电影播放操作被限定为输出音频格式的通知内容,并且将由发送用户的语音输入的客户机设备110提供。当关于电影播放操作的通知内容被限定为以音频格式输出并且由客户机设备110提供时,服务器300可以将通知内容转换为音频格式并且将通知内容发送到客户机设备110。
在操作S1380,客户机设备110输出通知内容。当通知内容是音频格式时,客户机设备110可以通过扬声器输出通知内容。当通知内容是图像时,客户机设备110可以在显示器上显示通知内容。
图14是示出根据实施方式的客户机设备110、服务器300和IoT云服务器400的框图。
客户机设备110可以配置成至少包括麦克风112、处理器114(例如,至少一个处理器)、存储器116和通信接口118。客户机设备110可以通过麦克风112从用户接收语音输入(例如,话语),并且从用户的语音输入获得语音信号。客户机设备110可以通过处理器114控制通信接口118,并通过通信接口118将语音信号发送到服务器300。在实施方式中,客户机设备110的处理器114可以将通过麦克风112接收的声音转换为声信号,并从声信号中去除噪声(例如,非语音分量)以获得语音信号。
存储器116可以预先存储客户机设备110的标识信息(例如,客户机设备110的ID信息)和用户的账户信息(例如,用户的ID信息)中的至少一个。在实施方式中,当在处理器114的控制下通过通信接口118向服务器300发送语音信号时,客户机设备110可以发送先前存储在存储器116中的客户机设备110的标识信息(例如,客户机设备110的ID信息)和/或用户的账户信息(例如,用户的ID信息)。
服务器300可以包括通信接口302、处理器304(例如,至少一个处理器)和存储器306。
通信接口302可以至少使用以下数据通信方法与客户机设备110和IoT云服务器400执行数据通信,所述数据通信方法为以下至少之一:例如,有线LAN、无线LAN、Wi-Fi、蓝牙、Zigbee、Wi-Fi直连(WFD)、红外数据协会(IrDA)、蓝牙低能量(BLE)、近场通信(NFC)、无线宽带互联网(Wibro)、全球微波接入互操作性(WiMAX)、共享无线接入协议(SWAP)、无线千兆比特联盟(WiGig)和RF通信。
处理器304可以执行存储在存储器306中的程序的一个或多个指令。处理器304可以包括执行算术、逻辑、输入/输出操作和信号处理的硬件组件。处理器304可包括例如中央处理单元、微处理器、图形处理单元、专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)和现场可编程门阵列(FPGA)中的至少一者,但不限于此。
存储器306可以存储包括用于根据用户的语音输入确定要执行操作的目标设备的指令的程序。存储器306可存储处理器304可读取的指令和程序代码。在下面的描述中,处理器304可以通过执行存储在存储器306中的程序的指令或代码来实现。
此外,对应于第一助手模型200a和第二助手模型200b的数据可以存储在存储器306中。对应于第一助手模型200a的数据可以至少包括关于ASR模型202的数据、关于NLG模型204的数据、关于第一NLU模型300a的数据、以及关于设备调度器模型310的数据。对应于第二助手模型200b的数据至少包括关于多个第二NLU模型300b的数据、关于NLG模型206的数据、关于动作规划管理模型210的数据等。
例如,存储器306可以包括闪存类型存储介质、硬盘类型存储介质、多媒体卡微型存储介质、卡类型存储器(例如,SD或XD存储器)、随机存取存储器(RAM)、静态RAM(SRAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可编程ROM(PROM)、磁存储器、磁盘、光盘等中的至少一种类型的存储介质。
处理器304可包括例如中央处理单元(CPU)、微处理器、图形处理单元(GPU)、专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)和现场可编程门阵列(FPGA)中的至少一者,但不限于此。
处理器304可以控制通信接口302从客户机设备110接收语音信号。处理器304可以使用关于存储在存储器306中的ASR模型202的数据来执行ASR,并且将从客户机设备110接收的语音信号转换为文本。
处理器304可以使用存储在存储器306中的关于第一NLU模型300a的数据来分析转换而成的文本,并且基于文本的分析结果来确定至少一个目标设备的类型。在实施方式中,处理器304可以利用存储在存储器306中的关于第一NLU模型300a的数据,以词素、单词和短语中的至少一个为单位来解析文本并且利用解析后的词素、单词或短语的语言特征(例如,语法元素)来推断从解析后的文本中提取的单词的含义。处理器304可以通过将该单词的推断含义与由第一NLU模型300a提供的预限定的意图进行比较来确定与该单词的推断含义相对应的第一意图。
处理器304可以基于能够确定第一意图和目标设备类型之间的相关性的匹配模型来确定与从文本中识别的第一意图相关的目标设备类型。在实施方式中,匹配模型被包括在存储在存储器306中的关于设备调度器模型310的数据中,并且可以使用基于规则的系统通过学习来获得,但不限于此。设备调度器模型310可以与第一NLU模型300a分开配置,但不限于此。设备调度器模型310可以配置成包括第一NLU模型300a。
在实施方式中,处理器304可以控制通信接口302接收关于与用户的账户信息有关的先前向IoT云服务器400注册的多个设备的信息。用户的账户信息是存储在客户机设备110的存储器116中的信息。服务器300可以通过通信接口302和客户机设备110的通信接口118之间的通信来接收用户的账户信息。
IoT云服务器400可以是针对每个用户账户存储用户的多个先前注册设备的设备信息的服务器。IoT云服务器400可以与服务器300分离,并且可以通过网络连接到服务器300。根据另一个实施方式,服务器300和IoT云服务器400可以集成在一个服务器中。IoT云服务器400可以至少包括通信接口402、处理器404(例如,至少一个处理器)和存储器406。IoT云服务器400的存储器406可以存储针对每个用户账户的多个先前注册设备中的每个设备的标识信息、功能能力信息、位置信息、状态信息、设备名称信息、控制命令等中的至少一个。IoT云服务器400可以通过通信接口402通过网络连接到服务器300或目标设备120,并且可以接收或发送数据。IoT云服务器400可以在处理器404的控制下通过通信接口402将存储在存储器406中的数据发送到服务器300或目标设备120。此外,IoT云服务器400可以在处理器404的控制下通过通信接口402从服务器300或目标设备120接收数据。
处理器304可以控制通信接口302,并且通过通信接口302从IoT云服务器400接收包括与用户的账户信息相关的多个先前注册设备的标识信息(例如,设备ID)、功能能力信息、位置信息和状态信息中的至少一个的设备信息。这里,状态信息可以是指示例如设备的当前状态的信息,例如以下至少之一:多个设备的开机/关机信息、关于由多个设备当前执行的操作的信息、关于设备的设置的信息(例如,音量设置、连接的设备信息和/或设置等)等。
处理器304可以使用存储在存储器306中的关于第一助手模型200a的数据,基于所确定的目标设备类型和先前在用户账户中注册的多个设备的设备信息来确定目标设备。
在实施方式中,处理器304可以从文本中提取与设备的类型有关的通用名称和关于设备的安装位置的单词或短语,并且使用存储在存储器306中的关于第一NLU模型300a的数据,基于所提取的设备的通用名称和安装位置来确定目标设备。
在实施方式中,处理器304可以从文本中提取用户先前注册的个性化设备的名称。处理器304可以通过控制通信接口302将提取的设备名称发送到存储多个设备的名称和对应于每个设备的名称的设备标识信息的IoT云服务器400或设备名称服务器410(参见图15)。处理器304可以控制通信接口302从外部服务器接收对应于所发送的设备名称的设备标识信息。这里,设备名称服务器410可以是包括在IoT云服务器400中的组件,但不限于此。设备名称服务器410可以配置成与IoT云服务器400分离的服务器。存储在设备名称服务器410中的多个设备的名称可以包括由用户直接注册的名称以及注册名称的同义词语、类似词语和斜体词语中的至少一个。
处理器304可以使用存储在存储器306中的关于第一助手模型200a的数据,基于接收到的设备标识信息来确定目标设备。在实施方式中,当存在与所确定的类型相对应的多个设备时,处理器304可以使用存储在存储器306中的NLG模型204来生成用于从多个候选设备中选择目标设备的询问消息。处理器304可以控制客户机设备110输出所生成的询问消息。
处理器304使用存储在存储器306中的第二助手模型200b中所包括的多个第二NLU模型300b之中、与所确定的目标设备的类型相对应的第二NLU模型300b来获得将由目标设备执行的详细操作的操作信息。在实施方式中,处理器304可以通过使用第二NLU模型300b将文本解析为词素、单词和/或短语的单元,通过语法和语义分析推断解析的词素、单词和/或短语的含义,并且将推断的含义与预定单词相匹配以获得第二意图和参数。处理器304可以通过使用第二NLU模型300b从文本中确定第二意图,并且可以将专用于设备类型的意图确定为第二意图而不是第一意图。
处理器304可以通过使用存储在存储器306中的第二助手模型200b中的动作规划管理模型210来获得关于与第二意图和参数有关的至少一个操作的操作信息。操作信息可以是与将由设备执行的详细操作以及执行详细操作的顺序有关的信息。动作规划管理模型210可以管理与每个设备类型的详细操作相关的信息以及详细操作之间的关系。处理器304可以通过使用动作规划管理模型210,基于第二意图和参数来执行规划将由设备执行的详细操作和执行详细操作的顺序。
通信接口302在处理器304的控制下向(或朝向)IoT云服务器400发送所确定的目标设备的标识信息以及关于目标设备的详细操作和执行详细操作的顺序的信息。IoT云服务器400可以使用通过通信接口402接收的目标设备的标识信息以及关于目标设备的详细操作和执行详细操作的顺序的信息,来在处理器404的控制下确定存储在存储器406中的每个设备的控制命令中的相应控制命令。
IoT云服务器400在处理器404的控制下通过通信接口402将所确定的控制命令发送到目标设备。在实施方式中,处理器404使用目标设备的标识信息确定要将控制命令向(或朝向)哪个设备发送,并通过通信接口402将控制命令向(或朝向)所确定的设备发送。在实施方式中,处理器404可以通过通信接口402接收在目标设备中根据控制命令执行操作的结果。
图15至图19是示出根据实施方式的由服务器300执行的程序模块的操作的图。
图15是示出根据实施方式的由服务器300执行的程序的架构的图。图15所示的客户机设备110和IoT云服务器400是与图14所示的客户机设备110和IoT云服务器400相同或相似的组件。在图15中,为了便于描述,省略了第一助手模型200a的一些组件,并且省略了包括在第二助手模型200b中的组件的图示。参考图14描述包括在第一助手模型200a和第二助手模型200b中的每一个中的组件的示例。
参照图15,服务器300可以包括第二助手模型200b和设备调度器模型310。设备调度器模型310可以包括流控制器320、设备类型分类器330、对话设备歧义消除装置340、智能设备解算器(IDR)350和响应执行管理器360。
流控制器320、设备类型分类器330、对话设备歧义消除装置340、IDR 350和响应执行管理器360可以是软件模块,其配置为由服务器300执行的程序的指令或程序代码。尽管在图15中软件模块被示为单独的配置,但是这是为了便于描述,而不限于所示那样。
此外,设备调度器模型310还可以包括会话管理器。会话管理器可以存储关于与用户的账户信息、账户或设备(例如,客户机设备)有关的先前在IoT云服务器400中注册的多个设备与服务器300之间的会话的信息。会话管理器还可以控制客户机设备110和设备调度器模型310之间以及第二助手模型200b和设备调度器模型310之间的数据和指令的发送和接收。在实施方式中,会话管理器可以存储关于是在与用户的交互中维护多个设备之间的交互还是仅通过客户机设备110接收用户的语音输入的策略。当会话管理器从用户接收到没有指定特定设备的名称或类型的语音输入时,会话管理器可以在接收到语音输入之前选择已经执行操作的设备,并且检索与在第二助手模型200b中确定的目标设备相关的操作信息。
流控制器320可以从客户机设备110接收语音信号。流控制器320可以是控制设备调度器模型310中的数据流的模块。流控制器320连接到设备类型分类器330和对话设备歧义消除装置340,并控制数据流的发送和接收以用于(例如,对于必要的)根据设备类型分类器330和对话设备歧义消除装置340之间的语音信号来确定目标设备的类型。
设备类型分类器330可以确定与语音信号相关的目标设备类型。设备类型分类器330可以执行ASR以将语音信号转换为计算机可读文本。设备类型分类器330可以通过使用第一NLU模型来解释文本,并且基于分析结果获得用户想要在目标设备中执行的第一意图。在实施方式中,设备类型分类器330可以通过使用AI模型利用第一意图和目标设备的相关类型之间的匹配规则或匹配模式来被训练,并且基于经训练的匹配规则或匹配模式根据意图来确定目标设备的类型。
设备类型分类器330可以使用例如基于规则的系统利用意图和目标设备类型之间的匹配规则或匹配模式来被训练,但不限于此。例如,设备类型分类器330使用的AI模型可以是基于神经网络的系统(例如,卷积神经网络(CNN)、递归神经网络(RNN)、支持向量机(SVM)、线性回归、逻辑回归、朴素贝叶斯、随机森林、决策树、k-最近邻算法等)。或者,AI模型可以是前述或另一AI模型的组合。
在实施方式中,设备类型分类器330可以从文本中识别设备的名称,并且基于所识别的设备的名称来确定设备的类型。设备类型分类器330可以通过使用第一NLU模型将文本解析为单词和/或短语的单元,将解析的单词和/或短语与预限定的设备名称相匹配,并且获得包括在文本中的设备名称。例如,当从流控制器320接收到语音信号“在电视上播放电影波西米亚狂想曲”时,设备类型分类器330可以将语音信号转换为文本,分析转换而成的文本,并获得设备名称“电视”。
在实施方式中,当从文本获得的设备名称是个性化昵称时,设备类型分类器330可以向设备名称服务器410发送询问,并且从设备名称服务器410接收与个性化昵称相对应的设备标识信息。设备名称服务器410可以是存储与多个注册设备的名称相关的昵称信息的外部服务器。设备名称服务器410可以包括在IoT云服务器400中,但不限于此。设备名称服务器410可以是与IoT云服务器400分离的服务器。设备名称服务器410可以存储用户注册的多个设备中的每一个的名称的个性化词汇,例如同义词语、类似词语、斜体词语等中的至少一种。
设备名称服务器410(或存储器)可以将设备注册和存储为个性化单词或词汇表,并且当用户在账户信息中注册或删除该设备时(或基于此),添加或删除该个性化单词或词汇表。例如,当用户将客厅电视作为“正方形”存储在设备名称服务器410中时(或基于此),设备类型分类器330可以向设备名称服务器410发送关于“正方形”的询问,并从设备名称服务器410接收对应于“正方形”的“客厅电视”的标识信息(ID信息)。在实施方式中,设备名称服务器410可以呈云服务器、外部存储器或数据库(DB)的形式。
设备类型分类器330可以将关于所确定的目标设备类型的信息发送到流控制器320。
流控制器320将关于目标设备类型的信息发送到对话设备歧义消除装置340。
当存在与由设备类型分类器330确定的类型相对应的多个设备时,对话设备歧义消除装置340可以通过与用户的交互来对目标设备消除歧义。对话设备歧义消除装置340可以生成用于从多个目标设备候选中选择或确定目标设备的询问消息。对话设备歧义消除装置340可以通过使用NLG模型来生成询问消息。对话设备歧义消除装置340可以通过使用TTS模型将文本形式的询问消息转换为音频信号。在实施方式中,对话设备歧义消除装置340可以将询问消息发送到流控制器320,使得所生成的询问消息由接收来自用户的语音输入的客户机设备110输出。对话设备歧义消除装置340可以以文本的形式将询问消息发送到流控制器320,但不限于此。对话设备歧义消除装置340可以将转换成音频信号的询问消息发送到流控制器320。
流控制器320可以向(或朝向)客户机设备110发送询问消息。
当对话设备歧义消除装置340要(例如,需要)选择多个目标设备中的任何一个时,对话设备歧义消除装置340可以连同询问消息一起提供关于用户的先前响应输入以及用户先前根据现有响应输入选择的目标设备的信息。
对话设备歧义消除装置340可以基于用户的响应输入来确定目标设备,该用户的响应输入选择包括在询问消息中的多个目标设备候选中的任何一个。用户的响应输入可以以语音信号的形式从客户机设备110发送。在实施方式中,对话设备歧义消除装置340可以根据响应输入识别设备的通用名称、安装位置、在询问消息中列出多个目标设备候选的顺序等中的至少一个,并且可以基于响应输入来确定目标设备。对话设备歧义消除装置340可以将从客户机设备110接收的响应输入转换为文本,将文本解析为单词或短语的单元,并获得包括在文本中的设备的通用名称、安装位置或序号(列表次序:例如,“第一设备”)。例如,当询问消息包括其中多个目标设备候选以预定顺序列出的列表时,对话设备歧义消除装置340可以基于用户的响应输入(例如“第一”或“第二”)来识别与列表中的特定目标设备的顺序相对应的设备,并将所识别的设备确定为目标设备。
对话设备歧义消除装置340可以将关于多个目标设备候选的信息发送到IDR 350。
IDR 350可以获得关于与用户的账户信息、设备等的有关的先前在IoT云服务器400中注册的多个设备的标识信息,并且基于所述多个设备中的每一个的设备信息选择目标设备。设备信息可以包括与用户的账户信息、设备等有关的多个先前注册设备中的每一个的功能能力信息、位置信息和状态信息。状态信息可以包括关于所述多个设备是开机/关机和当前由所述多个设备执行的操作中的至少一者的信息。
IDR 350可以将关于所选择的目标设备的信息发送到对话设备歧义消除装置340。在实施方式中,IDR 350可以将目标设备的标识信息ID、名称、昵称、位置、制造商、型号ID、功能能力、关于当前操作状态的信息等中的至少一个发送到对话设备歧义消除装置340。
流控制器320可以将关于目标设备的信息发送到会话管理器。会话管理器可以将解析的文本和关于目标设备的信息发送到第二助手模型200b。
第二助手模型200b的动作规划管理模型210可以管理与每个设备类型的操作以及操作之间的关系相关的信息。第二助手模型200b可以通过使用多个第二NLU模型中的与目标设备的类型相对应的第二NLU模型解释解析的文本来确定第二意图和参数。第二助手模型200b可以通过基于第二意图和参数规划将由目标设备执行的详细操作以及执行详细操作的顺序来生成关于将由目标设备执行的操作的操作信息。第二助手模型200b可以通过执行例如与电视代理或扬声器代理的操作执行相关的动作规划来生成操作信息。
第二助手模型200b可以将操作信息和目标设备的标识信息发送到会话管理器。会话管理器可以将从第二助手模型200b获得的操作信息发送到响应执行管理器360。响应执行管理器360可以向或朝向IoT云服务器400发送操作信息和目标设备的标识信息。在实施方式中,响应执行管理器360可以向IoT云服务器400发送交互信息。交互信息可以包括由从用户接收的语音输入转换而成的文本、服务器300通过使用NLG模型生成的询问消息、以及从关于询问消息的响应输入转换而成的文本中的至少一者。
IoT云服务器400可以通过利用接收到的目标设备的标识信息和操作信息来获得、确定或生成用于控制设备的控制命令。在实施方式中,IoT云服务器400可以基于动作信息获得、确定或生成用于允许、控制或指示目标设备执行操作信息中的详细操作的控制命令。控制命令可以是用于控制目标设备根据操作信息执行详细操作的命令。然而,应当理解,本公开不限于此,并且IoT云服务器400可以存储对应于操作信息和目标设备的标识信息的控制命令。
IoT云服务器400可以向目标设备发送控制命令。目标设备可以通过读取所生成的控制命令,根据执行顺序顺序地执行操作信息中的详细操作。IoT云服务器400可以从目标设备接收关于操作执行结果的信号,该操作执行结果是由目标设备执行控制命令的结果。
IoT云服务器400可以将关于操作执行结果的信号发送到响应执行管理器360。
响应执行管理器360可以基于操作执行结果生成通知内容。在实施方式中,响应执行管理器360可以通过使用NLG模型来生成通知内容。通知内容可以是指示目标设备执行操作的结果的消息。
响应执行管理器360可以将文本、音频、图像和动态图像中的至少一个确定为通知内容的格式,并根据所确定的格式生成或获得通知内容。响应执行管理器360可以执行将文本转换为语音以将文本格式的响应消息转换为音频信号的TTS功能。
响应执行管理器360可以将通知内容发送到会话管理器。
会话管理器可以将通知内容发送到客户机设备110。会话管理器可以根据预限定的规则来确定要向其提供通知内容的设备。预限定的规则包括关于对应于每个操作的通知内容的格式的信息。此外,预限定的规则还可以包括关于输出通知内容的设备的信息。
客户机设备110可以通过扬声器输出接收到的通知内容。
在图15中,示出了这样的实施方式,其中,当存在与从用户接收的语音输入相关的与所确定的类型相对应的多个设备时,设备调度器模型310通过询问用户关于选择哪个设备作为目标设备的询问消息来确定最终执行操作的目标设备,但不限于此。在实施方式中,设备调度器模型310可以通过应用从用户的语音输入识别的第一意图和最终由用户选择作为人工神经网络的输入和输出的目标设备的配对被训练,并且可使用通过训练结果生成的学习网络模型来选择目标设备。这里,可以使用诸如卷积神经网络(CNN)或递归神经网络(RNN)的已知深度神经网络(DNN)来训练设备调度器模型310,但不限于此。通过训练方法,可以提高根据用户意图来确定目标设备的准确性。
图16示出根据实施方式的设备调度器模型310的设备类型分类器330。
参照图16,设备调度器模型310可以包括流控制器320和设备类型分类器330。
设备类型分类器330可以包括代理331、词典管理器332、设备名称调度器333、设备类型调度器334、能力调度器335、规则引擎336、标准处理程序337和语法338。
当根据从客户机设备接收的用户语音输入获得的设备名称是个性化昵称时,词典管理器332可以向设备名称服务器410(参见图15)发送询问,并且从设备名称服务器410接收与个性化昵称相对应的设备的标识信息。词典管理器332可以将包括在从语音输入转换而成的文本中的设备的个性化昵称与在外部设备名称服务器中注册的同义词语、类似词语和斜体词语中的至少一个的词汇表同步。例如,当从文本中识别词汇表“fool box”时(或基于此),词典管理器332可以向设备名称服务器410发送询问,并接收对应于“fool box”的“客厅电视”的标识信息。词典管理器332可以将接收到的客厅电视的标识信息与昵称“foolbox”同步。
设备名称调度器333可以解析从语音输入转换而成的文本,并从解析的文本获得设备的名称。在实施方式中,设备名称调度器333可以通过使用NLU模型来执行语法或语义分析,并且从文本中提取对应于设备名称的单词或短语。在实施方式中,设备名称调度器333可以向词典管理器332发送关于所提取的设备名称的询问,并且将该询问与设备的预定名称进行比较,以识别设备的标识信息。例如,当从设备类型分类器330的代理331接收到文本“在电视上播放波西米亚狂想曲”时,设备名称调度器333可以从文本获得设备名称“电视”。
设备类型调度器334可以基于从语音输入转换而成的文本来确定设备的类型。设备类型调度器334可以通过使用第一NLU模型从文本中获得第一意图,并且基于先前存储在规则引擎336中的匹配规则来确定与所获得的第一意图相匹配的设备类型。通过使用第一NLU模型从文本确定第一意图的详细方法与参考图5描述的由服务器300执行的从第一意图确定目标设备类型的方法相同或相似。
能力调度器335可以基于与第一意图所指示的操作相关的功能能力来确定目标设备类型。例如,至少一个功能可以与第一意图所指示的操作相匹配。能力调度器335可以通过基于设备的功能能力信息识别能够执行与第一意图匹配的功能的设备来确定目标设备类型。这里,功能能力信息可以是关于设备可执行的功能的信息。例如,移动电话的功能能力可以包括SNS、地图、电话、互联网等,电视的功能能力可以包括内容播放,并且空调的功能能力可以包括空气温度控制。
当设备类型调度器334和能力调度器335配置为程序代码或算法时,规则引擎336的语法338可用于执行上述功能。当设备类型调度器334和能力调度器335被实现为机器学习或神经网络模型时,规则引擎336和语法338可以被省略。
当存在与所确定的类型相对应的多个设备时,标准处理程序337可以存储多个候选设备被列举的顺序与实际目标设备之间的映射信息。在实施方式中,标准处理程序337可以存储关于列出多个候选设备的顺序的信息,并且基于关于列出顺序的信息来确定与通过用户的响应输入所选择的特定顺序的目标设备相映射的实际目标设备。例如,当存在作为目标候选设备的三个电视,例如客厅电视、主卧室电视和次卧室电视时,标准处理程序337可以包括与第一电视、第二电视和第三电视中的每一个映射的实际电视的标识信息。
图17示出根据实施方式的设备调度器模型310的对话设备歧义消除装置340。
参照图17,设备调度器模型310可以包括流控制器320、对话设备歧义消除装置340和IDR 350。
对话设备歧义消除装置340可以包括设备歧义消除服务模型341、询问消息生成器342、对话状态管理器343、智能设备解算器(IDR)连接器344、对话状态追踪器345和DB 346。
设备歧义消除服务模型341可以识别是否存在来自流控制器320的一个目标设备候选或多个目标设备候选,并且当存在多个目标设备候选时向询问消息生成器342发送用于澄清目标设备的信号。
询问消息生成器342可以生成用于从多个目标设备候选中选择目标设备的询问消息。在实施方式中,询问消息生成器342可以通过使用NLG模型来生成询问消息。在实施方式中,询问消息生成器342可以通过使用TTS模型将文本格式的询问消息转换为音频信号。
对话状态管理器343可以控制关于用户和客户机设备之间的对话或各设备之间的对话的状态。例如,当在空闲状态中根据用户的语音输入将目标设备识别为“电视”时,对话状态管理器343可以改变为执行关于哪个电视将执行操作的歧义消除的状态。
当存在对应于基于用户的语音输入的所确定类型的多个设备候选时,IDR连接器344可以通过与IDR 350的询问发送和接收来确定多少设备候选对应于目标设备的名称或类型并且哪个设备是最佳目标设备。
在实施方式中,当对话状态管理器343从自用户接收的语音输入中识别出存在与所确定的类型相对应的多个设备时(或基于此),可以将状态改变为歧义消除状态。设备歧义消除服务模型341可以基于关于歧义消除状态的信号向询问消息生成器342发送信号。询问消息生成器342可以生成询问选择多个候选设备中的哪一个设备作为目标设备的询问消息。
对话状态追踪器345可以获得关于用户和客户机设备之间或各设备之间的对话状态的信息,以追踪对话状态。例如,对话状态追踪器345可以获得关于当前情况是否为接收用于消除目标设备歧义的响应输入的状态或者关于是否应当根据接收到的响应输入恢复对话的情况的信息。DB 346可包括顺序DB、响应消息模版、对话DB。
图18是示出根据实施方式的设备调度器模型310的响应执行管理器360的图。
参照图18,设备调度器模型310可以包括响应执行管理器360。
响应执行管理器360可以分发信号以允许从用户接收语音输入的与收听者相对应的客户机设备和作为执行操作的执行器的目标设备执行操作。响应执行管理器360可以包括确定器361、响应调度器362、布局处理程序363、操作信息364、布局DB 365和NLG DB 366。
确定器361可以根据从第二助手模型获得的操作信息来确定向用户提供由目标设备执行操作的结果的反馈的属性。在实施方式中,确定器361可以确定操作信息是只需要通过目标设备执行操作,还是包括反馈,例如通过NLG输出响应消息。
这里,响应消息可以是指示目标设备执行操作的执行结果或操作的执行失败的消息。例如,当目标设备是电视并且电视执行播放电影的操作时,响应消息可以是指示电影播放操作的执行结果“电视已经播放了电影”。在另一个示例中,当目标设备是扬声器并且扬声器未能执行增大音量的操作时,响应消息可以是“音量增大失败,因为音量处于其最高状态”,其指示执行音量增大操作的结果和失败的原因。在这种情况下,执行结果可以是“失败”,并且与执行结果一起接收到失败的原因可以是“当前音量处于最高状态”。
响应消息可以以文本、音频、图像和动态图像中的至少一种格式来配置。当操作信息需要反馈时,确定器361可以确定响应消息的格式。
当从响应调度器362接收到包括操作信息364和关于布局的信息的信号时,确定器361可以分离该信号,使得向目标设备输出用于执行操作和布局的控制命令,并且向客户机设备输出响应消息。例如,确定器361可以向IoT云服务器400发送用于执行操作的操作信息和GUI信息,并且可以向会话管理器发送响应消息,例如“电视已经播放了电影”。可以使用先前存储在NLG DB 366中的消息来生成响应消息。这里,GUI信息可以存储在布局DB 365中。
响应调度器362可以确定响应消息应该输出到的设备。响应调度器362可以基于预限定的规则来确定要向其输出响应消息的设备。预限定的规则可以包括关于用于每个操作的相应响应消息的格式的信息。此外,预限定的规则还可以包括关于输出响应消息的设备的信息。
例如,关于电影播放操作的响应消息被限定为以音频格式输出,并且由发送用户的语音输入的客户机设备110提供。当关于电影播放操作的响应消息被限定为以音频格式输出并且由客户机设备提供时,服务器300可以将响应消息转换为音频格式并且将响应消息发送到客户机设备。
在实施方式中,响应调度器362可以将所生成的响应消息的输出设备确定为接收来自用户的语音输入的客户机设备。这是为了防止当从除与用户交互的设备之外的另一个设备输出响应消息时,用户可能被混淆为与哪个设备进行通信的问题。
布局处理程序363可以确定先前存储的布局中的用于要实际执行操作的目标设备的(例如,对于目标设备是必需的)布局。在实施方式中,布局处理程序363可以确定要传送到目标设备的布局。
布局DB 365可存储由目标设备用来执行操作的布局。布局DB365可以存储例如关于与音乐播放、电影播放等相关的GUI的数据。
图19是示出根据实施方式的设备调度器模型310的IDR 350的图。
参照图19,设备调度器模型310可以包括流控制器320和IDR350。图19中所示的IoT云服务器400与图15中所示的IoT云服务器400(参见图15)相同或相似,并且设备名称服务器410与图15中所示的设备名称服务器410(参见图15)相同或相似。在图19中,IoT云服务器400和设备名称服务器410被示为单独的服务器,但不限于此。例如,根据另一个实施方式,IoT云服务器400和设备名称服务器410可以被集成到一个服务器中。
当存在与从用户的语音输入转换而成的文本相关的所确定的类型相对应的多个设备候选时,流控制器320可以通过与IDR 350的询问发送和接收来确定多少设备候选对应于目标设备的名称或类型并且哪个设备是最佳目标设备。
IDR 350可基于通过经由第一NLU模型解释文本而获得的第一意图以及与用户的账户信息相关的先前在IoT云服务器400中注册的多个设备的设备信息来确定多个候选设备中的最佳目标设备。设备信息可以包括关于以下至少一者的信息:例如,客户机设备110的位置信息、先前在IoT云服务器400中注册的多个设备中的每一个的功能能力信息、每个设备是否开机/关机、和关于当前由每个设备执行的操作的信息。
IDR 350可以包括设备解算器351和同步管理器352。
设备解算器351可以从IoT云服务器400获得与用户的账户信息相关的多个先前注册设备的列表。在实施方式中,设备解算器351可以基于客户机设备110的位置来识别安装或位于周边的多个设备。在实施方式中,设备解算器351可以基于多个设备中的每一个的类型、名称、通用名称、位置、当前由多个设备中的每一个执行的操作、以及多个设备中的每一个是否开机/关机中的至少一者来确定目标设备。在实施方式中,设备解算器351可以向IoT云服务器400发送根据设备的名称或类型请求关于功能能力的信息的询问,并且从IoT云服务器400接收设备的功能能力信息。设备解算器351可以基于所接收的信息来确定目标设备。
在实施方式中,设备解算器351可以将标识信息ID、名称、昵称、位置、制造商、型号ID、功能能力和关于目标设备的当前操作状态的信息中的至少一者发送到对话设备歧义消除装置340(参见图15)。
同步管理器352可以使设备名称与设备名称服务器410同步。在实施方式中,同步管理器352可以将从用户的语音输入转换而成的文本获得的设备昵称与先前存储在外部设备名称服务器410中的设备的昵称同步。
设备名称服务器410可以是外部服务器,其存储与设备的名称相关的、由用户注册的同义词语、类似词语和斜体词语中的至少一个的个性化词汇表。设备名称服务器410可以将设备注册并存储为个性化单词或词汇表,并且当用户注册或删除该设备时添加或删除该个性化单词或词汇表。在实施方式中,设备名称服务器410可以是云服务器、外部存储器或DB的形式。
在实施方式中,同步管理器352可以将存储在设备名称服务器410中的设备的个性化昵称与存储在Redis 420中的设备名称同步。在这种情况下,同步管理器352可以像高速缓存服务器一样操作。
图20是示出根据实施方式的动作规划管理模型210的示意图。动作规划管理模型210可以是包括在服务器300中的组件,但不限于此。动作规划管理模型210可以是与服务器300分开的组件。在实施方式中,动作规划管理模型210可以包括在IoT云服务器400中。动作规划管理模型210可以将第二助手模型200b与多个第二NLU模型300b一起配置。在实施方式中,动作规划管理模型210可以配置成包括多个第二NLU模型300b。
动作规划管理模型210可以是管理关于设备的操作信息以便生成动作规划的模型。动作规划管理模型210可以是存储用于由服务器300确定以执行操作的目标设备的(例如,其所需的)操作信息的服务器。动作规划管理模型210可以包括AI学习模型、AI学习算法、例程、指令集和NLU模型中的至少一者。在实施方式中,动作规划管理模型210可以包括NLU模型。
动作规划管理模型210可以管理与每个设备类型的多个详细操作以及多个详细操作之间的关系相关的操作信息。在多个详细操作中的每个详细操作和其它详细操作之间的关系包括关于在执行一个详细操作之前要执行或必须基本上执行的另一个详细操作的信息,以便执行该详细操作。
动作规划管理模型210可以基于通过第二NLU模型根据文本确定的第二意图和参数来确定将由设备执行的多个详细操作。在实施方式中,动作规划管理模型210可以确定用于执行多个确定的详细操作的(例如,需要的)输入参数值或通过执行详细操作而输出结果值。这里,输入参数值和输出结果值可以被限定为指定形式(或类型)的概念。因此,动作规划可以包括与第二意图和参数相关联地确定的多个详细操作和多个概念。
动作规划管理模型210可以逐步地(或分层地)确定多个操作和多个概念之间的关系。例如,动作规划管理模型210可以基于第二意图和参数执行规划以确定执行多个所确定的详细操作的顺序,并生成规划结果操作信息。即,动作规划管理模型210可以基于执行多个详细操作所需的输入参数值或通过执行详细操作输出的结果值来规划执行多个详细操作的顺序,并相应地生成操作信息。
操作信息可以是与将由设备执行的详细操作、每个详细操作与另一个详细操作之间的关系、以及执行详细操作的顺序有关的信息。例如,操作信息可以包括由目标设备执行以执行特定操作的功能、执行这些功能的顺序、执行这些功能的输入值(例如,所需要的)、以及作为执行这些功能的结果输出的输出值,但不限于此。动作信息可以包括由动作规划管理模型210生成的动作规划。
动作规划管理模型210可以使用存储在胶囊(capsule)数据库中的信息来执行规划,在胶囊数据库中存储有概念和操作之间的一组关系。动作规划管理模型210可以将操作和对应于这些操作的概念存储为作为胶囊DB的概念动作网络(CAN)。动作规划管理模型210可以配置成存储每个设备的CAN的胶囊DB。
参照图20,动作规划管理模型210可以包括扬声器CAN 212、移动CAN 214和电视CAN 216。扬声器CAN 212可以包括呈胶囊形式的动作规划,该动作规划存储与包括扬声器控制、媒体播放、天气和电视控制的详细操作有关的信息以及与每个详细操作相对应的概念。移动CAN 214可以包括呈胶囊形式的动作规划,该动作规划存储与包括SNS、移动控制、地图和QA的详细操作有关的信息以及与每个详细操作相对应的概念。电视CAN 216可以包括呈胶囊形式的动作规划,该动作规划存储与包括购物、媒体播放、教育和电视播放的详细操作有关的信息以及与每个详细操作相对应的概念。在实施方式中,包括在扬声器CAN212、移动CAN 214和电视CAN 216中的每一个中的多个胶囊可以被存储在作为动作规划管理模型210中的组件的功能注册表中。
在实施方式中,动作规划管理模型210可以包括用于确定与第二意图相对应的详细操作或者用于确定与第二意图相对应的详细操作所需要的策略注册表以及通过由服务器300利用第二NLU模型解释从输入语音转换而成的文本而确定的参数。策略注册表可以包括用于在存在与文本相关的多个动作规划时确定一个动作规划的标准信息。在实施方式中,动作规划管理模型210可以包括追踪注册表,该追踪注册表存储用于在给定情况下向用户建议追踪操作的追踪信息。例如,追踪操作可以包括追踪语音。
在实施方式中,动作规划管理模型210可以包括存储由目标设备输出的布局信息的布局注册表。
在实施方式中,动作规划管理模型210可以包括存储包括在胶囊信息中的词汇表信息的词汇注册表。在实施方式中,动作规划管理模型210可以包括存储与用户的对话(或交互)信息的对话注册表。
图21是示出根据实施方式的存储在动作规划管理模型210中的胶囊数据库220的图。
参照图21,胶囊数据库220存储详细操作和关于与详细操作相对应的概念的关系信息。胶囊数据库220可以以CAN的形式实现。胶囊数据库220可以存储多个胶囊230、240和250。胶囊数据库220可以以CAN的形式存储用于执行与用户的语音输入有关的操作的详细操作以及详细操作所需的输入参数值和输出结果值。
胶囊数据库220可以存储与每个设备的操作有关的信息。在图21所示的实施方式中,胶囊数据库220可以存储与特定设备(例如电视)执行的操作相关的多个胶囊230、240和250。在实施方式中,一个胶囊(例如,胶囊A 230)可对应于一个应用。一个胶囊可以包括用于执行指定功能的至少一个详细操作和至少一个概念。例如,胶囊A 230可以包括详细操作231a和对应于详细操作231a的概念231b,并且胶囊B 240可以包括多个详细操作241a、242a和243a以及分别对应于多个详细操作241a、242a和243a的多个概念241b、242b和243b。
动作规划管理模型210可以通过使用存储在胶囊数据库220中的胶囊来生成用于执行与用户的语音输入相关的操作的动作规划。例如,动作规划管理模型210可以通过使用存储在胶囊数据库220中的胶囊来生成动作规划。例如,动作规划管理模型210可以使用胶囊A 230的详细操作231a和概念231b、胶囊B 240的详细操作241a、242a和243a以及概念241b、242b和243b以及胶囊C 250的详细操作251a和252a和概念251b和252b来生成动作规划260。
动作规划管理模型210可以向服务器300提供生成的动作规划260。
图22是示出根据实施方式的设备1000的组件的框图。
在图2A、图2B和图3至图19中,描述了由服务器300执行的各种操作,但是本公开不限于此。例如,根据一个或多个其它实施方式,至少一些操作可以由设备1000以及服务器300执行,或者代替地由服务器300执行。本公开中所示的客户机设备110或多个设备120可以包括与图22的设备1000中所包括的组件对应的组件。例如,处理器1300可以与客户机设备110的处理器114(参见图14)相同或相似,通信接口1500可以与客户机设备110的通信接口118(参见图14)相同或相似,麦克风1620可以与客户机设备110的麦克风112(参见图14)相同或相似。存储器1700可以与客户机设备110的存储器116(参见图14)相同或相似。
参照图22,根据实施方式的设备1000可以包括用户输入器1100、输出器1200、处理器1300、传感器1400、通信接口1500、A/V输入器1600和存储器1700。
用户输入器1100是指用户用来输入用于控制设备1000的数据的设备。例如,用户输入器1100可以包括键盘、圆顶开关、触摸板(例如以触摸电容方法、压敏方法、红外检测方法、表面超声传导方法、整体张力测量方法、压电效应方法等中的至少一种来实现)、滚轮、滚轮开关等,但不限于此。
用户输入器1100可以请求关于询问消息的响应输入并且接收来自用户的响应输入。
输出器1200可以输出音频信号、视频信号或振动信号,并且可以包括显示器1210、声音输出器1220(例如,扬声器)和振动电机1230。
显示器1210显示和输出由设备1000处理的信息。例如,显示器1210可以从服务器300接收指示执行操作的结果的通知内容,并显示该通知内容。在实施方式中,显示器1210可以显示从服务器300接收的文本和/或图形用户界面(GUI)(或GUI项目或内容)。
在实施方式中,显示器1210可以基于从IoT云服务器400接收的控制命令来显示与图像相关的内容,例如电影表演或电视广播表演。
声音输出器1220输出从通信接口1500接收或存储在存储器1700中的音频数据。此外,声音输出器1220输出与设备1000执行的功能相关的声信号。当从服务器300接收的通知内容是语音信号时,声音输出器1220可以输出通知内容。
处理器1300(例如,至少一个处理器)通常控制设备1000的整体操作。例如,处理器1300通常可以通过执行存储在存储器1700中的程序并处理存储在存储器1700中的数据来控制用户输入器1100、输出器1200、传感器1400、通信接口1500、A/V输入器1600和存储器1700。此外,处理器1300可以通过执行存储在存储器1700中的程序和处理存储在存储器1700中的数据来执行图2A、图2B、图3至图17所示的设备1000的功能。
处理器1300可以包括例如中央处理单元、微处理器、图形处理单元、专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)和现场可编程门阵列(FPGA)中的至少一个,但不限于此。
具体地,处理器1300可以控制通信接口1500以从服务器300或通过网络连接的另一设备接收用户的语音输入。处理器1300可以使用存储在存储器1700中的与ASR模型1712有关的数据来执行ASR,从而将所接收的语音输入转换为文本,使用存储在存储器1700中的与第一NLU模型1714有关的数据来确定与文本有关的第一意图,并且使用与设备调度器模型1716有关的数据来确定与第一意图有关的目标设备的类型。
在实施方式中,处理器1300可以通过存储在存储器1700中的多个第二NLU模型1722中的与所确定的目标设备类型相对应的第二NLU模型以及存储在存储器1700中的动作规划管理模型1724来获得用于执行与包括在文本中的用户意图有关的操作的目标设备的操作信息。
在实施方式中,处理器1300可以控制通信接口1500来接收与用户的账户信息有关的先前在IoT云服务器400中注册的多个设备的设备信息。多个注册设备的设备信息可以存储在存储器1700中。在这种情况下,处理器1300可以从存储器1700获得设备信息。处理器1300可以基于另外的设备的设备信息来确定目标设备。
在实施方式中,处理器1300可以使用存储在存储器1700中的第一NLU模型1714从文本中获得设备的名称,并且通过使用存储在存储器1700中的关于设备调度器模型1716的数据,基于设备的名称和从IoT云服务器400接收的设备信息来确定目标设备的类型。
在实施方式中,处理器1300可以通过使用第一NLU模型1714从文本中提取与设备类型相关的通用名称以及与设备的安装位置相关的单词或短语,并且基于所提取的通用名称和设备的安装位置来确定目标设备的类型。
在实施方式中,当从文本中提取个性化昵称时,处理器1300可以控制通信接口1500将该个性化昵称发送到存储先前由用户注册的多个设备的同义词语、类似词语和斜体词语中的至少一者的外部服务器,并且从外部服务器接收与该个性化昵称相对应的设备标识信息。个性化昵称和与其对应的设备标识信息可以存储在存储器1700中。在这种情况下,处理器1300可以从存储器1700获得设备标识信息。处理器1300可基于所接收或所获得的设备标识信息来确定目标设备。
在实施方式中,处理器1300可以控制通信接口1500从外部IoT云服务器400接收信息,该信息包括以下至少之一:与用户的账户信息有关的多个先前注册设备中的每一个的名称、类型、安装位置或地点、开机/关机、以及由每个设备当前执行的操作。
在实施方式中,当存在与所确定的目标设备的类型相对应的多个设备时,处理器1300可以通过使用NLG模型来生成用于从多个候选设备中选择目标设备的询问消息。处理器1300可以控制客户机设备输出所生成的询问消息。
此外,处理器1300可以执行由服务器300执行的所有操作。
传感器1400可以检测设备1000的状态或设备1000周围的状态,并将检测到的信息发送到处理器1300。传感器1400可用于生成用户或设备1000的位置信息。
传感器1400可以包括磁传感器1410、加速度传感器1420、温度/湿度传感器1430、红外传感器1440、陀螺仪传感器1450、定位传感器(例如、全球定位传感器(GPS))1460、大气传感器1470、接近传感器1480和RGB传感器(亮度传感器)1490中的至少一个。但不限于此。本领域的普通技术人员可以基于其名称直观地推断每个传感器的功能,因此省略其详细描述。
例如,设备1000可以通过定位传感器1460获得设备1000的位置信息。例如,位置信息可以指示设备1000当前所处的位置或位置坐标。
通信接口1500可以包括供设备1000与另一设备、服务器300和IoT云服务器400进行通信的一个或多个组件。通信接口1500可以通过使用诸如有线LAN、无线LAN、Wi-Fi、蓝牙、Zigbee、Wi-Fi直连(WFD)、红外数据协会(IrDA)、蓝牙低能量(BLE)、近场通信(NFC)、无线宽带互联网(Wibro)、全球微波接入互操作性(WiMAX)、共享无线接入协议(SWAP)、无线千兆比特联盟(WiGiG)和RF通信之类的数据通信方法中的至少一种来执行与另一设备、服务器300和IoT云服务器400的数据通信。
例如,通信接口1500可以包括短距离无线通信器1510、移动通信器1520和广播接收器1530。
短距离无线通信器1510可以包括蓝牙通信器、蓝牙低能量(BLE)通信器、近场通信器(NFC)、WLAN(或Wi-fi)通信器、Zigbee通信器、红外数据协会(IrDA)通信器、Wi-fi直连(WFD)通信器、超宽带(UWB)通信器、Ant+通信器等,但不限于此。
在实施方式中,设备1000可以通过短距离无线通信器1510获得设备1000的位置信息。例如,设备1000可以通过NFC标签来确定设备1000所处的位置。此外,例如,设备1000可以通过Wi-Fi的标识符来确定设备1000所处的位置。例如,设备1000可以通过确认设备1000所连接的Wi-Fi的SSID来确定设备1000所位于的位置。
移动通信器1520可以与移动通信网络上的基站、外部终端和服务器中的至少一个收发无线信号。这里,无线信号可以根据文本/多媒体消息的收发包括语音呼叫信号、视频电话呼叫信号、或各种类型的数据。
广播接收器1530可以通过广播信道从外部接收广播信号和/或广播相关信息。广播信道可以包括卫星信道和地波信道。根据实施方式,设备1000可以不包括广播接收器1530。
A/V输入器1600可以配置成输入音频信号或视频信号,并且可以包括相机1610和麦克风1620。相机1610可以在视频电话模式或拍摄模式下通过图像传感器获得图像帧,例如静止图像或动态图像。由图像传感器捕获的图像可以由处理器1300或附加图像处理器处理。
麦克风1620可以接收外部声信号,并将接收到的外部声信号处理成电语音数据。例如,麦克风1620可以接收来自用户的语音信号。麦克风1620可以接收用户的语音输入。麦克风1620可以使用各种噪声消除算法来消除在接收外部声信号的过程中产生的噪声。
存储器1700可以存储用于处理器1300的处理和控制操作的程序,并且可以存储输入到设备1000或从设备1000输出的数据。
存储器1700可以包括闪存类型存储介质、硬盘类型存储介质、多媒体卡微型存储介质、卡类型存储器(例如SD或XD存储器)、随机存取存储器(RAM)、静态RAM(SRAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可编程ROM(PROM)、磁存储器、磁盘和光盘中的至少一种类型的存储介质。
在实施方式中,存储器1700可以包括第一助手模型1710和第二助手模型1720、UI模块1730、触摸屏模块1740和通知模块1750。第一助手模型1710可以存储关于ASR模型1712、第一NLU模型1714和设备调度器模型1716的数据。第二助手模型1720可以存储关于多个第二NLU模型1722和动作规划管理模型1724的数据。在实施方式中,存储器1700可以存储设备信息和设备名称信息。
UI模块1730可以根据应用与设备1000同步地提供专门的UI或图形用户界面(GUI)等。
触摸屏模块1740可以感测用户在触摸屏上的触摸手势,并且可以将关于触摸手势的信息发送到处理器1300。根据一些实施方式的触摸屏模块1740可以识别和分析触摸代码。触摸屏模块1740可以形成为包括控制器的附加硬件。
通知模块1750可以生成用于通知设备1000的事件的发生的信号。在设备1000中发生的事件的示例可以包括呼叫信号接收、消息接收、密钥信号输入、调度通知等。通知模块1750可以通过显示器1210输出视频信号形式的通知信号,通过声音输出器1220输出音频信号形式的通知信号,以及通过振动电机1230输出振动信号形式的通知信号。
由这里描述的服务器300执行的程序可以实现为硬件组件、软件组件和/或硬件组件和软件组件的组合。程序可以由能够执行计算机可读指令的所有系统执行。
软件组件可以包括计算机程序、代码、指令或其一个或多个的组合,并且可以将处理设备配置成根据需要操作或者单独地或共同地命令处理设备。
软件组件可以实现为包括存储在计算机可读存储介质中的指令的计算机程序。例如,计算机可读存储介质可以包括磁存储介质(例如,ROM、RAM、软盘、硬盘等)和光学读取介质(例如CD-ROM、DVD等)。计算机可读记录介质可以分布在连接在网络中的计算机系统中,并且可以以分布方式存储和执行计算机可读代码。介质可以是计算机可读的,可以存储在存储器中,并且可由处理器执行。
计算机可读存储介质可以被提供为非暂时性存储介质。这里,术语“非暂时性”仅表示存储介质不包括信号并且是有形的,并且该术语不区分存储介质中的数据的半永久性存储和临时存储。
此外,根据实施方式的程序可以被包括在计算机程序产品中。计算机程序产品是可在卖方和买方之间购买的产品。
计算机程序产品可以包括软件程序和其中存储该软件程序的计算机可读存储介质。例如,计算机程序产品可以包括由设备或电子市场(例如,GOOGLE PLAYTM商店、AppStore等)的制造商电子发布的软件程序类型产品(例如,可下载应用)。对于电子发布,软件程序的至少一部分可以存储在存储介质中或被临时生成。在这种情况下,存储介质可以是制造商的服务器、电子市场的服务器、或者临时存储软件程序的广播服务器的存储介质。
计算机程序产品可以包括服务器的存储介质或者包括服务器和终端的系统中的终端的存储介质(例如,超声诊断设备)。或者,当存在与服务器或终端连接以用于通信的第三设备(例如,智能电话)时,计算机程序产品可以包括第三设备的存储介质。或者,计算机程序产品可以包括从服务器发送到终端或第三设备或者从第三设备发送到终端的软件程序。
在这种情况下,服务器、终端和第三设备中的一个可以通过执行计算机程序产品来执行根据实施方式的方法。或者,服务器、终端和第三设备中的至少两个可以通过执行计算机程序产品以分布式方式执行根据实施方式的方法。
例如,服务器(例如,IoT云服务器或AI服务器)可以执行存储在服务器中的计算机程序产品,并控制与服务器连接的终端进行通信以执行根据实施方式的方法。
作为另一个示例,第三设备可以执行计算机程序产品,并且控制连接到第三设备以用于通信的终端来执行根据实施方式的方法。
当第三设备执行计算机程序产品时,第三设备可以从服务器下载计算机程序产品并执行下载的计算机程序产品。或者,第三设备可以执行以自由加载状态提供的计算机程序产品,并执行根据实施方式的方法。
尽管上面已经描述了本公开的某些实施方式,但是本领域普通技术人员从上面的描述可以进行各种修改和变化。例如,所描述的技术可以以与所描述的方法不同的顺序来执行,和/或所描述的电子设备的组件、结构、电路等可以以与所述方法不同的形式组合或集成或者可以由用于获得适当的结果的其它部件或等同物代替或替代。应当理解,来自一个实施方式的一个或多个特征、组件和操作可以与来自另一个实施方式的一个或多个特征、组件和操作组合。

Claims (15)

1.基于语音输入控制网络环境中的多个设备之中的设备的方法,所述方法由服务器执行,所述方法包括:
接收用户的语音输入;
将所接收的语音输入转换为文本;
利用第一自然语言理解模型分析所述文本,并基于分析所述文本的结果来确定目标设备;
从多个第二自然语言理解模型中选择与所确定的目标设备对应的第二自然语言理解模型;
利用所选择的第二自然语言理解模型分析所述文本的至少一部分,并基于分析所述文本的所述至少一部分的结果获得将由所述目标设备执行的操作的操作信息;以及
输出所获得的操作信息,以基于所获得的操作信息控制所述目标设备。
2.如权利要求1所述的方法,
其中,所述第一自然语言理解模型是配置成分析所述文本以将所述多个设备中的至少一个设备确定为所述目标设备的模型;以及
其中,所述多个第二自然语言理解模型是配置成分析所述文本的所述至少一部分以获得与将由所确定的至少一个目标设备执行的操作有关的所述操作信息的模型。
3.如权利要求1所述的方法,还包括:
从物联网云服务器获得所述多个设备的设备信息,
其中,确定所述目标设备包括:基于所获得的设备信息和利用所述第一自然语言理解模型分析所述文本的所述结果,将所述多个设备中的至少一个设备确定为所述目标设备。
4.如权利要求3所述的方法,
其中,将所述至少一个设备确定为所述目标设备包括:
基于利用所述第一自然语言理解模型分析所述文本来确定所述目标设备的类型;以及
基于所确定的所述目标设备的类型和所获得的设备信息来确定所述目标设备;以及
其中,输出所获得的操作信息包括:将所获得的操作信息发送到所述物联网云服务器,其中所述物联网云服务器基于所述操作信息控制所述目标设备。
5.如权利要求2所述的方法,其中,
所述第一自然语言理解模型是配置成基于新目标设备被添加通过训练进行更新以确定所述新目标设备的类型的模型;以及
所述多个第二自然语言理解模型配置成使得与所添加的新目标设备的类型相对应的新第二自然语言理解模型被添加到所述多个第二自然语言理解模型,以便获得与将由所添加的新目标设备执行的操作有关的操作信息。
6.如权利要求3所述的方法,还包括:
基于所获得的所述多个设备的设备信息,确定是否存在多个目标设备候选;以及
利用自然语言生成器模型生成用于从所确定的多个目标设备候选中确定所述目标设备的询问消息;以及
其中,确定所述目标设备包括:基于所述用户关于所生成的询问消息的响应输入来确定所述目标设备。
7.如权利要求1所述的方法,其中,
确定所述目标设备还包括:基于通过所述第一自然语言理解模型分析所述文本的结果,利用设备调度器模型确定所述目标设备;以及
获得所述操作信息包括:基于通过所述第二自然语言理解模型分析所述文本的所述至少一部分的结果,利用动作规划管理模型获得与将由所确定的目标设备执行的操作有关的所述操作信息。
8.基于语音输入控制网络环境中的多个设备之中的设备的服务器,所述服务器包括:
通信接口,配置成执行数据通信;
存储器,存储包括一个或多个指令的程序;以及
处理器,配置成执行存储在所述存储器中的程序的所述一个或多个指令,以:
通过所述通信接口从所述多个设备中的至少一个设备接收用户的语音输入;
将所接收的语音输入转换为文本;
利用第一自然语言理解模型分析所述文本,并基于分析所述文本的结果确定目标设备;
从多个第二自然语言理解模型中选择与所确定的目标设备对应的第二自然语言理解模型;
利用所选择的第二自然语言理解模型分析所述文本的至少一部分,并基于分析所述文本的所述至少一部分的结果获得将由所述目标设备执行的操作的操作信息;以及
控制所述通信接口输出所获得的操作信息,以基于所获得的操作信息来控制所述目标设备。
9.如权利要求8所述的服务器,其中,
所述第一自然语言理解模型是配置成分析所述文本以将所述多个设备中的至少一个设备确定为所述目标设备的模型;以及
所述多个第二自然语言理解模型是配置成分析所述文本的所述至少一部分以获得与将由所确定的至少一个目标设备执行的操作有关的操作信息的模型。
10.如权利要求8所述的服务器,其中,所述处理器还配置成执行所述一个或多个指令,以:
控制所述通信接口从物联网云服务器接收所述多个设备的设备信息;以及
基于所接收的设备信息和通过所述第一自然语言理解模型分析所述文本的结果,将所述多个设备中的至少一个设备确定为所述目标设备。
11.如权利要求10所述的服务器,其中,所述处理器还配置成执行所述一个或多个指令,以:
基于利用所述第一自然语言理解模型分析所述文本来确定所述目标设备的类型;以及
基于所确定的所述目标设备的类型和所接收的设备信息来确定所述目标设备。
12.如权利要求9所述的服务器,其中,
所述第一自然语言理解模型是配置成基于新目标设备被添加通过训练进行更新以确定所述新目标设备的类型的模型;以及
所述多个第二自然语言理解模型配置成将与所添加的新目标设备的类型相对应的新第二自然语言理解模型添加到所述多个第二自然语言理解模型,以获得将由所添加的新目标设备执行的操作的操作信息。
13.如权利要求10所述的服务器,其中,所述处理器还配置成执行所述一个或多个指令,以:
基于所获得的所述多个设备的设备信息来确定是否存在多个目标设备候选,
利用自然语言生成器模型生成用于从所确定的多个目标设备候选之中确定所述目标设备的询问消息;以及
基于所述用户的关于所生成的询问消息的响应输入来确定所述目标设备。
14.如权利要求8所述的服务器,其中,所述处理器还配置成执行所述一个或多个指令,以:
基于所述第一自然语言理解模型分析所述文本的结果,利用设备调度器模型确定所述目标设备;以及
基于所述第二自然语言理解模型分析所述文本的所述至少一部分的结果,利用动作规划管理模型获得与将由所确定的目标设备执行的操作有关的所述操作信息。
15.非暂时性计算机可读记录介质,其上记录有程序,所述程序用于在计算机上执行如权利要求1至7中任一项所述的方法。
CN202010356462.2A 2019-05-02 2020-04-29 基于用户的语音输入确定目标设备并控制目标设备的服务器及其操作方法 Pending CN111880645A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20190051824 2019-05-02
KR10-2019-0051824 2019-05-02
US201962862201P 2019-06-17 2019-06-17
US62/862,201 2019-06-17
KR1020190092641A KR102309540B1 (ko) 2019-05-02 2019-07-30 사용자의 입력 입력에 기초하여 타겟 디바이스를 결정하고, 타겟 디바이스를 제어하는 서버 및 그 동작 방법
KR10-2019-0092641 2019-07-30

Publications (1)

Publication Number Publication Date
CN111880645A true CN111880645A (zh) 2020-11-03

Family

ID=70285460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010356462.2A Pending CN111880645A (zh) 2019-05-02 2020-04-29 基于用户的语音输入确定目标设备并控制目标设备的服务器及其操作方法

Country Status (4)

Country Link
US (1) US20200349940A1 (zh)
EP (2) EP3734596B1 (zh)
CN (1) CN111880645A (zh)
WO (1) WO2020222444A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113268020A (zh) * 2021-04-15 2021-08-17 珠海荣邦智能科技有限公司 一种智能网关控制电子设备的方法、智能网关和控制系统
CN114172757A (zh) * 2021-12-13 2022-03-11 海信视像科技股份有限公司 服务器、智能家居系统及多设备语音唤醒方法
CN114851210A (zh) * 2022-07-05 2022-08-05 北京云迹科技股份有限公司 基于云平台的机器人调度方法及调度云平台
WO2023179454A1 (zh) * 2022-03-24 2023-09-28 华为技术有限公司 服务调用方法及电子设备
TWI820985B (zh) * 2022-10-28 2023-11-01 犀動智能科技股份有限公司 物聯網設備整合控制系統及物聯網設備整合控制方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457078B (zh) * 2019-08-09 2020-11-24 百度在线网络技术(北京)有限公司 智能服务方法、装置及设备
US11568239B2 (en) * 2019-08-13 2023-01-31 Lg Electronics Inc. Artificial intelligence server and method for providing information to user
TWI714212B (zh) * 2019-08-14 2020-12-21 緯創資通股份有限公司 跨平台通訊方法、伺服器裝置與電子裝置
WO2021112639A1 (en) 2019-12-05 2021-06-10 Samsung Electronics Co., Ltd. Electronic device performing operation based on user speech in multi device environment and operating method thereof
WO2021172451A1 (ja) * 2020-02-27 2021-09-02 パナソニックIpマネジメント株式会社 制御方法、プログラム、制御システム
US20220076673A1 (en) * 2020-09-08 2022-03-10 Konica Minolta, Inc. Speech setting system, speech setting assistance device and non-transitory computer-readable recording medium encoded with speech setting assistance program
CN116097348A (zh) 2020-11-11 2023-05-09 三星电子株式会社 电子装置、系统及其控制方法
US11393475B1 (en) * 2021-01-13 2022-07-19 Artificial Solutions Iberia S.L Conversational system for recognizing, understanding, and acting on multiple intents and hypotheses
CN113436631B (zh) * 2021-05-20 2023-01-13 青岛海尔空调器有限总公司 语音信息处理方法、系统及用于语音信息处理的装置
KR20230173820A (ko) * 2022-06-20 2023-12-27 주식회사 마인드웨어웍스 인공지능 서버를 통한 아이오티 기기 통합 제어 서비스 제공 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100333163A1 (en) * 2009-06-25 2010-12-30 Echostar Technologies L.L.C. Voice enabled media presentation systems and methods
US20110060587A1 (en) * 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
CN107808672A (zh) * 2016-09-07 2018-03-16 三星电子株式会社 用于对外部设备进行控制的服务器和方法
CN109144458A (zh) * 2017-06-27 2019-01-04 三星电子株式会社 用于执行与语音输入相对应的操作的电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9761225B2 (en) * 2013-03-11 2017-09-12 Nuance Communications, Inc. Semantic re-ranking of NLU results in conversational dialogue applications
JP6282516B2 (ja) * 2014-04-08 2018-02-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 複数機器の音声操作システム、音声操作方法及び、プログラム
EP4030295B1 (en) * 2016-04-18 2024-06-05 Google LLC Automated assistant invocation of appropriate agent
KR20180022021A (ko) * 2016-08-23 2018-03-06 삼성전자주식회사 음성 인식 방법 및 이를 수행하는 전자 장치
US10783883B2 (en) * 2016-11-03 2020-09-22 Google Llc Focus session at a voice interface device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110060587A1 (en) * 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
US20100333163A1 (en) * 2009-06-25 2010-12-30 Echostar Technologies L.L.C. Voice enabled media presentation systems and methods
CN107808672A (zh) * 2016-09-07 2018-03-16 三星电子株式会社 用于对外部设备进行控制的服务器和方法
CN109144458A (zh) * 2017-06-27 2019-01-04 三星电子株式会社 用于执行与语音输入相对应的操作的电子设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113268020A (zh) * 2021-04-15 2021-08-17 珠海荣邦智能科技有限公司 一种智能网关控制电子设备的方法、智能网关和控制系统
CN114172757A (zh) * 2021-12-13 2022-03-11 海信视像科技股份有限公司 服务器、智能家居系统及多设备语音唤醒方法
WO2023179454A1 (zh) * 2022-03-24 2023-09-28 华为技术有限公司 服务调用方法及电子设备
CN114851210A (zh) * 2022-07-05 2022-08-05 北京云迹科技股份有限公司 基于云平台的机器人调度方法及调度云平台
TWI820985B (zh) * 2022-10-28 2023-11-01 犀動智能科技股份有限公司 物聯網設備整合控制系統及物聯網設備整合控制方法

Also Published As

Publication number Publication date
EP3734596B1 (en) 2022-12-14
EP3734596A1 (en) 2020-11-04
WO2020222444A1 (en) 2020-11-05
EP4160592A1 (en) 2023-04-05
US20200349940A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
EP3734596B1 (en) Determining target device based on speech input of user and controlling target device
KR102429436B1 (ko) 사용자의 입력 입력에 기초하여 타겟 디바이스를 결정하고, 타겟 디바이스를 제어하는 서버 및 그 동작 방법
US11437041B1 (en) Speech interface device with caching component
US20230053350A1 (en) Encapsulating and synchronizing state interactions between devices
KR102543693B1 (ko) 전자 장치 및 그의 동작 방법
JP6752870B2 (ja) 複数のウェイクワードを利用して人工知能機器を制御する方法およびシステム
EP3190512B1 (en) Display device and operating method therefor
US11373645B1 (en) Updating personalized data on a speech interface device
CN109343819B (zh) 在语音识别系统中控制显示装置的显示装置和方法
US11132509B1 (en) Utilization of natural language understanding (NLU) models
US10984799B2 (en) Hybrid speech interface device
US11721343B2 (en) Hub device, multi-device system including the hub device and plurality of devices, and method of operating the same
US10860289B2 (en) Flexible voice-based information retrieval system for virtual assistant
KR102209092B1 (ko) 복수의 호출 용어를 이용하여 인공지능 기기를 제어하는 방법 및 시스템
US11176934B1 (en) Language switching on a speech interface device
JP6619488B2 (ja) 人工知能機器における連続会話機能
KR20190096308A (ko) 전자기기
CN112700770A (zh) 语音控制方法、音箱设备、计算设备和存储介质
KR102396147B1 (ko) 음성 명령을 이용한 동작을 수행하는 전자 장치 및 전자 장치의 동작 방법
WO2022226811A1 (zh) 构建语音识别模型和语音处理的方法和系统
KR20200127823A (ko) 허브 디바이스, 허브 디바이스 및 복수의 디바이스를 포함하는 멀티 디바이스 시스템 및 그 동작 방법
CN114627864A (zh) 显示设备与语音交互方法
US20230368785A1 (en) Processing voice input in integrated environment
JP2021531923A (ja) ネットワークアプリケーションを制御するためのシステムおよびデバイス
KR102487078B1 (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