CN112487137A - 使用集成共享资源来流线化对话处理 - Google Patents

使用集成共享资源来流线化对话处理 Download PDF

Info

Publication number
CN112487137A
CN112487137A CN202010875818.3A CN202010875818A CN112487137A CN 112487137 A CN112487137 A CN 112487137A CN 202010875818 A CN202010875818 A CN 202010875818A CN 112487137 A CN112487137 A CN 112487137A
Authority
CN
China
Prior art keywords
subsystem
words
information
dialog system
dictionary
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.)
Granted
Application number
CN202010875818.3A
Other languages
English (en)
Other versions
CN112487137B (zh
Inventor
M·E·约翰逊
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN112487137A publication Critical patent/CN112487137A/zh
Application granted granted Critical
Publication of CN112487137B publication Critical patent/CN112487137B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/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/28Constructional details of speech recognition systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Machine Translation (AREA)

Abstract

用于通过在对话***的管线式过程之间共享资源来减少由所述对话***使用的存储器资源和处理资源的技术。构造了供所述对话***的自动语音识别(ASR)子***和自然语言理解(NLU)子***同时使用的集成共享词典。所述集成共享词典包括多个条目,其中,每个条目包括由所述ASR子***使用的第一信息、由所述NLU子***使用的第二信息、以及将所述第一信息与所述第二信息进行关联的信息。所述ASR子***使用所述集成共享词典来标识包含与语音输入相对应的单词集合的词典条目。所述词典条目信息被传送至所述NLU子***,所述NLU子***使用所述条目来生成所述语音输入的含义表示。在这些子***之间共享所述词典显著地节省了由所述对话***使用的存储器资源,并加快了处理速度。

Description

使用集成共享资源来流线化对话处理
相关申请的交叉引用
本申请根据35 U.S.C.119(e)要求于2019年9月12日提交的名称为“TECHNIQUESFOR INTEGRATING THE EXECUTION PIPELINE OF A DIALOG SYSTEM[用于集成对话***的执行管线的技术]”的美国申请号62/899,651的权益和优先权,所述美国申请的内容出于所有目的通过引用以其全文并入本文。
技术领域
本公开总体上涉及对话***。更具体地,但非限制性地,本公开描述了用于通过使得能够在对话***的管线式过程之间共享资源来减少由对话***使用的处理资源和存储器的量的技术。
背景技术
现在,越来越多的设备使得用户能够直接使用话音或口述语音与设备进行交互。例如,用户可以用自然语言对这种设备说话,其中,用户可以询问问题或进行请求执行某个动作的陈述。作为响应,设备执行所请求的动作或使用话音输出来对用户的问题作出响应。由于直接使用话音进行交互是人类与其周围环境进行交流的更自然且更直观的方式,因此这种基于语音的***的普及正以天文数字的速率增长。
通过可能处于设备中的对话***(有时也被称为聊天机器人或数字助理)促进了使用口述语音与所述设备进行交互的能力。对话***通常使用具有由独立部件实施的多个过程的管线。此管线包括自动语音识别(ASR)部件,所述部件接收由用户说出的语音作为输入,并标识与语音话语相对应的单词(例如,将语音转换为文本)。ASR部件的输出被提供给自然语言理解(NLU)部件,所述自然语言理解部件处理文本以确定其含义,这可以包括对文本执行意图和命名实体标识。NLU部件的输出提供关于用户话语背后的意图和与所述意图相关的实体的信息。传统上,ASR部件和NLU部件中的每一个都具有其自己的用于执行其对应任务的资源(例如,计算机、存储器、数据结构等)。这使得难以将这种对话***并入到低功率且资源匮乏的设备(如,厨房电器、照明装置等)中。
发明内容
本公开总体上涉及对话***。更具体地,描述了用于在对话***中的语音识别子***与自然语言理解子***之间共享资源的技术,这些技术可以减少计算时间和存储器需求。具体地,执行自动语音识别操作的第一子***和执行自然语言理解操作的第二子***使用集成共享词典来辨别语音输入中的含义。本文中描述了各种实施例,包括方法、***、存储可由一个或多个处理器执行的程序、代码或指令的非暂态计算机可读存储介质等。
在某些实施例中,对话***基于从用户接收的语音输入来生成含义表示。所述***可以使用自动语音识别(ASR)和自然语言理解(NLU)来生成含义表示。所述***可以针对ASR功能和NLU功能使用公共集成共享词典。这样的词典可以包括单词、发音和与单词相关联的信息,所述信息可以包括命名实体类型或可用于确定含义表示的其他信息。集成共享词典可以用于使用集成共享资源和处理来流线化对话处理。
在某些实施例中,对话***的第一子***接收语音输入。所述第一子***处理语音输入以标识与所述语音输入相对应的发音。所述第一子***搜索存储在存储器中的词典,以在词典中查找与所标识的发音相对应的匹配条目,所述词典包括多个条目,多个条目中的每个条目存储一个或多个单词的集合,所述一个或多个单词的集合映射到在所述条目中存储的发音,多个条目中的每个条目进一步包括附加信息,所述附加信息能够用于确定由条目存储的所述一个或多个单词的集合的含义表示。所述第一子***将标识匹配条目的信息传送到对话***的第二子***。所述第二子***使用标识条目的信息来生成语音输入的含义表示,所述含义表示标识与语音输入相关联的意图,其中,所述生成包括由所述第二子***使用存储在词典中的匹配条目中的附加信息。
在一些方面,所述第一子***是自动语音识别(ASR)子***,并且所述第二子***是自然语言理解(NLU)子***。在一些方面,指示条目的信息包括指向附加信息的指针,并且所述对话***的第二子***使用所述指针来检索附加信息。在一些方面,附加信息包括与所述单词集合相对应的命名实体类型,并且生成含义表示包括将所述命名实体类型链接到所述单词集合。
在一些方面,所述单词集合是第一单词集合,并且所述方法进一步包括由所述对话***的第一子***使用词典来标识第二单词集合;由所述对话***的第一子***将第二单词集合输出到所述对话***的第二子***;以及由所述对话***的第二子***通过使用机器学习模型将第一单词集合中的单词和第二单词集合中的单词彼此相关联来确定上下文。
在一些方面,所述方法进一步包括由所述对话***的第二子***将所生成的含义表示输出到所述对话***的第三子***。在一些方面,所述方法进一步包括:标识由第一子***使用的信息;标识由第二子***使用的信息;确定将由第一子***使用的信息与由第二子***使用的信息进行关联的信息;生成由第一子***使用的词典、由第二子***使用的信息以及关联信息;以及使词典能够由第一子***和第二子***访问。
实施例进一步包括被配置用于执行本文所描述的方法的***和计算机可读介质。
在参考以下说明书、权利要求和附图之后,前述内容以及其他特征和实施例将变得更加显而易见。
附图说明
图1是图示根据某些实施例的对话***的简化框图。
图2是图示根据某些实施例的用于使用集成共享词典经由ASR/NLU管线从语音输入生成含义表示的方法的简化示意图。
图3A至图3B描绘了根据某些实施例的示例集成ASR/NLU词典条目。
图4是图示根据某些实施例的用于生成共享ASR/NLU词典的方法的简化流程图。
图5是图示根据某些实施例的用于使用集成且共享的资源来流线化对话***中的处理的方法的简化流程图。
图6是图示根据某些实施例的用于图5中的生成含义表示的方法的简化流程图。
图7描绘了用于实施实施例的分布式***的简化示图。
图8是根据某些实施例的基于云的***环境的简化框图,在所述基于云的***环境中,各种存储相关的服务可以作为云服务来提供。
图9图示可以用于实施某些实施例的示例性计算机***。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在是限制性的。词语“示例性”在本文中用来意指“用作示例、实例或说明”。在本文中被描述为“示例性”的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。
能够经由话音输入和话音输出与用户进行对话的支持话音的***可以以各种形式出现。例如,这种***可以被提供为独立式设备、数字助理或虚拟助理、具有话音功能的服务等。在这些形式中的每一种形式中,***能够接收话音输入或语音输入,理解输入,生成响应或者响应于输入而采取动作,以及使用话音输出来输出响应。在某些实施例中,在这种支持话音的***中的对话功能由对话***或基础设施(“对话***”)来提供。使用诸如聊天机器人或聊天机器人***、数字助理等各种术语来指代这种对话***。
由对话***执行的处理通常涉及多个过程的管线。如以上所指出的,这些过程可以包括对表示由用户口述话语的语音输入执行自动语音识别(ASR),其中,ASR处理标识与语音话语相对应的单词(例如,将语音转换为文本)。然后,ASR处理的输出被提供作为自然语言理解(NLU)处理的输入,所述NLU处理对文本单词进行处理并从文本单词中标识一个或多个意图和命名实体。由离散部件(例如,彼此独立地操作的模块)执行ASR处理任务和NLU处理任务,每个部件都有其自己的处理资源和存储器资源。独立的ASR***和NLU***需要协调,这在时间和存储器方面可能是计算成本昂贵的。每个***使用其自己的资源(例如,模型(例如,机器学习模型)、数据结构、词典等)来执行处理。例如,ASR***使用专用词典(也被称为词库)将语音输入映射到文本。自然语言处理(NLP)***使用公报(也被称为地名词典)来标识给定文本的含义表示。
本公开描述了用于通过使得能够在对话***的管线式过程之间共享资源来减少由对话***使用的存储器资源和处理资源的量的技术。集成共享词典被构造成使得其可以由对话***的多个子***共享并且被所述多个子***同时使用。集成共享词典由对话***的自动语音识别(ASR)子***和自然语言理解(NLU)子***共享。集成共享词典包括多个条目,其中,每个条目包括由ASR子***使用的第一信息和由NLU子***使用的第二信息以及将第一信息与第二信息进行关联的信息。ASR子***使用集成共享词典来标识包含与语音输入相对应的单词集合的词典条目。然后,词典条目信息被传送至NLU子***,所述NLU子***使用所述条目来生成语音输入的含义表示。集成共享词典在ASR子***与NLU子***之间的这种共享显著地节省了由对话***使用的存储器资源,并且还加快了处理速度。
在一些实施例中,集成共享词典被构造成使得其可以由对话***的ASR子***和NLU子***共享并且被这些子***同时使用。在某些实施例中,作为其语音到文本处理的一部分的ASR子***可以使用集成共享词典来确定词典中标识与语音话语相对应的单词集合的位置(例如,表中的条目)。然后,ASR子***可以输出指向此位置的指针并将所述指针传递给NLU子***,以便所述NLU子***进行处理。然后,NLU子***使用此指针进入集成共享词典中,以执行该NLU子***的处理,从而确定由ASR子***标识的该单词集合的含义。在某些实施例中,确定含义包括确定标识以下各项的信息:一个或多个意图、一个或多个命名实体类型和/或关于与用户语音话语相对应的所标识的单词的附加补充信息。
集成共享词典可以以多种不同的形式出现。由ASR子***执行的处理涉及接收语音输入(例如,口述用户话语)以及确定与话语相对应的文本单词集合。作为其处理的一部分,ASR子***确定语音输入的发音,并且然后确定与所述发音相对应的单词集合。NLU子***确定由ASR子***确定的该单词集合的含义表示。作为其处理的一部分,NLU子***从该组文本单词中提取一个或多个命名实体和其他信息,并且然后基于所提取的信息来确定该单词集合(并且因此语音输入)的一个或多个意图。因此,在某些实施例中,集成共享词典包括将发音映射到单词集合并且将单词映射到含义表示的信息,其中,含义表示可以包括一个或多个命名实体、意图、和其他信息。
与传统技术相比,在ASR部件与NLU部件之间使用集成共享词典提供了若干个技术优点。减少了对话***的总体存储器占用。由ASR子***和NLU子***使用的单个词典比传统上由ASR子***和NLU子***分别使用的单独的词典和单独的公报占用更少的存储器。通过存储一个词典而不是两个词典,减少了对话***的存储需求。同时减小了ASR部件和NLU部件自身的总存储器尺寸。
还减少了处理语音输入所花费的处理时间,从而减小了对话***的总响应延迟(例如,将输入语音波形变换为所述输入的含义表示所需的总时间量)。传统上,ASR子***将在其词典中执行查找,而NLU子***将在其公报中执行另一查找。使用集成共享词典使得能够使用单个查找来执行处理。ASR子***执行查找,并且然后将指向集成共享词典中的相关位置的指针传递给ASR子***,所述ASR子***然后使用此指针来执行其处理。这消除了对NLU子***执行第二次公报查找的需要,从而减少了执行的总体处理和处理所花费的时间。
对话***可能是相当复杂的,但希望在功率较低、处理资源和存储器资源较少的小型计算机和设备如例如闹钟、家用电器等的嵌入式***上实施这种***。传统上,这种设备可能不支持对话***或可能仅在耦接至设备的附加服务器的帮助下支持对话***。这可以使得对话***能够在较低功率或较低成本的设备上实施。通过使用集成共享词典来减少对话***的处理需求和存储需求,存储器存储需求可以被减少多达50%甚至更多。这使得对话***能够在嵌入式***中实施,并且无需使用任何外部服务器进行存储或处理。可替代地,在其中利用外部服务器进行存储和/或处理的实施例中,处理需求和存储需求的减少也是有利的。在ASR部件与NLU部件之间共享资源可以进一步减少构造会话代理所需的工作量。如果ASR部件和NLU部件各自具有其自己版本的词典和地名词典,则通常每个版本需要被单独地构造和维护,这会使计算资源和劳动力倍增。如果在ASR部件与NLU部件之间共享如词典或地名词典的资源,则仅需要构造和维护每个资源的一个版本,这可以使构造和维护整个***所需的资源减少50%或更多。
图1图示了根据一些实施例的对话***100的示例。对话***100被配置成从用户102接收话音输入或语音输入104(也被称为语音话语)。对话***100然后可以解释话音输入。对话***100可以维持与用户102的对话,并且可以基于对话音输入的解释来执行一个或多个动作或使一个或多个动作被执行。对话***100可以准备适当的响应,并且使用话音输出或语音输出将响应输出给用户。
在某些实施例中,可以由部件或子***的管线来实施由对话***执行的处理,所述部件或子***的管线包括语音输入部件105、唤醒单词检测(WD)子***106、自动语音识别(ASR)子***108、集成共享词典109、包括命名实体识别器(NER)子***112和语义解析器子***114在内的自然语言理解(NLU)子***110、对话管理器(DM)子***116、自然语言生成器(NLG)子***118、文本到语音(TTS)子***120和语音输出部件124。以上列出的子***可以仅在软件(例如,使用可由一个或多个处理器或核执行的代码、程序或指令)中、硬件中或硬件与软件的组合中实施。在某些实施方式中,一个或多个子***可以被组合成单个子***。另外地或可替代地,在一些实施方式中,可以由多个子***来实施本文所描述的、如由特定子***执行的功能。
语音输入部件105包括被配置成接收语音输入104的硬件和软件。在一些实例中,语音输入部件105可以是对话***100的一部分。在一些其他实例中,语音输入部件105可以与对话***100分离并且通信地耦接至所述对话***。语音输入部件105可以例如包括耦接至软件的麦克风,所述软件被配置成对语音输入进行数字化并将其传输到唤醒单词检测子***106。
唤醒单词检测(WD)子***106被配置成监听并监视音频输入流,以获得与特殊声音或单词或单词集合(被称为唤醒单词)相对应的输入。在检测为对话***100配置的唤醒单词时,WD子***106被配置成激活ASR子***108。在某些实施方式中,可以为用户提供激活或去激活WD子***106(例如,通过说出按下按钮的唤醒单词)的能力。当被激活(或在激活模式下操作)时,WD子***106被配置成连续地接收音频输入流,并且对所述音频输入流进行处理以标识与唤醒单词相对应的音频输入或话音输入。当检测到与唤醒单词相对应的音频输入时,WD子***106激活ASR子***108。
如上所述,WD子***106激活ASR子***108。在支持话音的***的一些实施方式中,可以使用唤醒单词以外的机制来触发或激活ASR子***108。例如,在一些实施方式中,可以使用设备上的按钮来触发ASR子***108进行处理,而无需唤醒单词。在这种实施方式中,可以不提供WD子***106。当按下或激活按钮时,将在按钮激活之后接收到的语音输入提供给ASR子***108以进行处理。在一些实施方式中,可以在接收到要处理的输入时激活ASR子***108。
ASR子***108被配置成接收和监视在触发信号或唤醒信号(例如,可以在检测到语音输入中的唤醒单词时由WD子***106发送唤醒信号,可以在激活按钮时接收唤醒信号等)之后口述话音输入,并且将话音输入转换为文本。作为其处理的一部分,ASR子***108执行语音到文本的转换。口述语音输入或话音输入可以是自然语言的形式,并且ASR子***108被配置成用语音输入的语言生成对应的自然语言文本。然后将由ASR子***生成的文本馈送到NLU子***110,以进行进一步处理。由ASR子***108接收的话音输入可以包括一个或多个单词、短语、从句、句子、问题等。ASR子***108被配置成针对每个口述从句生成文本话语,并将所述文本话语馈送到NLU子***110,以进行进一步处理。
集成共享词典109包括由ASR子***和NLU子***使用的公共语言资源集合。该语言资源集合可以包括将发音映射到单词的词典条目。该语言资源集合可以进一步包括指定命名实体集合的条目、和/或可以由NLU子***110用于确定单词的含义表示的附加信息。ASR子***108可以标识标识集成共享词典109中的条目的信息(例如,指向可由NLU子***110使用的这种信息的指针),并将所述信息作为输出传递给NLU子***110。
NLU子***110接收由ASR子***108生成的文本。由NLU子***110从ASR子***108接收的文本可以包括与口述单词、短语、从句等相对应的文本话语。NLU子***110将每个文本话语(或一系列文本话语)转译成其对应的逻辑形式。NLU子***110可以进一步使用从ASR子***108传递的信息来从集成共享词典109中快速获得信息,以供在生成逻辑形式时使用,如本文所述。
在某些实施方式中,NLU子***110包括命名实体识别器(NER)子***112和语义解析器(SP)子***114。NER子***112接收文本话语作为输入、标识文本话语中的命名实体、并且利用与所标识的命名实体相关的信息来标记文本话语。然后将经标记的文本话语馈送到SP子***114,所述SP子***被配置成针对每个经标记的文本话语(或针对一系列经标记的文本话语)生成逻辑形式。针对话语生成的逻辑形式可以标识与文本话语相对应的一个或多个意图。话语的意图标识话语的目的。意图的示例包括“order pizza(订购披萨)”和“find directions(查找导航)”。意图可以例如标识被请求执行的动作。除了意图之外,针对文本话语生成的逻辑形式还可以针对所标识的意图标识槽位(slot)(也被称为参数或自变量)。例如,对于语音输入“I’d like to order a large pepperoni pizza withmushrooms and olives(我想要订购带有蘑菇和橄榄的大份意大利辣香肠披萨)”,NLU子***110可以标识意图order pizza(订购披萨)。NLU子***还可以标识并填充槽位,例如,pizza_size(披萨_尺寸)(用large来填充)和pizza_toppings(披萨_饼料)(用mushrooms和olives来填充)。NLU子***可以使用基于机器学习的技术、规则(其可能是领域特定的)或这两者的组合来生成逻辑形式。然后将由NLU子***110生成的逻辑形式馈送到DM子***116,以进行进一步处理。
DM子***116被配置成基于从NLU子***110接收的逻辑形式来管理与用户的对话。作为对话管理的一部分,DM子***116被配置成跟踪对话状态、发起对多个动作或任务中的一个动作或任务的执行或自身执行多个动作或任务中的一个动作或任务、并且确定如何与用户进行交互。这些动作可以包括例如查询一个或多个数据库、产生执行结果及其他动作。例如,DM子***116被配置成对在从NLU子***110接收的逻辑形式中标识的意图进行解释。基于这些解释,DM子***116可以发起其解释为通过由用户提供的话音输入所请求的一个或多个动作。在某些实施例中,DM子***116基于当前的和过去的话音输入并基于为DM子***116配置的规则集合(例如,对话策略)来执行对话状态跟踪。这些规则可以指定不同的对话状态、在状态之间进行转变的条件、在处于特定状态时要执行的动作等。这些规则可以是领域特定的。在某些实施例中,还可以使用基于机器学习的技术(例如,机器学习模型)。在一些实施例中,可以使用规则与机器学习模型的组合。DM子***116还生成要被传送回对话中所涉及的用户的响应。这些响应可以基于由DM子***116发起的动作以及这些动作的结果。将由DM子***116生成的响应馈送到NLG子***118,以进行进一步处理。
NLG子***118被配置成生成与由DM子***116生成的响应相对应的自然语言文本。所述文本可以以使得所述文本能够由TTS子***120转换为语音的形式生成。TTS子***120从NLG子***118接收文本,并将这些文本中的每个文本转换为语音或话音音频,然后可以经由对话***的音频或语音输出部件124(例如,扬声器或耦接至外部扬声器的通信信道)将所述语音或话音音频输出给用户。在一些实例中,语音输出部件124可以是对话***100的一部分。在一些其他实例中,语音输出部件124可以与对话***100分离并且通信地耦接至所述对话***。
如上所述,对话***100的各个子***协作地工作提供了以下功能:使得对话***100能够接收语音输入104并使用语音输出122作出响应,并且使用自然语言语音来维持与用户的对话。可以使用单个计算机***或使用协作地工作的多个计算机***来实施上述各个子***。例如,对于实施支持话音的***的设备,可以完全在用户与之交互的设备上实施上述对话***100的子***。在一些其他实施方式中,对话***100的一些部件或子***可以在用户与之交互的设备上实施,而其他部件可以远离设备实施、可能在一些其他计算设备、平台或服务器上实施。
如上所述,在某些实施例中,可以使用子***的管线来实施对话***100。在一些实施例中,一个或多个子***可以被组合成单个子***。在某些实施例中,可以由多个子***来提供由特定子***提供的功能。还可以使用多个子***来实施特定子***。
在某些实施例中,可以使用机器学习技术来实施对话***100的一个或多个功能。例如,可以使用监督机器学习技术、诸如使用神经网络(例如,深度神经网络)实施的那些技术,来实施对话***100的一个或多个功能。作为一个示例,可以提供被训练用于执行所执行的ASR功能的神经网络,并且这种经训练的模型可以由ASR子***108用于进行所述ASR子***的处理。这种神经网络实施方式可以将语音输入作为输入并且向NLU子***输出文本话语。也可以由对话***100的其他子***使用基于机器学习的模型。
ASR发音词典用于执行ASR功能。用于ASR的ASR发音词典包括发音和对应的单词。例如,ASR词典将单词的音标表示映射到单词的文本字符串。单词的文本字符串指定如何拼写单词。作为特定的示例,ASR发音词典中的条目指定:
·G OW L D AH N.G EY T.B R IH JH.
Figure BDA0002652646330000091
GOLDEN GATE BRIDGE(金门大桥)
可以使用命名实体公报来执行NLU操作。命名实体公报将单词(例如,文本字符串)映射到特定命名实体类型或命名实体的类别。可以由NLU***使用这些公报来填充槽位,以帮助确定如何处理用户请求。例如,命名实体公报中的条目可以将短语Golden GateBridge链接到命名实体类型:
·GOLDEN GATE BRIDGE
Figure BDA0002652646330000092
Point-of Interest(兴趣点)
通常,NLU公报不包括发音。
如上所述,NLU可以用于标识含义表示。例如,由一个或多个机器学习算法来分析文本数据,以标识由用户说出的单词集合的含义表示。含义表示可以包括如获得导航或信息等意图。可以将单词或单词组链接到命名实体类型。例如,文本“find an Indianrestaurant near the beach(查找海滩附近的印度餐馆)”映射到INTENT:FindRestaurant;CUISINE:Indian;LOCATION:Beach(意图:查找餐馆;菜系:印度;位置:海滩)。CUISINE(菜系)和LOCATION(位置)是命名实体类型,并且Indian(印度)和Beach(海滩)是链接到所述命名实体类型的单词(例如,对应的命名实体)。通过将文本转换为机器可识别的意图和命名实体,机器可以处理由用户提供的请求。
图2是示意图,图示了根据某些实施例的用于使用利用集成共享词典240的ASR子***220和NLU子***230从语音输入204生成含义表示212的技术200的概述。从用户202接收语音输入204。语音输入204可以被接收为波形。由包括ASR子***220和NLU子***230的***使用集成共享词典240来分析接收到的语音输入204。ASR子***220和NLU子***230可以在管线架构中实施。ASR子***220可以与图1的ASR子***108相对应,NLU子***230可以与图1的NLU子***110相对应,并且集成共享词典240可以与图1的集成共享词典109相对应。
在206处,ASR子***220接收语音输入204并基于所述语音输入来标识单词。ASR子***可以处理语音输入以标识声音的表示,所述声音的表示可以与发音相对应。ASR子***可以使用集成共享词典240来标识映射到所述发音的单词。
集成共享词典240包括由ASR子***和NLU子***使用的公共语言资源集合。该语言资源集合可以包括将发音映射到单词的词典条目,如可以由ASR子***220使用的。该语言资源集合可以进一步将单词映射到用于确定含义表示的信息,如命名实体集合,如可以由NLU子***230使用的。该组命名实体可以与对话***已经学习的所有实体相对应。实体可以进一步包括关于这些命名实体的信息。例如,条目可以包含命名实体“Space Needle(太空针塔)”以及关于所述命名实体的信息,如太空针塔的地址和太空针塔是受欢迎的旅游景点的事实。利用这两个子***需要的信息生成如图3A和图3B示出的公共的集成共享词典240。
ASR子***220使用集成共享词典240来标识单词的发音。例如,ASR子***220标识发音D ER EH K SH AH N Z.T UW。ASR子***220利用映射到所标识的发音的单词“directions to(到………的导航)”来标识对应的词典条目。基于在词典中标识的单词,ASR子***220将语音波形变换为单词序列。ASR子***220的输出可以包括包含一个或多个单词的输出208(例如,文本字符串/文本话语)。
在一些实施例中,ASR子***220产生标识集成共享词典240中的条目的信息。这种信息可以包括指向集成共享词典中的条目的指针。例如,针对口述句子“Take me to theSpace Needle(带我去太空针塔)”的ASR输出可能是“Take me to<NER id=27/>”,其中,“<NER id=27/>”是指向针对“Space Needle”的命名实体公报条目的ASR输出令牌。命名实体公报条目指定Space Needle与命名实体类型“兴趣点”相对应。因此,ASR子***220的输出208可以进一步包括标识集成共享词典240中的条目的信息。
在210处,NLU子***230接收输出208,并使用NLU来生成与语音输入相关联的含义表示212。NLU子***基于由ASR子***220传送的标识集成共享词典240中的条目的信息和/或由ASR子***220辨别的文本输出来生成含义表示212。在一些实施例中,NLU子***230基于命名实体类型和所标识的意图来确定含义表示。例如,所标识的意图是directions to(到……的导航),已经标识位置类型的命名实体Star Beach(星星海滩),并且含义表示指示用户请求到星星海滩的导航(directions to Star Beach)。NLU子***可以将由ASR子***220标识的单词变换为所述单词的含义表示。含义表示可以包括一个或多个命名实体。NLU子***230可以使用集成共享词典240来生成含义表示,以将单词与基于单词的命名实体类型进行匹配。这可以用于利用命名实体标签和/或附加信息来标记单词。NLU子***230将此含义表示212传送到对话***管线的另一部件,如图1的对话管理器子***116。
因为NLU子***230与ASR子***220一起使用集成共享词典240,所以NLU子***230不需要具有单独的公报,从而减少了对话***的总存储器需求。通过使用ASR子***220直接产生指向公报条目的指针,NLU子***230不需要执行公报查找,这简化并加快了NLU处理。由于在ASR子***与NLU子***之间共享了数据和资源,因此这还简化了整个对话***的构造。
因此,使用集成共享词典可以加快操作,并且减少存储器需求和计算需求。这在以相对较低的计算资源实施的***如非常小的计算机、或像闹钟或电器等的嵌入式***中特别有用。假设单词列表和命名实体列表可能非常大,则存储和使用一个词典而不是多个词典提供了在这种背景下特别有用的效率。
图3A至图3B描绘了根据某些实施例的示例集成共享ASR/NLU词典条目图3A图示了包括单词302、发音304和命名实体类型306的示例词典300。单词302条目包括一个或多个单词的集合。单词集合包括Sydney Harbour Bridge(悉尼海港大桥)308和Opera House(歌剧院)314。词典300进一步包括发音304。发音是构成单词的语声。发音以可被对话***理解的音标表示来表示。发音304映射到对应的单词。SIDNI.H AA BA.BRIDG 310是映射到该单词集合Sydney Harbour Bridge 308的发音。OPRA.HAUS 316是映射到该单词集合OperaHouse 314的发音。词典300进一步包括命名实体类型306。命名实体类型306指定命名实体的类别,如人、位置等。Sydney Harbour Bridge 308的命名实体类型306为“兴趣点”312。Opera House 314的命名实体类型306也为“兴趣点”318。
图3B图示了包括单词352、发音354、命名实体类型356和补充信息358的示例词典350。单词352条目包括一个或多个单词的集合。在三个条目中示出了单词Washington(华盛顿)360。单词Washington 360映射到发音354WASH.ING.TOHN 364。单词Washington 360进一步映射到关于单词的信息,所述信息包括命名实体类型356和补充信息358。在这种情况下,Washington有多种含义——美国第一任总统、美国首都和在美国西北部的一个州。词典350包括以下三种可能性中的每一种的条目——命名实体类型356分别是:人366、城市376和州386。对于每个命名实体类型356,词典350进一步包括补充信息358,所述补充信息在确定单词的上下文和/或准备与单词相关联的响应时可能是有用的。对于作为人366的Washington 360,补充信息是“George Washington,First President of the UnitedStates(乔治·华盛顿,美国第一任总统)”368。对于作为城市376的Washington 360,补充信息是“Capital of the United States;38.9072°N,77.0369°W"378(美国的首都;北纬38.9072°,西经77.0369°)”378,其包括城市的位置坐标。对于作为州386的Washington360,补充信息是“State in Northwestern United States;47.7511°N,120.7401°W(在美国西北部的州;北纬47.7511°,西经120.7401°)”388,其包括州的位置坐标。
图4是图示了根据某些实施例的用于生成集成共享词典的方法400的简化流程图。方法400可以由对话***100的ASR子***108和NLU子***110与对话***100的其他部件协作地实施,如图1所描绘的。图4所描绘的处理可以仅在由相应***的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中、硬件中或其组合中实施。软件可以被存储在非暂态计算机可读存储器上(例如,存储器设备上)。图4所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图4描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。在关于图4描述的处理中,对话***标识用于构造集成共享词典的各种信息。可以以多种方式,诸如查阅由管理员准备的配置文件、网页抓取、搜索数据库和/或应用机器学习模型,实现标识所述信息。
在402处,对话***标识由ASR子***用来执行所述ASR子***的处理的信息。ASR子***执行如基于发音来标识单词等功能。因此,由ASR子***用来执行其处理的信息包括标识与不同单词相对应的发音。***标识单词集合和对应的发音(例如,如图3A所示,单词302包括与发音304SIDNI.HAABA.BRIDG 310相对应的Sydney Harbour Bridge 308)。
在404处,对话***标识由NLU子***用来执行所述NLU子***的处理的信息。NLU子***执行如命名实体识别等功能。因此,由NLU子***用来执行其处理的信息包括与命名实体、命名实体的对应类型和/或关于命名实体的补充信息相对应的不同的单词或单词集合。例如,如图3A中所图示的,该单词集合“Sydney Harbor Bridge”与命名实体类型为兴趣点的命名实体相对应。
在406处,对话***确定将在402中标识的信息与在404中标识的信息进行关联的信息。在一些实施例中,在402和404处标识的(多个)公共单词是提供映射的关联信息。例如,由于单词Sydney Harbor Bridge映射到发音SIDNI.HAABA.BRIDG和命名实体类型“兴趣点”两者,公共单词将发音、单词和命名实体类型彼此进行关联。对话***可以搜索在402处和在404处获得的信息,以确定匹配的单词集合和/或彼此具有阈值程度相似性的单词集合,从而确定关联信息。
在408处,对话***使用在402中、404中标识的信息和在406中确定的关联信息来生成集成共享词典。对话***可以通过以有组织的方式存储信息来生成集成共享词典。对话***可以将发音映射到单词,并且将单词映射到用于在标识含义表示时使用的信息如命名实体类型。在一些实施例中,这可以通过将单词、发音和命名实体类型彼此相关联地存储在表中来完成,如在图3A和图3B中所图示的。
在410处,对话***使得在408中生成的集成共享词典能够由ASR子***和NLU子***访问和共享。对话***将ASR子***配置成使用集成共享词典进行处理。对话***将NLU子***配置成使用集成共享词典进行处理。例如,ASR子***和NLU子***中的程序代码可以包括用于从集成共享词典中检索信息的指令。ASR子***和/或NLU子***可以进一步被配置成彼此共享信息,以流线化对集成共享词典的使用(例如,ASR子***可以将指向集成共享词典中的信息的指针传送给NLU子***)。对话***可以进一步配置集成共享词典配置使得其可以由ASR子***和NLU子***同时使用。
图5是图示了根据某些实施例的用于使用集成且共享的资源来流线化对话***中的处理的方法500的简化流程图。方法500可以由对话***100的ASR子***108和NLU子***110与对话***100的如图1至图3B所描绘的其他部件协作地实施。图5所描绘的处理可以仅在由相应***的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中、硬件中或其组合中实施。软件可以被存储在非暂态计算机可读存储器上(例如,存储器设备上)。图5所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图5描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。
在502处,对话***的ASR子***接收语音输入。可以直接地或间接地从用户接收语音输入。例如,用户可以在麦克风(例如,语音输入部件105)附近说话。语音输入部件可以将口述语音的数字表示传输到ASR子***108(例如,经由唤醒单词检测子***106)。语音输入可以与用户请求(如,“Find flights to Sydney(查找飞往悉尼的航班)”)相对应。
在504处,ASR子***处理在502处接收到的语音输入,以标识与所述语音输入相对应的发音。ASR子***可以使用用于确定语音输入的组成部分的最可能发音的模型来处理语音输入。ASR子***可以将语音输入分成多个部分或帧。可以分析每个帧以确定与所述帧相关联的最可能发音。这可以使用发音模型来执行,所述发音模型可以是被训练用于将声音帧与音标序列进行匹配的机器学习模型。合适模型的示例包括隐马尔可夫模型(HMM)和神经网络如递归神经网络。(参见例如K.W.Church的honological Parsing in SpeechRecognition[语音识别中的音韵解析],Kluwer学术出版社,波士顿,1987年;K.Yao和G.Zweig的Sequence-to-Sequence Neural Net Models for Grapheme-to-PhonemeConversion[用于字素到音标转换的序列到序列神经网络模型],arXiv:1506.00196v3,2015年)。可以以不同的形式如使用音节、音素和/或音标来表示所产生的发音。例如,如图3A中所图示的,发音表示的一个示例是SIDNI.H AA BA.BRIG。
在506处,ASR子***搜索存储在存储器中的词典,以在词典中查找与在504处确定的发音相对应的匹配条目。词典(例如,图1至图3B中示出的集成共享词典)包括多个条目。多个条目中的每一个条目存储一个或多个单词的集合,所述一个或多个单词的集合映射到在所述条目中存储的发音。多个条目中的每一个条目进一步包括可用于确定由所述条目存储的所述一个或多个单词的集合的含义表示的附加信息。如在图3A至图3B中图示的示例中示出的,一个或多个单词的集合(例如,Empire State Building(帝国大厦)或Valhalla(瓦尔哈拉殿堂))映射到发音和可用于确定含义表示的附加信息。附加信息可以包括命名实体类型(例如,人、位置等)、描述单词的补充信息(例如,地址、定义等)、和/或NLU子***可以用来确定含义表示的其他信息。
在508处,ASR子***标识包括在506处标识的发音的匹配条目。ASR子***可以例如使用如在图3A中所图示的表格式词典来选择与所确定的发音相对应的条目。所标识的条目可以将发音映射到一个单词(例如,Texas(德克萨斯州))或一起传达某些内容的单词集合(例如,San Antonio River Walk(圣安东尼奥河畔步行街))。类似地,ASR子***可以使用条目中的映射来标识可用于确定由所述条目存储的该一个或多个单词的集合的含义表示的附加信息。例如,ASR子***遍历表以选择条目中的存储与(多个)单词相对应的命名实体类型的对应部分。在一些情况下,给定条目中的该单词集合可以映射到一条附加信息。例如,如图3A所示,Sydney Harbor Bridge映射到命名实体类型兴趣点。在一些情况下,该单词集合可以映射到与该单词集合相关联的信息的多个条目。例如,如图3B所示,单词Washington存在于三个不同的条目中,并且映射到三个不同的命名实体类型以及与每个相应的命名实体类型相对应的补充信息)。
在510处,ASR子***将标识在508处找到的匹配条目的信息传送到对话***的NLU子***。标识匹配条目的信息可以包括指向词典中的信息的指针。例如,ASR子***输出该单词集合“John Coltrane(约翰·柯川)”以及指向对应词典条目的一部分的指针,所述对应词典条目的一部分指定与命名实体John Coltrane相关联的命名实体类型“人”。可替代地或另外地,标识匹配条目的信息可以包括词典条目中的信息(例如,标识匹配条目的信息是命名实体类型本身——人)。
可替代地或另外地,标识匹配条目的信息可以包括指向与该单词集合相关联的补充信息的指针和/或补充信息本身。如以上在508处所指出的以及图3B中所示出的,与该单词集合相关联的信息可以包括补充信息(例如,补充信息可以解释John Coltrane是著名的爵士音乐家)。在一些实施例中,指针可以指向具有命名实体类型和补充信息两者的条目。可替代地,指针可以指向具有命名实体类型的条目,所述命名实体类型进而指向具有补充信息的条目。作为另一个示例,输出可以包括多个指针(例如,一个指针指向词典条目中的命名实体类型,并且另一个指针指向词典条目中的补充信息)。
ASR子***可以将所标识的文本传输到NLU子***以进行处理。被传输到NLU子***的所标识的文本可以包括在词典中标识的该单词集合。被传输到NLU子***的所标识的文本可以进一步包括由ASR子***标识的附加单词。例如,针对口述询问“Who is JohnColtrane?(谁是约翰·柯川?)”的ASR输出可能是“Who is<NER id=66/>”,其中,“<NER id=66/>”是指向针对“John Coltrane”的命名实体公报条目的ASR输出令牌。单词“who”和“is”可能已经由ASR子***经由词典以与以上关于508所描述的类似方式标识。因此,对话***的ASR子***可以进一步使用词典来标识第二单词集合并且将所述第二单词集合输出到对话***的NLU子***。在一些实施例中,ASR子***除了传输与第一单词集合相关联的信息(例如,“John Coltrane”和<NER id=66/>)之外还传输该单词集合。可替代地,ASR子***可以在避免传输第一单词集合的同时传送指针。
在512处,NLU子***使用标识从ASR子***接收的条目的信息来生成语音输入的含义表示。含义表示是对由NLU子***接收的文本的含义的计算机可理解的解释,并且可以标识与语音输入相关联的意图。NLU子***可以使用从ASR子***接收到的文字话语以及存储在词典中的匹配条目中的附加信息来生成含义表示。例如,NLU子***可以使用接收到的指向命名实体类型的指针来快速识别命名实体。以下关于图6进一步描述了用于生成含义表示的技术。
在一些实施例中,ASR子***和NLU子***利用集成共享词典来同时执行ASR处理和NLU处理。例如,ASR子***可以执行针对特定发音的查找,并且NLU可以同时访问集成共享词典以进行所述NLU的处理。集成共享词典可以由对话***的ASR子***和NLU子***共享并且被这些子***同时使用。
图6是图示了根据某些实施例的用于图5的步骤512中的生成含义表示的方法600的简化流程图。方法600可以由对话***100的NLU子***110与对话***100的如图1至图3B所描绘的其他部件协作地实施。图6所描绘的处理可以仅在由相应***的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中、硬件中或其组合中实施。软件可以被存储在非暂态计算机可读存储器上。图6所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图6描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。
在602处,NLU子***(例如,NLU子***110的NER子***112)使用接收到的标识匹配条目的信息来使用词典确定该单词集合的命名实体类型。例如,在510处传送的标识信息是指向针对命名实体类型的词典实体的指针的情况下,NLU子***可以使用所述指针从词典中标识命名实体类型。作为另一个示例,在标识信息是命名实体类型本身的情况下,NLU子***可以检索接收到的命名实体类型。NLU子***可以例如通过利用与所标识的命名实体类型相关的信息标记文本来将命名实体类型链接到该单词集合。NER子***112可以将经标记的文本话语馈送到语义解析器子***114。如以上所指出的,使用这些技术可以比利用现有技术显著快地实现命名实体链接,因为NLU子***不必执行公报查找并且可以使用接收到的标识信息高效地检索命名实体类型。
因为词典包括单词和命名实体两者,所以***可以高效地标识任何适用的单词的命名实体。例如,“Sydney Harbor Bridge”的词典条目映射到命名实体类型“兴趣点”。因此,***将所标识的单词“Sydney Harbour Bridge”链接到命名实体类型“兴趣点”。一些检测到的单词可能不映射到命名实体类型(例如,directions(导航)、to(到)、find(查找)等)。
确定命名实体类型可以由NLU子***执行,作为整个NLU过程的一部分,所述过程涉及对包括与命名实体类型相关联的单词集合的较大单词集合的词性标记。例如,NLU子***可以接收包括名词、动词和形容词的句子。NLU子***利用标签——名词、动词、形容词,并且针对命名实体,命名实体类型——来标记单词或单词组。这可以在辨别该较大单词集合的含义时使用。
在604处,NLU子***基于从ASR子***接收到的信息和从ASR子***接收到的附加单词来确定该单词集合的上下文。如以上关于图510所指出的,ASR子***可以将与单词集合相关联的标识信息传送到NLU子***。ASR子***可以进一步将该单词集合和/或附加的单词集合(例如,第二单词集合、第三单词集合等)传输到NLU子***。例如,由NLU子***接收到的ASR子***的输出为“Take me to<NER id=27/>”。<NER id=27/>是指向与第一单词集合Space Needle相对应的词典条目“Space Needle”的指针。“Take me to”是第二单词集合。NLU子***从ASR子***接收标识信息。NLU子***可以使用标识信息来标识第一单词集合(例如,通过遍历集成共享词典以标识映射到由接收到的指针指示的信息的单词)。可替代地,ASR子***可以将第一单词集合和/或指向第一单词集合的指针传输到NLU子***以进行直接检索。
为了确定上下文,NLU子***(例如,图1的NLU子***110的语义解析器子***112)可以确定第一单词集合和第二单词集合如何彼此关联。例如,NLU子***可以执行依赖解析操作,以将这两个单词集合彼此关联。(参见例如,Danqi Chen和Christopher Manning的AFast and Accurate Dependency Parser Using Neural Networks[使用神经网络的快速且准确的依赖解析器],2014年的EMNLP会议(2014))。
在606处,NLU子***使用在604处确定的上下文和在602处确定的命名实体类型来生成含义表示。NLU子***(例如,图1的NLU子***110的语义解析器子***112)可以使用语义解析来生成与含义表示相对应的逻辑形式。可以使用机器学习算法诸如RNN或图表法来执行语义解析。所产生的含义表示可以采用不同的形式,如,微积分、抽象含义表示(AMR)或者Python表达式或Java表达式。(参见例如,Liang的Lambda Dependency-BasedCompositional Semantics[基于Lambda依赖的组合语义],arXiv:1309.4408(2013);Yin和Neubig的A Syntactic Neural Model for General-Purpose Code Generation[用于生成通用代码的语法神经模型]),arXiv:1704.01696(2017);Banarescu等人的AbstractMeaning Representation for Sembanking[金融业战略企业管理的抽象含义表示],第七届语言注释研讨会会议(2013))。
在一些实施例中,生成含义表示包括标识与单词相对应的意图。***可以使用所标识的单词并且用于标识用户正要求***执行的动作。可以使用机器学习模型来执行意图分类。适当的模型包括神经网络,如递归神经网络(例如,选通递归单元(GRU))。NLU子***可以使用所标识的单词来填充槽位(例如,对于披萨订单,可以为披萨的尺寸和饼料分配槽位,并用如“大份”和“意大利辣味香肠”等对应的单词填充所述槽位)。作为示例,可以使用话语“Directions to Joe’s Coffee(到Joe’s Coffee的导航)”生成含义表示——意图:导航;目的地:最近的Joe’s Coffee的坐标;模式:驾驶。
在608处,NLU子***将在606处生成的含义表示输出到对话***的第三子***。第三子***可以是图1所示的对话管理器子***116或另一合适的对话***部件。然后,第三子***可以使用接收到的含义表示来生成响应。例如,含义表示表示由用户询问的问题,并且第三子***使用含义表示得出所述问题的答案。
在一些实施例中,NLU子***可以向第三子***输出指向关于该单词集合的信息的指针。例如,NLU子***向第三子***输出包括指针(例如,<SUP=/44>)的含义表示,所述指针链接到包括描述命名实体“Valley Mall(谷购物中心)”的补充信息诸如ValleyMall的地址和Valley Mall的开放时间的词典条目。然后,第三子***可以通过检索补充答案以包括在答案中来高效地产生答案。
尽管已经使用ASR子***作为对话***的第一子***、并且使用NLU子***作为对话***的第二子***来提供了前述描述,但是在其他实施例中,词典也可以被其他子***集成和共享。例如,如在608处所描述的,用于标识要包括在响应中的信息的部件也可以利用集成共享词典来进行高效的对话处理。
可以在包括云环境(可以是包括私有云环境、公共云环境和混合云环境的各种类型的云)、本地部署(on-premises)环境、混合环境等的各种不同的环境中实施上述基础设施。
图7描绘了用于实施实施例的分布式***700的简化示图。在图示的实施例中,分布式***700包括经由一个或多个通信网络710耦接到服务器712的一个或多个客户端计算设备702、704、706和708。客户端计算设备702、704、706和708可以被配置成执行一个或多个应用。
在各种实施例中,服务器712可以被适配成运行使得能够流线化对语音输入的意图识别的一个或多个服务或软件应用。
在某些实施例中,服务器712还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务诸如在软件即服务(SaaS)模型下提供给客户端计算设备702、704、706和/或708的用户。操作客户端计算设备702、704、706和/或708的用户进而可以利用一个或多个客户端应用来与服务器712交互以利用这些部件所提供的服务。
在图7所描绘的配置中,服务器712可以包括实施由服务器712执行的功能的一个或多个部件718、720和722。这些部件可以包括可以由一个或多个处理器、硬件部件或其组合执行的软件部件。应了解,可以与分布式***700不同的各种不同的***配置是可能的。因此,图7所示出的实施例是用于实施实施例***的分布式***的一个示例并且不旨在是限制性的。
根据本公开的教导,用户可以使用客户端计算设备702、704、706和/或708来使用集成共享词典基于语音输入来标识含义表示。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的界面。客户端设备还可以通过此界面向用户输出信息。尽管图7描绘了仅四个客户端计算设备,但是可以支持任何数量的客户端计算设备。
客户端设备可以包括各种类型的计算***,如便携式手持设备、如个人计算机和膝上型计算机等通用计算机、工作站计算机、可穿戴设备、游戏***、瘦客户端、各种消息传递设备、传感器或其他感测设备等。这些计算设备可以运行各种类型和版本的软件应用和操作***(例如,Microsoft
Figure BDA0002652646330000201
Apple
Figure BDA0002652646330000202
或类UNIX操作***、Linux或类Linux操作***诸如Google ChromeTM OS),包括各种移动操作***(例如,MicrosoftWindows
Figure BDA0002652646330000203
Windows
Figure BDA0002652646330000204
AndroidTM
Figure BDA0002652646330000205
Palm
Figure BDA00026526463300002012
)。便携式手持设备可以包括蜂窝电话、智能电话(例如,
Figure BDA0002652646330000206
)、平板计算机(例如,
Figure BDA00026526463300002013
)、个人数字助理(PDA)等。可穿戴设备可以包括Google
Figure BDA0002652646330000207
头戴式显示器以及其他设备。游戏***可以包括各种手持游戏设备、支持因特网的游戏设备(例如,有或没有
Figure BDA0002652646330000209
姿势输入设备的Microsoft
Figure BDA0002652646330000208
游戏控制台、Sony
Figure BDA00026526463300002011
***、由
Figure BDA00026526463300002010
提供的各种游戏***、以及其他)等。客户端设备可以能够执行各种不同的应用,如各种因特网相关应用、通信应用(例如,电子邮件应用、短消息服务(SMS)应用)并可以使用各种通信协议。
(多个)网络710可以是本领域技术人员所熟悉的可以使用各种可用协议中的任何一种支持数据通信的任何类型的网络,所述可用协议包括但不限于TCP/IP(传输控制协议/因特网协议)、SNA(***网络架构)、IPX(因特网分组交换)、
Figure BDA00026526463300002014
等。仅通过示例的方式,(多个)网络710可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、因特网、虚拟网络、虚拟私人网络(VPN)、内部网、外部网、公共交换电话网(PSTN)、红外线网、无线网(例如,根据电气与电子协会(IEEE)1002.11协议组、
Figure BDA00026526463300002015
和/或任何其他无线协议操作的网络)和/或这些网络和/或其他网络的任何组合。
服务器712可以由一个或多个通用计算机、专用服务器计算机(通过示例的方式包括PC(个人计算机)服务器、
Figure BDA00026526463300002016
服务器、中档服务器、大型计算机、机架式服务器等)、服务器群、服务器集群、或任何其他适当的布置和/或组合构成。服务器712可以包括运行虚拟操作***的一个或多个虚拟机或涉及虚拟化的其他计算架构诸如如逻辑存储设备的可以被虚拟化以维护服务器的虚拟存储设备的一个或多个灵活池。在各种实施例中,服务器712可以被适配成运行提供前述公开内容所描述的功能的一个或多个服务或软件应用。
服务器712中的计算***可以运行一个或多个操作***,所述一个或多个操作***包括以上所讨论的那些操作***中的任何一个操作***以及任何可商购获得的服务器操作***。服务器712还可以运行各种另外的服务器应用和/或中间层应用中的任何一种应用,包括HTTP(超文本运输协议)服务器、FTP(文件传送协议)服务器、CGI(通用网关接口)服务器、
Figure BDA0002652646330000211
服务器、数据库服务器等。示例性数据库服务器包括但不限于可从
Figure BDA0002652646330000212
(国际商业机器公司)等商购获得的那些数据库服务器。
在一些实施方式中,服务器712可以包括一个或多个应用以分析并合并从客户端计算设备702、704、706和708的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于
Figure BDA0002652646330000213
馈送、
Figure BDA0002652646330000214
更新或从一个或多个第三方信息源和连续数据流接收的实时更新,所述实时更新可以包括与传感器数据应用、财务收报机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器712还可以包括一个或多个应用以通过客户端计算设备702、704、706和708的一个或多个显示设备来显示数据馈送和/或实时事件。
分布式***700还可以包括一个或多个数据储存库714、716。在某些实施例中,这些数据储存库可以用于存储数据和其他信息。例如,数据储存库714、716中的一个或多个可以用于存储如用于ASR和NLU两者的词典等信息。数据储存库714、716可以驻留在各个位置中。例如,服务器712所使用的数据储存库可以在服务器712本地或者可以远离服务器712并通过基于网络的或专用的连接与服务器712通信。数据储存库714、716可以是不同类型。在某些实施例中,服务器712所使用的数据储存库可以是数据库,例如关系数据库,如由Oracle
Figure BDA0002652646330000215
和其他供应商提供的数据库。这些数据库中的一个或多个数据库可以被适配成响应于SQL格式的命令来实现数据到以及从数据库的存储、更新和检索。
在某些实施例中,数据储存库714、716中的一个或多个数据储存库还可以被应用用来存储应用数据。应用所使用的数据储存库可以是不同类型,如例如键值存储储存库、对象存储储存库或由文件***支持的通用存储储存库。
在某些实施例中,本公开所描述的对话相关的功能可以通过云环境作为服务提供。图8是根据某些实施例的基于云的***环境的简化框图,在所述基于云的***环境中,各种对话相关的服务可以作为云服务来提供。在图8所描绘的实施例中,云基础设施***802可以提供可以由用户使用一个或多个客户端计算设备804、807和808请求的一个或多个云服务。云基础设施***802可以包括一个或多个计算机和/或服务器,所述一个或多个计算机和/或服务器可以包括以上针对服务器712所描述的那些计算机和/或服务器。云基础设施***802中的计算机可以被组织成通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。
(多个)网络810可以促进客户端804、807和808与云基础设施***802之间的数据通信和交换。(多个)网络810可以包括一个或多个网络。网络可以是相同或不同的类型。(多个)网络810可以支持一个或多个通信协议(包括有线和/或无线协议)以促进通信。
图8所描绘的实施例仅是云基础设施***的一个示例并且不旨在是限制性的。应了解,在一些其他实施例中,云基础设施***802可以具有比图8所描绘的那些部件更多或更少的部件、可以组合两个或更多个部件或者可以具有不同的部件配置或布置。例如,尽管图8描绘了三个客户端计算设备,但是在替代性实施例中,可以支持任何数量的客户端计算设备。
术语云服务通常用于指代通过服务提供商的***(例如,云基础设施***802)按需且经由如因特网等通信网络变得可用于用户的服务。通常,在公共云环境中,构成云服务提供商的***的服务器和***与客户自身的室内服务器和***不同。云服务提供商的***由云服务提供商管理。因此,客户可以使自身利用由云服务提供商提供的云服务,而不必针对服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的***可以托管应用,并且用户可以通过因特网按需订购并使用应用,而用户不必购买用于执行应用的基础设施资源。云服务被设计成提供对应用、资源和服务的容易的、可伸缩的访问。几个提供商提供云服务。例如,由加利福尼亚州红木海岸(Redwood Shores,California)的Oracle
Figure BDA0002652646330000221
提供如中间件服务、数据库服务、Java云服务以及其他服务等几种云服务。
在某些实施例中,云基础设施***802可以使用不同的模型诸如在软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型和其他模型包括混合服务模型下提供一个或多个云服务。云基础设施***802可以包括实现对各种云服务的置配的一套应用、中间件、数据库和其他资源。
SaaS模型使应用或软件能够作为服务通过如因特网等通信网络输送给客户,而客户不必购买底层应用的硬件或软件。例如,可以使用SaaS模型为客户提供对由云基础设施***802托管的按需应用的访问。Oracle
Figure BDA0002652646330000222
提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源规划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用以及其他等的各种服务。
IaaS模型通常用于将基础设施资源(例如,服务器、存储、硬件和联网资源)作为云服务提供给客户以提供弹性计算和存储能力。由Oracle
Figure BDA0002652646330000231
提供各种IaaS服务。
PaaS模型通常用于提供使客户能够开发、运行并管理应用和服务而客户不必采购、构建或维护这种资源的平台和环境资源作为服务。由Oracle
Figure BDA0002652646330000232
提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用开发解决方案服务、以及其他服务。
云服务通常是以按需自助服务基础、基于订阅、可弹性伸缩、可靠、高度可用且安全的方式提供的。例如,客户可以通过订阅订单来订购由云基础设施***802提供的一个或多个服务。然后,云基础设施***802执行处理以提供客户的订阅订单中请求的服务。例如,云基础设施***802使用集成共享ASR/NLU词典基于接收到的语音数据来标识意图。云基础设施***802可以被配置成提供一个或甚至多个云服务。
云基础设施***802可以通过不同的部署模型提供云服务。在公共云模型中,云基础设施***802可以由第三方云服务提供商拥有,并且云服务被提供给任何一般的公众客户,其中,所述客户可以是个人或企业。在某些其他实施例中,在私有云模型下,云基础设施***802可以在组织内(例如,在企业组织内)操作并且服务被提供给组织内的客户。例如,客户可以是如人力资源部门、薪资部门等企业的各个部门或甚至是企业内的个人。在某些其他实施例中,在社区云模型下,云基础设施***802和所提供的服务可以由相关的社区中的几个组织共享。也可以使用如以上所提到的模型的混合等各种其他模型。
客户端计算设备804、806和808可以是不同类型的(如图7所描绘的设备702、704、706和708)并且可以能够操作一个或多个客户端应用。用户可以使用客户端设备与云基础设施***802交互,如请求由云基础设施***802提供的服务。例如,用户可以使用客户端设备请求本公开所描述的对话相关服务。
在一些实施例中,由云基础设施***802执行的用于提供对话相关服务的处理可以涉及大数据分析。此分析可以涉及使用、分析并操纵大数据集以检测并可视化数据中的各种趋势、行为、关系等。此分析可以由一个或多个处理器执行,从而可能并行地处理数据、使用数据执行模拟等。例如,可以由云基础设施***802执行大数据分析以确定含义表示。用于此分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据块(二进制大对象))。
如图8中的实施例所描绘的,云基础设施***802可以包括被用于促进置配(provision)由云基础设施***802提供的各种云服务的基础设施资源830。基础设施资源830可以包括例如处理资源、存储或存储器资源、联网资源等。
在某些实施例中,为了促进对这些资源的高效置配以用于支持由云基础设施***802为不同客户提供的各种云服务,资源可以被捆绑成资源组或资源模块(也称为“群(pod)”)。每个资源模块或群可以包括一种或多种类型的资源的预先集成且优化的组合。在某些实施例中,可以针对不同类型的云服务预先置配不同的群。例如,可以针对数据库服务置配第一组群、可以针对Java服务置配第二组群等,第二组群可以包括与第一组群中的群不同的资源组合。对于一些服务,被分配用于置配服务的资源可以在服务之间共享。
云基础设施***802本身可以在内部使用由云基础设施***802的不同部件共享并且促进云基础设施***802置配服务的服务832。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高度可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传送服务等。
云基础设施***802可以包括多个子***。这些子***可以在软件或硬件或其组合中实施。如图8所描绘的,子***可以包括使云基础设施***802的用户或客户能够与云基础设施***802交互的用户界面子***812。用户界面子***812可以包括各种不同的界面,如web界面814、其中广告并且客户可购买由云基础设施***802提供的云服务的在线商店界面816和其他界面818。例如,客户可以使用客户端设备请求(服务请求834)由云基础设施***802使用界面814、816和818中的一个或多个界面提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施***802提供的云服务并且针对客户希望订阅的由云基础设施***802提供的一个或多个服务下订阅订单。服务请求可以包括标识客户和客户期望订阅的一个或多个服务的信息。例如,客户可以针对由云基础设施***802提供的对话相关服务下订阅订单。作为订单的一部分,客户可以提供标识请求的语音输入。
在某些实施例如图8所描绘的实施例中,云基础设施***802可以包括被配置成处理新订单的订单管理子***(OMS)820。作为此处理的一部分,OMS 820可以被配置成:为客户创建账户,如果尚未创建的话;从客户接收要用于向客户开具账单以向客户提供所请求的服务的账单和/或计费信息;验证客户信息;在验证之后,为客户预订订单;以及策划各种工作流程来准备订单以进行置配。
一旦被正确地验证,那么,OMS 820就可以调用被配置成为订单置配资源包括处理资源、存储器资源和联网资源的订单置配子***(OPS)824。置配可以包括为订单分配资源并配置资源以促进客户订单所请求的服务。为订单置配资源的方式和所置配的资源的类型可以取决于客户已经订购的云服务的类型。例如,根据一个工作流,OPS 824可以被配置成确定正在请求的特定云服务并且标识可能已经为所述特定云服务预先配置的群的数量。为订单分配的群的数量可以取决于所请求服务的大小/量/层级/范围。例如,要分配的群的数量可以基于服务所要支持的用户的数量、正在请求的服务的持续时间等来确定。然后,可以为特定的请求客户定制分配的群以用于提供所请求服务。
云基础设施***802可以向请求客户发送响应或通知844,以指示何时所请求服务现在已准备好使用。在一些实例中,可以向客户发送使客户能够开始使用和利用所请求服务的益处的信息(例如,链接)。在某些实施例中,对于请求对话相关服务的客户,响应可以包括基于所标识的意图而生成的响应。
云基础设施***802可以向多个客户提供服务。对于每个客户,云基础设施***802负责管理与从客户接收的一个或多个订阅订单有关的信息、维护与订单相关的客户数据并且向客户提供所请求服务。云基础设施***802还可以收集关于客户使用所订阅服务的使用情况统计数据。例如,可以收集所使用的存储量、所传送的数据量、用户的数量以及***开机时间量和***停机时间量等的统计数据。可以使用此使用情况信息向客户开具账单。可以例如以月为周期完成开具账单。
云基础设施***802可以并行地向多个客户提供服务。云基础设施***802可以存储这些客户的信息(可能包括专有信息)。在某些实施例中,云基础设施***802包括被配置成管理客户信息并提供对所管理信息的分离使得与一个客户相关的信息不能够被另一个客户访问的身份管理子***(IMS)828。IMS 828可以被配置成提供如身份服务等各种安全相关服务,如信息访问管理、认证和授权服务、用于管理客户身份和角色以及相关功能的服务等。
图9图示了可以用于实施某些实施例的示例性计算机***900。例如,在一些实施例中,计算机***900可以用于实施以上所述的ASR子***、NLU子***以及各种服务器和计算机***中的任何一个。如图9所示,计算机***900包括各种子***,包括通过总线子***902与多个其他子***通信的处理子***904。这些其他子***可以包括处理加速单元906、I/O子***908、存储子***918和通信子***924。存储子***918可以包括非暂态计算机可读存储介质,包括存储介质922和***存储器910。
总线子***902提供用于使计算机***900的各个部件和子***按预期彼此通信的机构。虽然总线子***902被示意性地示出为单个总线,但是总线子***的替代性实施例可以利用多个总线。总线子***902可以是包括存储器总线或存储器控制器、***总线、使用各种总线架构中的任何一种的局部总线等的若干种类型的总线结构中的任何一种。例如,这种架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及***部件互连(PCI)总线等,PCI总线可以被实施为被制造成IEEE P1386.1标准的夹层(Mezzanine)总线。
处理子***904控制计算机***900的操作并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核处理器或多核处理器。计算机***900的处理资源可以被组织成一个或多个处理单元932、934等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核、核和处理器的组合或核和处理器的其他组合。在一些实施例中,处理子***904可以包括如图形处理器、数字信号处理器(DSP)等一个或多个专用协处理器。在一些实施例中,处理子***904的处理单元中的一些或全部可以使用如专用集成电路(ASIC)或现场可编程门阵列(FPGA)等定制电路来实施。
在一些实施例中,处理子***904中的处理单元可以执行存储在***存储器910内或计算机可读存储介质922上的指令。在各种实施例中,处理单元可以执行各种程序或代码指令并且可以维护多个同时执行的程序或过程。在任何给定时间,要执行的程序代码中的一些或全部可以驻留在***存储器910中和/或计算机可读存储介质922上,潜在地包括驻留在一个或多个存储设备上。通过适合的编程,处理子***904可以提供以上所述的各种功能。在计算机***900在执行一个或多个虚拟机的实例中,可以向每个虚拟机分配一个或多个处理单元。
在某些实施例中,可以可选地提供处理加速单元906以用于执行定制处理或用于卸载处理子***904所执行的处理中的一些处理,从而加速计算机***900所执行的总体处理。
I/O子***908可以包括用于向计算机***900输入信息和/或用于从或通过计算机***900输出信息的设备和机构。通常,使用术语输入设备旨在包括用于向计算机***900输入信息的所有可能类型的设备和机构。用户界面输入设备可以包括例如键盘、如鼠标或轨迹球的指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、具有话音命令识别***的音频输入设备、麦克风以及其他类型的输入设备。用户界面输入设备还可以包括运动感测和/或姿势识别设备,如使用户能够控制输入设备并与输入设备交互的Microsoft
Figure BDA0002652646330000271
运动传感器、Microsoft
Figure BDA0002652646330000272
360游戏控制器、提供用于使用姿势和口述命令接收输入的界面的设备。用户界面输入设备还可以包括眼部姿势识别设备,如检测来自用户的眼部活动(例如,在拍照和/或进行菜单选择时“眨眼”)并将眼部姿势变换为到输入设备(如Google
Figure BDA0002652646330000273
)的输入的Google
Figure BDA0002652646330000274
眨眼检测器。另外,用户界面输入设备可以包括使用户能够通过话音命令与话音识别***交互的话音识别感测设备。
用户界面输入设备的其他示例包括但不限于三维(3D)鼠标、操纵杆或指向杆、游戏手柄和图形板、以及音频/视觉设备诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、眼睛注视跟踪设备。另外,用户界面输入设备可以包括例如医学成像输入设备,如计算机断层扫描、磁共振成像、正电子发射断层扫描和医学超声检查设备。用户界面输入设备还可以包括例如音频输入设备,如MIDI键盘、数码乐器等。
通常,使用术语输出设备旨在包括用于从计算机***900向用户或其他计算机输出信息的所有可能类型的设备和机构。用户界面输出设备可以包括显示子***、指示灯或如音频输出设备等非视觉显示器。显示子***可以是阴极射线管(CRT)、平板设备诸如使用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏等。例如,用户界面输出设备可以包括但不限于在视觉上传达文本、图形和音频/视频信息的各种显示设备,如监视器、打印机、扬声器、头戴式耳机、汽车导航***、绘图仪、话音输出设备和调制解调器。
存储子***918提供用于存储计算机***900所使用的信息和数据的储存库或数据存储设备。存储子***918提供用于存储提供一些实施例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子***918可以存储当由处理子***904执行时提供以上所描述的功能的软件(例如,程序、代码模块、指令)。软件可以由处理子***904的一个或多个处理单元执行。存储子***918还可以根据本公开的教导提供用于存储所使用的数据的储存库。
存储子***918可以包括一个或多个非暂态存储器设备,所述一个或多个非暂态存储器设备包括易失性存储器设备和非易失性存储器设备。如图9所示,存储子***918包括***存储器910和计算机可读存储介质922。***存储器910可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)和其中存储有固定指令的非易失性只读存储器(ROM)或闪速存储器。在一些实施方式中,包含如在启动期间帮助在计算机***900内的元件之间传送信息的基本例程的基本输入/输出***(BIOS)通常可以存储在ROM中。RAM通常包含目前由处理子***904操作并执行的数据和/或程序模块。在一些实施方式中,***存储器910可以包括如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等多种不同类型的存储器。
通过示例而非限制的方式,如图9所描绘的,***存储器910可以加载正在执行的应用程序912、程序数据914和操作***916,应用程序912可以包括如web浏览器、中间层应用、关系数据库管理***(RDBMS)等各种应用。通过示例的方式,操作***916可以包括各种版本的Microsoft
Figure BDA0002652646330000281
Apple
Figure BDA0002652646330000282
和/或Linux操作***、各种可商购获得的
Figure BDA0002652646330000283
或类UNIX操作***(包括但不限于各种GNU/Linux操作***、Google
Figure BDA0002652646330000284
OS等)和/或如iOS、
Figure BDA0002652646330000285
电话、
Figure BDA0002652646330000286
OS、
Figure BDA0002652646330000287
OS、
Figure BDA0002652646330000288
OS操作***等移动操作***、以及其他操作***。
计算机可读存储介质922可以存储提供一些实施例的功能的编程和数据构造。计算机可读介质922可以为计算机***900提供对计算机可读指令、数据结构、程序模块和其他数据的存储。当由处理子***904执行时提供以上所描述的功能的软件(程序、代码模块、指令)可以存储在存储子***918中。通过示例的方式,计算机可读存储介质922可以包括如硬盘驱动器、磁盘驱动器、光盘驱动器诸如CD ROM、DVD、
Figure BDA0002652646330000289
盘或其他光学介质等非易失性存储器。计算机可读存储介质922可以包括但不限于
Figure BDA00026526463300002810
驱动器、闪速存储器卡、通用串行总线(USB)闪速存储器驱动器、安全数字(SD)卡、DVD盘、数字录像带等。计算机可读存储介质922还可以包括如基于闪速存储器的固态驱动器(SSD)、企业级闪速存储器驱动器、固态ROM等基于非易失性存储器的SSD、如固态RAM、动态RAM、静态RAM等基于易失性存储器的SSD、基于DRAM的SSD、磁阻RAM(MRAM)SSD、以及使用DRAM和基于闪速存储器的SSD的组合的混合SSD。
在某些实施例中,存储子***918还可以包括可以进一步连接到计算机可读存储介质922的计算机可读存储介质读取器920。读取器920可以从如盘、闪速存储器驱动器的存储器设备接收数据并且被配置成从所述存储器设备读取数据。
在某些实施例中,计算机***900可以支持虚拟化技术,包括但不限于对处理和存储器资源的虚拟化。例如,计算机***900可以提供对执行一个或多个虚拟机的支持。在某些实施例中,计算机***900可以执行如促进对虚拟机的配置和管理的管理程序等程序。每个虚拟机可以分配有存储器、计算(例如,处理器、核)、I/O和联网资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自身的操作***,所述操作***可以与由计算机***900所执行的其他虚拟机执行的操作***相同或不同。因此,多个操作***可以潜在地由计算机***900同时运行。
通信子***924提供到其他计算机***和网络的接口。通信子***924用作用于从其他***接收数据并从计算机***900向其他***发射数据的接口。例如,通信子***924可以使计算机***900能够通过因特网构建到一个或多个客户端设备的通信通道以用于从客户端设备接收信息并向客户端设备发送信息。例如,通信子***可以用于与数据库进行通信以导入ASR子***和/或NLU子***的更新后的训练数据。
通信子***924可以支持有线通信协议和/或无线通信协议两者。例如,在某些实施例中,通信子***924可以包括用于访问无线话音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术诸如3G、4G或EDGE(全球演进增强型数据速率)等先进的数据网络技术、WiFi(IEEE 802.XX家庭标准、或其他移动通信技术、或其任何组合)、全球定位***(GPS)接收器部件和/或其他部件。在一些实施例中,除了无线接口之外或替代无线接口,通信子***924可以提供有线网络连接性(例如,以太网)。
通信子***924可以接收并发射各种形式的数据。例如,在一些实施例中,除了其他形式之外,通信子***924还可以接收结构化和/或非结构化数据馈送926、事件流928、事件更新930等形式的输入通信。例如,通信子***924可以被配置成从社交媒体网络和/或其他通信服务的用户实时地接收(或发送)数据馈送926,如
Figure BDA0002652646330000291
馈送、
Figure BDA0002652646330000292
更新、web馈送诸如丰富站点摘要(RSS)馈送和/或来自一个或多个第三方信息源的实时更新。
在某些实施例中,通信子***924可以被配置成接收连续数据流形式的数据,所述连续数据流可以包括可以没有显式结束的本质上连续的或无界的实时事件的事件流928和/或事件更新930。生成连续数据的应用的示例可以包括例如传感器数据应用、财务收报机、网络性能测量工具(例如,网络检测和流量管理应用)、点击流分析工具、汽车交通监视等。
通信子***924还可以被配置成将数据从计算机***900传达到其他计算机***或网络。可以将数据以如结构化和/或非结构化数据馈送926、事件流928、事件更新930等各种不同的形式传达到可以与耦接到计算机***900的一个或多个流数据源计算机通信的一个或多个数据库。
计算机***900可以是各种类型中的一种,包括手持便携式设备(例如,
Figure BDA0002652646330000301
蜂窝电话、
Figure BDA0002652646330000302
计算平板计算机、PDA)、可穿戴设备(例如,Google
Figure BDA0002652646330000303
头戴式显示器)、个人计算机、工作站、主机、自助服务终端、服务器机架、或任何其他数据处理***。由于计算机和网络的不断变化的性质,对图9所描绘的计算机***900的描述旨在仅作为具体示例。具有比图9所描绘的***更多或更少的部件的许多其他配置是可能的。基于本公开和本文所提供的教导,本领域普通技术人员应了解用于实施各种实施例的其他方式和/或方法。
虽然已经描述了具体实施例,但是各种修改、更改、替代性构造和等同物是可能的。实施例不局限于在某些具体数据处理环境中的操作,而是自由地在多个数据处理环境中操作。另外,尽管已经使用特定系列的事务和步骤描述了某些实施例,但是对于本领域技术人员而言应当显而易见的是,这不旨在是限制性的。虽然一些流程图将操作描述为顺序过程,但是许多操作可以并行地或同时地执行。另外,可以重新布置操作的顺序。过程可以具有图中未包括的另外的步骤。可以单独地或联合地使用以上所述的实施例的各种特征和方面。
进一步地,虽然已经使用硬件和软件的特定组合描述了某些实施例,但是应当认识到,硬件和软件的其他组合也是可能的。某些实施例可以仅在硬件中或仅在软件中或使用其组合实施。本文所描述的各种过程可以在相同处理器或不同处理器上以任何组合实施。
在将设备、***、部件或模块描述为被配置成执行某些操作或功能的情况下,这种配置可以例如通过将电子电路设计成执行操作、通过对可编程电子电路(诸如微处理器)进行编程以执行操作,诸如通过执行计算机指令或代码,或通过被编程成执行存储在非暂态存储器介质上的代码或指令的处理器或核或其任何组合来完成。过程可以使用包括但不限于用于过程间通信的传统技术的各种技术进行通信,并且不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。
本公开中给出了具体细节以提供对实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践实施例。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊实施例。此描述仅提供了示例实施例并且不旨在限制其他实施例的范围、适用性或配置。而是,先前对实施例的描述将为本领域技术人员提供用于实施各种实施例的使能描述。可以对元件的功能和布置作出各种改变。
因此,应当从说明性而非限制性意义上看待说明书和附图。然而,将明显的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,可以对其作出添加、减少、删除以及其他修改和改变。因此,虽然已经描述了具体实施例,但是这些示例不旨在是限制性的。各种修改和等同物均在以下权利要求的范围内。

Claims (20)

1.一种计算机实施的方法,用于使用一个或多个处理器实施的对话***,所述方法包括:
由所述对话***的第一子***接收语音输入;
由所述第一子***处理所述语音输入以标识与所述语音输入相对应的发音;
由所述第一子***搜索存储在存储器中的词典,以在所述词典中查找与所标识的发音相对应的匹配条目,所述词典包括多个条目,所述多个条目中的每个条目存储一个或多个单词的集合,所述一个或多个单词的集合映射到在所述条目中存储的发音,所述多个条目中的每个条目进一步包括附加信息,所述附加信息能够用于确定由所述条目存储的所述一个或多个单词的集合的含义表示;
由所述第一子***将标识所述匹配条目的信息传送到所述对话***的第二子***;以及
由所述第二子***使用标识所述条目的信息来生成所述语音输入的含义表示,所述含义表示标识与所述语音输入相关联的意图,其中,所述生成包括由所述第二子***使用存储在所述词典中的所述匹配条目中的所述附加信息。
2.如权利要求1所述的方法,其中:
所述第一子***是自动语音识别(ASR)子***;并且
所述第二子***是自然语言理解(NLU)子***。
3.如权利要求1所述的方法,其中:
指示所述条目的信息包括指向所述附加信息的指针;并且
所述对话***的所述第二子***使用所述指针来检索所述附加信息。
4.如权利要求1所述的方法,其中:
所述附加信息包括与所述单词的集合相对应的命名实体类型;并且
生成所述含义表示包括将所述命名实体类型链接到所述单词的集合。
5.如权利要求1所述的方法,其中:
所述单词的集合是第一单词集合;并且
所述方法进一步包括:
由所述对话***的所述第一子***使用所述词典来标识第二单词集合;
由所述对话***的所述第一子***将所述第二单词集合输出到所述对话***的所述第二子***;以及
由所述对话***的所述第二子***通过使用机器学习模型将所述第一单词集合中的单词和所述第二单词集合中的单词彼此相关联来确定上下文。
6.如权利要求1所述的方法,进一步包括:
由所述对话***的所述第二子***将所生成的含义表示输出到所述对话***的第三子***。
7.如权利要求1所述的方法,进一步包括:
标识由所述第一子***使用的信息;
标识由所述第二子***使用的信息;
确定将由所述第一子***使用的所述信息与由所述第二子***使用的所述信息进行关联的信息;
生成由所述第一子***使用的所述词典、由所述第二子***使用的所述信息以及所述关联信息;以及
使所述词典能够由所述第一子***和所述第二子***访问。
8.一种非暂态计算机可读存储器,存储能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下操作的处理的指令:
由对话***的第一子***接收语音输入;
由所述第一子***处理所述语音输入以标识与所述语音输入相对应的发音;
由所述第一子***搜索存储在存储器中的词典,以在所述词典中查找与所标识的发音相对应的匹配条目,所述词典包括多个条目,所述多个条目中的每个条目存储一个或多个单词的集合,所述一个或多个单词的集合映射到在所述条目中存储的发音,所述多个条目中的每个条目进一步包括附加信息,所述附加信息能够用于确定由所述条目存储的所述一个或多个单词的集合的含义表示;
由所述第一子***将标识所述匹配条目的信息传送到所述对话***的第二子***;以及
由所述第二子***使用标识所述条目的信息来生成所述语音输入的含义表示,所述含义表示标识与所述语音输入相关联的意图,其中,所述生成包括由所述第二子***使用存储在所述词典中的所述匹配条目中的所述附加信息。
9.如权利要求8所述的非暂态计算机可读存储器,其中:
所述第一子***是自动语音识别(ASR)子***;并且
所述第二子***是自然语言理解(NLU)子***。
10.如权利要求8所述的非暂态计算机可读存储器,其中:
指示所述条目的信息包括指向所述附加信息的指针;并且
所述对话***的所述第二子***使用所述指针来检索所述附加信息。
11.如权利要求8所述的非暂态计算机可读存储器,其中:
所述附加信息包括与所述单词的集合相对应的命名实体类型;并且
生成所述含义表示包括将所述命名实体类型链接到所述单词的集合。
12.如权利要求8所述的非暂态计算机可读存储器,其中:
所述单词的集合是第一单词集合;并且
所述处理进一步包括:
由所述对话***的所述第一子***使用所述词典来标识第二单词集合;
由所述对话***的所述第一子***将所述第二单词集合输出到所述对话***的所述第二子***;以及
由所述对话***的所述第二子***通过使用机器学习模型将所述第一单词集合中的单词和所述第二单词集合中的单词彼此相关联来确定上下文。
13.如权利要求8所述的非暂态计算机可读存储器,所述处理进一步包括:
由所述对话***的所述第二子***将所生成的含义表示输出到所述对话***的第三子***。
14.如权利要求8所述的非暂态计算机可读存储器,所述处理进一步包括:
标识由所述第一子***使用的信息;
标识由所述第二子***使用的信息;
确定将由所述第一子***使用的所述信息与由所述第二子***使用的所述信息进行关联的信息;
生成由所述第一子***使用的所述词典、由所述第二子***使用的所述信息以及所述关联信息;以及
使所述词典能够由所述第一子***和所述第二子***访问。
15.一种对话***,包括:
一个或多个处理器;
耦接到所述一个或多个处理器的存储器,所述存储器存储能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下操作的处理的指令:
由所述对话***的第一子***接收语音输入;
由所述第一子***处理所述语音输入以标识与所述语音输入相对应的发音;
由所述第一子***搜索存储在所述存储器中的词典,以在所述词典中查找与所标识的发音相对应的匹配条目,所述词典包括多个条目,所述多个条目中的每个条目存储一个或多个单词的集合,所述一个或多个单词的集合映射到在所述条目中存储的发音,所述多个条目中的每个条目进一步包括附加信息,所述附加信息能够用于确定由所述条目存储的所述一个或多个单词的集合的含义表示;
由所述第一子***将标识所述匹配条目的信息传送到所述对话***的第二子***;以及
由所述第二子***使用标识所述条目的所述信息来生成所述语音输入的含义表示,所述含义表示标识与所述语音输入相关联的意图,其中,所述生成包括由所述第二子***使用存储在所述词典中的所述匹配条目中的所述附加信息。
16.如权利要求15所述的对话***,其中:
所述第一子***是自动语音识别(ASR)子***;并且
所述第二子***是自然语言理解(NLU)子***。
17.如权利要求15所述的对话***,其中:
指示所述条目的信息包括指向所述附加信息的指针;并且
所述对话***的所述第二子***使用所述指针来检索所述附加信息。
18.如权利要求15所述的对话***,其中:
所述附加信息包括与所述单词的集合相对应的命名实体类型;并且
生成所述含义表示包括将所述命名实体类型链接到所述单词的集合。
19.如权利要求15所述的对话***,所述处理进一步包括:
由所述对话***的所述第二子***将所生成的含义表示输出到所述对话***的第三子***。
20.如权利要求15所述的对话***,所述处理进一步包括:
标识由所述第一子***使用的信息;
标识由所述第二子***使用的信息;
确定将由所述第一子***使用的所述信息与由所述第二子***使用的所述信息进行关联的信息;
生成由所述第一子***使用的所述词典、由所述第二子***使用的所述信息以及所述关联信息;以及
使所述词典能够由所述第一子***和所述第二子***访问。
CN202010875818.3A 2019-09-12 2020-08-27 使用集成共享资源来流线化对话处理 Active CN112487137B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962899651P 2019-09-12 2019-09-12
US62/899,651 2019-09-12
US16/927,357 US11403462B2 (en) 2019-09-12 2020-07-13 Streamlining dialog processing using integrated shared resources
US16/927,357 2020-07-13

Publications (2)

Publication Number Publication Date
CN112487137A true CN112487137A (zh) 2021-03-12
CN112487137B CN112487137B (zh) 2023-11-03

Family

ID=74869646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010875818.3A Active CN112487137B (zh) 2019-09-12 2020-08-27 使用集成共享资源来流线化对话处理

Country Status (2)

Country Link
US (1) US11403462B2 (zh)
CN (1) CN112487137B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11367431B2 (en) * 2020-03-13 2022-06-21 Amazon Technologies, Inc. Synthetic speech processing
US11720586B2 (en) * 2021-03-26 2023-08-08 International Business Machines Corporation Automatic conversion of data within data pipeline
US20230008868A1 (en) * 2021-07-08 2023-01-12 Nippon Telegraph And Telephone Corporation User authentication device, user authentication method, and user authentication computer program

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102473413A (zh) * 2009-07-16 2012-05-23 独立行政法人情报通信研究机构 语音翻译***、词典服务器装置及其程序
US20160049144A1 (en) * 2014-08-18 2016-02-18 At&T Intellectual Property I, L.P. System and method for unified normalization in text-to-speech and automatic speech recognition
CN106570180A (zh) * 2016-11-10 2017-04-19 北京百度网讯科技有限公司 基于人工智能的语音搜索方法及装置
CN106663427A (zh) * 2014-09-30 2017-05-10 苹果公司 用于服务语音发音的高速缓存设备
CN107004410A (zh) * 2014-10-01 2017-08-01 西布雷恩公司 语音和连接平台
CN109196495A (zh) * 2016-03-23 2019-01-11 亚马逊技术公司 细粒度自然语言理解
CN109616108A (zh) * 2018-11-29 2019-04-12 北京羽扇智信息科技有限公司 多轮对话交互处理方法、装置、电子设备及存储介质
CN109800407A (zh) * 2017-11-15 2019-05-24 腾讯科技(深圳)有限公司 意图识别方法、装置、计算机设备和存储介质
CN109933774A (zh) * 2017-12-15 2019-06-25 腾讯科技(深圳)有限公司 语义识别方法、装置存储介质和电子装置
CN110070861A (zh) * 2018-01-22 2019-07-30 丰田自动车株式会社 信息处理装置和信息处理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0827640A (ja) 1994-07-07 1996-01-30 Toyobo Co Ltd ポリエステル系フィラメント加工糸及びその製造法
US8285537B2 (en) * 2003-01-31 2012-10-09 Comverse, Inc. Recognition of proper nouns using native-language pronunciation
US8594996B2 (en) * 2007-10-17 2013-11-26 Evri Inc. NLP-based entity recognition and disambiguation
US10170114B2 (en) * 2013-05-30 2019-01-01 Promptu Systems Corporation Systems and methods for adaptive proper name entity recognition and understanding
US10672391B2 (en) * 2014-09-26 2020-06-02 Nuance Communications, Inc. Improving automatic speech recognition of multilingual named entities
US9484021B1 (en) 2015-03-30 2016-11-01 Amazon Technologies, Inc. Disambiguation in speech recognition
US9934777B1 (en) 2016-07-01 2018-04-03 Amazon Technologies, Inc. Customized speech processing language models

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102473413A (zh) * 2009-07-16 2012-05-23 独立行政法人情报通信研究机构 语音翻译***、词典服务器装置及其程序
US20160049144A1 (en) * 2014-08-18 2016-02-18 At&T Intellectual Property I, L.P. System and method for unified normalization in text-to-speech and automatic speech recognition
CN106663427A (zh) * 2014-09-30 2017-05-10 苹果公司 用于服务语音发音的高速缓存设备
CN107004410A (zh) * 2014-10-01 2017-08-01 西布雷恩公司 语音和连接平台
CN109196495A (zh) * 2016-03-23 2019-01-11 亚马逊技术公司 细粒度自然语言理解
CN106570180A (zh) * 2016-11-10 2017-04-19 北京百度网讯科技有限公司 基于人工智能的语音搜索方法及装置
CN109800407A (zh) * 2017-11-15 2019-05-24 腾讯科技(深圳)有限公司 意图识别方法、装置、计算机设备和存储介质
CN109933774A (zh) * 2017-12-15 2019-06-25 腾讯科技(深圳)有限公司 语义识别方法、装置存储介质和电子装置
CN110070861A (zh) * 2018-01-22 2019-07-30 丰田自动车株式会社 信息处理装置和信息处理方法
CN109616108A (zh) * 2018-11-29 2019-04-12 北京羽扇智信息科技有限公司 多轮对话交互处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US20210081609A1 (en) 2021-03-18
US11403462B2 (en) 2022-08-02
CN112487137B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
EP4028932B1 (en) Reduced training intent recognition techniques
CN114365215B (zh) 动态上下文对话会话扩展
US11935521B2 (en) Real-time feedback for efficient dialog processing
US11551676B2 (en) Techniques for dialog processing using contextual data
CN112487137B (zh) 使用集成共享资源来流线化对话处理
CN112487790B (zh) 包括粗略语义解析器和精细语义解析器的改进语义解析器
US11810553B2 (en) Using backpropagation to train a dialog system
US11514911B2 (en) Reduced training for dialog systems using a database
US11790901B2 (en) Task-oriented dialog suitable for a standalone device
CN112489632B (zh) 实施校正模型以减少自动语音识别错误的传播
EP3792912B1 (en) Improved wake-word recognition in low-power devices
CN114365141A (zh) 使用可生性对抗网络训练对话***的语义解析器
US20210081799A1 (en) Compressing neural networks for natural language understanding

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
GR01 Patent grant
GR01 Patent grant