语音信息处理方法、装置、电子设备及存储介质与流程

文档序号:21093814发布日期:2020-06-16 20:07阅读:205来源:国知局
语音信息处理方法、装置、电子设备及存储介质与流程

本申请涉及物联网领域,更具体地,涉及一种语音信息处理方法、装置、电子设备及存储介质。



背景技术:

智能家居语音对话助手是对接入物联网的设备进行交互的任务型语音对话助手。语音对话助手主要利用人机对话技术,人机对话是指通过语音识别技术,实现机器对自然语音的理解,并产生回应的一种更加方便的人机交互方式。目前,大部分语音对话助手只能理解固定格式的语音指令,如果用户采用日常生活中的自然语言,语音对话助手不能正确理解,造成了人机对话不能顺利进行。



技术实现要素:

鉴于上述问题,本申请提出了一种语音信息处理的方法、装置、电子设备及存储介质,以解决上述问题。

第一方面,本申请实施例提供了一种语音信息处理方法,该方法包括:将获取的语音信息转换成文本信息;对所述文本信息进行处理,生成一条或多条结构化数据,每条结构化数据包括一个动作指令以及该动作指令与目标设备之间的对应关系;根据每条结构化数据中的所述对应关系,判断所述每条结构化数据是否满足批量处理条件;对满足批量处理条件的结构化数据进行批量处理。

第二方面,本申请实施例提供了一种语音信息处理装置,该装置包括:转换模块,用于将获取的语音信息转换为文本信息;预处理模块,用于对所述文本信息进行处理,每条结构化数据包括一个动作指令以及该动作指令与目标设备之间的对应关系;判断模块,用于根据每条结构化数据中的所述对应关系判断所述每条结构数据是否满足批量处理条件;处理模块,用于根据每条结构化数据中的所述对应关系判断所述每条结构化数据是否满足批量处理条件。

第三方面,本申请实施例提供了一种电子设备,该电子设备包括一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如上述应用于电子设备的方法。

第四方面,本申请实施列提供一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。

相对于现有技术,本申请实施例提供的一种语音信息处理的方法、装置、电子设备及存储介质,通过对获取到的语音信息进行处理,生成一条或多条结构化数据,每条结构化数据包括一个动作指令以及该动作指令与目标设备之间的对应关系。根据每条结构化数据中的对应关系,判断结构化数据是否满足批量处理条件,对满足批量处理条件的结构化数据进行批量处理。通过批量处理的判断,对满足批量处理条件的语音信息进行批量处理,减少了用户使用的复杂度和重复度,使得对话的语言更加自然流畅,可以缩短交互的时间、提升交互的体验。

本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了一种适用于本申请实施例的应用环境示意图。

图2示出了本申请一个实施例提供的语音信息处理方法的流程图。

图3示出了本申请另一个实施例提供的语音信息处理方法的流程图。

图4示出了图3所示实施例中意图分类的示意图。

图5示出了本申请又一个实施例提供的语音信息处理方法的流程图。

图6示出了本申请再一个实施例提供的语音信息处理方法的流程图。

图7示出了本申请一个实施例提供的语音信息处理装置的功能模块图。

图8示出了图7所示实施例中的处理模块的功能模块图。

图9示出了本申请实施例提出的用于执行根据本申请实施例的语音信息处理方法的电子设备的结构框图。

图10示出了本申请实施例提供的用于保存或者携带实现根据本申请实施例的语音信息处理方法的程序代码的存储单元。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

物联网是指通过各种信息传感器,实时采集任何需要监控、连接、互动的物体或过程中需要的信息,与互联网结合形成的一个巨大网络。生活常见的物联网应用于物流行业,智能安防以及物联网智能家居。

语音对话助手是对接入物联网的设备进行交互的任务型语音对话助手,目前主要应用于居住场景中,用户可以通过语音和物联网设备进行交互,控制设备执行指定功能、查询设备指定状态等。语音对话助手可以通过物联网云平台对设备下发读/写指令,让用户实现和设备的交互。语音对话助手是语音识别技术和自然语言处理技术的结合。随着语音识别技术的成熟,以及云计算、物联网、智能硬件的发展,语音对话助手的应用需求越来越广泛。

发明人在研究中发现,目前的语音对话助手,在很多任务型和问答型的对话场景中,没有采用批量处理的方法。例如当用户表述“打开所有开关”,语音对话助手会打开叫“开关”的设备,但是有很多开关设备名不为开关的开关;当用户表述“打开空调,调到高风”,语音对话助手只会执行“打开空调”这个任务,并不会执行“调到高风”的任务。批量处理一般有两种情况,第一种是用户的一句语句中有多个任务,如上述的“打开空调,调到高风”;另一种是一句语句中只有一个任务,但是这个任务指向多个目标,如用户表述“把所有灯打开”,而用户家中有三个灯,分别为客厅灯、卧室灯、洗手间灯,该语句指向“客厅灯、卧室灯、洗手间灯”三个目标。如果没有加入批量处理,那么用户就需要说多遍类似的话,如上述“把所有灯打开”的命令,用户需要分别对应不同的灯进行类似的命令,造成了不好的体验。

因此,发明人提出了本申请中可以批量处理对话任务的语音信息处理方法,通过对语音信息的处理,生成一条或多条结构化数据,每条结构化数据包括一个动作指令以及该动作指令与目标设备之间的对应关系。根据每条结构化数据中的所述对应关系,判断每条结构化数据是否满足批量处理条件,满足批量处理条件时,进行批量处理。在用户有批量处理的需求,采用自然的对话方式进行表述时,也能理解用户的指令,减少了用户输入语音的重复度,缩短了交互的时间,也使得对话的语言更加流畅自然,提升了交互的体验。

为了便于详细说明本申请方案,下面先结合附图对本申请实施例的应用环境进行介绍。

请参阅图1,示出了本申请实施例提出的一种设备控制方法的应用环境10,该应用环境10包括:服务器96、网关97、其他设备98、目标设备99及电子设备100。其中,网关97连接到服务器96进行信息的传输,网关97分别与目标设备99以及其他设备98有能够进行通讯控制的兼容的物理接口和数据格式,从而通过网关97控制目标设备99。目标设备99和其他设备98可以是电视机、空调、智能窗帘、电灯、投影仪等设备。其中,目标设备99指的是用户想要进行控制的设备,可以为一个或者多个。电子设备100可以是手机、平板电脑、pc(personalcomputer)电脑、笔记本电脑、智能穿戴设备、智能电视、车载终端等终端设备。本申请实施例中,电子设备100安装有控制其他设备98或目标设备99的客户端,电子设备100还携带有语音对话助手,用户可通过语音对话助手输入控制指令。网关97可以通过路由器与服务器96相连,路由器可以通过网络与服务器连接,如通过2g、3g、4g、5g以及wifi等网络。电子设备100也可以通过网络与服务器96和网关97相连,如通过2g、3g、4g、5g以及wifi等网络。其中,服务器96可以是本地服务器,也可以是云端服务器。

下面将对本申请实施例进行详细的说明。

请参阅图2,本申请实施例提供了一种语音信息处理方法,本实施例描述的处理流程的执行主体可以是电子设备,可以是网关,也可以是本地服务器或者云端服务器。具体的该方法可以包括:

步骤s110,将获取的语音信息转换为文本信息。

在一种实施方式中,用户可以通过电子设备中的客户端通过语音对话助手输入语音信息,电子设备直接对语音信息进行处理。

在另一种实施方式中,用户可以通过电子设备中的客户端通过语音对话助手发送语音信息给网关或者服务器,由网关或者服务器对语音信息进行处理。

在其他实施方式中,如果网关也具有语音输入接口,或者音频采集模块,语音输入接口包括模拟或者数字音频输入接口,音频采集模块包括麦克风等;用户还可以直接通过网关输入语音信息,网关可以直接对语音信息进行处理,也可以发送给服务器进行处理。其中,对语音信息的处理将通过以下描述进行详细说明。

在获取到语音信息时,可以对该语音信息进行分段处理,将语音信息分成多个片段。再利用语音识别技术将语音信息转换为文本信息。

步骤s120,对所述文本信息进行处理,生成一条或多条结构化数据,每条结构化数据包括一个动作指令以及该动作指令与目标设备之间的对应关系。

在将文本信息处理为结构化数据之前,可以对文本信息进行预处理。预处理可以包括对文本信息进行去停用词、去无效字符、数字语言归一化或者同音词纠错等处理。去停用词可以是去掉文本信息中不表征实际意义的词,例如语气助词等。去无效字符是指去掉文本信息中一些程序不认可的字符。数字语言归一化是指将文本信息中的数字和语言统一起来,用一种形式进行表达,例如把壹统一为阿拉伯数字1,把贰统一为阿拉伯数字2。同音词纠错是指对文本信息中读音相同但字形不同的词语进行纠错。

在一些实施方式中,对语音信息转换成的文本信息,可以采用分词、词性标注、命名实体识别和模板匹配的方式,生成结构化数据。其中,分词是将文本信息依据词典划分出文本信息中的最小单元的词语。词性标注是对分词后的文本信息中的词语进行词性的标注,例如,可以预设多种词性,如位置、设备、数字等,每种词性与属于该词性的词语对应,则可以将文本信息中的词语的词性标注为其对应的词性。命名实体识别是识别出文本信息中特定意义的实体,该特定意义可以根据实际需要设置,例如对于文本信息中具有时间意义的部分,就可以识别为文本信息中表示时间的实体。模板匹配指的结合词性标注和命名实体识别的结果将对应的信息填入预设的模板中,从而生成结构化数据。

在另一些实施方式中,也可以采用模型匹配、句法解析或搜索泛化对所述文本信息进行处理,生成结构化数据。

对每一条文本信息进行处理可能生成一条或多条结构化数据。具体的,在文本信息中,一种动作指令对应生成一条结构化数据,多种不相同的动作指令对应生成多条结构化数据。例如文本信息“打开灯,打开空调”都是打开类交互,只有一种交互动作“打开”,生成一条动作指令是“打开”,目标设备是“灯和空调”的结构化数据。例如文本信息“打开灯,空调调到25度”包括两种交互动作,分别为“打开”和“调到25度”。则该文本信息包括两个动作指令,对应该文本信息生成两条结构化数据,其中一条为动作指令是“打开”,目标设备是“灯”的结构化数据,另一条为动作指令是“调到25度”,目标设备是“空调”的结构化数据。

每条结构化数据包括一个动作指令以及该动作指令与目标设备之间的对应关系,该对应关系中还可以包括该动作指令是否对对应的多个目标设备进行批量处理。具体的,可以通过批量词表示对多个目标设备进行处理的词语。即每条结构化数据中会有一个动作指令,这个动作指令会对应着一个或多个目标设备,对应关系限定这一个或多个目标设备是否都为需要执行这个动作指令的设备。

步骤s130,根据每条结构化数据中的所述对应关系,判断所述每条结构化数据是否满足批量处理条件。

对生成的每条结构化数据进行分析,分析所述对应关系中所述动作指令对应的目标设备的数量以及是否对应有批量词,判断所述结构化数据是否满足批量处理条件。目标设备的数量可以判断出动作指令是指向单个目标设备还是多个目标设备,是否有批量词可以判断是否对多个目标设备进行处理。通过分析目标设备的数量和是否有批量词可以判断出该结构化数据是否需要进行批量处理。

步骤s140,对满足批量处理条件的结构化数据进行批量处理。

其中,对结构化数据进行分析后,若满足批量处理条件,则对满足批量处理条件的结构化数据进行批量处理。若是不满足批量处理条件,则对结构化数据进行单一处理。

本申请提出的语音信息处理方法,通过对获取到的语音信息进行处理,生成一个或多个结构化数据。对每条结构化数据的分析,判断是否满足批量处理条件,若满足批量处理条件则对结构化数据进行批量处理。在用户有批量处理的需求,采用自然的对话方式进行表述时,也能理解用户的指令,减少了用户输入语音的重复度,缩短了交互的时间,也使得对话的语言更加流畅自然,提升了交互的体验。

请参阅图3,本申请另一实施例提供了一种语音信息处理方法,本实施例在前一实施例的基础上,进一步描述了利用意图分类及模板匹配生成结构化数据的过程,该方法可以包括:

步骤s210,将获取的语音信息转换为文本信息。

步骤s210具体可参照前一实施例中步骤s110的相关描述,这里不再赘述。

步骤s220,对所述文本信息进行意图分类,判断是否为交互控制命令。

意图分类的输入数据是文本信息,输出数据是这个文本信息的意图标签。意图是这句文本信息想要表达的任务的类别。通过意图分类,可以明确文本信息的任务类别,在对应的任务类别中进行处理,提升了对文本信息的处理速度。在图1所述的场景中,意图的类别可以是查询、控制或场景执行等。意图的分类器可以采用多种方法,可以是递归神经网络模型或者是统计学模型。

请参阅图4,图4示出了对文本信息进行意图分类的几种结果。意图的分类可以先对文本信息进行判断,判断是否为智能家居交互类,若为智能家居交互类,再对智能家居交互类进行更加细致的分类,将智能家居交互类分为查询类、控制类、场景类、定时类、配置类和其他智能家居交互类。

当意图分类为场景类时,还可以包括位置信息;当意图分类为定时类时,还可以包括时间信息等。意图分类的结果的不同,所需要生成的文本信息的结构化数据也不同。

意图分类完成后会输出意图标签,可以根据这个意图标签判断出该文本信息的意图。根据意图分类的标签,可得出文本信息的意图,若文本信息的意图分类标签为控制类,则可判断出该文本信息的意图为交互控制类,是一个交互控制命令。

步骤s230,若为交互控制命令,则对所述文本信息进行分词,并将分词后的文本信息进行词性标注和命名实体识别。

当判定文本信息的意图为交互控制类时,则对该文本信息进行分词处理。文本信息为一个句子,词语是句子中的最小单位,在分词时,可以依据《信息处理用现代汉语分词规范》来对句子进行分词。划分出句子中的最小单元的词语。

例如,文本信息为:今天12点把卧室的空调调到25度。假设今天为2018年6月8号,分词时可以依据《信息处理用现代分词规范》将文本信息划分为:今天/12点/把/卧室/的/空调/调到/25/度。再将分词后的信息进行词性标注,例如位置词性对应的词语包括卧室,设备词性对应的词语包括空调,数字词性对应的词语包括25,则将卧室的词性标注为位置,空调的词性标注为设备,25的词性标注为数字。则上述文本信息进行词性标注为:今天/12点/把/卧室(slot_position)/的/空调(slot_device)/调到/25(number)/度,其中,slot_position表示位置,slot_device表示设备,number表示数字。命名实体识别为:今天12点(2018-06-08-12:00)。

若该意图分类的结果不是交互控制命令,则根据意图分类的结果进行该意图分类下的对应的处理。

步骤s240,将所述词性标注和命名实体识别的结果基于模板匹配的映射解析,生成所述意图下的一条或多条结构化数据。

在进行词性标注和命名实体识别后会得到一个词性标注的结果和命名实体识别的结果,将词性标注的结果和命名实体识别的结果结合预设的智能家居词表模板和从云端获取的用户设备命名信息,一起生成结构化数据。

词表模板是描述操作属性和云端设备对应的一个模板,例如云端有个设备是空调(device_ac),空调有个属性操作是打开(attribute_on),那词表模板可以是:device_ac:attribute_on:[打开,开启,启动……]这三元组的格式,若属性操作是调节(attribute_set),那词表模板可以是device_ac:attribute_set:[调节,调到,调至……]这三元组的格式,词表模板就是这一类的结构的集合。依据词表模板,结合词性标注的结果和命名实体识别的结果一起生成结构化数据,则文本信息为“今天12点把卧室的空调调到25度”的句子的结构化数据为:

{intent:’control’,

position:{name:’卧室’,id:‘position.001’,type:’room’,...},

object:{name:’空调’,id:’object.001’,type:’ac’,attribute:’ac_state’,...},

action:{name:’调到’,type:’set’,value:‘25’,...}

time:’2018-06-18-12-00-00-00’,

is_batch:false}

其中,intent表示文本信息的意图,control表示意图分类为控制类;position表示位置信息,object表示目标设备,action表示动作指令,time表示时间信息,is_batch表示是否存在批量词,is_batch:false表示没有批量词,is_batch:true表示存在批量词。

步骤s250,根据每条结构化数据中的所述对应关系,判断所述每条结构化数据是否满足批量处理条件。

步骤s260,对满足批量处理条件的结构化数据进行批量处理。

步骤s250至步骤s260可以参照前述实施例的对应部分,在此不再赘述。

本申请提出的语音信息处理方法,通过对获取的语音信息转换为文本信息,将文本信息进行意图分类。若意图分类的结果为该文本信息为交互控制命令,则对文本信息进行分词、词性标注、和命名实体识别,将词性标注和命名实体识别的结果结合预设的智能家居词表模板和从云端获取的用户设备命名信息,一起生成所述意图分类下的结构化数据。通过意图分类,可以明确文本信息的任务类别,在对应的类别中进行处理,提升了对文本信息的处理速度。对获取的每一句语音信息转换为文本信息,并对文本信息进行处理生成结构化数据,提供了后续判断结构化数据是否满足批量处理条件的基础。

请参阅图5,本申请又一实施例提供了一种语音信息处理方法,本实施例在前述实施例的基础上,重点描述了判断结构化数据是否满足批量处理条件的过程,该方法可以包括:

步骤s310,将获取的语音信息转换为文本信息。

步骤s320,对所述文本信息进行处理,生成一条或多条结构化数据,每条结构化数据包括一个动作指令以及该动作指令与目标设备之间的对应关系。

步骤s310以及步骤s320可参阅前述实施例对应的部分,在此不再赘述。

在本申请实施例中,可以根据结构化数据的对应关系中所述动作指令对应的目标设备的数量以及是否对应有批量词,判断所述结构化数据是否满足批量处理条件。若所述对应关系中所述动作指令对应有多个相同名称的目标设备,则判定所述结构化数据满足批量处理的条件。若所述对应关系中所述动作指令对应有多个不同名称的目标设备,且存在批量词,则判定所述结构化数据满足所述批量处理的条件。若所述对应关系中所述动作指令对应有多个不同名称的目标设备,且不存在批量词,判定所述结构化数据不满足批量处理的条件。具体的可以包括如下步骤s330至步骤s350。

步骤s330,对于每条结构化数据,判断所述动作指令是否对应多个目标设备。若是,执行步骤s340;若否,执行步骤s360。

其中,对生成的一条或多条结构化数据进行分析,判断结构化数据中的动作指令以及该动作指令与目标设备之间的对应关系。若是一个动作指令对应有多个目标设备,则执行步骤s340;若是一个动作指令对应一个目标设备,则执行步骤s360。

例如,用户输入语音“把卧室灯打开”,那么生成的结构化数据为:

{intent:’control’,

position:null,

object:{name:’卧室灯’,id:’object.001’}

action:{name:’打开’,type:’on’,value:null}

is_batch:false}。

在该结构化数据中,动作指令“打开”对应一个目标设备“卧室灯”,则可判定这个结构化数据不满足批量处理条件,执行步骤s360。

例如,用户有四个灯,分别命名为“卧室灯”、“厨房灯”、“阳台灯”、“客厅灯”。当用户输入语句“把灯都打开”,那么生成的结构化数据为:

{intent:’control’,

position:null,

object:{name:’卧室灯’,id:’object.001’},{name:’厨房灯’,id:’object.002’},{name:’阳台灯’,id:’object.003’},{name:’客厅灯’,id:’object.004’}。

action:{name:’打开’,type:’on’,value:null}

is_batch:true}。

此时,该结构化数据中,一个动作指令“打开”对应着多个目标设备,“卧室灯”、“阳台灯”、“客厅灯”、“厨房灯”,则执行步骤s340。

步骤s340,判断所述多个目标设备的名称是否相同。若是,判定所述结构化数据满足批量处理条件,执行步骤s370;若否,执行步骤s350。

其中,结构化数据中已经含有多个目标设备,则判断动作指令对应的多个目标设备的名称是否相同,若相同,则判定该结构化数据满足批量处理条件,对该结构化数据进行批量读写;若多个目标设备的名称不相同,则执行步骤s350。例如,用户有两个空调,一个为卧室空调,一个为客厅空调,名称都为空调。用户输入语音为“打开空调”时,用户指向的是设备名称为空调的目标设备。生成的结构化数据为:

{intent:’control’,

position:null,

object:{name:’空调’,id:’object.001’},{name:’空调’,id:’object.002’}。

action:{name:’打开’,type:’on’,value:null}

is_batch:false}。

在该结构化数据中,有两个叫空调的目标设备,则该结构化数据中“打开”的动作指令指向了两个名称为空调的设备,则该结构化数据满足批量处理条件执行步骤s370。若是目标设备名称不一样,则执行步骤s350。

步骤s350,判断所述对应关系中是否对应有批量词。若是,判定所述结构化数据满足批量处理条件,执行步骤s370;若否,执行步骤s380。

其中,结构化数据有多个不同名称的目标设备,此时,则判断对应关系中是否有对应的批量词,批量词可以是“都”,“所有”,“全部”等词语。若存在批量词,则判定该结构化数据满足批量处理条件,进行批量处理;若不存在批量词,则执行步骤s380。

例如,用户有四个灯,分别命名为“卧室灯”、“厨房灯”、“阳台灯”、“客厅灯”。当用户输入语句“把灯都打开”,那么生成的结构化数据为:

{intent:’control’,

position:null,

object:{name:’卧室灯’,id:’object.001’},{name:’厨房灯’,id:’object.002’},{name:’阳台灯’,id:’object.003’},{name:’客厅灯’,id:’object.004’}。

action:{name:’打开’,type:’on’,value:null}

is_batch:true}。

在生成的结构化数据中,动作指令“打开”对应着多个目标设备,且存在着批量词,可判定该结构化数据满足批量处理条件,需要进行批量处理。这时,由于灯包括了“卧室灯”、“阳台灯”、“客厅灯”、“厨房灯”,且用户的语句中存在批量词“都”,即表明需要把“卧室灯”、“阳台灯”、“客厅灯”、“厨房灯”都打开。

步骤s360,对所述结构化数据进行正常处理。

若该结构化数据中一个动作指令只对应一个目标设备,则该结构化数据不满足批量处理条件,进行正常的处理。可以直接根据该结构化数据中的动作指令以及与动作指令对应的目标设备控制目标设备执行对应的动作。

步骤s370,对满足批量处理条件的结构化数据进行批量处理。

若判定所述结构化数据满足批量处理条件,则对该结构化数据进行批量处理。

步骤s380,提示用户明确所述动作指令对应的目标设备。

若用户动作指令指向的目标设备不明确,则需要提示用户明确需要控制的目标设备。具体提示用户明确动作指令对应的目标设备的方式可以是直接发出语音信息询问用户想要控制的目标设备是哪一个,或是给出可以控制的目标设备让用户进行选择。当用户明确了想要控制的某个目标设备,则进行单个读写,即一个动作指令对应一个目标设备,则根据动作指令控制目标设备执行对应的动作。若是用户表明要批量控制,在满足了批量处理条件时,对该结构化数据进行批量处理。

本申请提出的语音信息处理方法,通过对结构化数据的分析,判断是否满足批量处理条件,若满足批量处理条件,则判定该结构化数据需要进行批量处理,增强了对语音的理解,可减少用户的重复表述,使得对话更加自然流畅。

请参阅图6,本申请再一实施例提供了一种语音信息处理方法,本实施例在前述实施例的基础上,重点描述了对满足批量处理条件的结构化数据进行批量处理的过程,该方法可以包括:

步骤s410,将获取的语音信息转换为文本信息。

步骤s420,对所述文本信息进行处理,生成一条或多条结构化数据,每条结构化数据包括一个动作指令以及该动作指令与目标设备之间的对应关系。

步骤s430,根据每条结构化数据中的所述对应关系,判断所述每条结构化数据是否满足批量处理条件。

步骤s410至步骤s430可参照前述实施例的对应部分,在此不再赘述。

步骤s440,将满足批量处理条件的结构化数据拆分为多条单一结构化数据。

若结构化数据满足批量处理条件,则需要对该结构化数据进行批量处理。具体批量处理的方式可以是,将满足批量处理条件的结构化数据拆分为多条单一结构化数据,其中单一结构化数据中所述动作指令对应一个目标设备。

例如,用户家中有四个灯,分别命名为“卧室灯”、“厨房灯”、“阳台灯”、“客厅灯”,把四个灯统称为灯。用户输入的语句“把灯都打开”,生成的结构化数据为:

{intent:’control’,

position:null,

object:{name:’卧室灯’,id:’object.001’},{name:’厨房灯’,id:’object.002’},{name:’阳台灯’,id:’object.003’},{name:’客厅灯’,id:’object.004’}。

action:{name:’打开’,type:’on’,value:null}。

is_batch:true}。

在该结构化数据中,存在多个不同名称的目标设备,分别为卧室灯、厨房灯、阳台灯、客厅灯,动作指令为打开且存在着批量词,则判定满足批量处理条件,对该结构化数据进行批量处理。于是可以将该结构化数据拆分为四条单一结构化数据,每条单一结构化数据中一个动作指令对应一个灯。例如,上述结构化数据可以拆分出四个单一结构化数据,分别为:

第一个单一结构化数据为:

{intent:’control’,

position:null,

object:{name:’卧室灯’,id:’object.001’,type:’ac’,attribute:’ac_state’},

action:{name:’打开’,type:’on’,value:null}}。

第二个单一结构化数据为:

{intent:’control’,

position:null,

object:{name:’厨房灯’,id:’object.002’,type:’ac’,attribute:’ac_state’},

action:{name:’打开’,type:’on’,value:null}}。

第三个单一结构化数据为:

{intent:’control’,

position:null,

object:{name:’阳台灯’,id:’object.003’,type:’ac’,attribute:’ac_state’},

action:{name:’打开’,type:’on’,value:null}}。

第四个单一结构化数据为:

{intent:’control’,

position:null,

object:{name:’客厅灯’,id:’object.004’,type:’ac’,attribute:’ac_state’},

action:{name:’打开’,type:’on’,value:null}}。

步骤s450,根据所述单一结构化数据生成回复。

其中,将需要批量处理的结构化数据拆分为多个单一结构化数据,每个单一结构化数据都包含着一个动作指令,以及与动作指令对应的一个目标设备。那么可以根据单一结构化数据中的动作指令和目标设备来控制对应的目标设备执行动作指令。

其中,当执行主体为电子设备或网关时,可以根据单一结构化数据中的动作指令以及与动作指令对应的目标设备请求云平台,调用云平台接口,指示云平台根据动作指令控制目标设备执行对应的动作。通过调用云平台接口将单一结构化数据的动作指令发送给目标设备执行动作后,将“卧室灯”和“打开”通过云平台发送给与卧室灯相连的网关,由网关下发动作指令给卧室灯,控制卧室灯打开,卧室灯成功打开后可以反馈一个动作执行结果给网关,网关再通过云平台将动作执行结果反馈回来。当执行主体为服务器时,则可以直接根据结构化数据中的动作指令和目标设备控制对应的目标设备执行对应的动作,并接收目标设备执行动作后返回的动作执行结果。

在一种实施方式中,可以根据单一结构化数据以及对应的动作执行结果,生成回复文本。那么拆分的四个单一结构化数据可以对应生成四条回复文本。例如,在第一个单一结构化数据中,若目标设备反馈的动作执行结果为执行成功。回复模板为action.ac_state:“好的,已将[object_name][action_name]”。那么,将第一个单一结构化数据中对应的object_name和action_name填入回复模板生成回复文本则为“好的,已将卧室灯打开”。那么对应四个单一结构化数据可以生成四句回复文本。

在另一种实施方式中,可以当拆分的多个单一结构化数据都根据单一结构化数据控制目标设备执行动作,收到所有的执行结果后,可以结合未拆分前的结构化数据和动作执行结果,匹配对应的回复模板,生成回复文本。

接收到所述动作执行结果后,可以结合所述结构化数据和动作执行结果匹配对应的回复模板,生成回复文本。例如,该结构化数据拆分的四个单一结构化数据中的目标设备返回的动作执行结果都为执行成功。回复模板为action.ac_state:“好的,已将[object_name][action_name]”。那么,将对应的object_name和action_name填入回复模板生成的回复文本则为“好的,已将灯打开”。

生成回复文本后,可以使用语音合成技术将文本转变为对应的语音信息。通过用户输入语音信息的接口将语音信息输出。例如,用户是通过电子设备中的客户端通过语音对话助手发送的语音信息,则将对应回复文本生成的语音信息通过语音对话助手输出。

本申请提供的语音信息处理方法,将语音信息转换为文本信息,通过对文本信息的处理生成一条或多条结构化数据,分析结构化数据是否满足批量处理条件。若结构化数据满足批量处理条件,则对满足批量处理条件的结构化数据进行批量处理,将需要批量处理的结构化数据拆分为多个单一结构化数据,根据单一结构化数据中的目标设备和动作指令来控制目标设备执行对应的动作指令,并接收目标设备返回的动作执行结果,结合动作执行结果和结构化数据,匹配对应的回复模板,生成回复文本并转换成语音。实现了用户在需要批量处理时,降低了对话中的重复表述程度,提高了对话效率,用户在进行人对话时的语言可以更加自然流畅,提升了用户在使用语音控制设备的体验感。

请参阅图7,其示出了本申请实施例提供的一种语音信息处理装置500,所述装置500包括转换模块510、预处理模块520、判断模块530、处理模块540。

转换模块510,用于将获取的语音信息转换为文本信息;预处理模块520,用于对所述文本信息进行处理,生成一条或多条结构化数据,每条结构化数据包括一个动作指令以及该动作指令与目标设备之间的对应关系;判断模块530,用于根据每条结构化数据中的所述对应关系判断所述每条结构化数据是否满足批量处理条件;处理模块540,用于对满足批量处理条件的结构化数据进行批量处理。

请参阅图8,示出了本申请实施例提供的一种处理模块540的功能模块图。

进一步的,所述处理模块540还包括拆分单元541、执行单元542、接收单元543以及回复单元544。拆分单元541用于将需要批量处理的结构化数据拆分为多个单一结构化数据,所述单一结构化数据中的动作指令对应一个目标设备;执行单元542用于根据所述单一结构化数据控制所述单一结构化数据中的目标设备执行动作指令;接收单元543用于接收所述目标设备返回的动作执行结果;回复单元544用于根据所述单一结构化数据和所述动作执行结果,匹配对应的预设回复模板,将结构化数据中的目标设备和动作指令填入预设回复模板,生成回复文本。

进一步的,所述转换模块510还用于将回复文本转换成语音。

进一步的,所述预处理模块520还用于对文本信息进行意图分类,并对意图分类后的文本信息进行分词;对分词后的文本信息进行词性标注和命名实体识别;将所述词性标注和命名实体识别的结果进行基于模板匹配的映射解析,生成所述意图下的结构化数据。

进一步的,所述判断模块530还用于判断所述文本信息的意图是否明确,若不明确,所述处理模块540则提示用户表述明确意图。

进一步的,所述判断模块530还用于根据所述对应关系中所述动作指令对应的目标设备的数量以及是否对应有批量词,判断所述结构化数据是否满足批量处理的条件。若所述对应关系中所述动作指令对应有多个相同名称的目标设备,则判定所述结构化数据满足批量处理的条件;若所述对应关系中所述动作指令对应多个不同名称的目标设备,且存在批量词,则判定所述结构化数据满足所述批量处理条件;若所述对应关系中所述动作指令对应有多个不同名称的目标设备,且不存在批量词,则判定所述结构化数据不满足所述批量处理条件,则提示用户明确所述动作指令对应的目标设备。

进一步的,当所述判断模块530判定所述结构化数据满足批量处理条件时,处理模块540则对满足批量处理条件的结构化数据进行批量处理。

需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

综上所述,本申请提供的语音信息处理方法,通过对获取到的语音信息进行处理,生成一条或多条结构化数据,每条结构化数据包括一个动作指令以及该动作指令与目标设备之间的对应关系。根据每条结构化数据中的对应关系,判断结构化数据是否满足批量处理条件,对满足批量处理条件的结构化数据进行批量处理。通过批量处理的判断,对满足批量处理条件的进行批量处理,减少了用户使用的复杂度和重复度,使得对话的语言更加自然流畅,可以缩短交互的时间、提升交互的体验。

在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

请参考图9,其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器101、存储器102、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器102中并被配置为由一个或多个处理器101执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。

处理器101可以包括一个或者多个处理核。处理器101利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器102内的指令、程序、代码集或指令集,以及调用存储在存储器102内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器101可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器101可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器101中,单独通过一块通信芯片进行实现。

存储器102可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。存储器102可用于存储指令、程序、代码、代码集或指令集。存储器102可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。

请参考图10,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质600中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。

计算机可读存储介质600可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质600包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。计算机可读存储介质600具有执行上述方法中的任何方法步骤的程序代码610的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码610可以例如以适当形式进行压缩。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1