一种语音处理方法、装置、计算机可读存储介质及设备与流程
本发明涉及语音识别技术领域,尤其涉及一种语音处理方法、装置、计算机可读存储介质及设备。
背景技术:
随着语音识别技术的发展,实现人与机器之间语音交互的智能语音服务系统应用于越来越多的场景,例如;智能客服、智能机器人等。语音交互场景中需要系统自动判断用户是否停止说话,如果系统发现用户已经表达完了自己的想法,则自动执行下一轮的信息交互,例如:信息问答等交互。对于用户是否停止说话的判断,主要通过设置一个固定时长的静音时长来判断用户是否停止说话。举例说明,在智能客户等电话语音交互系统中,设定的静音时长为200-1000毫秒。例如:设置的静音时长为200毫秒,则可以在用户说完一段话之后,200毫秒之内未接收到任何其他有效语音,则认为用户已经停止说话,语音识别任务结束,调用nlp(naturallanguageprocessing,自然语言处理)任务,针对该用户的问题进行回答。
目前,静音时长的值目前根据人工经验调整,若设置静音时长的值较大,则判定用户结束说话的时间较长,用户实际的等待时间随之变长,用户体验较差。反之,用户实际等待时间变短,但是,随之而来的问题是,这种情况下,极其容易出现在用户未将要表达的语音说完、短暂调整呼吸时,被判定为用户停止说话。例如:用户喘气停顿时被系统判定为停止说话,并进一步被强制进入打断进入下一轮的信息交互过程。由此,容易造成语义缺失的问题,并进一步导致下一轮信息交互过程无法正常进行。
技术实现要素:
本发明实施例为了解决语音处理过程中存在的上述问题,创造性地提供一种语音处理方法、装置及计算机可读存储介质。
根据本发明第一方面,提供了一种语音处理方法,所述方法包括:接收待处理语音的语音数据,所述待处理语音为第一对象和第二对象的若干轮语音交互过程中由所述第一对象发出的语音;根据所述语音数据,利用语义完整度模型,确定所述待处理语音为完整语音的置信度;根据所述置信度,确定所述第二对象对所述待处理语音进行响应的静音等待时长。
根据本发明一实施方式,所述根据所述置信度,确定所述第二对象对所述待处理语音进行响应的静音等待时长,包括:确定所述置信度所属的置信度区间;根据所述置信度区间以及预先确定的置信度区间与静音等待时长的第一关系,确定与所述置信度对应的第一静音等待时长,作为所述第二对象对所述待处理语音进行响应的静音等待时长。
根据本发明一实施方式,所述根据所述置信度,确定所述第二对象对所述待处理语音进行响应的静音等待时长,包括:根据所述置信度,以及预先确定的置信度与静音等待时长的第二关系,确定与所述置信度对应的第二静音等待时长,作为所述第二对象对所述待处理语音进行响应的静音等待时长。
根据本发明一实施方式,所述语义完整度模型为采用以下操作中至少之一进行优化的bert模型:将模型输入中的语料长度定义为待训练语料的实际长度,所述待训练语料为完成语义标注的语料;减少模型中模型层数。
根据本发明一实施方式,所述待训练语料包括语义完整的正例语料和语义缺失的负例语料,所述负例语料包括采用以下操作中至少之一得到的语料:采用loss函数得到的语料;采用困难样本挖掘技术得到的语料。
根据本发明第二方面,还提供一种语音处理装置,所述装置包括:接收模块,用于接收待处理语音的语音数据,所述待处理语音由第一对象和第二对象的若干轮语音交互过程中所述第一对象发出;完整度确定模块,用于根据所述语音数据,利用语义完整度模型,确定所述待处理语音为完整语音的置信度;静音时长确定模块,用于根据所述置信度,确定所述第二对象对所述待处理语音进行响应的静音等待时长。
根据本发明一实施方式,所述静音时长确定模块包括:置信区间判断子模块,用于根据所述置信度,确定所属的置信度区间;第一时长确定子模块,用于根据所述置信度区间以及预先确定的置信度区间与静音等待时长的第一关系,确定与所述置信度对应的第一静音等待时长,作为所述第二对象对所述待处理语音进行响应的静音等待时长。
根据本发明一实施方式,所述静音时长确定模块包括:第二时长确定子模块,用于根据所述置信度,以及预先确定的置信度与静音等待时长的第二关系,确定与所述置信度对应的第二静音等待时长,作为所述第二对象对所述待处理语音进行响应的静音等待时长。
根据本发明第三方面,还提供了一种计算机可读存储介质,所述存储介质包括一组计算机可执行指令,当所述指令被执行时用于执行上述任意所述语音处理方法。
根据本发明第四方面,还提供了一种设备,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述语音处理方法。
本发明实施例语音处理方法、装置及设备,主要应用于第一对象和第二对象的若干轮语音交互过程中由所述第一对象发出的语音,根据所接收到的待处理语音的语音数据,利用语义完整度模型,确定所述待处理语音为完整语音的置信度,从而根据所述置信度,动态调整第二对象对所述待处理语音进行响应的静音等待时长。有效识别出语义不完整语音信息,调整静音等待时长,避免用户语音表达未结束时打断用户的情况发生,并且判断语音的语义完整的情况下,缩短静音时长,提高交互效率,大大提高用户体验。
需要理解的是,本发明的教导并不需要实现上面所述的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本发明的其他实施方式还能够实现上面未提到的有益效果。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示出了本发明实施例语音处理方法的实现流程示意图;
图2示出了本发明实施例语音处理方法应用示例的实现流程示意图;
图3示出了本发明实施例设备的组成结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为使本发明更加透彻和完整,并能够将本发明的范围完整地传达给本领域的技术人员。
为了更好地说明本发明实施例的具体方案,首先对本发明实施例的具体应用场景做示例性说明,需要说明的是,本发明并不局限于以下应用场景,也可以应用于其他适用的场景。
在智能客服、智能机器人、通信秘书等具有自然语言识别功能的智能系统应用过程中,涉及到真实的用户与智能系统的语音交互,智能系统需要根据接收到的语音与用户进行对话。如此,就需要智能系统判断用户当前语音是否结束,并确定等待多长时间后对用户进行应答,由于是在等待用户的语音内容,所以等待的过程通常是静音等待,等待的时长称为静音等待时长。如果时间设置较长,交互效率会很低,如果等待时间过短,则可能出现用户语音被打断的过程。本发明实施例就是为了根据所接收到的用户的语音内容,判断语音的语义完整度,从而根据语义完整度,动态调整静音等待的时长。有效提高交互效率,并有效提高用户体验。
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
图1示本发明实施例语音处理方法的实现流程示意图。
参考图1,本发明实施例语音处理方法,至少包括如下操作流程:操作101,接收待处理语音的语音数据,待处理语音为第一对象和第二对象的若干轮语音交互过程中由第一对象发出的语音;操作102,根据语音数据,利用语义完整度模型,确定待处理语音为完整语音的置信度;操作103,根据置信度,确定第二对象对待处理语音进行响应的静音等待时长。
在操作101中,接收待处理语音的语音数据,待处理语音为第一对象和第二对象的若干轮语音交互过程中由第一对象发出的语音。
在本发明一实施方式中,第一对象和第二对象的若干轮语音交互过程可以是:用户使用固定电话或手机等设备拨打客服电话时用户与智能客服之间的对话过程。还可以是移动数据服务商的两个用户之间进行对话过程,例如:移动电话、联通电话、固定电话等,其中一个用户开通了智能服务功能,例如:用户a给用户b打电话,用户b开通了智能服务功能,可以使用移动服务商或者智能终端提供的智能服务功能,在用户b不方便接听电话时,用户b开启智能终端利用智能服务功能,自动接听用户a的来电,并根据用户a的语音内容,与用户a进行交互,智能终端可以是手机、平板电脑、固定电话的话机等。此外,除了使用电话或手机进行拨号的语音通话过程外,还可以是利用应用程序进行的语音交互过程。例如:利用即时通信应用程序进行语音交互的过程。
在操作102中,根据语音数据,利用语义完整度模型,确定待处理语音为完整语音的置信度。
在本发明一实施方式中,采用以下操作中至少之一对bert(bidirectionalencoderrepresentationfromtransformers,来自变换器的双向编码器表征量)模型进行优化,得到语义完整度模型:将模型输入中的语料长度定义为待训练语料的实际长度,待训练语料为完成语义标注的语料;减少模型中模型层数。
bert是谷歌开源的一个预训练的语言表征模型,它与其它语言模型的两个最大不同点在于:1、它在训练双向语言模型时以减小的概率把少量的词替成了mask(掩码)或者另一个随机的词。由此使得bert模型被迫增加对上下文的记忆;2、增加了一个预测下一句的loss函数。此外,bert模型非常的深,具有12层,并不宽(wide)。bert模型属于mlm(maskedlanguagemodel,掩码语言模型),能够同时利用待处理语言的左侧和右侧的词语。但是,目前bert模型中的语料均为固定长度的语料,没有根据语料实际长度进行模型训练。
在本发明一实施方式中,将模型输入中的语料长度定义为待训练语料的实际长度,待训练语料为完成语义标注的语料。
举例说明,获取一批训练语音作为语料进行标注,例如:用户与智能客服的对话语音。如果语音中用户说话的语义完整,则标注为完整话术。如果语音中用户说话不完整,可以明显听出用户还在说话,但是音频却结束了,则标注为非完整话术。如此,将模型输入中的语料长度定义为待训练语料的实际长度,基于bert模型较好的encode(编码)大量的关于句子的先验知识,在bert模型的基础上,加入了特定场景下的训练语料,定义一个按照语义完整度进行分类的新的分类任务,能够得到识别准确率更高的语义完整度模型。
在本发明一实施方式中,减少bert模型中模型层数,对bert模型进行优化,得到语义完整度模型。
举例说明,对于深度较深的bert模型,利用模型进行自然语言处理的过程中,模型的深度给语言处理过程带来了较大的计算量。如果采用现有的bert模型对语音交互过程中待处理语音的完整度进行判断,可能出现判断时间较长,影响用户体验的问题。例如,接收到一条语音,判断该语音的语义是否完整耗时300ms,设定若接收到的语音的语义完整,则静音等待时长为200ms。此时,若判定该语音的语义完整,则在确定应答该语音的静音等待时长为200ms时,时间已经过去了300ms,失去了判断语义是否完整的意义。因此,本发明一实施方式中,采用了减少模型层数的方法来对现有的bert模型进行优化,得到语义完整度模型。例如:将原始的12层bert模型降低至只有3层的语义完整度模型。
在本发明一实施方式中,通过对模型进行定点化处理的方式,来提高模型处理速度。例如,可以将模型中的参数由浮点数(实数)变更为整数,从而减小模型计算量。
在本发明一实施方式中,待训练语料包括语义完整的正例语料和语义缺失的负例语料,负例语料包括采用以下操作中至少之一得到的语料:采用loss函数得到的语料;采用困难样本挖掘技术得到的语料。
举例说明,获取一批训练语音作为语料进行标注,例如:用户与智能客服的对话语音。如果语音中用户说话的语义完整,则标注为正例语料。如果语音中用户说话不完整,语义缺失,可以明显听出用户还在说话,但是音频却结束了,则认定为语义缺失,标注为负例语料。由于实际情况中,语义缺失的负例语料占比较少,例如:语义缺失的负例语料占所获取的所有语料的10%。因此,需要采取一些操作增加语义缺失的负例语料,以增加负例语料的样本量,缓解作为正例语料与负例语料之间的样本量差距过大的问题。例如:可以对所有训练语音进行随机截断,取截断得到的语音的前半部分作为负例语料。对语料的截断可以采用loss函数得到。还可以采用困难样本挖掘技术得到的更多负例语料。
语料准备完毕后,即对语料进行训练,本发明实施例中采用基于bert的模型结构的二分类模型进行分类的训练,采用语义完整专用语料来训练分类器,并取分类器的概率输出作为语义完整的置信度。例如:模型输出为“语义完整概率:80%;语义缺失概率:20%”。
此外,由于原始bert模型在实际使用过程中延迟较大,可以对定点化处理,例如:将模型参数中的实数利用四舍五入等方法进行处理,利用整数进行表示,大大减小模型运算量。同时还可以采用变长输入的操作,例如:将模型输入中的语料长度定义为待训练语料的实际长度,待训练语料为完成语义标注的语料。进一步的,还可以对模型层数优化进行优化,例如:将原始的12层bert模型降低到3层的语义完整度模型,从而优化模型处理速度,更好地将训练得到的语义完整度模型进行应用。
在操作103中,根据置信度,确定第二对象对待处理语音进行响应的静音等待时长。
在本发明一实施方式中,采用以下操作实现根据置信度,确定第二对象对待处理语音进行响应的静音等待时长:确定置信度所属的置信度区间;根据置信度区间以及预先确定的置信度区间与静音等待时长的第一关系,确定与置信度对应的第一静音等待时长,作为第二对象对待处理语音进行响应的静音等待时长。
举例说明,针对当前的已经解码得到的待处理语音进行语义层面的分析,该分析输出一个二值判断和置信度,二值判断为接收到的待处理语音是否为完整语音。输出信息为[语义完整概率:x%;语义缺失概率:(1-x%)]。例如:“我想约小王”属于语义完整的语音,“我想约”属于语义不完整的语音,用户需要继续说话的概率较大。置信度是给出了语义完整的可信程度。
例如:设定预先设定:
t=400ms,s∈[0,60%]
t=300ms,s∈[60%,80%]
t=200ms,s∈[80%,100%]
其中,t表示静音等待时长,s表示语义完整的置信度。
在本发明一实施方式中,采用以下操作实现根据置信度,确定第二对象对待处理语音进行响应的静音等待时长:根据置信度,以及预先确定的置信度与静音等待时长的第二关系,确定与置信度对应的第二静音等待时长,作为第二对象对待处理语音进行响应的静音等待时长。
举例说明,可以预先设定置信度与静音等待时长的第二关系为:t=f(s),其中,t表示静音等待时长,s表示语义完整的置信度。t=f(s)可以是一个简单的线性函数,也可以是通过多次试验得到合适的非线性函数,本发明对此不作限定。
本发明实施例语音处理方法、装置及设备,主要应用于第一对象和第二对象的若干轮语音交互过程中由所述第一对象发出的语音,根据所接收到的待处理语音的语音数据,利用语义完整度模型,确定所述待处理语音为完整语音的置信度,从而根据所述置信度,动态调整第二对象对所述待处理语音进行响应的静音等待时长。有效识别出语义不完整语音信息,调整静音等待时长,避免用户语音表达未结束时打断用户的情况发生,并且判断语音的语义完整的情况下,缩短静音时长,提高交互效率,大大提高用户体验。
同理,基于上文语音处理方法,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被处理器执行时,使得处理器至少执行如下的操作步骤:操作101,接收待处理语音的语音数据,待处理语音为第一对象和第二对象的若干轮语音交互过程中由第一对象发出的语音;操作102,根据语音数据,利用语义完整度模型,确定待处理语音为完整语音的置信度;操作103,根据置信度,确定第二对象对待处理语音进行响应的静音等待时长。
进一步,基于如上文语音处理方法,本发明实施例还提供一种根据本发明第二方面,还提供一种语音处理装置,参考图2,装置20包括:接收模块201,用于接收待处理语音的语音数据,待处理语音由第一对象和第二对象的若干轮语音交互过程中第一对象发出;完整度确定模块202,用于根据语音数据,利用语义完整度模型,确定待处理语音为完整语音的置信度;静音时长确定模块203,用于根据置信度,确定第二对象对待处理语音进行响应的静音等待时长。
在本发明一实施方式中,静音时长确定模块203包括:置信区间判断子模块,用于根据置信度,确定所属的置信度区间;第一时长确定子模块,用于根据置信度区间以及预先确定的置信度区间与静音等待时长的第一关系,确定与置信度对应的第一静音等待时长,作为第二对象对待处理语音进行响应的静音等待时长。
在本发明一实施方式中,静音时长确定模块203包括:第二时长确定子模块,用于根据置信度,以及预先确定的置信度与静音等待时长的第二关系,确定与置信度对应的第二静音等待时长,作为第二对象对待处理语音进行响应的静音等待时长。
更进一步的,基于如上文语音处理方法,本发明实施例还提供一种设备,如图3,该设备30包括:至少一个处理器301、以及与处理器301连接的至少一个存储器302、总线301;其中,处理器301、存储器302通过总线303完成相互间的通信;处理器301用于调用存储器302中的程序指令,以执行上述语音处理方法。
这里需要指出的是:以上对针对语音处理装置及设备实施例的描述,与前述图1所示的方法实施例的描述是类似的,具有同前述图1所示的方法实施例相似的有益效果,因此不做赘述。对于本发明语音处理装置实施例中未披露的技术细节,请参照本发明前述图1所示的方法实施例的描述而理解,为节约篇幅,因此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除