1.本发明涉及语音智能处理技术,具体而言,涉及一种具有多语音理解引擎的智能语音理解系统和智能语音交互方法。
背景技术:2.目前的智能语音处理(nlp)方案是在语音识别得到的文字序列的基础上进行语义分析来实现自然语言理解。具体地,先将语音转写为文字,然后通过关键词匹配技术,或者结合上下文或知识图谱,亦或借助深度学习技术,来分析该文字序列进而获得语音所表达的含义(语义)。这种方案非常依赖于语音转写的准确性。
3.语音转写技术本身有很大的局限。语音识别的识别准确率受到很多因素的影响,也无法建立统一的语音识别模型。例如,对于相同的字、词、短语和句子,由于受到说话人发音特点、说话习惯、说话场景、上下文、实时情绪等因素的影响,不同人的语音在音量、音调、语气、音长等方面有所差异,并且说话人发声器官与声音接收器(麦克风)之间的距离、背景噪音、多人同时说话(鸡尾酒会问题)、语音传输信道带宽(如电话语音)等外部因素也会增加语音识别的复杂度和难度。特别地,当说话人对于某些字或词的发音与其它字或词的标准发音相近或相同时,容易发生识别偏差或识别错误。
4.对于中文来说,大量多音字的存在更增加了获得识别率的难度。尽管目前的语音识别技术可以针对具体方言、具体口音甚至具体人来训练具体的语音识别模型,但是却无法实现这些模型的统一和自动切换,因此并不能从根本上解决发音个异性导致的识别不准的问题。
5.目前的语音处理方案都只包括一个语音理解引擎,使用一个转写单元/转写模型。这是因为,对于这种方案而言,转写准确率决定了语义理解的准确率,而转写的结果又具有唯一性,因此只能选择一个转写准确率更高的转写模型,例如在某一垂直领域优化过的转写模型,或者针对某一种方言或口音优化过的转写模型。但是,对于口音或方言无法预测的语音交互场景,无法事先选择或自动切换更优的转写模型,因而在转写准确率因转写模型而降低的情况下,语音理解效果也差强人意。此外,转写模型的优化也需要的很高的训练数据成本和人工成本。
技术实现要素:6.根据本发明的一个方面,提供了一种智能语音理解系统,包括:非采用转写的方式处理语音的第一语音理解引擎,采用转写的方式处理语音的第二语音理解引擎,以及理解结果判定单元,其中,第一语音理解引擎包括语音处理单元和自然语言理解单元,第一语音理解引擎的语音处理单元对语音进行处理,获得编码序列形式的语音数据,第一语音理解引擎的自然语言理解单元通过自然语言理解模型基于编码序列形式的语音数据来获得与语音对应的意图,第二语音理解引擎包括语音处理单元和自然语言理解单元,第二语音理
解引擎的语音处理单元对语音进行转写处理,获得文本形式的语音数据,第二语音理解引擎的自然语言理解单元通过自然语言理解模型基于文本形式的语音数据来获得与语音对应的意图,理解结果判定单元根据第一语音理解引擎的理解结果和第二语音理解引擎的理解结果来判断与语音对应的意图。
7.根据本发明实施例的智能语音理解系统,可选地,第一语音理解引擎的理解结果包括语音与某个语用信息分类节点相对应的置信度,第二语音理解引擎的理解结果包括同一条语音与某个语用信息分类节点相对应的置信度,理解结果判定单元根据第一语音理解引擎关于语用信息分类节点的设定阈值和第二语音理解引擎关于语用信息分类节点的设定阈值来获得智能语音理解系统的语音理解结果。
8.根据本发明实施例的智能语音理解系统,可选地,置信度是语音与语音交互层的语用信息分类节点相对应的概率。
9.根据本发明实施例的智能语音理解系统,可选地,第一语音理解引擎和第二语音理解引擎基于相同的分层设置的语用信息分类节点进行语音理解。
10.根据本发明实施例的智能语音理解系统,可选地,第一语音理解引擎的自然语言理解单元利用编码序列形式的语音数据与语用信息分类节点的配对数据生成语音理解模型,第二语音理解引擎的自然语言理解单元利用文本形式的语音数据与语用信息分类节点的配对数据生成语音理解模型,并且第一语音理解引擎的自然语言理解单元和第二语音理解引擎的自然语言理解单元,分别地,选择当前语音交互的某一层的语用信息分类节点来训练语音理解模型,或者选择当前语音交互的多层的语用信息分类节点来训练语音理解模型,或者选择当前语音交互的所有语用信息分类节点来训练语音理解模型。
11.根据本发明实施例的智能语音理解系统,可选地,第一语音理解引擎的自然语言理解单元选择在当前语音交互的某一层收集的与语用信息分类节点对应的语音或编码序列形式的语音数据对语音理解模型进行训练,或者选择在当前语音交互的多层或者全部各层收集的与语用信息分类节点对应的语音或编码序列形式的语音数据对语音理解模型进行训练,或者选择当前语音交互之外的其它语音交互的相同语用信息分类节点的训练数据来对当前语音交互的语音理解模型进行训练;
12.第二语音理解引擎的自然语言理解单元选择在当前语音交互的某一层收集的与语用信息分类节点对应的文本形式的语音数据对语音理解模型进行训练,或者选择在当前语音交互的多层或者全部各层收集的与语用信息分类节点对应的文本形式的语音数据对语音理解模型进行训练,或者选择当前语音交互之外的其它语音交互的相同语用信息分类节点的训练数据来对当前语音交互的语音理解模型进行训练。
13.根据本发明实施例的智能语音理解系统,可选地,理解结果判定单元获得智能语音理解系统的语音理解结果包括对于第一语音理解引擎的理解结果和第二语音理解引擎的理解结果进行加权处理。
14.根据本发明实施例的智能语音理解系统,可选地,理解结果判定单元获得智能语音理解系统的语音理解结果包括根据语音长度对于第一语音理解引擎的理解结果和第二语音理解引擎的理解结果进行加权处理。
15.根据本发明实施例的智能语音理解系统,可选地,智能语音理解系统包括理解结果同步单元,使得理解结果判定单元根据多个语音理解引擎对于同一条语音的语音理解结
果来确定智能语音理解系统的语音理解结果。
16.根据本发明实施例的智能语音理解系统,可选地,智能语音理解系统记录第二语音理解引擎转写获得的与语用信息分类节点对应的文本形式的语音数据作为实体词信息。
17.根据本发明的另一方面,提供了一种智能语音交互方法,其中,包括:接收语音;第一语音理解引擎对语音进行处理,获得编码序列形式的语音数据,通过自然语言理解模型对编码序列形式的语音数据进行理解;第二语音理解引擎对语音进行转写处理,获得文本形式的语音数据,通过自然语言理解模型对文本形式的语音数据进行理解;根据第一语音理解引擎的理解结果和第二语音理解引擎的理解结果来判断与语音对应的意图;做出与意图对应的响应。
附图说明
18.为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本发明的一些实施例,而非对本发明的限制。
19.图1示出了根据本发明实施例的具有多个语音理解引擎的智能语音理解系统的例子;
20.图2示出了根据本发明实施例的智能语音理解系统的自然语言理解模型生成方法的例子;
21.图3示出了根据本发明实施例的智能语音理解系统的智能语音交互方法的例子;
22.图4示出了预设语用信息分类节点的一个例子。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。
24.除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
25.根据本发明实施例的具有多个语音理解引擎的智能语音理解系统包括至少一个非采用转写的方式处理语音的语音理解引擎,智能语音理解系统根据各个语音理解引擎的理解结果判定得到用于语音交互的语音理解结果。
26.图1示出了根据本发明实施例的具有多个语音理解引擎的智能语音理解系统的例子。如图1所示,第一个语音理解引擎包括语音处理单元101和自然语言理解单元102;第二个语音理解引擎包括语音处理单元104和自然语言理解单元105。其中,包括语音处理单元101和自然语言理解单元102的第一个语音理解引擎是非采用转写的方式处理语音的语音理解引擎。
27.语音处理单元101对语音进行处理,获得编码序列形式的语音数据。这些语音可以是语音交互中的已存语音或实时语音,也可以是来自训练语料数据库的训练用语音。
28.可选地,用音频采样的方式对语音进行处理。例如,对于电话语音,采用8000hz、16bit并且单声道的音频采样格式,获得音频采样数据。电话语音8khz的采样率是因为受到电话信道带宽4khz的限制,而电话信道带宽4khz的限制是为了节省带宽资源,只保留话音频谱中300~3400hz这段较窄范围内的声音来辨别话音信号。在4g乃至5g移动通信网络的条件下,4khz的窄带传输限制已经逐渐退出历史舞台,考虑到人耳能听到的声音的频率范围在(16~20000hz)。因此可以考虑用更高的采样率,例如16khz,48khz,从而增加音频(语音)采样的保真度,减少因采样造成的语音信息的损失。音频采样参数可以包括采样率,比特率,单/双声道(通常采用单声道),以及采样时长等。可以根据具体交互场景和网络资源条件来设置采样时长,例如,8秒,10秒,15秒,20秒等。可选地,在音频采样后用语音活动检测(voice activity detection,vad)技术对音频采样信号进行处理,检测噪音环境中的静音部分,从而识别和剪切语音部分,获得有效的音频采样数据。
29.然后对该音频采样数据进行编码处理,例如,用音素(phoneme)作为编码单位,这样可以用声学模型从音频采样数据获得音素序列。例如,英语国际音标共有48个音素,其中元音音素20个、辅音音素28个;而现代汉语拼音(汉字注音拉丁化方案,iso7098)有32个音素。也可以结合语言模型,以音素以及音素的组合作为编码单元。例如,用音节序列来作为编码处理的结果;也可以用适用于某种语言特点的方式,如汉语的声母、韵母,来进行编码。进一步,根据不同语言特点采用混合编码的方式,例如,编码规则既包括英语音节也包括汉语的声母和韵母,这样可以实现对于多语言混合语音的编码。例如,对于语言表述“为了省钱我住在郊区的motel里”——如果仅用汉语的声母和韵母来编码,则可以编码为“w-ei-l-e-sh-eng-q-i-an-w-o-zh-u-z-ai-j-i-ao-q-u-d-e-m-ou-t-ai-l-l-i”,其中,英语“motel”按照发音近似为汉语拼音的“m-ou-t-ai-l”,这里可以看到汉语发音音节与英语发音音节的差异;如果用汉语声母和韵母与英语音节混合编码,则可以编码为这样可以更接近真实语音,语音信息量损失也更小。汉语也是有音节的,而且汉语都是单音节字,但如果用汉语音节来编码汉语并用英语音节来编码英语,因为两种语言音节的差异(汉语有约410个音节;而英语有两三千个音节)以及语言模型的差异,会造成编码结果的较大偏差,例如,上述例子中,如果用汉语音节来编码汉语并用英语音节来编码英语,如果在音节的识别上发生偏差,则可能会编码为“wei-le-sheng-qian-wo-zhu-zai-jiao-qu-de-mou-tai-li”,相比上面的混合编码方式与实际语音的差距更大。这种差异化的混合编码可以降低音节识别的错误率。进一步,可以根据不同语言的特点,加入其它的编码维度。例如,汉语可以增加声调,用音节加声调的组合进行编码。汉语普通话只有约410个音节,其中四个声调都有意义的音节实际只有160多个,其他音节往往只能和部分声调结合,因而,除一些文言专用音节和方言土语专用音节外,对于普通话而言,声调与音节的组合约有1250个。英语没有声调,但是可以增加重音作为编码维度。
30.上述对语音进行的处理,获得了编码序列形式的语音数据。这里的编码码元可以是音素、音节或者音素和音节的组合。也就是说,编码序列可以包括有多个编码码元,这些码元可以是音素,也可以是音节,还可以是音素和音节的组合。并且这些音素或音节也可以包括不同语言的音素或音节,还可以是独立于特定语言的定制的音素级或音节级码元。
31.自然语言理解单元102通过自然语言理解模型来获得与语音对应的语义。
32.根据本发明实施例的非采用转写的方式处理语音的语音理解引擎,可以基于语用信息来生成自然语言理解模型和实现智能语音交互。
33.根据信息科学或广义信息论,任何一个信息都可划分为语法信息、语义信息和语用信息三个层次。语法、语义和语用是从符号学中借用来的术语。语法是指符号与符号之间的关系,是书面语言、口头语言、计算机编码语言或行为语言的规则;语义是指符号与实体之间的关系,是符号所表达的内容和含义;语用是指符号与使用者之间的关系,指符号所表达的内容和含义对使用者的效用。语法信息也被称作技术信息,它是研究符号与符号的形式关系,研究它们的编码、传递、重复和再现等,并不考虑这些符号的实际意义和效用。语法信息具有客观的本性,它是信息最基本的层次。语义信息与语法信息相反,它表明信息的内容含义以及在逻辑上的真实性、准确性和可靠性。人们对接触到的事实材料(语法信息)加以理解,把它与它所代表的实体联系起来,进行分析比较形成某种概念,这就是语义信息。它是对事物运动状态的陈述或表征,其目的是保证接收者得到信息的实际内容。语用信息是指信息对接收者的效用,即信息的实用性和价值。
34.简言之,语法信息是信源输出符号的构造或其客观特性的表现,与信宿的主观要求无关;语义信息则考虑符号(集)的意义;语用信息是对信宿有用的信息。语法信息、语义信息、语用信息是相互关联的。同样的含义,可用不同语言或文字来表达,而各种表达所包含的语法信息可以是不同的;一条表达所蕴含的含义往往只有部分对于信宿或信息的接受者有用。因此,一般而言,语义信息的信息率可小于语法信息的信息率,语用信息的信息率又小于语义信息的信息率。
35.狭义信息论应用数理统计方法来研究信息处理和信息传递,它研究存在于通讯和控制系统中普遍存在着的信息传递的共同规律,以及如何提高各信息传输系统的有效性和可靠性。前述的语音识别技术是以狭义信息论为基础的,首先力图从接收到的语音中还原出信源输出的符号(文字),这是建立在语法信息层次上的,然后进行语义分析,获得语义信息。如前所述,因为信源(说话人)的差异、信道(声音传输路径、介质)的条件限制等会造成语音识别结果的不确定性,从而影响语义理解的准确度。
36.根据香农信息论,信息是确定性的增加。也就是说,信息量不取决于信息的长度,而在于减少了多少不确定性。由此可知,上述的语音识别过程增加了不确定性从而减少了信息量甚至损失了信源原本传输的信息。
37.为了解决上述问题,本发明结合上述的狭义信息论和广义信息论,提出了一种全新的基于语用信息的语音处理方法。
38.首先,考查语音、文字与信息的关系。语音是先于文字产生的,是更早的信息载体。由于在古代的技术条件下,无法实现语音的远距离传输和存储,因此发明了文字。同样是信息载体,相比于语音,文字能够实现远距离传输和存储。进一步,通过编码(书写、撰文)能够使得基于文字传输信息所需的信道带宽更小,也就是说可以通过编码提高单位文字所能承载的信息量,并且通过编码可以对信息进行加密。于是,文字成为了记录文明的最重要的信息载体。基于对文字承载信息的路径依赖,当前的自然语音处理技术采用了先从语音识别文字,再分析文字所承载的信息的技术路径。
39.然而,在现代的技术条件下,已能够实现语音的远距离传输和存储,并且随着通信
技术和网络技术的发展,带宽和成本也不再是语音传输的瓶颈,人们可以用更清晰的语音进行交互。在这种条件下,当信源发出的信息是以语音为载体时,可以不必从语音识别文字,而是直接在信宿(接收端)通过分析所接收到的语音来获得信息。
40.进一步,从信息量的角度分析。如前所述,信息量不取决于信息的长度,而在于减少了多少不确定性。对于信宿来说,信息量取决于语用信息而非语义信息。举个简单的例子,信源发出的语音或文字为“是的”,语义为“肯定”,但是如果信宿想知道的是“今天星期几”,那么该语义信息并不能减少关于“今天星期几”的不确定性,因而信息量为零。如果信宿知道由信源发出的语音或文字“是的”是关于“今天是星期二吗”的回答,那么该信息所包含的语用信息是“对今天是星期二予以肯定”,减少了关于“今天星期几”的不确定性(考虑到信源所发出的信息也可能并不是真实的,因而不能完全消除关于“今天星期几”的不确定性)。再举一个例子,信源发出的语音或文字为“我弟弟下个月要结婚”,信宿由此获得的语用信息是信源没有意愿马上偿还债务。对于信宿所关心的“是否愿意马上偿还债务”,信源发出的这段表达是有信息量的。由此可见,语用信息可能并不包括在语义信息中或者需要接收者根据自身的主观判断从语义信息中得出;并且,同一信息对于不同的接收者、或同一信息对于在不同的语境下的同一接收者,接收者所获得的语用信息和信息量可能不同。从信息交互的目的的角度,接收者获得越多的语用信息和信息量则信息交互越有效。
41.基于上述对于信息、信息载体(语音、文字)和信息量的分析,本发明提出了一种基于语用信息的智能语音处理方法,包括自然语言理解模型的生成/训练方法和智能语音交互方法。
42.图2示出了根据本发明实施例的自然语言理解模型生成方法的例子。如图2所示,在步骤s201,预设语用信息分类节点。图4示出了预设语用信息分类节点的例子。在图4所示的示意性例子中,采用了多层语音交互结构,具体包括a层、b层和c层。在a层结构,包括了a01、a02、a03、a04、a05五个预设语用信息分类节点,分别对应五类语用信息。所述语用信息分类的设定是接收者基于交互需求来设定的。例如,图4中,a层交互是身份确认,可以包括a01—是本人、a02—重复询问、a03—非本人、a04—投诉倾向、a05—不方便,这五个语用信息分类。也就是说,接收者需要获知来自信源的语音所携带的信息属于这五个语用信息分类中的哪一类。根据不同信息交互需求,预设语用信息分类节点可以包括单层或多层分类,在每一层设定语用信息分类节点。其中,在不同层可以设置相同的语用信息分类节点。
43.在步骤s202,对语音进行处理,获得编码序列形式的语音数据。步骤s202可以由语音处理单元101进行。语音处理单元101利用上述方法对语音进行处理,获得编码序列形式的语音数据。
44.对于自然语言理解模型生成方法而言,步骤s201和步骤s202的顺序没有特别要求,可以步骤s201在前也可以步骤s202在前。
45.在步骤s203,将编码序列形式的语音数据与语用信息分类节点相关联。关联编码序列形式的语音数据和语用信息分类节点的目的是形成用于训练自然语言理解模型的训练语料对,即编码序列形式的语音数据与语用信息分类节点的数据对。在对自然语言理解模型进行训练时,这些编码序列形式的语音数据与语用信息分类节点的数据对作为模型训练的输入数据。因为编码序列形式的语音数据对人而言可能不具有可读性,因此如果是人工将编码序列形式的语音数据与语用信息分类节点相关联,那么一种可行的方法是由人来
听编码化之前的语音,理解语音所包含的语用信息,将该语音与所对应的语用信息分类节点相关联,即人工标注,从而获得编码序列形式的语音数据与语用信息分类节点的配对数据。
46.在步骤s204,利用编码序列形式的语音数据与语用信息分类节点的配对数据训练生成自然语言理解模型。自然语言理解模型的生成可以由自然语言理解单元102进行。用于自然语言理解模型训练的配对数据的数量可以是少量的一条或几条,也可以是大量的数据。训练用配对数据的信息量取决于编码序列形式的语音数据的差异度,也就是语音处理单元101对与相同语用信息分类节点对应的不同语音进行处理得到的各个编码序列之间的差异。通常,差异化的编码序列形式的语音数据越多,自然语言理解模型的训练效果越好,对语音的理解准确度越高。换句话说,训练语料包括越多的实际语音情况,自然语言理解模型也就能理解越多的语音。
47.需要注意的是,因为在进行自然语言理解模型时,自然语言理解单元102会默认用于训练的配对数据是正确的,因此如果两条语音数据在编码化之后获得的编码序列相同或相近但所对应的语用信息分类节点不同,会影响模型训练的效果。这种情况发生的可能原因是语音数据与语用信息分类节点的关联有误,从人工标注的角度,就是“告诉”机器人对该语音错误的理解结果或意图;也可能是因为两条语音数据本身非常接近,但是却对应不同的理解,这在不同方言之间是可能出现的。对模型训练效果的影响,具体而言,当识别近似语音时,会降低该语音对于相关语用信息分类节点的识别准确度,降低置信度值。例如,对于两条相似语音,分别标注为了a01—是本人和a03—非本人,其中标注为a03—非本人是错误的,并对自然语言理解模型进行了训练,那么当机器人接收到相似或近似语音进行理解时,可能会不确定理解结果,具体表现为对理解结果的置信度不高,例如达不到80%以上。可以在训练自然语言理解模型时加入语音近似且标注正确的大量配对数据进行训练,降低个别标注错误的训练数据对于模型的影响。一般而言,语音之间的近似度会随着语音长度的增加而降低,因此上述标注错误对于短语音理解相对于长语音理解的影响更大一些。
48.语音理解的目标是针对一条语音,自动判断与其对应的语用信息分类节点。例如,在基于呼叫中心的智能语音交互场景,当机器人询问用户是否为所呼手机号的机主本人(对应图4中的a层身份询问),被呼用户可能有多种回答方式,其语音被理解为a01~a05中的一个语用信息分类节点所对应的意图。在利用自然语言理解模型进行理解时,自然语言理解模型计算出被理解的语音关于各个语用信息分类节点的置信度,然后根据这些置信度值来确定理解结果。按照这种自然语言理解模型的使用方式,可以在训练自然语言理解模型时选取语用信息分类节点和对应的训练数据。其中,可以选择当前语音交互的某层的语用信息分类节点来训练自然语言理解模型,也可以选择当前语音交互的多层的语用信息分类节点来训练自然语言理解模型,还可以选择当前语音交互的所有语用信息分类节点来训练自然语言理解模型;可以选择在当前语音交互的某层收集的与语用信息分类节点对应的语音或编码序列形式的语音数据对自然语言理解模型进行训练,也可以选择当前语音交互的多层或者全部各层收集的与语用信息分类节点对应的语音或编码序列形式的语音数据对自然语言理解模型进行训练,还可以选择当前语音交互之外的其它语音交互的相同语用信息分类节点的训练数据来对当前语音交互的自然语言理解模型进行训练。
49.生成自然语言理解模型的算法可以是基于统计的算法,也可以是深度学习/深度神经网络算法,也可以是两种算法的结合。其中,基于深度学习/深度神经网络算法可以是word2vec、rnn、transformer、bert中的一种或者组合。
50.第二个语音理解引擎也可以采用图2的方法训练自然语言理解模型。其中,如果该语音理解引擎是基于转写的引擎,则语音处理单元104对语音进行转写处理,生成以字、单词、标点、空格为编码单元的编码序列,作为文本形式的语音数据。在将文本形式的语音数据与语用信息分类节点相关联时,可以通过看文字来进行人工标注。需要注意的是,因为语音转写的文字可能不准确,对于不能与语用信息分类节点对应的文本形式的语音数据,不作为训练数据用于自然语言理解模型的训练。
51.第一个语音理解引擎和第二个语音理解引擎可以是独立配置的引擎,或者配置在一套系统独立进行工作,或者相互协作进行工作。
52.根据本发明的实施例,自然语言理解单元102和自然语言理解单元105可以采用相同或类似的自然语言理解模型,采用上述的自然语言理解模型生成/训练方法。
53.图3示出了根据本发明实施例的智能语音交互方法的例子。如图3所示,在步骤s301,接收语音。该语音可以是提问语音也可以是应答语音。例如,对于用户的提问,智能语音交互系统(智能语音交互机器人)接收来自用户的语音,然后根据对用户语音的理解结果自动进行响应;也可以是智能语音交互机器人提问,用户应答,机器人然后根据对用户语音的理解结果自动进行响应。这种问题-回答可以多轮进行。用户语音通常是自然人直接或者间接发出的声音,甚至也可能是语音助手/语音机器人产生的语音。
54.在步骤s302,对用户语音进行处理,获得编码序列形式的语音数据。可以采用步骤s201的方法对用户语音进行音频采样和编码。
55.步骤s303和步骤s304,使用自然语言理解模型对编码序列形式的语音数据进行处理,得到与该编码序列形式的语音数据对应的语音的语用信息。
56.根据本发明实施例的语音理解,具体地,是针对一条语音,自动判断与其对应的语用信息分类节点。例如,在基于呼叫中心的智能语音交互场景,当机器人询问用户是否为所呼手机号的机主本人(对应图4中的a层身份询问),被呼用户可能有多种回答方式,其语音被理解为a01~a05中的一个语用信息分类节点所对应的意图。
57.根据本发明实施例的语音理解的基础是如前述步骤s201的预设语用分析分类节点,以及如前述步骤s204的利用编码序列形式的语音数据与语用信息分类节点的配对数据生成、训练自然语言理解模型。也就是说,基于语用信息的语音理解需要先预设语用分析分类节点并且生成与之相应的自然语言理解模型。
58.具体他,在利用自然语言理解模型进行理解时,自然语言理解模型计算出被理解的语音关于各个语用信息分类节点的置信度(步骤s303),然后根据这些置信度值来确定理解结果(步骤s304)。这里的置信度可以理解为语音与某语用信息分类节点相对应的概率。因为在某层交互中,预设了一个或者多于一个语用信息分类节点,所以自然语言理解模型计算在该层交互中获得的用户语音与该层交互的各个语用信息分类节点相对应的概率,且对于一条用户语音,其与该层各个语用信息分类节点分别对应的概率之和为100%(可归一化为100或1.0)。例如,经过自然语言理解模型计算,a01的置信度为80,a02的置信度为0,a03的置信度为20,a04和a05的置信度为0。
59.根据这些置信度值来确定理解结果有很多种方式。对于单个工作的语音理解引擎而言,可以将置信度值最高的语用信息分类节点作为语音理解结果;也可以将置信度值超过预设阈值的语用信息分类节点作为语音理解结果。如上例,a01的置信度为80,a02的置信度为0,a03的置信度为20,a04和a05的置信度为0。如果将置信度值最高的语用信息分类节点作为语音理解结果,那么可以将a01确定为语音理解结果。如果设定置信度阈值为90,则不能确定哪个语用信息分类节点为语音理解结果,这种情况下,可以有进一步的处理:例如,请求用户再次做出语音表达,然后对新的一条用户语音进行理解,如果用户再次表达超过设定次数(例如两次)仍不能达到置信度阈值,则进行结束交互的处理或者将用户最后一次的表达所对应的置信度值最高的语用信息分类节点作为语音理解结果,还可以转人工处理;也可以请求用户确认所述表达所对应的置信度值最高的语用信息分类节点作为语音理解结果;或者直接转人工处理。
60.还可以设置多个阈值,例如第一阈值80,第二阈值60。如果被理解的语音关于当前交互层的某个语用信息分类节点的置信度高于80,则以该语用信息分类节点作为理解结果;如果被理解的语音关于当前交互层的某个语用信息分类节点的置信度介于60和80之间,则请求用户确认此次表达是否对应的置信度值最高的语用信息分类节点,如果用户确认,则将该语用信息分类节点作为语音理解结果,如果用户未确认,则请求用户再次做出语音表达,然后对新的一条用户语音进行理解;如果被理解的语音关于当前交互层的某个语用信息分类节点的置信度低于60,则请求用户再次做出语音表达,然后对新的一条用户语音进行理解,如果用户再次表达超过设定次数(例如两次)仍不能达到80,则进行结束交互的处理或者将用户最后一次的表达所对应的置信度值最高的语用信息分类节点作为语音理解结果或者转人工处理。
61.可以根据自然语言理解模型的训练数据量、测试/生产数据的置信度分布、语音交互层级结构和语音交互场景需求等多方面因素来设置置信度阈值。例如,如果训练数据量较少,测试/生产数据的置信度均值较低,交互层级流转要求较高,则可以设置较低的置信度阈值。另外,可以在一个语音交互的多层统一设置一个或多个置信度阈值,也可以为单层设置置信度阈值,还可以对单个语用信息分类节点设置置信度阈值。置信度阈值的设置可能会改变具体语音交互的过程,也因此能够使得语音交互更加顺畅,获得更好的用户体验。
62.对于多个语音理解引擎同时工作的情况,需要参考各个语音理解引擎计算得到的置信度来确定被理解的语音与当前交互层的哪个语用信息分类节点相对应。理解结果判定单元103基于各个语音理解引擎计算得到的置信度来确定被理解的语音与当前交互层的哪个语用信息分类节点相对应。
63.根据本发明的实施例,对于两个语音理解引擎同时工作的情况,例如图1所示的第一个语音理解引擎和第二个语音理解引擎同时工作。相同的待理解语音被输入到语音处理单元101和语音处理单元102,由语音处理单元101和语音处理单元102分别生成不同的编码序列形式的语音数据,例如,语音处理单元101生成编码序列的编码码元是音素或音节或者音素和音节的组合,语音处理单元102生成编码序列的编码码元是文字,也就是说语音处理单元102将语音转写为了文本,该文本可以由字或单词组成,可以包括空格和/或标点,也可以用分词模型和语法模型进行了处理。
64.自然语言理解单元102和自然语言理解单元105利用各自的自然语言理解模型分
别对由语音处理单元101和语音处理单元102分别生成的编码序列形式的语音数据进行计算,分别得出待理解语音与某个语用信息分类节点相对应的置信度。根据本发明实施例的语音理解引擎,在利用自然语言理解模型得到待理解语音与某个语用信息分类节点相对应的置信度的运算过程中,将通过语音—文本转写工具得到的与该条语音对应的文本作为一个编码序列整体地进行理解,而无需通过关键词、语法库、知识库等来分析文本的语义。
65.自然语言理解单元102和自然语言理解单元105各自的自然语言理解模型的生成方法可以不同。例如,自然语言理解单元102选择当前语音交互的某层的语用信息分类节点来训练自然语言理解模型,自然语言理解单元105选择当前语音交互的所有语用信息分类节点来训练自然语言理解模型。可选地,进行语音理解时,当前语音交互的分层结构和预设的语用信息分类节点,即分层设置的语用信息分类节点,对于两个语音理解引擎而言是相同的。例如,第一个语音理解引擎和第二个语音理解引擎都采用图4所示的语音交互分层结构以及语用信息分类节点设置。这样,在确定语音与当前交互层的哪个语用信息分类节点相对应时,两个语音理解引擎的理解结果可以相互验证。不同的语音理解引擎也可以采用不同的语音交互结构和语用信息分类节点集合,例如,一个语音理解引擎采用分层的语用信息分类节点结构,每次对一层的语用信息分类节点计算对应的置信度;另一个语音理解引擎采用单层的语用信息分类节点结构(不分层),每次对全部语用信息节点或者部分语用信息节点计算对应的置信度。
66.具体地,如果两个语音理解引擎得出相同的结果,那么理解结果判定单元以该理解结果作为语音理解结果;如果两个语音理解引擎均未获得理解结果(例如因为两个语音理解引擎分别计算得到的置信度均未达到可以确定理解结果的置信度阈值),则提示用户重新输入语音,再对新的语音进行理解;如果两个语音理解引擎中只有一个获得理解结果,则将该理解结果作为语音理解结果;如果两个语音理解引擎都分别获得了理解结果,但所获得的理解结果不同,则需要增加条件进行判断。
67.对于两个语音理解引擎都分别获得了理解结果,但所获得的理解结果不同的情况,需要结合两个语音理解引擎各自计算得到的所述语音与所述语用信息分类节点相对应的置信度,以及各个语音理解引擎在此处判断理解结果所用的置信度阈值来判断多引擎的理解结果。例如,如果两个语音理解引擎在此处设置的用于判断理解结果的置信度阈值的差值大于一定设定值(比如:20),比如置信度阈值分别为80和40,那么将置信度阈值高的语音理解引擎的理解结果作为多引擎的理解结果。如果两个语音理解引擎在此处设置的用于判断理解结果的置信度阈值之差小于一定设定值(比如:20),如置信度阈值分别为80和70,那么提示用户重新输入语音,再对新的语音进行理解。
68.有一种情况,待理解的用户语音很短,只有一个或两个音节的长度,这种情况在汉语中比较常见(因为汉字是单音节词),如果某个语音理解引擎采用转写的方式处理语音,并且获得超过置信度阈值的理解结果,而另一个未采用转写方式处理语音的语音理解引擎也获得超过置信度阈值的理解结果且该理解结果与采用转写方式处理语音的语音理解引擎的理解结果不同,那么以采用转写方式处理语音的语音理解引擎的理解结果为多引擎的理解结果,而不需提示用户重新输入语音,再对新的语音进行理解。这是因为,对于只有一个或两个音节长度的语音,通过语音转写为一个字或两个字,相比更长的编码序列(比如音素级编码的编码序列),结果更加确定,收敛度更高。并且,对于转写错误的情况,比如将“可
以”转写为“阔以”,对于例如图4中b01“明确需求”这一语用信息分类节点而言,可能因为达不到置信度阈值而不会发生前述一个语音理解引擎采用转写的方式处理语音并且获得超过置信度阈值的理解结果而另一个未采用转写方式处理语音的语音理解引擎也获得超过置信度阈值的理解结果且该理解结果与采用转写方式处理语音的语音理解引擎的理解结果不同的情况。这里并非是说采用转写的方式处理语音的语音理解引擎优于非采用转写的方式处理语音的语音理解引擎,而是在说明一种特殊情况下,采用转写的方式处理语音的语音理解引擎对于非采用转写的方式处理语音的语音理解引擎的补充。其背后的逻辑在于,因为存在杂音或背景音的干扰、用户语音切割不完整、网络传输导致用于语音不完整或不清晰、训练语料不正确等原因会导致语音理解引擎理解不正确(获得达到置信度阈值的理解结果但该结果本身不正确),这种情况采用不同语音处理和/或编码方式的多个语音理解引擎可以实现理解结果的相互验证和纠错,提升整个系统的理解准确度。当然,也可能存在各个引擎均输出错误理解结果的情况。可选地,对于各个语音理解引擎的语音理解结果进行加权处理,还可以根据语音长度对各个语音理解引擎的语音理解结果进行加权处理。语音长度的衡量方式可以是音素、音节、文字的长度等。
69.如果多个语音理解引擎同时工作,有可能发生不同语音理解引擎处理时间不一致的情况,这就需要设置理解结果同步单元,来保证理解结果判定单元103判定的是对于同一条用户语音的语音理解结果。理解结果同步单元可以设置在结果判定单元103之前,也可以由结果判定单元103实现理解结果同步的功能。
70.多个语音理解引擎也可以采用互为补充的方式工作,一个语音理解引擎无法获得语音理解结果,则另一个语音理解引擎再进行语音理解。
71.非采用转写的方式处理语音的语音理解引擎和采用转写的方式处理语音的语音理解引擎协同工作,可以如上所述进行语音理解结果的相互验证,也可以利用各自的特点进行分工。例如,非采用转写的方式处理语音的语音理解引擎负责获得语用信息分类节点对应的意图,而采用转写的方式处理语音的语音理解引擎负责获得语用信息分类节点对应的语音转写文字。举例来说,一个语音交互层包括三个语用信息分类节点“姓名”、“不想说”、“没听清”,如果非采用转写的方式处理语音的语音理解引擎对用户语音的理解结果为“姓名”则采用转写的方式处理语音的语音理解引擎对这段用户语音进行转写,得到语用信息分类节点“姓名”对应的转写文本,如“张明”,系统将该转写文本(“张明”)记录下来作为姓名信息;如果非采用转写的方式处理语音的语音理解引擎对用户语音的理解结果为“不想说”或“没听清”(非为“姓名”)则采用转写的方式处理语音的语音理解引擎不必对这段用户语音进行转写,系统也无需将该转写文本记录下来作为姓名信息。也可以按照上述的方案,非采用转写的方式处理语音的语音理解引擎和采用转写的方式处理语音的语音理解引擎均对语音进行理解得到语用信息分类节点,再通过理解结果判定单元来确定理解结果,获得与该语音对应的语用信息分类节点,之后再根据理解结果判断是否将对该语音转写的文本进行记录为与语用信息分类节点对应的文本信息。
72.根据本发明的实施例,前述的智能语音理解系统可以包括多于两个语音理解引擎,各个语音理解引擎可以相互印证各自的语音理解结果,也可以分工配合,由采用转写的方式处理语音的语音理解引擎通过转写获得与语音对应的文本信息,将这个转写文本信息作为与意图对应的实体词信息。实体词信息可以是前述的姓名,还可以是地址、日期、身份
证号码、电话号码等。
73.确定了与用户语音对应的语用信息分类节点,即语音理解结果,在步骤s305,做出与语用信息分类节点相对应的响应。
74.与语用信息分类节点相对应的响应可以在当前交互层做出或完成;对于多层的语音交互结构,可以流转到下一层。
75.当交互流转到某一语音交互层,则在该交互层对用户语音进行理解,确定该用户语音对应的语用信息分类节点,并作出与该语用信息分类节点相对应的响应。这些响应可以是机器人语音播报(播报录音或者合成语音),以引起用户再次做出语音;也可以是机器人语音播报后结束当前语音交互。例如,在图4所示的例子中,如果在a层获得的语音理解结果是a02,则在a层内部进行跳转,重复播报a层机器人语音或者播报与a02对应的话术,然后根据再次输入的用户语音仍旧在a层进行语音理解;如果在a层获得的语音理解结果是a03,则进行“挂机”处理,比如播报结束语音交互的语音后挂断电话、发短信等处理;诸如此类。
76.多层语音交互结构用于多轮语音交互,如图4所示。其中,箭头表示层之间的流转。例如,在图4所示的交互结构中,如果在a层获得的语音理解结果是a01,则进行与a层a01对应的机器人语音播报(播报录音或者合成语音),语音交互流转到b层,在b层再次进行语音理解,确认用户回答机器人语音播报的用户语音与b层的哪个语用信息分类节点相对应;如果在b层获得的语音理解结果是b02、b03、b04、b05或a02,则播报与b层的这些语用信息分类节点相对应机器人语音,语音交互流转到c层,在c层再次进行语音理解,确认用户回答语音与c层的哪个语用信息分类节点相对应。多层语音交互结构对应于分层的语用信息节点设置,相比不分层的语用信息节点设置方式,分层的语用信息节点设置方式使得每一层的语用信息节点数量少,能够提高理解准确度。
77.可以注意到,对于不同层的相同语用信息分类节点可以有不同的响应。例如,a层的ap02的响应是在a层内部进行跳转,而b层的a02的响应则是播报与b层的a02对应的机器人语音,并在接收到用户对该机器人语音做出新的用户语音后流转到c层。这样,一方面可以多层共用语用信息分类节点,另一方面也可以根据语音交互的具体需要灵活配置响应。
78.在语音交互中产生的用户语音,经过与语言信息分类节点的关联后,可以作为自然语言理解模型的训练数据。
79.在多层语音交互结构,各层可以采用相同的语用信息分类节点;多个不同的语音交互结构也可以采用相同的语用信息分类节点。这样,在不同语音交互结构对应的不同语音交互业务下收集的用户语音数据可以与相同的语用信息分类节点相关联,从而作为自然语言理解模型的训练数据。
80.根据本发明实施例的具有多个语音理解引擎的智能语音理解系统,包括采用转写的方式处理语音的语音理解引擎和非采用转写的方式处理语音的语音理解引擎,可以实现多个语音理解引擎的协同和分工操作,同步或分步进行理解结果的相互验证,既可以获得与语音对应的意图,也可以获得与语音对应的文本(字面)信息。根据语音交互的语用信息分类节点的层次结构来收集训练语料和训练自然语言理解模型,大幅降低训练自然语言理解模型所需的数据量,快速提升语音理解准确率;通过简单的关联操作,将语音交互中获得的语音数据用于自然语言理解模型的快速迭代,大幅降低优化自然语言理解模型的成本。非采用转写的方式处理语音的语音理解引擎,直接从语音理解语用信息,避免语音转写为
文字带来的信息损失;因为不受文字的限制,一套语音交互结构和对应的模型能够支持不同方言、小语种、混合语言等多种语言环境。
81.以上所述仅是本发明的示范性实施方式,而非用于限制本发明的保护范围,本发明的保护范围由所附的权利要求确定。