CN117373445A - 一种语音指令处理方法、装置、系统以及存储介质 - Google Patents

一种语音指令处理方法、装置、系统以及存储介质 Download PDF

Info

Publication number
CN117373445A
CN117373445A CN202210775676.2A CN202210775676A CN117373445A CN 117373445 A CN117373445 A CN 117373445A CN 202210775676 A CN202210775676 A CN 202210775676A CN 117373445 A CN117373445 A CN 117373445A
Authority
CN
China
Prior art keywords
voice
voice command
historical
instruction
command
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
CN202210775676.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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210775676.2A priority Critical patent/CN117373445A/zh
Priority to PCT/CN2023/104190 priority patent/WO2024002298A1/zh
Publication of CN117373445A publication Critical patent/CN117373445A/zh
Pending legal-status Critical Current

Links

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/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephonic Communication Services (AREA)

Abstract

一种语音指令处理方法、装置、系统以及存储介质。该方法包括:语音助手获取第一语音指令;确定所述第一语音指令的意图,并根据所述第一语音指令的意图确定所述第一语音指令缺失槽位;获取历史语音指令集合中的第二语音指令,所述第二语音指令与所述第一语音指令相关;根据所述第二语音指令的槽位确定所述第一语音指令的槽位。采用上述方法可以在语音指令语义缺失的情况下,确定该语音指令的完整语义,从而可以使得该语音指令能够被执行。

Description

一种语音指令处理方法、装置、系统以及存储介质
技术领域
本申请涉及语音控制技术领域,尤其涉及一种语音指令处理方法、装置、系统以及存储介质。
背景技术
随着信息技术的飞速发展,语音控制作为人机交互的一种形式应用得越来越广泛。
目前,语音控制通常是通过语音助手实现的,用户可以通过语音助手输入语音指令,然后语音助手根据用户输入的语音指令控制电子设备执行与语音指令相对应的操作。尤其在智能家居领域,语音助手可以作为智能家居的控制端口,直接通过语音对话,自动控制智能设备,方便用户对各种设备的使用。
当前的语音助手对语音指令的处理缺乏多轮接续的能力,要求用户每次输入的语音指令提供完整信息,比如需要包括意图和槽位,若用户输入的语音指令语义不完整,比如缺少执行设备,则语音助手无法理解该语音指令,该语音指令无法被执行。
发明内容
本申请实施例提供一种语音指令处理方法、装置、系统以及存储介质,用以在语音指令语义缺失的情况下,确定该语音指令的完整语义,从而可以使得该语音指令能够被执行。
第一方面,提供一种语音指令处理方法,该方法可以由语音助手执行。所述方法包括:获取第一语音指令,确定所述第一语音指令的意图,并根据所述第一语音指令的意图确定所述第一语音指令缺失槽位;获取历史语音指令集合中的第二语音指令,所述第二语音指令与所述第一语音指令相关;根据所述第二语音指令的槽位确定所述第一语音指令的槽位。
上述实现方式中,在第一语音指令缺失槽位(比如意图的执行者,更具体地,比如执行设备、应用或服务等)的情况下,可以利用历史语音指令集合中与第一语音指令相关的第二语音指令的槽位,来填充第一语音指令的槽位,从而得到语义完整的语音指令,进而可以使得该语音指令能够被执行。
在一种可能的实现方式中,所述根据所述第二语音指令的槽位确定所述第一语音指令的槽位包括:所述第一语音指令缺失的槽位由所述第二语音指令对应的槽位提供。
在一种可能的是实现方式中,所述根据所述第二语音指令的槽位确定所述第一语音指令的槽位之后,所述方法还包括:将所述第二语音指令的槽位添加到所述第一语音指令中,将添加有所述槽位的第一语音指令存储到所述历史语音指令集合中。
上述实现方式中,将补充完整的第一语音指令存储到历史语音指令集合中,可以为后续的语音处理操作提供依据。可选的,可以在第一语音指令执行成功后,将该第一语音指令存储到历史语音指令集合中。
可选的,所述将所述第二语音指令的槽位添加到所述第一语音指令中,包括:获取所述第二语音指令的结构化数据中的槽位,所述第二语音指令的结构化数据中的槽位为自然语言表述的槽位信息或为协议参数,所述协议参数为对所述自然语言表述的槽位信息进行映射后得到的协议参数;将所述第二语音指令的结构化数据中的槽位,添加到所述第一语音指令的结构化数据中。
可选的,所述方法还包括:若所述第一语音指令中包括用于指示所述第一语音指令的槽位的指示代词,则将所述指示代词从所述第一语音指令中删除。
在将第一语音指令补充完整后,将其中用于指示槽位的指示代词删除,可以使得该语音指令的语义更清楚。
在一种可能的实现方式中,所述获取历史语音指令集合中的第二语音指令,包括:根据所述第一语音指令与历史语音指令集合中的历史语音指令的相关度,获取所述历史语音指令集合中与所述第一语音指令相关的第二语音指令。
可选的,所述根据所述第一语音指令与历史语音指令集合中的历史语音指令的相关度,获取所述历史语音指令集合中与所述第一语音指令相关的第二语音指令,包括:根据所述第一语音指令、所述第一语音指令的意图和/或所述第一语音指令对应的关联信息,以及所述历史语音指令集合中各历史语音指令、各历史语音指令的意图和/或对应的关联信息,确定所述第一语音指令与所述历史语音指令集合中各历史语音指令的相关度;其中,所述第一语音指令对应的关联信息是在接收到所述第一语音指令时收集的,所述历史语音指令对应的关联信息是在接收到所述历史语音指令时收集的;根据所述第一语音指令与所述历史语音指令集合中各历史语音指令的相关度,从所述历史语音指令集合中选取与所述第一语音指令相关的第二语音指令。
上述实现方式中,根据语音指令对应的关联信息进行语音指令的匹配操作,可以使得匹配结果(即匹配到的第二语音指令)更加准确。
在一种可能的实现方式中,所述获取历史语音指令集合中的第二语音指令,包括:第一电子设备向云端或第三电子设备发送第一请求消息,所述第一请求消息用于请求获取所述历史语音指令集合中与所述第一语音指令关联的语音指令;其中,所述第一电子设备为所述第一语音指令的接收设备;所述第一电子设备接收所述云端或所述第三电子设备发送的第一响应消息,所述第一响应消息中携带有所述第二语音指令,所述第二语音指令是根据所述第一语音指令与历史语音指令集合中的历史语音指令的相关度,从所述历史语音指令集合中获取到的。
可选的,所述第一请求消息携带所述第一语音指令、第一语音指令的意图和/或所述第一语音指令对应的关联信息。
可选的,所述第一语音指令对应的关联信息,包括以下至少一项:
设备信息,所述设备信息为所述第一语音指令的接收设备的信息;
用户账户信息,所述用户账户信息为登录语音助手的用户账户信息;
位置信息,所述位置信息为所述第一语音指令的接收设备的位置信息;
时间信息,所述时间信息包括所述第一语音指令的接收时间,和/或,所述第一语音指令与前一个接收到的语音指令之间的时间间隔;
用户身份信息,所述用户身份信息与所述第一语音指令的音频数据的特征信息相关联。
上述实现方式中,语音指令对应的关联信息可以包括多个不同维度的信息,从而提高匹配的准确性。
在一种可能的实现方式中,所述获取历史语音指令集合中的第二语音指令,以及所述根据所述第二语音指令的槽位确定所述第一语音指令的槽位,包括:云端根据所述第一语音指令与历史语音指令集合中的历史语音指令的相关度,获取所述历史语音指令集合中与所述第一语音指令相关的第二语音指令;根据所述第二语音指令的槽位确定所述第一语音指令的槽位,所述第一语音指令缺失的槽位由所述第二语音指令对应的槽位提供。
在一种可能的实现方式中,所述获取第一语音指令,包括:云端对来自第一电子设备的所述第一语音指令的音频数据进行转换,得到对应的文本数据;所述确定所述第一语音指令的意图,并根据所述第一语音指令的意图确定所述第一语音指令缺失槽位,包括:所述云端对所述文本数据进行解析,得到所述第一语音指令的意图,并根据所述第一语音指令的意图确定所述第一语音指令缺失槽位;所述获取历史语音指令集合中的第二语音指令,以及所述根据所述第二语音指令的槽位确定所述第一语音指令的槽位,包括:所述云端获取历史语音指令集合中的第二语音指令,并根据所述第二语音指令的槽位确定所述第一语音指令的槽位。
在一种可能的实现方式中,所述历史语音指令集合中包括历史语音指令的结构化数据,所述历史语音指令的结构化数据包括意图和槽位。
在一种可能的实现方式中,所述槽位为执行语音指令的意图的设备或应用或服务。
第二方面,提供一种语音指令处理系统,包括:
自动语音识别模块,用于将第一语音指令的音频数据转换为文本数据;
自然语言理解模块,用于对所述第一语音指令的文本数据进行解析,得到所述第一语音指令的意图;
处理模块,若根据所述第一语音指令的意图确定所述第一语音指令缺失槽位,则获取历史语音指令集合中的第二语音指令,根据所述第二语音指令的槽位确定所述第一语音指令的槽位;其中,所述第二语音指令与所述第一语音指令相关。
在一种可能的实现方式中,所述第一语音指令缺失的槽位由所述第二语音指令对应的槽位提供。
在一种可能的实现方式中,所述处理模块,还用于:在根据所述第二语音指令的槽位确定所述第一语音指令的槽位之后,将所述第二语音指令的槽位添加到所述第一语音指令中,将添加有所述槽位的第一语音指令存储到所述历史语音指令集合中。
可选的,所述处理模块,具体用于:获取所述第二语音指令的结构化数据中的槽位,所述第二语音指令的结构化数据中的槽位为自然语言表述的槽位信息或为协议参数,所述协议参数为对所述自然语言表述的槽位信息进行映射后得到的协议参数;将所述第二语音指令的结构化数据中的槽位,添加到所述第一语音指令的结构化数据中。
可选的,所述处理模块,还用于:若所述第一语音指令中包括用于指示所述第一语音指令的槽位的指示代词,则将所述指示代词从所述第一语音指令中删除。
在一种可能的实现方式中,所述处理模块,具体用于:根据所述第一语音指令与历史语音指令集合中的历史语音指令的相关度,获取所述历史语音指令集合中与所述第一语音指令相关的第二语音指令。
可选的,所述处理模块,具体用于:根据所述第一语音指令、所述第一语音指令的意图和/或所述第一语音指令对应的关联信息,以及所述历史语音指令集合中各历史语音指令、各历史语音指令的意图和/或对应的关联信息,确定所述第一语音指令与所述历史语音指令集合中各历史语音指令的相关度;其中,所述第一语音指令对应的关联信息是在接收到所述第一语音指令时收集的,所述历史语音指令对应的关联信息是在接收到所述历史语音指令时收集的;根据所述第一语音指令与所述历史语音指令集合中各历史语音指令的相关度,从所述历史语音指令集合中选取与所述第一语音指令相关的第二语音指令。
可选的,所述第一语音指令对应的关联信息,包括以下至少一项:
设备信息,所述设备信息为所述第一语音指令的接收设备的信息;
用户账户信息,所述用户账户信息为登录语音助手的用户账户信息;
位置信息,所述位置信息为所述第一语音指令的接收设备的位置信息;
时间信息,所述时间信息包括所述第一语音指令的接收时间,和/或,所述第一语音指令与前一个接收到的语音指令之间的时间间隔;
用户身份信息,所述用户身份信息与所述第一语音指令的音频数据的特征信息相关联。
在一种可能的实现方式中,所述历史语音指令集合中包括历史语音指令的结构化数据,所述历史语音指令的结构化数据包括意图和槽位。
在一种可能的实现方式中,所述槽位为执行语音指令的意图的设备或应用或服务。
在一种可能的实现方式中,所述自动语音识别模块、所述自然语言理解模块、所述处理模块位于第一电子设备;或者,所述自动语音识别模块、所述自然语言理解模块位于第一电子设备,所述处理模块位于云端或第三电子设备;或者,所述自动语音识别模块位于第一电子设备,所述自然语言理解模块、所述处理模块位于云端;或者,所述自动语音识别模块、所述自然语言理解模块、所述处理模块位于云端。
在一种可能的实现方式中,若所述自动语音识别模块、所述自然语言理解模块位于第一电子设备,所述处理模块位于云端,则所述第一电子设备与所述云端之间进行信息交互,比如,第一电子设备可以向云端发送请求消息,以请求云端的处理模块执行相应处理操作;云端的处理模块完成相应处理操作后,可以向第一电子设备返回响应消息。可选的,所述请求消息中可以携带所述第一语音指令的结构化数据(其中包括意图)和/或所述第一语音指令对应的关联信息,所述响应消息中可以携带所述第二语音指令或者所述第二语音指令的槽位。
在一种可能的实现方式中,若所述自动语音识别模块位于第一电子设备,所述自然语言理解模块、所述处理模块位于云端,则所述第一电子设备与所述云端之间进行信息交互,比如,第一电子设备可以向云端发送请求消息,以请求云端的处理模块执行相应处理操作;云端的处理模块完成相应处理操作后,可以向第一电子设备返回响应消息。可选的,所述请求消息中可以携带所述第一语音指令的文本数据和/或所述第一语音指令对应的关联信息,所述响应消息中可以携带所述第二语音指令或者所述第二语音指令的槽位。
在一种可能的实现方式中,上述系统还包括:执行模块,用于根据所述第一语音指令的意图和槽位,执行所述第一语音指令或指示所述第一语音指令的执行设备执行所述第一语音指令,所述执行设备由所述第一语音指令的槽位提供。
在一种可能的实现方式中,上述系统还包括:自然语言生成模块、文本转语音模块;
所述执行模块,还用于获取所述第一语音指令的执行结果;
所述自然语言生成模块,用于将所述第一语音指令的执行结果转换为文本数据,所述文本数据为文本格式的自然语言;
所述文本转语音模块,用于将所述文本数据转换为音频数据。
第三方面,提供一种电子设备,包括:一个或多个处理器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行如上述第一方面中任意一项所述的方法。
第四方面,提供一种计算机可读存储介质,包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如上述第一方面中任意一项所述的方法。
第五方面,提供一种计算机程序产品,当其在电子设备上运行时,使得所述电子设备执行如上述第一方面中任意一项所述的方法。
第六方面,提供一种芯片系统,包括:存储器,用于存储计算机程序;处理器;当处理器从存储器中调用并运行计算机程序后,使得安装有该芯片系统的电子设备执行如上述第一方面中任意一项所述的方法。
以上第二方面至第六方面的有益效果请参见第一方面的有益效果,不重复赘述。
附图说明
图1为本申请实施例中的场景一的系统架构示意图;
图2为本申请实施例中的场景二的系统架构示意图;
图3为本申请实施例中的场景三的系统架构示意图;
图4为本申请实施例中的场景四的系统架构示意图;
图5为本申请实施例中的场景五的系统架构示意图;
图6为本申请实施例提供的电子设备内部硬件结构示意图;
图7为本申请实施例中的电子设备的软件结构示意图;
图8a、图8b、图8c分别为本申请实施例中语音助手的功能模块的部署示意图;
图9为本申请实施例提供的语音指令处理方法的执行逻辑示意图;
图10为本申请实施例提供的一种语音指令处理方法的流程示意图;
图11为本申请实施例中的一种通过多轮对话澄清执行设备的示意图;
图12为本申请实施例提供的一种语音指令处理方法的流程示意图;
图13为本申请实施例提供的另一种语音指令处理方法的流程示意图;
图14a、图14b为本申请实施例中示例一中的语音指令处理场景示意图;
图15a、图15b为本申请实施例中示例二中的语音指令处理场景示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例涉及的多个,是指大于或等于两个。需要说明的是,在本申请实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
当前的语音助手对语音指令的处理缺乏多轮接续的能力,要求用户每次输入的语音指令提供完整信息,比如需要包括意图和槽位(比如包括用于执行该意图的设备,或者用于执行该意图的应用程序或服务等),若用户输入的语音指令语义不完整,比如缺少槽位,则语音助手无法理解该语音指令,该语音指令无法被执行。
基于此,本申请实施例提供一种语音指令处理方法、装置、系统以及存储介质,用以在语音指令语义缺失的情况下,语音助手可以基于历史语音指令,确定当前语音指令中的缺失部分(比如执行设备信息),从而可以使得该语音指令语义完整,进而使得该语音指令能够被执行。
下面首先对本申请实施例涉及的技术术语进行说明。
(1)语音助手。
本申请实施例中的“语音助手”是指一种语音应用程序,通过智能对话与即时问答的智能交互,以帮助用户解决各种问题,比如可以帮忙用户解决生活类问题。语音助手通常具有自动语音识别(automatic speech recognition,ASR)功能以及自然语言理解(natural language understanding,NLU)模块等。ASR功能用于将音频数据转为文本数据,NLU功能用于从文本数据中解析出语音指令中包含的意图和槽位等信息。
在一种可能的实现方式中,语音助手的全部功能可以在一个电子设备中实现。在另一种可能的实现方式中,语音助手的功能可以在云端实现,语音指令的音频数据的接收功能可以在电子设备中实现。在另一种可能的实现方式中,语音助手的部分功能在电子设备中实现,其它部分功能在云端实现。在另一种可能的实现方式中,语音助手的部分功能在第一电子设备中实现,其它部分功能在第三电子设备中实现,比如,语音指令的音频数据的接收功能在第一电子设备上实现,语音助手的其它功能在第三电子设备上实现。
需要说明的是,语音助手也称为语音应用或语音应用程序,本申请实施例对于语音助手的命名方式不做限制。
(2)语音指令,以及语音指令中的意图和槽位。
意图,是指识别用户实际的或潜在的需求是什么。从根本来说,意图识别是一个分类器,将用户需求划分为某个类型;或者,意图识别是一个排序器,将用户的潜在可能需求集合按照可能性进行排序。
槽位,即意图所带的参数。一个意图可能对应若干个槽位。示例性的,槽位可以包括语音指令的执行设备信息(比如执行设备的类型,具体如“空调”),执行设备所在的位置(比如执行设备所在的房间),执行用户意图的应用程序或服务等。例如对空调温度进行控制时,需要在语音指令中明确给出执行设备为空调以及空调的位置(如果附近有多个空调),以上参数即“对空调温度进行控制”这一意图的槽位。
以槽位参数中的执行设备信息为例,执行设备信息的数据形式可以包括以下两种:
第一种:使用自然语言描述,采用槽位的方式,比如执行设备信息的形式为room(房间):“卧室”,device(设备):“灯”;
第二种:使用底层协议参数描述,直接记录底层设备细节。比如将‘卧室’‘灯’这样的自然语言描述的设备信息转换成设备的协议描述,比如将‘卧室’‘灯’映射为符合物联网(internet of things,IoT)协议的设备标识(deviceID)、设备类型(deviceType)等参数。映射后的参数被携带于控制指令发送给执行设备,以便控制设备可以执行该控制指令。
意图和槽位共同构成了“用户动作”,电子设备无法直接理解自然语言,因此意图识别的作用便是将自然语言或操作映射为机器能够理解的结构化语义表示。
以一个“控制空调温度”的需求为例,介绍语音助手对语音指令的解析结果:
用户输入的语音指令为:“客厅空调的温度调高点儿”;
解析得到的用户意图为:调高温度(TURN_UP_TEMPRATURE);
解析得到的槽位包括:槽位一(位置):客厅;槽位二(执行设备):空调。
本申请实施例中,语音指令在不同的处理阶段表现为不同的数据形态。比如,在接收阶段,电子设备接收到的是语音指令的音频数据;语音指令的音频数据可以被转换为对应的文本数据;语音指令的文本数据可以被解析为语音指令的结构化数据,比如包括意图、槽位。进一步的,语音指令的槽位可以表现为自然语言描述的槽位(比如设备名称,如“空调”),也可以被进一步映射为底层协议参数(比如设备类型、设备标识等)。语音指令的结构化数据还可以进一步转换为执行设备可识别的控制指令,以便执行设备执行相应操作。
本文以下的描述中,在有些部分仅笼统使用“语音指令”进行描述,本领域技术人员应该可以根据上下文的内容,理解“语音指令”可能的数据形态。
(3)电子设备。
本申请实施例中,电子设备可以包括手机、个人计算机(personal computer,PC)、平板电脑、台式机(桌面型电脑)、手持计算机、笔记本电脑(膝上型电脑)、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personaldigitalassistant,PDA)、路由器、电视等设备。或者,电子设备可以包括音响、摄像头、空调、电冰箱、智能窗帘、台灯、吊灯、电饭煲、安防设备(如智能电子锁)、机器人、扫地机、智能秤等可以接入家庭无线局域网的设备。或者,电子设备可以包括智能耳机、智能眼镜、智能手表、智能手环、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、无线定位器、追踪器(Tracker)、电子项圈等穿戴设备,本申请实施例中的电子设备还可以是车载音响、车载空调等设备。本申请实施例对电子设备的具体形态不作特殊限制。
(4)云端。
又称云平台,是一种采用应用程序虚拟化技术(application virtualization)的软件平台,集软件搜索、下载、使用、管理、备份等多种功能为一体。通过该平台,各类常用软件都能够在独立的虚拟化环境中被封装起来,从而使应用软件不会与系统产生耦合。
下面结合附图对本申请实施例进行详细描述。
首先,对本申请实施例的几种场景进行说明。
场景一
请参见图1为本申请实施例中的场景一的系统架构示意图。如图所示,第一电子设备10具有音频采集装置或模块(比如麦克风),可以接收用户的语音,第一电子设备10中还设置有语音助手,第一电子设备10上还存储有该第一电子设备10接收以及处理过的语音指令集合(下文中称为历史语音指令集合)。历史语音指令集合中包括至少一个语音指令。
可选的,第一电子设备10还可能与第二电子设备20之间建立有通信连接。示例性的,第一电子设备10和第二电子设备20之间,可以为点对点的直接连接,如通过蓝牙连接,也可以为通过局域网方式连接,还可以为通过互联网方式连接等,此处不作限定。第二电子设备20上可能没有设置语音助手,不具备语音指令处理能力,因此需要与其它电子设备(比如第一电子设备10)连接,以便由其它电子设备处理语音指令,并接收其它语音设备基于语音指令发来的控制指令并进行响应。比如,第二电子设备20可以是空调、照明灯、窗帘等。当然,第二电子设备20也可能具备语音处理能力。
当语音助手接收到音频数据形式的语音指令(也称为语音信号)后,基于ASR功能对接收到的音频数据形式的语音指令进行识别,得到文本形式的语音指令,并基于NLU功能对该文本形式的语音指令进行解析。如果该语音指令中没有包括槽位或者仅使用指示代词来指示槽位,则语音助手查询第一电子设备10中存储的历史语音指令集合,获取与当前的语音指令相关的历史语音指令,根据该历史语音指令的槽位,确定当前语音指令的槽位,从而将当前的语音指令补充完整。之后,语音助手即可执行该语音指令。
可选的,语音助手执行语音指令的方式,可能包括以下几种情况:
情况1:
语音助手确定语音指令的用户意图为执行某种操作,槽位中的执行者为应用程序或服务,则该语音助手通过调用第一电子设备10或云端上的相应应用程序或服务来实现用户的意图。
例如,用户输出的语音指令为“付款”,语音助手基于历史语音指令集合,确定出的槽位为“支付宝”应用,则将该语音指令补充完整,补充完整后的语音指令为“使用支付宝付款”,则语音助手调用所在电子设备上安装的“支付宝”应用,完成支付操作。
再例如,用户输出的语音指令为“备份文件”,语音助手基于历史语音指令集合,确定出的槽位为“华为云”服务,则将该语音指令补充完整,补充完整后的语音指令为“将文件备份到华为云”,则语音助手调用相应的服务接口,通过与云端交互,由位于云端的服务来完成相应操作。
情况2:
语音助手确定语音指令的用户意图为执行某种操作,槽位为该语音助手所在的第一电子设备10,则语音指令通过调用第一电子设备10中的相应功能接口,使得第一电子设备10执行该语音指令。
例如,用户输出的语音指令为“播放电影XXX”,语音助手基于历史语音指令集合,确定出的槽位为“电视”,则将该语音指令补充完整,补充完整后的语音指令为“在电视上播放电影XXX”,则语音助手通过调用智能电视的相关功能接口,以使得智能电视响应该语音指令以播放该电影。
情况3:
语音助手确定语音指令的意图为执行某种操作,槽位中的执行设备为第二电子设备20,则语音助手根据语音指令生成第二电子设备20能够识别的控制指令,将该控制指令发送给第二电子设备20,使得第二电子设备20执行该控制指令。
例如,第一电子设备10(智能音箱)接收到的语音指令为“播放电影XXX”,语音助手基于历史语音指令集合,确定出的槽位为“电视”,则将该语音指令补充完整,补充完整后的语音指令为“在电视上播放电影XXX”,并将该语音指令转换为第二电子设备20(电视)能够识别的控制指令,将该控制指令发送给第二电子设备20(电视),以使得电视响应该控制指令播放该电影。
场景二
请参见图2,为本申请实施例中的场景二的系统架构示意图。如图所示,第一电子设备10具有音频采集装置或模块(比如麦克风),可以接收用户的语音,第一电子设备10中还设置有语音助手。在云端设置有历史语音指令集合,第一电子设备10可以将其接收以及处理过的语音指令存储到云端。可选的,其它电子设备,比如图中的第三电子设备30,也可以将接收以及处理过的语音指令存储到云端的历史语音指令集合中。
可选的,第一电子设备10还可能与第二电子设备20之间建立有通信连接。示例性的,第一电子设备10和第二电子设备20之间,可以为点对点的直接连接,如通过蓝牙连接,也可以为通过局域网方式连接,还可以为通过互联网方式连接等,此处不作限定。
可选的,第一电子设备10和第三电子设备30属于同一分组,同一分组内的电子设备共享云端的一个历史语音指令集合,不同分组的电子设备不能共享同一历史语音指令集合。所述分组可以由用户设置,例如,可以将同一家庭居住地的电子设备划分到同一分组,也可以将同一家庭的多个居住地的电子设备划分到同一分组,本申请实施例对此不作限制。
在一种可能的实现方式中,当语音助手接收到音频数据形式的语音指令后,基于ASR功能对接收到的音频数据形式的语音指令进行识别,得到文本形式的语音指令,并基于NLU功能对该文本形式的语音指令进行解析。如果该语音指令中没有包括槽位或者仅使用指示代词来指示槽位,则语音助手查询云端的历史语音指令集合,获取与当前的语音指令相关的历史语音指令,根据该历史语音指令的槽位,确定当前语音指令的槽位,从而将当前的语音指令补充完整。之后,语音助手即可执行该语音指令。其中,语音助手执行语音指令的方式,可以参见场景中的相关说明。
场景三
请参见图3,为本申请实施例中的场景三的系统架构示意图。如图所示,第一电子设备10和第三电子设备30分别具有音频采集装置或模块(比如麦克风),可以接收用户的语音,第一电子设备10和第三电子设备30中还设置有语音助手。
第一电子设备10和电子设备30之间建立有通信连接。示例性的,第一电子设备10和第三电子设备30之间,可以为点对点的直接连接,如通过蓝牙连接,也可以为通过局域网方式连接,还可以为通过互联网方式连接等,此处不作限定。
可选的,第一电子设备10和第三电子设备30属于同一分组,同一分组内的电子设备可以共享历史语音指令集合,不同分组的电子设备不能共享历史语音指令集合。所述分组可以由用户设置,例如,可以将同一家庭居住地的电子设备设置划分到同一分组,也可以将同一家庭的多个居住地的电子设备划分到同一分组,本申请实施例对此不作限制。
第一电子设备10和第三电子设备30可以共享历史语音指令,使得第一电子设备10和第三电子设备30中的历史语音指令集合实现同步。例如,当第一电子设备10接收并处理完成一个语音指令后,可将处理后的语音指令存储到本设备的历史语音指令集合,并将该语音指令发送给第三电子设备30,使得第三电子设备30将该语音指令存储到第三电子设备30中的历史语音指令集合,用以实现第一电子设备10和第三电子设备30中的历史语音指令集合之间的同步。再例如,第一电子设备10和第三电子设备30之间,可以按照设定时间或周期,同步历史语音指令集合。
可选的,第一电子设备10还可能与第二电子设备20之间建立有通信连接。示例性的,第一电子设备10和第二电子设备20之间,可以为点对点的直接连接,如通过蓝牙连接,也可以为通过局域网方式连接,还可以为通过互联网方式连接等,此处不作限定。
当语音助手接收到音频数据形式的语音指令后,基于ASR功能对接收到的音频数据形式的语音指令进行识别,得到文本形式的语音指令,并基于NLU功能对该文本形式的语音指令进行解析。如果该语音指令中没有包括槽位或者仅使用指示代词来指示槽位,则语音助手查询所在电子设备上的历史语音指令集合(该历史语音指令集合为多个电子设备共享的历史语音指令集合),获取与当前的语音指令相关的历史语音指令,根据该历史语音指令的槽位,确定当前语音指令的槽位,从而将当前的语音指令补充完整。之后,语音助手即可执行该语音指令。其中,语音助手执行语音指令的方式,可以参见场景中的相关说明。
场景四
语音助手中的部分功能可能位于端侧(电子设备上),另外的功能位于云端。图4示例性示出了一种本申请实施例中的场景四的系统架构示意图。如图所示,语音助手中的ASR功能和NLU功能位于第一电子设备10,针对槽位缺失的语音指令进行槽位补充的功能(本申请实施例中称为处理功能)位于云端,历史语音指令集合也位于云端。
第一电子设备10具有音频采集装置或模块(比如麦克风),可以接收用户的语音。可选的,第一电子设备10还可能与第二电子设备20之间建立有通信连接。第二电子设备20上可能没有设置语音助手,不具备语音指令处理能力,因此需要与其它电子设备(比如第一电子设备10)连接,以便由其它电子设备处理语音指令,并接收其它语音设备基于语音指令发来的控制指令并进行响应。当然,第二电子设备20也可能具备语音处理能力。
当第一电子设备10接收到音频数据形式的语音指令后,基于ASR功能对接收到的音频数据形式的语音指令进行识别,得到文本形式的语音指令,并基于NLU功能对该文本形式的语音指令进行解析。如果该语音指令中没有包括槽位或者仅使用指示代词来指示槽位,则语音助手向云端发送请求消息;云端根据该请求消息,基于云端存储的历史语音指令集合获取与当前的语音指令相关的历史语音指令,并将该相关的历史语音指令的相关数据发送给第一电子设备10,使得第一电子设备10中的语音助手可以将该历史语音指令的槽位将当前的语音指令补充完整。之后,语音助手即可执行该语音指令。其中,语音助手执行语音指令的方式,可以参见场景中的相关说明。
场景五
语音助手中的部分功能可能位于端侧(电子设备上),另外的功能位于云端。图5示例性示出了一种本申请实施例中的场景五的系统架构示意图。如图所示,语音助手中的ASR功能和NLU功能位于云端,针对槽位缺失的语音指令进行槽位补充的功能(本申请实施例中称为处理功能)也位于云端,云端还存储有历史语音指令集合。
第一电子设备10具有音频采集装置或模块(比如麦克风),可以接收用户的语音。可选的,第一电子设备10还可能与第二电子设备20之间建立有通信连接。
当第一电子设备10接收到音频数据形式的语音指令后,将该音频数据形式的语音指令发送给云端;云端基于ASR功能对接收到的音频数据形式的语音指令进行识别,得到文本形式的语音指令,并基于NLU功能对该文本形式的语音指令进行解析。如果该语音指令中没有包括槽位或者仅使用指示代词来指示槽位,则基于云端存储的历史语音指令集合获取与当前的语音指令相关的历史语音指令,并将该相关的历史语音指令的相关数据发送给第一电子设备10,使得第一电子设备10中的语音助手可以将该历史语音指令的槽位将当前的语音指令补充完整。之后,语音助手即可执行该语音指令。其中,语音助手执行语音指令的方式,可以参见场景中的相关说明。
在另外的例子中,ASR功能可以位于电子设备侧。
需要说明的是,以上各场景的系统架构仅为一些示例,本申请实施例对此不做限制,比如可以包括更多数量和更多类型的电子设备。
参见图6,为本申请实施例提供的电子设备100的内部硬件结构示意图。所述电子设备100可以是上述图1、图2和图3所示的各场景中的电子设备。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C。进一步的,还可包括耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identificationmodule,SIM)卡接口195等。
处理器110可以包括一个或多个处理单元。例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,显示处理单元(displayprocess unit,DPU),和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。在一些实施例中,电子设备100也可以包括一个或多个处理器110。其中,处理器是电子设备100的神经中枢和指挥中心。处理器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器110中还可以设置存储器,用于存储指令和数据。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。其中,USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。
传感器模块180中可以包括以下一种或多种:压力传感器180A、陀螺仪传感器180B、气压传感器180C、磁传感器180D、加速度传感器180E、距离传感器180F、接近光传感器180G、指纹传感器180H、温度传感器180J、触摸传感器180K、环境光传感器180L、骨传导传感器180M。
充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可以用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如,可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。电子设备100可以通过ISP、摄像头193、视频编解码器、GPU、显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
电子设备100通过GPU,显示屏194,以及应用处理器AP等可以实现显示功能。显示屏194用于显示图像,视频等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
可以理解,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。
参见图7,为本申请实施例中的电子设备的软件结构示意图。所述电子设备可以是上述图1、图2、图3、图4或图5所示的各种场景中的电子设备。
以电子设备100为例,电子设备100的软件架构可以包括应用层701、框架层702、本地库(nativelibraries)&安卓运行时(Android Runtime)703、硬件抽象层(hardwareabstractionlayer,HAL)704和内核705。本申请实施例以电子设备100的操作系统是安卓系统为例进行说明。电子设备100也可以是鸿蒙系统、IOS系统或者其它操作系统,本申请实施例不做限定。
应用层701可以包括语音助手7011。可选的,应用层701还可以包括其它应用,示例性的,所述其它应用可以包括相机,图库,日历,通话,地图,导航,音乐,视频,短信息等,本申请实施例不做限定。
语音助手7011可以控制电子设备100通过语音与用户进行交流。语音助手7011可以访问历史语音指令集合,用以根据历史语音指令集合获取与当前语音指令相关的历史语音指令,从而根据该历史语音指令的槽位,确定当前语音指令中缺失的槽位。可选的,历史语音指令集合可以位于电子设备100本地,也可能位于云端。如果位于云端,语音助手7011可以通过电子设备100的通信模块访问云端的历史语音指令集合,也可以请求云端查询与当前语音指令相关的历史语音指令。
框架层702可以包括活动管理器、窗口管理器,内容提供器,资源管理器,通知管理器等,本申请实施例对此不做任何限制。
本地库&安卓运行时703:包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
HAL704可以包括麦克风、扬声器、WIFI模组、蓝牙模组、摄像头、传感器等。
内核705是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
应理解,图7所示的各分层中包括的模块为本申请实施例中涉及到的模块,上述各分层中包括的模块并不构成对电子设备的结构和模块部署的层级(示例说明)的限定。在一种实施例中,图7中所示的模块可以单独部署,或者几个模块可以部署在一起,图7中对模块的划分为一种示例。在一种实施例中,图7中所示的模块的名称为示例说明。
本申请实施例中的语音助手,其全部功能可以部署在电子设备中,或者其全部功能部署在云端,或者部分功能部署在电子设备中、部分功能部署在云端。图8a、图8b和图8c分别示出了几种可能的部署方式。
图8a示例性示出了语音助手的全部功能部署在电子设备中的示意图。如图所示,电子设备具有语音接收功能和语音输出功能。电子设备中安装有语音助手,语音助手可以包括管理模块801、ASR模块802、NLU模块803、处理模块804,执行模块805,进一步的,还可以包括:自然语言生成(natural language generation,NLG)模块806、文本转语音(texttospeech,TTS)模块807。
管理模块801用于通过麦克风采集语音信号(也可以称为语音数据、语音指令的音频数据、音频信号等,简称为语音),以及通过扬声器播放需要输出的音频数据。
ASR模块802用于将语音指令的音频数据转为文本数据。比如将用户通过麦克风输入的语音“小艺,请播放音乐”转换成应用程序可识别的文本数据(可以称为文本信息,简称为文本)。
NLU模块803用于对语音指令的文本数据进行解析,以获得用户意图和槽位,比如从文本数据“小艺,请播放音乐”中,识别出用户意图为“播放音乐”。
处理模块804用于在NLU模块803解析得到的语音指令的数据结构中槽位缺失的情况下,基于语音历史数据集合,得到与当前语音指令相关的历史语音指令,根据该历史语音指令的槽位,将当前语音指令的槽位补充。进一步的,可以将补充完整的语音指令提供给执行模块805,或者发送给NLU模块803,再由NLU模块803发送给执行模块805。在另一种可能的实现方式中,处理模块804也可以将待补充到第一语音指令的槽位发送给NLU模块803,由NLU模块803将第一语音指令补充完整后发送给执行模块805。
执行模块805用于基于解析得到的用户意图和槽位,在本设备上执行相应的任务,即根据用户意图进行响应。比如用户意图为“播放音乐”,槽位中的执行设备为“智能手机”时,执行模块805可以调用本设备(智能手机)的音乐播放器播放音乐。在另一些场景下,如果解析得到的槽位表明该用户意图的执行者为云端服务,则执行模块805可以调用相应的云端服务,以执行该用户意图。在另一些场景下,如果解析得到的槽位表明该用户意图的执行者不是本设备,而是其它电子设备,则执行模块805可以根据该用户意图和槽位,生成所述其它电子设备能够识别的控制指令,并将该控制指令通过该电子设备100的通信模块发送给所述其它电子设备。执行模块805还可以将语音指令的执行结果(结构化的数据形式)发送给NLG模块806。
NLG模块806用于根据语音指令的执行结果(结构化的数据)生成自然语言形式的执行结果,比如根据回复信息的结构化数据生成自然语言的回复信息“好的,已经播放音乐”。
TTS模块807用于将来自于NLG模块806的执行结果的文本数据转为音频数据,并可以将执行结果的音频数据发送给管理模块801,管理模块801可以将执行结果的音频数据送至扬声器上播放。
可选的,处理模块804在当前语音指令完成后,将当前语音指令存储到历史语音指令集合中。处理模块804也可以将本设备中的历史语音指令集合与其它电子设备中的历史语音数据集合进行共享或同步。
参见图8b,为本申请实施例提供的另一种语音助手的部署示意图。其中,语音助手中的处理模块804部署在云端,历史语音指令集合也被部署在云端,其它功能模块部署在电子设备中。
参见图8c,为本申请实施例提供的另一种语音助手的部署示意图。其中,语音助手中的管理模块801、ASR模块802、NLU模块803、处理模块804部署在云端,历史语音指令集合也被部署在云端。云端中还可以部署NLG模块806和TTS模块807。电子设备具有语音接收功能和语音输出功能,可以接收语音指令的音频数据,也可以输出语音指令执行结果的语音。
需要说明的是,以上图8a、图8b和图8c仅示例性示出了几种语音助手中各功能模块的部署情况,实际应用场景中,可能存在其他部署情况,或者其他功能模块的划分方式,本申请实施例对此不做限制。
图9以一个具体应用场景为例,示出了本申请实施例提供的语音指令处理方法的执行逻辑示意图。如图所示,用户在使用语音助手时,采用这样的流程:首先用户对设置有语音助手的电子设备发出语音“调亮点儿”,语音助手将该语音转换成文本,然后语音助手的NLU模块对该文本进行自然语言处理,提取出用户意图为:调亮设备,由于缺失槽位(执行设备),则语音助手启动以下对话状态跟踪过程:
语音助手获取历史语音指令集合,将本轮对话(即当前语音指令)与历史语音指令集合中的历史语音指令进行匹配,获得与本轮对话相关的历史轮对话,将该相关历史轮对话中的执行设备信息加到本轮对话的槽位中,补充完整后的本轮对话为:
意图:调亮设备;
槽位:灯。
语音助手将补充完整的本轮对话的语音指令转换为执行设备“灯”能够识别和执行的控制指令,并将该控制指令发送给该执行设备“灯”,以使该执行设备执行该控制指令。
可选的,语音助手在将本轮对应的语音指令补充完整后,还启动以下对话策略过程:将补充完整的语音指令存储到历史语音指令集合中。该历史语音指令集合可以位于电子设备本地,也可以位于云端。
可选的,语音助手接收到该执行设备“灯”反馈的执行成功的信息后,生成回复语音的数据结构:
动作:调亮设备;
执行设备:灯;
回复:成功。
语音助手中的NLG模块根据该回复语音的数据结构生成自然语言“好的,灯已经调亮了”,并通过TTS模块将该自然语言转换为音频数据,并播放该音频数据。
下面基于以上语音助手的软件架构以及语音指令处理逻辑,对本申请实施例提供的语音指令处理方法进行说明。
参见图10,为本申请实施例提供的一种语音指令处理方法的流程示意图。该流程中,针对缺失槽位(比如缺失执行设备)的当前语音指令,语音助手可以基于历史语音指令集合获取与该语音指令相关的历史语音指令,将该历史语音指令的槽位添加为当前的语音指令中,使得当前的语音指令完整。
图10所示的流程中,语音助手的功能部署在电子设备中,即该流程可以应用于图8a所示的架构。语音助手的功能也可以部署在云端,即该流程也可以应用于图8c所示的架构。如10图所示,该流程可以包括以下步骤:
步骤1:电子设备中的音频模块接收用户的语音,得到语音指令的音频数据,并将该语音指令的音频数据发送给语音助手中的管理模块。
可选的,在使用语音助手之前,用户首先使用用户账户登录语音助手。在登录语音助手后,电子设备的音频模块(比如麦克风)被启动,当用户发出语音时,该麦克风接收用户的语音,得到语音指令的音频数据。
步骤2a:语音助手中的管理模块接收到该语音指令的音频数据后,将该语音指令的音频数据发送给语音助手中的ASR模块。
步骤2b:可选的,管理模块还可以将设备信息、位置信息,用户账户信息、时间信息、用户身份信息等信息进行缓存,比如缓存到内存中的指定区域或者缓存后将缓存地址通知给相关功能模块(比如处理模块),以便处理模块能够获取到这些信息,并将这些信息作为当前语音指令对应的关联信息,作为获取与当前语音指令相关的历史语音指令的依据。
所述设备信息为接收到该语音指令的设备的信息,示例性的,设备信息可以包括设备类型、设备标识(diviceID)、设备状态、设备名称等。所述位置信息为当前语音指令的接收设备的位置信息。所述用户账户信息为登录语音助手的用户的账户信息,示例性的,用户账户信息可以包括用户标识。时间信息为当前的时间。所述用户身份信息可以是音频数据的特征信息(声纹),可以通过对接收到的语音指令的音频数据进行特征提取得到。所述用户身份信息也可以是用户标识等能够表明用户身份的信息(比如可以是用户在家庭中的成员角色),可以在提取语音指令的音频数据的特征信息后,通过该特征信息查询用户列表(用户列表中记录有声纹与用户标识的对应关系)得到对应的用户标识。所述设备信息、用户账户信息、时间信息、用户身份信息中的一个或多个,可以作为当前语音指令对应的关联信息,用于后续的语音指令处理过程。
步骤3:语音助手中的ASR模块对语音指令的音频数据进行识别,得到语音指令的文本数据。
ASR模块可以采用ASR算法对语音指令的音频数据进行识别,本申请实施例对ASR算法不做限定。
步骤4:语音助手中的ASR模块将语音指令的文本数据,发送给NLU模块。
步骤5:语音助手中的NLU模块对语音指令的文本数据进行解析,得到用户意图。
NLU模块对该语音指令的文本数据进行解析时,若解析得到用户意图和槽位,则该语音指令语义完整,因此执行后续的步骤10,将语音指令的结构化数据(包括用户意图和槽位)发送给执行模块;若解析得到用户意图,但未解析得到槽位,或者槽位被使用指示代词来指代,则表明该语音指令的语义不完整,此种情况下,执行后续的步骤6~9。
NLU模块可以采用NLU算法对语音指令的文本数据进行解析,本申请实施例对NLU算法不做限定。
步骤6:语音助手中的NLU模块向处理模块发送第一指示信息,用于指示处理模块获取该语音指令中缺失的槽位。
可选的,第一指示信息可以包括NLU模块解析得到的用户意图。
步骤7:语音助手中的处理模块根据该第一指示信息,通过查询历史语音指令集合,获得相关的历史语音指令,并进一步的获取该历史语音指令的槽位。
可选的,处理模块可以获取之前缓存的与当前语音指令对应的关联信息,将该关联信息作为获取匹配的历史语音指令的依据之一。
可选的,处理模块在获得该语音指令执行成功的响应信息后,可以将该语音指令,进一步的连同该语音指令对应的关联信息,存储到历史语音指令集合中,以便在后续轮对话时基于该历史语音指令集合,对语义缺失的语音指令进行处理。
可选的,历史语音指令集合中的历史语音指令,可以是结构化的数据,相应的,在基于历史语音指令集合获取与第一语音指令相关的第二语音指令时,可以使用第一语音指令的结构化数据和历史语音指令的结构化数据进行匹配。历史语音指令的结构化的数据包括用户意图和槽位,该槽位使用自然语言描述,比如“空调”。该结构化的数据可以是由语音助手中的NLU模块解析得到的。在NLU模块解析得到的结构化数据部分缺失(比如缺失槽位)的情况下,可以将缺失的部分(比如槽位)补充完整,将补充完整的结构化数据存储到历史语音指令集合中。历史语音指令的结构化数据的一个示例为:
用户意图:调高温度(TURN_UP_TEMPRATURE);
槽位:槽位一(位置):客厅;槽位二(执行设备):空调。
可选的,在历史语音指令集合中的历史语音指令以结构化数据的形式存储的情况下,该结构化数据中的槽位也可以是通过底层映射得到的底层协议参数,比如,可以将上述“客厅”和“空调”映射为用于唯一标识该电子设备(空调)的设备标识(deviceID)。采用此种结构化的数据形式,基于历史语音指令集合获取到的槽位为底层协议参数,无需再进行解析或特征抽取,直接将该底层协议参数添加到语义不完整(缺失槽位)的语音指令中即可。历史语音指令的结构化数据的一个示例为:
用户意图:调高温度(TURN_UP_TEMPRATURE);
槽位:deviceID_air-conditioning_01。其中,“deviceID_air-conditioning_01”表示位于客厅的空调的设备标识。
可选的,历史语音指令集合中的历史语音指令,可以是文本数据,相应的,在基于历史语音指令集合获取与第一语音指令相关的第二语音指令时,可以使用第一语音指令的文本数据和历史语音指令的文本数据进行匹配。历史语音指令的文本数据可以是由语音助手中的ASR模块根据语音指令的音频数据识别得到的。也可能是在基于ASR模块识别得到的语音指令语义不全的情况下,将该语音指令的语义补充完整后得到的。历史语音指令的文本数据的一个示例为“客厅空调的温度调高点儿”。
可选的,历史语音指令集合中,还可以包括与历史语音指令对应的关联信息。可选的,一个历史语音指令对应的关联信息,可以包括一个或多个维度的信息。示例性的,一个历史语音指令对应的关联信息可以包括以下信息中的至少一项:时间信息、接收设备的设备信息、接收设备的位置信息、用户账户信息、用户身份信息等。一个历史语音指令对应的关联信息,是接收到该历史语音指令时收集的。
一个历史语音指令对应的关联信息中的时间信息,可以是该历史语音指令被接收到时的时间或者该语音指令被处理完成时的时间(比如对该语音指令进行ASR处理后的时间,或者对该语音指令进行NLU处理时的时间);该关联信息中的设备信息,是该历史语音指令的接收设备的设备信息。示例性的,所述设备信息可以包括设备类型、设备标识(deviceID)、设备状态、设备名称等;该关联信息中的用户账户信息用于指示接收以及处理该历史语音指令时的语音助手的登录用户;该关联信息中的用户身份信息用于指示该发出该历史语音指令的用户,例如,如果史语音指令x与用户标识y相对应,则表明该历史语音指令x在用户基于用户标识y登录语音助手后接收和处理的语音指令。关于语音指令对应的关联信息的解释和说明,可以参考步骤2中的相关描述。
根据以上实施例,历史语音指令集合的一个示例可以如表1所示。
表1:历史语音指令集合。
表1中,一个历史语音指令对应的关联信息包括:用户账户信息、用户身份信息、接收设备、时间。
可选的,一个语音指令对应的关联信息,还可以包括该语音指令与接收到的上一个语音指令之间的时间间隔,对话地点,语义相关性等信息,进一步的,还可以包括用户的生理特征,接收当前语音指令的设备的周边设备列表,对话轮数等信息,在此不再一一列举。语音助手在接收到一个语音指令后,可以收集上述信息,以得到该语音指令对应的关联信息,该关联信息可以与该语音指令一起被存储到历史语音指令集合中。
在一种可能的实现方式中,在语音对话过程中,语音助手对语音指令进行解析,获得执行设备的类型后,如果发现该类型的设备有多个,则语音助手通过语音提示,让用户对多个设备进行澄清或选择;语音助手获得用户选择的执行设备后,一方面根据该语音指令生成控制指令,并将控制指令发送给执行设备执行,另一方面,根据用户选择的执行设备更新语音指令的结构化数据,比如更新语音指令的执行设备信息,并将更新后的语音指令的结构化数据存储到历史语音指令集合中。
示例性的,图11示出了一种通过多轮对话澄清执行设备的示意图。如图所示,语音助手接收到的用户语音为“调高空调温度”后,将该语音识别为文本,对该文件进行解析,得到该语音指令的结构化数据1:
用户意图:TURN_UP_TEMPRATURE;
槽位:“空调”。
语音助手确定执行设备的类型为空调,查询已注册的该类型设备,发现存在有“卧室的空调”“客厅的空调”等多个候选执行设备,则向用户输出提示语音“你有多个空调,要调节哪个:1、卧室的空调,2、客厅的空调,3、……”;
语音助手接收到用户用于选择执行设备的语音“客厅的”后,将该语音转换为文本,对该文本进行解析,根据解析到的执行设备更新上述语音指令的结构化数据1,得到更新后的该语音指令的结构化数据2或结构化数据3:
结构化数据2:
用户意图:TURN_UP_TEMPRATURE;
槽位:“空调”“客厅”。
结构化数据3:
用户意图:TURN_UP_TEMPRATURE;
槽位:deviceID_air-conditioning_01。
其中,结构化数据3中的“deviceID_air-conditioning_001”表示位于客厅的空调的设备标识,是通过对使用自然语言描述的“空调”“客厅”进行映射得到的。
上述该语音指令的结构化数据2或结构化数据3,将被存储到历史语音指令集合中。
在一种可能的实现方式中,在语音对话过程中,语音助手对语音指令进行解析,如果该语音指令中缺失执行设备,则语音助手可以选择默认的执行设备作为该语音指令的执行设备。语音助手根据执行结果确定该语音指令执行失败,并确定失败原因为执行设备错误,则语音助手可以通过发起与用户间的对话,向用户询问执行设备。语音助手在获得执行设备,更新该语音指令的结构化数据,向该执行设备发送对应的控制指令,并接收到执行成功的响应后,可以将该更新后的语音指令的结构化数据存储到历史语音指令集合中。
在一种可能的实现方式中,为了节省存储空间,可以将历史语音指令集合中,距离当前时间的时间间隔超过设定阈值的历史语音指令进行清除。
在一种可能的实现方式中,历史语音指令集合存储于电子设备本地,该历史语音指令集合中的语音指令仅包括本设备接收和处理过的语音指令。
在另一种可能的实现方式中,历史语音指令集合存储于电子设备本地,该历史语音指令集合中的语音指令包括本设备接收和处理过的语音指令,还可以包括其它电子设备接收和处理过的语音指令。多个电子设备之间可以建立通信连接,以便彼此之间同步历史语音指令。这些电子设备之间,可以按照设定周期或者设定时间同步历史语音指令,也可以当其中一个电子设备接收并处理语音指令后,由该电子设备将该语音指令作为历史语音指令,同步给其它电子设备。
可选的,这些彼此之间同步或共享历史语音指令的电子设备,可以预先被配置为一个分组,分组信息可以分别配置在这些电子设备上,分组信息可以包括组标识、分组内各成员设备的标识或地址等信息。一个分组内的各成员设备之间可以根据分组信息建立连接,也可以基于用户操作建立通信连接,比如响应于用户的蓝牙配对操作建立蓝牙连接。
可选的,可以将一个区域内(比如一个家庭住宅内)的全部或部分电子设备划分为一个分组。一个分组内的电子设备可以包括不同类型的电子设备,比如可以包括智能音箱、智能电视、智能手机等。
可选的,一个分组内的成员设备可以是同一用户账户信息关联的电子设备。例如,在一个电子设备仅关联一个用户账户的情况下(即仅能使用一个用户账户登录电子设备中的语音助手的情况下),可以将与同一个用户账户关联的电子设备划分为一个分组。
可选的,可以配置一个分组,也可以配置多个分组。同一个分组内的成员设备共享历史语音指令集合。
在另一种可能的实现方式中,历史语音指令集合存储于网络侧,比如存储于云端。可以在电子设备中配置云端历史语音指令集合的存储地址,使得电子设备可以将历史语音指令存储到云端的历史语音指令集合中。
根据历史语音指令集合的存储位置,电子设备查询历史语音指令集合的方式可以包括:
方式1:在电子设备本地存储有历史语音指令集合的情况下,可以直接查询本地存储的历史语音指令集合;
方式2:在历史语音指令集合存储于云端的情况下,电子设备可以与云端交互,以查询历史语音指令集合,比如发送查询请求,该查询请求中可以携带查询条件或关键词,比如用户意图、时间范围、用户标识等,用以获得符合查询条件的历史语音记录。
在一种可能的实现方式中,处理模块从历史语音指令集合中获取与当前语音指令相关的历史语音指令的过程,可以包括:确定历史语音指令集合中的历史语音指令与当前语音指令(即当前接收的缺失槽位的语音指令,也即本申请实施例中的“第一语音指令”)的相关度,根据当前语音指令与各历史语音指令的相关度,从历史语音指令集合中选择与当前语音指令相关的历史语音指令,比如可以选择相关度最高的历史语音指令。
可选的,处理模块在计算相关度时,可以依据以下信息来计算:
(1)根据第一语音指令的文本数据和历史语音指令的文本数据,计算第一语音指令和历史语音指令的相关度;
(2)根据第一语音指令的结构化数据和历史语音指令的结构化数据,计算第一语音指令和历史语音指令的相关度;
(3)根据第一语音指令的意图和历史语音指令的意图,计算第一语音指令和历史语音指令的相关度;
(4)根据第一语音指令对应的关联信息和历史语音指令对应的关联信息,计算第一语音指令和历史语音指令的相关度;
(5)根据第一语音指令(比如文本数据或结构化数据)和对应的关联信息,以及历史语音指令(比如文本数据或结构化数据)和对应的关联信息,计算第一语音指令和历史语音指令的相关度;
(6)根据第一语音指令的意图和第一语音指令对应的关联信息,以及历史语音指令的意图和该历史语音指令对应的关联信息,计算第一语音指令和历史语音指令的相关度;
(7)根据第一语音指令(比如文本数据或结构化数据)和对应的关联信息,以及历史语音指令(比如文本数据或结构化数据)和对应的关联信息,计算第一语音指令和历史语音指令的相关度;
(8)根据第一语音指令(比如文本数据)、第一语音指令的意图和对应的关联信息,以及历史语音指令(比如文本数据)、历史语音指令的意图和对应的关联信息,计算第一语音指令和历史语音指令的相关度。
以上仅示例性的列举出了几种可能的相关度计算依据,本申请实施例对此不做限制。
可选的,可以使用相关性得分来表征相关度。
在一种可能的实现方式中,相关性得分的计算过程可以包括:首先,在电子设备接收到当前的语音指令后,获取该语音指令对应的关联信息,然后,通过预先设定的规则,将当前语音指令对应的关联信息,与历史语音指令对应的关联信息进行匹配,得到当前语音指令与历史语音指令的相关性得分。
可选的,所述关联信息可以包括一个或多个维度的信息,例如,所述关联信息可以包括以下信息的一项或多项:该电子设备的信息(比如包括设备名称,设备类型,设备状态等),用户账户信息(即登录语音助手的用户账户信息),用户身份信息(该用户身份信息与语音指令的音频数据的特征信息相关联),语音指令的接收时间,与接收到的上一个语音指令之间的时间间隔,对话地点,语义相关性等信息,用户的生理特征,接收当前语音指令的设备的周边设备列表,对话轮数等。相应的,在计算相关性得分时,可以使用一些规则性的方法,计算当前语音指令与各历史语音指令在这些维度上的匹配度,根据各维度上的匹配度,综合计算得到相关性得分。
在另一种可能的实现方式中,相关性得分的计算过程可以包括:首先,将当前接收的语音指令以及该语音指令对应的关联信息进行编码,比如,将各个设备上对话场景下的历史对话信息(包括输入文本、设备状态等),统一利用一个自然语言编码器进行编码,从而形成对历史轮、当前轮的关联信息进行编码;然后,将编码结果输入深度学习神经网络进行推断,得到当前语音指令与历史语音指令之间的相关性得分。
需要说明的是,以上仅示例性的列举了几种相关度(相关性得分)的计算方法,本申请实施例对语音指令之间的相关度(相关性得分)的计算方法不做限制。
在一种可能的实现方式中,如果基于历史语音指令集合,未获取到相关的历史语音指令,则语音助手可以发起与用户的对话,以获取语音指令中的缺失部分,比如,语音助手生成用于询问槽位或指导用户给出槽位或者引导用户给出完整语音指令的提示信息,将该提示信息转换为音频数据,通过音频模块输出该提示信息,以指导用户给出完整的语音指令。
步骤8:语音助手中的处理模块将获取到槽位发送给NLU模块,或者将补充后的语音指令发送给NLU模块。
可选的,如果获取到的相关的历史语音指令为文本数据,则NLU模块解析出该历史语音指令中的槽位,并将该槽位添加到当前接收到的语音指令的文本数据中。
可选的,如果获取到的相关的历史语音指令为结构化数据,并且该结构化数据中的槽位使用自然语言描述,则NLU模块可以直接从该结构化数据中获取该槽位,并将该槽位添加到当前接收的语音指令的结构化数据中。
可选的,如果获取到的相关的历史语音指令为结构化数据,并且该结构化数据中的槽位为映射后的底层协议参数,比如已经被映射为设备标识,则NLU模块可以直接将该映射后的底层协议参数添加到当前接收的语音指令的结构化数据中。此种情况下,后续步骤中可以不再对该槽位进行映射,节省了处理开销。
可选的,如果当前接收的语音指令中包含有指示代词,该指示代词用于指代槽位,比如用于指代执行设备,则NLU模块在将槽位添加到当前接收的语音指令的结构化数据之后,可以将该语音指令中的指示代词删除。
步骤9:语音助手中的NLU模块将语音指令的结构化数据(包括用户意图和槽位),发送给执行模块。
可选的,如果处理模块获取到的槽位没有被映射为底层协议参数,则NLU模块可以将该槽位映射为底层协议参数,比如映射为设备标识,并将映射后的槽位参数发送给执行模块。
步骤11:语音助手中的执行模块接收到语音指令的用户意图和槽位后,进行用于执行该语音指令的相关处理操作。
比如,执行模块可以调用相应的应用程序或服务或本设备上的相应功能来执行该用户意图,或者根据该语音指令(包括用户意图和槽位)生成执行设备能够识别和执行的控制指令,并将该控制指令发送给该执行设备。
示例性的,所述控制指令中可以包括通用的命令信息,比如命令类型、命令参数等,还包括执行设备的设备信息。
可选的,如果语音指令的结构化数据中的槽位已经是映射后的底层协议参数,则执行模块可以无需再进行映射,否则,执行模块需要将使用自然语言描述的槽位映射为底层协议参数。
步骤12a和步骤12b:语音助手中的执行模块将语音指令的执行结果发送给处理模块和NLG模块。
如果该语音指令是由本设备执行的,则执行模块可以直接获取到该语音指令的执行结果;如果该语音指令是由其它电子设备执行的,则执行模块可以从该语音指令的执行设备接收该语音指令的执行结果。
本流程中,以执行结果为执行成功作为例子进行描述。
步骤13:语音助手中的处理模块根据执行结果,确定语音指令执行成功,则将该语音指令,进一步的连同该语音指令对应的关联信息,存储到历史语音指令集合中。
根据历史语音指令集合中的历史语音指令的数据要求,历史数据模块可以按照该格式要求,将该语音指令存储到历史语音指令集合中。历史语音指令集合中的历史语音指令的数据要求可以参见前文描述。
步骤14:语音助手中的NLG模块根据执行结果转换为自然语言,得到执行结果的文本数据。
步骤15:语音助手中的NLG模块将执行结果的文本数据发送给TTS模块。
步骤16:语音助手中的TTS模块将执行结果的文本数据,转换为音频数据。
步骤17:语音助手中的TTS模块将执行结果的音频数据发送给管理模块。
步骤18:语音助手中的管理模块将该执行结果的音频数据发送给音频模块(比如扬声器),使得该音频模块输出相应的语音,以使通知用户该语音指令的执行结果。
在另一种可能的实现方式中,处理模块也可以将补充完整的语音指令发送给执行模块,而无需发送给NLU模块。
需要说明的是,如果语音助手部署在云端,则电子设备在接收到语音指令的音频数据后,将该音频数据发送给云端,由云端的语音助手进行相应处理。可选的,电子设备还可以将对应的关联信息(比如该电子设备的设备信息、位置信息等)发送给云端,这些信息可以缓存在云端,以便处理模块基于这些信息进行相应处理操作。可选的,云端接收到该语音指令的音频数据后,管理模块可以基于该音频数据获得对应的用户身份信息,还可以获得当前登录该语音助手的用户账户信息,并将这些信息缓存,以便处理模块基于这些信息进行相应处理操作。
在另一种可能的实现方式中,如果语音助手部署在云端,则云端的语音助手中可以包括执行模块,也可以不包括执行模块。如果云端的语音助手中包括执行模块,则可选的,该执行模块可以将语音指令转换为执行设备可识别的控制指令,并将该控制指令发送给该电子设备(即该语音指令的接收设备),从而由该电子设备执行该控制指令(如果该电子设备为语音指令的执行设备),或者由该电子设备发送给执行设备(如果该电子设备不是该语音指令的执行设备),当然,云端也可以将该控制指令发送给执行设备,从而可以实现远程控制。如果云端的语音助手中不包括执行模块,则可选的,云端可以将补充完整的语音指令发送给该电子设备(即该语音指令的接收设备),由该接收设备中的执行模块进行相应处理。
需要说明的是,上述图10所示的流程仅为一种示例,本申请实施例对上述流程中的步骤时序不做限定,比如步骤2a也可以在步骤2b之后执行。
还需要说明的是,上述图10所示的流程中,一些步骤可以是可选步骤,比如步骤12b~18也可以不执行。
根据上述图10所示的流程,在用户使用简化的语音指令(比如缺失槽位)的场景下,可以基于历史语音指令集合,确定当前语音指令的缺失部分,从而将当前语音指令补充为语义完整的语音指令,一方面可以保证该语音指令能够被执行,另一方面可以提高用户感受。
参见图12,为本申请实施例提供的另一种语音指令处理方法的流程示意图。该流程中,针对缺失槽位(比如缺失执行设备)的当前语音指令,电子设备中的语音助手可以请求云端基于历史语音指令集合获取与该语音指令相关的历史语音指令,语音助手获得该相关的历史语音指令后,将该历史语音指令的槽位添加为当前的语音指令中,使得当前的语音指令完整。
图12所示的流程中,语音助手的部分功能部署在电子设备中,部分功能部署在云端,即该流程可以应用于图8b所示的架构。
参见图13,为本申请实施例提供的另一种语音指令处理方法的流程示意图。该流程中,针对缺失槽位(比如缺失执行设备)的当前语音指令,云端中的语音助手可以基于历史语音指令集合获取与该语音指令相关的历史语音指令,获得该相关的历史语音指令后,将该历史语音指令的槽位添加为当前的语音指令中,使得当前的语音指令完整。
图13所示的流程中,语音助手的部分功能部署在电子设备中,部分功能部署在云端,即该流程可以应用于图8c所示的架构。
根据上述图12或图13所示的流程,在用户使用简化的语音指令(比如缺失槽位)的场景下,可以基于历史语音指令集合,确定当前语音指令的缺失部分,从而将当前语音指令补充为语义完整的语音指令,一方面可以保证该语音指令能够被执行,另一方面可以提高用户感受。由于历史语音记录集合位于云端,并且多个电子设备可以共享该历史语音记录集合,这样可以实现跨设备的语音接续。另一方面,由云端执行语音接续(即查询相关的历史语音记录,以便获取当前语音指令缺失的部分),可以减少终端侧的处理开销。
需要说明的是,图10、图12、图13仅基于语音助手的一些可能的部署方式,描述了语音指令的处理过程,在语音助手中各功能的部署方式采用其它方式的情况下,语音指令的处理流程将进行相应调整,在此不再一一列举。
根据以上各实施例,下面示例性示出了几种场景下的语音接续的示例。
示例一
示例一的场景为:用户先对手机说“在客厅电视播放电影”,再对音箱说“只要动作片”。手机收到语音指令“在客厅电视播放电影”后,向客厅电视发送控制指令,使得客厅电视响应于该控制指令,显示电影主界面;音箱收到语音指令“只要动作片”后,向客厅电视发送控制指令,使得客厅电视响应于该控制指令,选择电影主界面中的动作片电影进行播放。
图14a示出了上述场景的一种系统架构,手机和音箱共享历史语音指令集合,换言之,手机和音箱本地分别存储有历史语音指令集合,手机和音箱之间可以通过交互以实现历史语音指令集合的同步。这样,音箱接收到语音指令“只要动作片”后,由于本地存储的历史语音指令集合中包括在此之前手机接收和处理过的语音指令“在客厅电视播放电影”,因此音箱中的语音助手可以通过相关度匹配,确定该语音指令“在客厅电视播放电影”与当前语音指令“只要动作片”相关,进而确定当前语音指令“只要动作片”的执行设备为该客厅电视。
图14b示出了上述场景的另一种系统架构,手机和音箱本地没有存储历史语音指令集合,历史语音指令集合存储于云端,手机和音箱均可以访问该历史语音指令集合。这样,音箱接收到语音指令“只要动作片”后,由于云端存储的历史语音指令集合中包括在此之前手机接收和处理过的语音指令“在客厅电视播放电影”,因此音箱中的语音助手可以通过相关度匹配,确定该语音指令“在客厅电视播放电影”与当前语音指令“只要动作片”相关,进而确定当前语音指令“只要动作片”的执行设备为该客厅电视。
示例一中,手机和音箱处理语音指令的具体实现方式可参见前述实施例。
示例二
示例二的场景为:用户先对电视说“播放刘德华的电影”,再对平板电脑说“只要动作片”。电视收到语音指令“播放刘德华的电影”后,由于该语音指令中不包含执行设备信息,因此电视中的语音助手可以选择默认的执行设备(比如本电视为默认的执行设备)响应该语音指令,显示刘德华出演的电影列表;平板电脑收到语音指令“只要动作片”后,向该电视发送控制指令,使得该电视响应于该控制指令,选择该电影列表中的动作片进行播放。
图15a示出了上述场景的一种系统架构,电视和平板电脑共享历史语音指令集合。这样,平板电脑接收到语音指令“只要动作片”后,由于本地存储的历史语音指令集合中包括在此之前电视接收和处理过的语音指令“播放刘德华的电影”,因此平板电脑中的语音助手可以通过相关度匹配,确定该语音指令“播放刘德华的电影”与当前语音指令“只要动作片”相关,进而确定当前语音指令“只要动作片”的执行设备,与语音指令“播放刘德华的电影”的执行设备相同。
图15b示出了上述场景的另一种系统架构,电视和平板电脑本地没有存储历史语音指令集合,历史语音指令集合存储于云端,电视和平板电脑均可以访问该历史语音指令集合。这样,平板电脑接收到语音指令“只要动作片”后,由于云端存储的历史语音指令集合中包括在此之前电视接收和处理过的语音指令“播放刘德华的电影”,因此平板电脑中的语音助手可以通过相关度匹配,确定该语音指令“播放刘德华的电影”与当前语音指令“只要动作片”相关,进而确定当前语音指令“只要动作片”的执行设备,与语音指令“播放刘德华的电影”的执行设备相同。
示例三
示例三的场景为:用户先对音箱说“播放刘德华的电影”,再对平板电脑说“只要动作片”。音箱收到语音指令“播放刘德华的电影”后,由于该语音指令中不包含执行设备信息,因此语音助手可以选择默认的执行设备(比如客厅电视为默认的视频播放操作的执行设备)响应于该语音指令,客厅电视显示刘德华出演的电影列表;平板电脑收到语音指令“只要动作片”后,向该客厅电视发送控制指令,使得该客厅电视响应于该控制指令,选择该电影列表中的动作片进行播放。
上述场景的一种系统架构中,音箱和平板电脑共享历史语音指令集合。这样,平板电脑接收到语音指令“只要动作片”后,由于本地存储的历史语音指令集合中包括在此之前的语音指令“播放刘德华的电影”的相关数据,因此平板电脑中的语音助手可以通过相关度匹配,确定该语音指令“播放刘德华的电影”与当前语音指令“只要动作片”相关,进而确定当前语音指令“只要动作片”的执行设备,与语音指令“播放刘德华的电影”的执行设备相同。
上述场景的另一种系统架构中,音箱和平板电脑本地没有存储历史语音指令集合,历史语音指令集合存储于云端,音箱和平板电脑均可以访问该历史语音指令集合。这样,平板电脑接收到语音指令“只要动作片”后,由于云端存储的历史语音指令集合中包括在此之前的语音指令“播放刘德华的电影”,因此平板电脑中的语音助手可以通过相关度匹配,确定该语音指令“播放刘德华的电影”与当前语音指令“只要动作片”相关,进而确定当前语音指令“只要动作片”的执行设备,与语音指令“播放刘德华的电影”的执行设备相同。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,该计算机程序被计算机执行时,所述计算机可以实现上述方法实施例提供的方法。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品用于存储计算机程序,该计算机程序被计算机执行时,所述计算机可以实现上述方法实施例提供的方法。
本申请实施例还提供一种芯片,包括处理器,所述处理器与存储器耦合,用于调用所述存储器中的程序使得所述芯片实现上述方法实施例提供的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (29)

1.一种语音指令处理方法,其特征在于,所述方法包括:
获取第一语音指令;
确定所述第一语音指令的意图,并根据所述第一语音指令的意图确定所述第一语音指令缺失槽位;
获取历史语音指令集合中的第二语音指令,所述第二语音指令与所述第一语音指令相关;
根据所述第二语音指令的槽位确定所述第一语音指令的槽位。
2.如权利要求1所述的方法,其特征在于,所述根据所述第二语音指令的槽位确定所述第一语音指令的槽位包括:
所述第一语音指令缺失的槽位由所述第二语音指令对应的槽位提供。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述第二语音指令的槽位确定所述第一语音指令的槽位之后,所述方法还包括:
将所述第二语音指令的槽位添加到所述第一语音指令中;
将添加有所述槽位的第一语音指令存储到所述历史语音指令集合中。
4.如权利要求3所述的方法,其特征在于,所述将所述第二语音指令的槽位添加到所述第一语音指令中,包括:
获取所述第二语音指令的结构化数据中的槽位,所述第二语音指令的结构化数据中的槽位为自然语言表述的槽位信息或为协议参数,所述协议参数为对所述自然语言表述的槽位信息进行映射后得到的协议参数;
将所述第二语音指令的结构化数据中的槽位,添加到所述第一语音指令的结构化数据中。
5.如权利要求3或4所述的方法,其特征在于,所述方法还包括:
若所述第一语音指令中包括用于指示所述第一语音指令的槽位的指示代词,则将所述指示代词从所述第一语音指令中删除。
6.如权利要求1-5任一项所述的方法,其特征在于,所述获取历史语音指令集合中的第二语音指令,包括:
根据所述第一语音指令与历史语音指令集合中的历史语音指令的相关度,获取所述历史语音指令集合中与所述第一语音指令相关的第二语音指令。
7.如权利要求6所述的方法,其特征在于,所述根据所述第一语音指令与历史语音指令集合中的历史语音指令的相关度,获取所述历史语音指令集合中与所述第一语音指令相关的第二语音指令,包括:
根据所述第一语音指令、所述第一语音指令的意图和/或所述第一语音指令对应的关联信息,以及所述历史语音指令集合中各历史语音指令、各历史语音指令的意图和/或对应的关联信息,确定所述第一语音指令与所述历史语音指令集合中各历史语音指令的相关度;其中,所述第一语音指令对应的关联信息是在接收到所述第一语音指令时收集的,所述历史语音指令对应的关联信息是在接收到所述历史语音指令时收集的;
根据所述第一语音指令与所述历史语音指令集合中各历史语音指令的相关度,从所述历史语音指令集合中选取与所述第一语音指令相关的第二语音指令。
8.如权利要求1-5任一项所述的方法,其特征在于,所述获取历史语音指令集合中的第二语音指令,包括:
第一电子设备向云端或第三电子设备发送第一请求消息,所述第一请求消息用于请求获取所述历史语音指令集合中与所述第一语音指令关联的语音指令;其中,所述第一电子设备为所述第一语音指令的接收设备;
所述第一电子设备接收所述云端或所述第三电子设备发送的第一响应消息,所述第一响应消息中携带有所述第二语音指令,所述第二语音指令是根据所述第一语音指令与历史语音指令集合中的历史语音指令的相关度,从所述历史语音指令集合中获取到的。
9.如权利要求8所述的方法,其特征在于,所述第一请求消息携带所述第一语音指令、第一语音指令的意图和/或所述第一语音指令对应的关联信息。
10.如权利要求7或9所述的方法,其特征在于,所述第一语音指令对应的关联信息,包括以下至少一项:
设备信息,所述设备信息为所述第一语音指令的接收设备的信息;
用户账户信息,所述用户账户信息为登录语音助手的用户账户信息;
位置信息,所述位置信息为所述第一语音指令的接收设备的位置信息;
时间信息,所述时间信息包括所述第一语音指令的接收时间,和/或,所述第一语音指令与前一个接收到的语音指令之间的时间间隔;
用户身份信息,所述用户身份信息与所述第一语音指令的音频数据的特征信息相关联。
11.如权利要求1-5任一项所述的方法,其特征在于,所述获取历史语音指令集合中的第二语音指令,以及所述根据所述第二语音指令的槽位确定所述第一语音指令的槽位,包括:
云端根据所述第一语音指令与历史语音指令集合中的历史语音指令的相关度,获取所述历史语音指令集合中与所述第一语音指令相关的第二语音指令;
根据所述第二语音指令的槽位确定所述第一语音指令的槽位,所述第一语音指令缺失的槽位由所述第二语音指令对应的槽位提供。
12.如权利要求1-5任一项所述的方法,其特征在于:
所述获取第一语音指令,包括:
云端对来自第一电子设备的所述第一语音指令的音频数据进行转换,得到对应的文本数据;
所述确定所述第一语音指令的意图,并根据所述第一语音指令的意图确定所述第一语音指令缺失槽位,包括:
所述云端对所述文本数据进行解析,得到所述第一语音指令的意图,并根据所述第一语音指令的意图确定所述第一语音指令缺失槽位;
所述获取历史语音指令集合中的第二语音指令,以及所述根据所述第二语音指令的槽位确定所述第一语音指令的槽位,包括:
所述云端获取历史语音指令集合中的第二语音指令,并根据所述第二语音指令的槽位确定所述第一语音指令的槽位。
13.如权利要求1-12任一项所述的方法,其特征在于,所述历史语音指令集合中包括历史语音指令的结构化数据,所述历史语音指令的结构化数据包括意图和槽位。
14.如权利要求1-13任一项所述的方法,其特征在于,所述槽位为执行语音指令的意图的设备或应用或服务。
15.一种语音指令处理系统,其特征在于,包括:
自动语音识别模块,用于将第一语音指令的音频数据转换为文本数据;
自然语言理解模块,用于对所述第一语音指令的文本数据进行解析,得到所述第一语音指令的意图;
处理模块,若根据所述第一语音指令的意图确定所述第一语音指令缺失槽位,则获取历史语音指令集合中的第二语音指令,根据所述第二语音指令的槽位确定所述第一语音指令的槽位;其中,所述第二语音指令与所述第一语音指令相关。
16.如权利要求15所述的系统,其特征在于,所述第一语音指令缺失的槽位由所述第二语音指令对应的槽位提供。
17.如权利要求15或16所述的系统,其特征在于,所述处理模块,还用于:
在根据所述第二语音指令的槽位确定所述第一语音指令的槽位之后,将所述第二语音指令的槽位添加到所述第一语音指令中,将添加有所述槽位的第一语音指令存储到所述历史语音指令集合中。
18.如权利要求17所述的系统,其特征在于,所述处理模块,具体用于:
获取所述第二语音指令的结构化数据中的槽位,所述第二语音指令的结构化数据中的槽位为自然语言表述的槽位信息或为协议参数,所述协议参数为对所述自然语言表述的槽位信息进行映射后得到的协议参数;
将所述第二语音指令的结构化数据中的槽位,添加到所述第一语音指令的结构化数据中。
19.如权利要求17或18所述的系统,其特征在于,所述处理模块,还用于:
若所述第一语音指令中包括用于指示所述第一语音指令的槽位的指示代词,则将所述指示代词从所述第一语音指令中删除。
20.如权利要求15-19任一项所述的系统,其特征在于,所述处理模块,具体用于:
根据所述第一语音指令与历史语音指令集合中的历史语音指令的相关度,获取所述历史语音指令集合中与所述第一语音指令相关的第二语音指令。
21.如权利要求20所述的系统,其特征在于,所述处理模块,具体用于:
根据所述第一语音指令、所述第一语音指令的意图和/或所述第一语音指令对应的关联信息,以及所述历史语音指令集合中各历史语音指令、各历史语音指令的意图和/或对应的关联信息,确定所述第一语音指令与所述历史语音指令集合中各历史语音指令的相关度;其中,所述第一语音指令对应的关联信息是在接收到所述第一语音指令时收集的,所述历史语音指令对应的关联信息是在接收到所述历史语音指令时收集的;
根据所述第一语音指令与所述历史语音指令集合中各历史语音指令的相关度,从所述历史语音指令集合中选取与所述第一语音指令相关的第二语音指令。
22.如权利要求21所述的系统,其特征在于,所述第一语音指令对应的关联信息,包括以下至少一项:
设备信息,所述设备信息为所述第一语音指令的接收设备的信息;
用户账户信息,所述用户账户信息为登录语音助手的用户账户信息;
位置信息,所述位置信息为所述第一语音指令的接收设备的位置信息;
时间信息,所述时间信息包括所述第一语音指令的接收时间,和/或,所述第一语音指令与前一个接收到的语音指令之间的时间间隔;
用户身份信息,所述用户身份信息与所述第一语音指令的音频数据的特征信息相关联。
23.如权利要求15-22任一项所述的系统,其特征在于,所述历史语音指令集合中包括历史语音指令的结构化数据,所述历史语音指令的结构化数据包括意图和槽位。
24.如权利要求15-23任一项所述的系统,其特征在于,所述槽位为执行语音指令的意图的设备或应用或服务。
25.如权利要求15-24任一项所述的系统,其特征在于:
所述自动语音识别模块、所述自然语言理解模块、所述处理模块位于第一电子设备;或者
所述自动语音识别模块、所述自然语言理解模块位于第一电子设备,所述处理模块位于云端或第三电子设备;或者
所述自动语音识别模块位于第一电子设备,所述自然语言理解模块、所述处理模块位于云端;或者
所述自动语音识别模块、所述自然语言理解模块、所述处理模块位于云端。
26.如权利要求15-25任一项所述的系统,其特征在于,还包括:
执行模块,用于根据所述第一语音指令的意图和槽位,执行所述第一语音指令或指示所述第一语音指令的执行设备执行所述第一语音指令,所述执行设备由所述第一语音指令的槽位提供。
27.如权利要求26所述的系统,其特征在于,还包括:自然语言生成模块、文本转语音模块;
所述执行模块,还用于获取所述第一语音指令的执行结果;
所述自然语言生成模块,用于将所述第一语音指令的执行结果转换为文本数据,所述文本数据为文本格式的自然语言;
所述文本转语音模块,用于将所述文本数据转换为音频数据。
28.一种电子设备,其特征在于,包括:一个或多个处理器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-14中任意一项所述的方法。
29.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-14中任意一项所述的方法。
CN202210775676.2A 2022-07-01 2022-07-01 一种语音指令处理方法、装置、系统以及存储介质 Pending CN117373445A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210775676.2A CN117373445A (zh) 2022-07-01 2022-07-01 一种语音指令处理方法、装置、系统以及存储介质
PCT/CN2023/104190 WO2024002298A1 (zh) 2022-07-01 2023-06-29 一种语音指令处理方法、装置、系统以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210775676.2A CN117373445A (zh) 2022-07-01 2022-07-01 一种语音指令处理方法、装置、系统以及存储介质

Publications (1)

Publication Number Publication Date
CN117373445A true CN117373445A (zh) 2024-01-09

Family

ID=89383327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210775676.2A Pending CN117373445A (zh) 2022-07-01 2022-07-01 一种语音指令处理方法、装置、系统以及存储介质

Country Status (2)

Country Link
CN (1) CN117373445A (zh)
WO (1) WO2024002298A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055403B2 (en) * 2016-02-05 2018-08-21 Adobe Systems Incorporated Rule-based dialog state tracking
CN110136705B (zh) * 2019-04-10 2022-06-14 华为技术有限公司 一种人机交互的方法和电子设备
CN110111787B (zh) * 2019-04-30 2021-07-09 华为技术有限公司 一种语义解析方法及服务器
US11875231B2 (en) * 2019-06-26 2024-01-16 Samsung Electronics Co., Ltd. System and method for complex task machine learning
CN112581944A (zh) * 2019-09-29 2021-03-30 北京安云世纪科技有限公司 一种语音指令响应方法、装置及终端设备
CN111274368B (zh) * 2020-01-07 2024-04-16 北京声智科技有限公司 槽位填充方法及装置
CN111723574A (zh) * 2020-07-09 2020-09-29 腾讯科技(深圳)有限公司 一种信息处理方法、装置及计算机可读存储介质
CN113270096A (zh) * 2021-05-13 2021-08-17 前海七剑科技(深圳)有限公司 语音响应方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
WO2024002298A1 (zh) 2024-01-04

Similar Documents

Publication Publication Date Title
CN113542839B (zh) 电子设备的投屏方法和电子设备
CN113691842B (zh) 一种跨设备的内容投射方法及电子设备
CN111628916B (zh) 一种智能音箱与电子设备协作的方法及电子设备
CN114124980B (zh) 一种启动应用的方法、设备、系统、终端及存储介质
CN113488042B (zh) 一种语音控制方法及电子设备
CN116114239B (zh) 音量管理的方法及电子设备
CN113504887A (zh) 一种音量设置方法及电子设备
CN110955452B (zh) 一种非侵入式交互方法及电子设备
WO2022143258A1 (zh) 一种语音交互处理方法及相关装置
CN113703849A (zh) 投屏应用打开方法和装置
CN113746945A (zh) 反向地址解析方法及电子设备
US9699562B2 (en) Audio output control method and apparatus
CN116384342A (zh) 语义转换方法、装置、设备、存储介质及计算机程序
EP4343756A1 (en) Cross-device dialogue service connection method, system, electronic device, and storage medium
CN117373445A (zh) 一种语音指令处理方法、装置、系统以及存储介质
CN116524919A (zh) 设备唤醒方法、相关装置及通信系统
CN113572798B (zh) 设备控制方法、系统、设备和存储介质
CN116069214A (zh) 跨控件的界面交互方法、电子设备、介质以及程序产品
CN116056050A (zh) 播放音频的方法、电子设备及系统
CN115550702A (zh) 一种唤醒方法及系统
CN114567871A (zh) 文件共享的方法、装置、电子设备以及可读存储介质
CN115460445B (zh) 电子设备的投屏方法和电子设备
CN116662045B (zh) 进程名称获取方法、终端设备及存储介质
WO2022188713A1 (zh) 一种页面特征的保存方法、页面跳转方法和装置
CN114168115B (zh) 通信系统、应用下载方法及设备

Legal Events

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