掌桥专利:专业的专利平台
掌桥专利
首页

语音数据处理方法、装置、计算机设备和存储介质

文献发布时间:2023-06-19 09:44:49


语音数据处理方法、装置、计算机设备和存储介质

技术领域

本申请涉及语音处理技术领域,特别是涉及一种语音数据处理方法、装置、计算机设备和存储介质。

背景技术

随着科学技术的发展,语音在很多领域例如人机交互领域到了广泛的应用,如可以利用语音控制设备或者通过机器人进行智能语音对话等。

一段语音中通常包括多个说话者的声音,因此需要将一段语音中,不同说话者的语音数据区分开,以进行语音识别。传统技术中,语音数据通常是通过进行说话切换点检测进行说话者分离的,但经常存在分离得到的语音片段包括静音的片段的情况,导致说话者分离所得到的语音数据的语音质量低。

发明内容

基于此,有必要针对上述技术问题,提供一种语音数据处理方法、装置、计算机设备和存储介质。

一种语音数据处理方法,所述方法包括:获取待进行说话者分离的目标语音数据;对所述目标语音数据进行语音端点检测,得到所述目标语音数据对应的语音端点集合;对所述目标语音数据进行说话者切换检测,得到所述目标语音数据对应的说话者切换点集合;基于所述语音端点集合以及所述说话者切换点集合对所述目标语音数据进行语音切分,得到目标语音片段集合;对所述目标语音片段集合中的各个目标语音片段进行声纹特征提取,得到目标声纹特征集合,所述目标声纹特征集合包括各个所述目标语音片段分别对应的目标声纹特征;对所述目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音。

在一些实施例中,所述对所述目标语音数据进行语音端点检测,得到所述目标语音数据对应的语音端点集合包括:对所述目标语音数据进行语音帧划分,得到目标语音帧序列;提取所述目标语音帧序列中的各个目标语音帧对应的声学特征,得到目标声学特征序列,所述目标声学特征序列包括各个所述目标语音帧分别对应的目标声学特征;将所述目标声学特征序列输入到端点检测模型中进行处理,得到端点检测值序列,所述端点检测值序列包括各个所述目标语音帧分别对应的端点检测值;根据所述端点检测值序列得到所述目标语音数据对应的语音端点集合。

在一些实施例中,所述将所述目标声学特征序列输入到端点检测模型中进行处理,得到端点检测值序列包括:将所述目标声学特征序列输入到端点检测模型中,所述端点检测模型结合所述目标声学特征序列输出各个所述目标语音帧对应的端点检测概率;当所述目标语音帧对应的端点检测概率大于预设概率时,获取第一预设值作为端点检测值;将所述目标语音帧对应的端点检测值按照语音帧顺序组成端点检测值序列。

在一些实施例中,所述根据所述端点检测值序列得到所述目标语音数据对应的语音端点集合包括:获取所述端点检测值序列中,所述第一预设值的连续排列数量大于第一数量阈值的检测值区域;将所述检测值区域所对应的前向语音点作为所述目标语音数据对应的语音端点,得到语音端点集合。

在一些实施例中,所述对所述目标语音数据进行说话者切换检测,得到所述目标语音数据对应的说话者切换点集合包括:基于所述语音端点集合对所述目标语音数据进行静音过滤以及语音切分,得到语音切分片段集合;对所述语音切分片段集合中的各个语音切分片段进行说话者切换检测,到所述语音切分片段对应的说话者切换点,各个语音切分片段对的说话者切换点组成说话者切换点集合。

在一些实施例中,所述基于所述语音端点集合以及所述说话者切换点集合对所述目标语音数据进行语音切分,得到目标语音片段集合包括:将所述语音端点集合中的语音端点与所述说话者切换点集合中的说话者切换点进行对比,得到与语音端点的距离小于距离阈值的说话者切换点;过滤所述说话者切换点集合中与语音端点的距离小于距离阈值的说话者切换点;基于所述语音端点集合以及过滤后的所述说话者切换点集合对所述目标语音数据进行语音切分,得到目标语音片段集合。

在一些实施例中,所述对所述目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音包括:确定所述目标语音数据对应的目标说话者集合,获取所述目标说话者集合中各个目标说话者对应的标准声纹特征;将各个所述目标说话者对应的标准声纹特征分别作为聚类中心,对所述目标声纹特征集合进行聚类处理,获取所述目标说话者对应的标准声纹特征所在的目标聚类;获取所述目标聚类对应的目标声纹特征所对应的目标语音片段,作为所述目标说话者对应的语音。

一种语音数据处理装置,所述装置包括:目标语音数据获取模块,用于获取待进行说话者分离的目标语音数据;语音端点检测模块,用于对所述目标语音数据进行语音端点检测,得到所述目标语音数据对应的语音端点集合;说话者切换检测模块,用于对所述目标语音数据进行说话者切换检测,得到所述目标语音数据对应的说话者切换点集合;目标语音片段集合得到模块,用于基于所述语音端点集合以及所述说话者切换点集合对所述目标语音数据进行语音切分,得到目标语音片段集合;目标声纹特征集合得到模块,用于对所述目标语音片段集合中的各个目标语音片段进行声纹特征提取,得到目标声纹特征集合,所述目标声纹特征集合包括各个所述目标语音片段分别对应的目标声纹特征;聚类模块,用于对所述目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音。

在一些实施例中,所述语音端点检测模块包括:目标语音帧序列得到单元,用于对所述目标语音数据进行语音帧划分,得到目标语音帧序列;目标声学特征序列得到单元,用于提取所述目标语音帧序列中的各个目标语音帧对应的声学特征,得到目标声学特征序列,所述目标声学特征序列包括各个所述目标语音帧分别对应的目标声学特征;端点检测值序列得到单元,用于将所述目标声学特征序列输入到端点检测模型中进行处理,得到端点检测值序列,所述端点检测值序列包括各个所述目标语音帧分别对应的端点检测值;语音端点集合得到单元,用于根据所述端点检测值序列得到所述目标语音数据对应的语音端点集合。

在一些实施例中,所述端点检测值序列得到单元用于:将所述目标声学特征序列输入到端点检测模型中,所述端点检测模型结合所述目标声学特征序列输出各个所述目标语音帧对应的端点检测概率;当所述目标语音帧对应的端点检测概率大于预设概率时,获取第一预设值作为端点检测值;将所述目标语音帧对应的端点检测值按照语音帧顺序组成端点检测值序列。

在一些实施例中,所述语音端点集合得到单元用于:获取所述端点检测值序列中,所述第一预设值的连续排列数量大于第一数量阈值的检测值区域;将所述检测值区域所对应的前向语音点作为所述目标语音数据对应的语音端点,得到语音端点集合。

在一些实施例中,所述说话者切换检测模块用于:基于所述语音端点集合对所述目标语音数据进行静音过滤以及语音切分,得到语音切分片段集合;对所述语音切分片段集合中的各个语音切分片段进行说话者切换检测,到所述语音切分片段对应的说话者切换点,各个语音切分片段对的说话者切换点组成说话者切换点集合。

在一些实施例中,所述目标语音片段集合得到模块用于:将所述语音端点集合中的语音端点与所述说话者切换点集合中的说话者切换点进行对比,得到与语音端点的距离小于距离阈值的说话者切换点;过滤所述说话者切换点集合中与语音端点的距离小于距离阈值的说话者切换点;基于所述语音端点集合以及过滤后的所述说话者切换点集合对所述目标语音数据进行语音切分,得到目标语音片段集合。

在一些实施例中,所述聚类模块用于:确定所述目标语音数据对应的目标说话者集合,获取所述目标说话者集合中各个目标说话者对应的标准声纹特征;将各个所述目标说话者对应的标准声纹特征分别作为聚类中心,对所述目标声纹特征集合进行聚类处理,获取所述目标说话者对应的标准声纹特征所在的目标聚类;获取所述目标聚类对应的目标声纹特征所对应的目标语音片段,作为所述目标说话者对应的语音。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取待进行说话者分离的目标语音数据;对所述目标语音数据进行语音端点检测,得到所述目标语音数据对应的语音端点集合;对所述目标语音数据进行说话者切换检测,得到所述目标语音数据对应的说话者切换点集合;基于所述语音端点集合以及所述说话者切换点集合对所述目标语音数据进行语音切分,得到目标语音片段集合;对所述目标语音片段集合中的各个目标语音片段进行声纹特征提取,得到目标声纹特征集合,所述目标声纹特征集合包括各个所述目标语音片段分别对应的目标声纹特征;对所述目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音。

在一些实施例中,所述对所述目标语音数据进行语音端点检测,得到所述目标语音数据对应的语音端点集合包括:对所述目标语音数据进行语音帧划分,得到目标语音帧序列;提取所述目标语音帧序列中的各个目标语音帧对应的声学特征,得到目标声学特征序列,所述目标声学特征序列包括各个所述目标语音帧分别对应的目标声学特征;将所述目标声学特征序列输入到端点检测模型中进行处理,得到端点检测值序列,所述端点检测值序列包括各个所述目标语音帧分别对应的端点检测值;根据所述端点检测值序列得到所述目标语音数据对应的语音端点集合。

在一些实施例中,所述将所述目标声学特征序列输入到端点检测模型中进行处理,得到端点检测值序列包括:将所述目标声学特征序列输入到端点检测模型中,所述端点检测模型结合所述目标声学特征序列输出各个所述目标语音帧对应的端点检测概率;当所述目标语音帧对应的端点检测概率大于预设概率时,获取第一预设值作为端点检测值;将所述目标语音帧对应的端点检测值按照语音帧顺序组成端点检测值序列。

在一些实施例中,所述根据所述端点检测值序列得到所述目标语音数据对应的语音端点集合包括:获取所述端点检测值序列中,所述第一预设值的连续排列数量大于第一数量阈值的检测值区域;将所述检测值区域所对应的前向语音点作为所述目标语音数据对应的语音端点,得到语音端点集合。

在一些实施例中,所述对所述目标语音数据进行说话者切换检测,得到所述目标语音数据对应的说话者切换点集合包括:基于所述语音端点集合对所述目标语音数据进行静音过滤以及语音切分,得到语音切分片段集合;对所述语音切分片段集合中的各个语音切分片段进行说话者切换检测,到所述语音切分片段对应的说话者切换点,各个语音切分片段对的说话者切换点组成说话者切换点集合。

在一些实施例中,所述基于所述语音端点集合以及所述说话者切换点集合对所述目标语音数据进行语音切分,得到目标语音片段集合包括:将所述语音端点集合中的语音端点与所述说话者切换点集合中的说话者切换点进行对比,得到与语音端点的距离小于距离阈值的说话者切换点;过滤所述说话者切换点集合中与语音端点的距离小于距离阈值的说话者切换点;基于所述语音端点集合以及过滤后的所述说话者切换点集合对所述目标语音数据进行语音切分,得到目标语音片段集合。

在一些实施例中,所述对所述目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音包括:确定所述目标语音数据对应的目标说话者集合,获取所述目标说话者集合中各个目标说话者对应的标准声纹特征;将各个所述目标说话者对应的标准声纹特征分别作为聚类中心,对所述目标声纹特征集合进行聚类处理,获取所述目标说话者对应的标准声纹特征所在的目标聚类;获取所述目标聚类对应的目标声纹特征所对应的目标语音片段,作为所述目标说话者对应的语音。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取待进行说话者分离的目标语音数据;对所述目标语音数据进行语音端点检测,得到所述目标语音数据对应的语音端点集合;对所述目标语音数据进行说话者切换检测,得到所述目标语音数据对应的说话者切换点集合;基于所述语音端点集合以及所述说话者切换点集合对所述目标语音数据进行语音切分,得到目标语音片段集合;对所述目标语音片段集合中的各个目标语音片段进行声纹特征提取,得到目标声纹特征集合,所述目标声纹特征集合包括各个所述目标语音片段分别对应的目标声纹特征;对所述目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音。

在一些实施例中,所述对所述目标语音数据进行语音端点检测,得到所述目标语音数据对应的语音端点集合包括:对所述目标语音数据进行语音帧划分,得到目标语音帧序列;提取所述目标语音帧序列中的各个目标语音帧对应的声学特征,得到目标声学特征序列,所述目标声学特征序列包括各个所述目标语音帧分别对应的目标声学特征;将所述目标声学特征序列输入到端点检测模型中进行处理,得到端点检测值序列,所述端点检测值序列包括各个所述目标语音帧分别对应的端点检测值;根据所述端点检测值序列得到所述目标语音数据对应的语音端点集合。

在一些实施例中,所述将所述目标声学特征序列输入到端点检测模型中进行处理,得到端点检测值序列包括:将所述目标声学特征序列输入到端点检测模型中,所述端点检测模型结合所述目标声学特征序列输出各个所述目标语音帧对应的端点检测概率;当所述目标语音帧对应的端点检测概率大于预设概率时,获取第一预设值作为端点检测值;将所述目标语音帧对应的端点检测值按照语音帧顺序组成端点检测值序列。

在一些实施例中,所述根据所述端点检测值序列得到所述目标语音数据对应的语音端点集合包括:获取所述端点检测值序列中,所述第一预设值的连续排列数量大于第一数量阈值的检测值区域;将所述检测值区域所对应的前向语音点作为所述目标语音数据对应的语音端点,得到语音端点集合。

在一些实施例中,所述对所述目标语音数据进行说话者切换检测,得到所述目标语音数据对应的说话者切换点集合包括:基于所述语音端点集合对所述目标语音数据进行静音过滤以及语音切分,得到语音切分片段集合;对所述语音切分片段集合中的各个语音切分片段进行说话者切换检测,到所述语音切分片段对应的说话者切换点,各个语音切分片段对的说话者切换点组成说话者切换点集合。

在一些实施例中,所述基于所述语音端点集合以及所述说话者切换点集合对所述目标语音数据进行语音切分,得到目标语音片段集合包括:将所述语音端点集合中的语音端点与所述说话者切换点集合中的说话者切换点进行对比,得到与语音端点的距离小于距离阈值的说话者切换点;过滤所述说话者切换点集合中与语音端点的距离小于距离阈值的说话者切换点;基于所述语音端点集合以及过滤后的所述说话者切换点集合对所述目标语音数据进行语音切分,得到目标语音片段集合。

在一些实施例中,所述对所述目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音包括:确定所述目标语音数据对应的目标说话者集合,获取所述目标说话者集合中各个目标说话者对应的标准声纹特征;将各个所述目标说话者对应的标准声纹特征分别作为聚类中心,对所述目标声纹特征集合进行聚类处理,获取所述目标说话者对应的标准声纹特征所在的目标聚类;获取所述目标聚类对应的目标声纹特征所对应的目标语音片段,作为所述目标说话者对应的语音。

上述语音数据处理方法、装置、计算机设备和存储介质,由于端点检测是基于端点检测模型进行检测的,端点检测模型输出的是语音帧分别对应的端点检测值,可以基于端点检测值所形成的端点检测值序列得到目标语音数据对应的语音端点,因此能够准确的得到语音数据的端点,减少了语音切分时所切分得到的语音片段中的静音数据,提高了语音分离所得到的语音数据的质量。而说话者切换检测可以得到语音数据中的语音切换点,因此通过语音端点以及说话者切换点将目标语音数据切分为只包括一个说话者声音的语音片段的准确度高,而通过对目标语音片段进行声纹特征提取,能够提取到表示说话者声音特性的特征,故通过目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音数据,能够准确的对语音数据进行说话者分离,故提高了说话者分离的准确度。

附图说明

图1为一个实施例中语音数据处理方法的应用环境图;

图2为一个实施例中语音数据处理方法的流程示意图;

图3为一个实施例中对目标语音数据进行语音端点检测,得到目标语音数据对应的语音端点集合步骤的流程示意图;

图4为一个实施例中基于语音端点集合以及说话者切换点集合对目标语音数据进行语音切分,得到目标语音片段集合的流程示意图;

图5为一个实施例中对目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音的流程示意图;

图6为一个实施例中语音数据处理装置的结构框图;

图7为一个实施例中语音端点检测模块的结构框图;

图8为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的语音数据处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102可以进行语音采集,得到待进行说话者分离的目标语音数据,服务器执行本申请实施例提供的语音数据处理方法,分离得到目标语音数据中至少一个说话者的语音数据。服务器104得到说话者对应的语音数据之后,可以对该说话者对应的语音数据进行进一步的处理,例如进行语音识别,识别到其中的文本,基于文本进行语义理解,基于语义理解的结果进行设备控制。又例如,在客服与客户的对话者,可以分离得到客服对应的语音数据,基于客服对应的语音数据进行客服质量检测,以审核或评估客服人员的业务情况。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

可以理解,本申请实施例提供的方法还可以是在终端执行的。

在一个实施例中,如图2所示,提供了一种语音数据处理方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

步骤S202,获取待进行说话者分离的目标语音数据。

其中,待进行说话者分离的目标语音数据是指需要将语音分离为不同说话者的语音的数据。例如,一段A与B两个人的语音对话数据,需要分为A说话产生的语音数据以及B说话产生的语音数据。

具体地,可以通过终端实时采集目标语音数据,上传到服务器中,服务器中也可以预先存储待进行说话者分离的目标语音数据。例如,服务器中可以存储有大量的语音数据,需要对这些语音数据进行说话者分离,以分离得到每个说话者对应的语音数据,基于分离后的语音数据进行语音识别模型的训练,则可以获取这些未进行话者分离语音数据,作为待进行说话者分离的目标语音数据。

在一些实施例中,目标语音数据是包括两个以上说话者的对话语音数据,例如客服沟通过程的对话录音。待分离的语音数据可以包括语音部分和静音部分,语音部分包括两个以上说话者的说话内容,不同说话者的语音内容可以是连续的。例如,假设语音数据的时长为10秒,其中,0-3秒以及4-10秒为语音部分,即存在说话者说话。3-4秒为静音部分,即不存在说话者说话。在4-10秒的语音部分中,可以包括两个说话者的说话内容,比如4-7秒为客户(customer)在说话,7-10秒为客服(officer)在说话,客户与客服的对话语音构成了10秒时长的待分离的语音数据。通过对10秒时长的语音数据进行话者分离,从而分离出客服对应的7-10秒的音频数据,以便于利用客服对应的音频数据进行后续的客服质检等处理。

步骤S204,对目标语音数据进行语音端点检测,得到目标语音数据对应的语音端点集合。

其中,语音端点可以包括语音起始点以及结束点。一个目标语音数据中可以包括多个语音端点。例如,一个目标语音数据中,假设A与B在进行对话,A在说完之后,间隔了1秒,B开始说话。则目标语音数据中,包括A开始说话的起始点以及结束说话的结束点,B开始说话的起始点以及结束说话的结束点。语音端点检测可以称为语音活动检测(VoiceActivity Detection,VAD)。

具体地,计算机设备可以基于端点检测模型对目标语音数据中的语音帧进行语音端点检测,得到语音帧分别对应的端点检测值形成的端点检测值序列,根据端点检测值序列得到目标语音数据对应的语音端点集合。通过语音端点检测可以在连续的语音信号中找出语音的起始点和终止点,从而通过语音端点可以分割出语音数据中存在说话者说话的语音部分对应的音频数据。例如,获取到10秒时长的语音数据后,可以对语音数据进行语音端点检测,检测得到语音的起始点包括0秒和4秒,终止点包括3秒和10秒,从而分割得到0-3秒和4-10秒为语音部分的语音数据。

步骤S206,对目标语音数据进行说话者切换检测,得到目标语音数据对应的说话者切换点集合。

其中,说话者可以是目标语音中说话的人。说话者切换点是由一个说话者切换到另一个说话者的点。假设4-7秒为A在说话,7-10秒为B在说话,则第7秒为说话者切换点。可以理解,说话者切换点与语音端点可以用时间表示,也可以用语音帧的序号表示。例如,说话者切换时间点可以是用第7秒表示,也可以用第7秒所对应的语音帧例如第100帧表示。

具体地,可以通过说话者切换检测(SCD,speaker change detection)子模块得到说话者切换点集合,一个目标语音数据中可以包括多个说话者切换点。

在一些实施例中,对目标语音数据进行说话者切换检测,得到目标语音数据对应的说话者切换点集合包括:基于语音端点集合对目标语音数据进行静音过滤以及语音切分,得到语音切分片段集合;对语音切分片段集合中的各个语音切分片段进行说话者切换检测,到语音切分片段对应的说话者切换点,各个语音切分片段对的说话者切换点组成说话者切换点集合。

具体地,可以将结束点到起始点之间的数据进行滤除,从而去除目标语音数据中的真正静音的部分,滤除之后,再基于端点进行切分,得到切分后的语音切分片段。针对每个语音切分片段进行说话者切换检测,到语音切分片段对应的说话者切换点,从而得到各个语音切分片段对的说话者切换点组成的说话者切换点集合。

例如,通过端点检测模型的端点分割出至少一段有声的音频数据后,可以将音频数据输入SCD子模块,通过SCD子模块检测在哪些时间点说话者发生了变换。其中,当分割出的音频数据时长过短时,可以将至少一段音频数据进行拼接,提取拼接后的音频数据的特征,特征例如为40维,特征具体可以是MFCC等。根据时间对特征进行排列,得到音频数据对应的矩阵,例如时长为100帧,维度为40维的矩阵,将音频数据对应的矩阵输入SCD子模块对应的神经网络模型。

神经网络模型是经过预训练的序列性的深度神经网络模型,神经网络模型可以对矩阵进行切片,例如将100帧的矩阵切成每20帧一片,将切片后的20帧输入神经网络进行推理,得到每一帧各自对应的预测标签,即20帧可以对应得到20个预测标签。预测标签用于标记说话者是否发生转换,例如“0”表示未发生转换,“1”表示发生了转换。例如在4-7秒未转换之前,每一帧对应的标签为0,在7秒说话者发生转换时,对应帧的标签为1,转换后7-10秒的各个帧对应的标签也为0。通过SCD子模块可以输出7秒这个时间点为发生了说话者变换的时间点,从而后续可将4-10秒的音频数据分割为4-7秒和7-10秒的两段音频数据。

本申请实施例中,通过SCD子模块可以输出发生说话者变换的时间点。在处理一些难度比较大的,例如说话者的说话时间很短或者说话密集的应用场景,比如打车场景中乘客与司机刚开始的对话,通过SCD子模块能够更加准确的检测乘客与司机说话变换的时间点。

步骤S208,基于语音端点集合以及说话者切换点集合对目标语音数据进行语音切分,得到目标语音片段集合。

其中,语音切分是指将语音切分为一个个的片段。在语音切分时,是根据语音端点集合以及说话者切换点集合对目标语音数据进行语音切分的。可以将语音端点以及说话者切换点都作为切分点,将切分点之间的语音数据作为一个片段。例如,10秒的语音数据中,通过语音端点检测确定4-10秒为说话者说话的音频数据,通过SCD子模块输出说话者转换的时间段包括7秒,则可以将1-10秒的音频数据划分为4-7秒和7-10秒分别对应的音频数据。在切分时,还基于语音端点集合确定目标语音数据中的静音数据,删除其中的静音数据。例如删除语音终止点到语音起始点之间的语音数据。即对于一段语音数据,假设其第一个语音帧为语音终止点,最后一个语音帧为语音起始点,则说明该段语音数据为静音数据,删除该段语音数据。

由于通过VAD检测可以将语音数据中的静音段和语音段区分开来。而对于当客户说完后客服就紧跟着说话时,两个说话者的语音是紧连在一起的情况,在通过端点检测分割出至少一段有声的音频数据后,可以将音频数据输入SCD子模块,通过SCD子模块检测在哪些时间点说话者发生了变换。故通过语音端点集合以及说话者切换点集合,可以将语音分割为只包括一个说话者的声音的语音片段,且该语音片段中不包括静音片段,从而使得在后续的语音答复质量检测中,不会由于存在大量的静音片段,导致语音答复质量检测效率以及准确度低的情况。其中语音答复质量检测可以是对说话者的语音回复质量进行检测,例如可以获取说话者为电话机器人的语音,对该语音进行电话答复质量检测,得到答复质量。

步骤S210,对目标语音片段集合中的各个目标语音片段进行声纹特征提取,得到目标声纹特征集合,目标声纹特征集合包括各个目标语音片段分别对应的目标声纹特征。

其中,声纹(Voice print)特征是表示说话者的声音特性的特征。可以通过神经网络模型进行声纹特征的提取,神经网络模型是经过预训练的序列性的深度神经网络模型。

具体地,经过VAD检测和SCD检测后,可以将语音数据分割成多段说话者说话的音频数据,例如0-3秒、4-7秒和7-10秒各个时间段分别对应的音频数据,可以通过说话者声纹特征提取模型进行特征(embedding)提取,提取得到各段音频数据各自对应的声纹特征。声纹特征可以看作是一个向量,维数可以根据需要设置,例如128维或者512维,通过声纹特征可以表征说话者独特的特点。其中,不同时长的音频数据可以提取得到固定维度的向量。例如,可以将音频数据各自对应的矩阵输入神经网络模型,声纹可以为频率,按照时间顺序组成矩阵,即该矩阵为时间-频率的二维数组,通过神经网络模型输出各自对应的固定维度的向量。

步骤S212,对目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音。

其中,聚类是指将集合分成由类似的对象组成的类的过程。聚类方法例如可以是K-means(K均值聚类算法)聚类或者谱聚类,K表示类别的数量,K可以是根据目标语音数据中的说话者的数量确定。

具体地,服务器获取每一段音频数据提取得到对应的声纹特征后,可以由声纹特征组成一个矩阵。矩阵的每一行可以表示一段音频数据对应的声纹特征声纹特征为固定维度向量,每一行对应的音频数据的时长可以是不同的。例如矩阵的第一行可以表示0-3秒的向量,第二行可以表示4-7秒的向量,第三行可以表示7-10秒的向量,以此类推。对声纹特征的矩阵进行聚类,得到每一段音频数据对应的声纹特征的聚类结果。例如,假设目标语音片段有5段,得到5个声纹特征,聚类后发现语音片段1、3以及4对应的声纹特征为同一类,语音片段2以及5对应的声纹特征为同一类,则语音片段1、3以及4为同一个说话者的语音,语音片段2以及5为另一个说话者的语音。

上述语音数据处理方法中,由于端点检测是基于端点检测模型进行检测的,端点检测模型输出的是语音帧分别对应的端点检测值,可以基于端点检测值所形成的端点检测值序列得到目标语音数据对应的语音端点,因此能够准确的得到语音数据的端点,减少了语音切分时所切分得到的语音片段中的静音数据,提高了语音分离所得到的语音数据的质量。而说话者切换检测可以得到语音数据中的语音切换点,因此通过语音端点以及说话者切换点将目标语音切分为只包括一个说话者声音的语音片段的准确度高,而通过对目标语音片段进行声纹特征提取,能够提取到表示说话者声音特性的特征,故通过目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音数据,能够准确的对语音数据进行说话者分离,故提高了说话者分离的准确度。即本申请实施例的方案通过结合语音端点检测和声音分类器(声纹),能够区分说话音频数据中不同说话者各自对应的音频数据,最终通过聚类得到话者分离的结果,以此实现更加准确的话者分离,有效的提高了话者分离的准确性。

在一个实施例中,如图3所示,步骤S204即对目标语音数据进行语音端点检测,得到目标语音数据对应的语音端点集合包括:

步骤S302,对目标语音数据进行语音帧划分,得到目标语音帧序列。

具体地,服务器可以按照预设时长,对目标语音数据进行划分,每个语音帧的时间长度为预设时长,例如预设时长可以为10毫秒。将划分得到的语音帧按照语音的顺序进行排列,得到目标语音帧序列,目标语音帧序列包括多帧按照语音顺序排列的语音帧。

步骤S304,提取目标语音帧序列中的各个目标语音帧对应的声学特征,得到目标声学特征序列,目标声学特征序列包括各个目标语音帧分别对应的目标声学特征。

其中,声学特征是表示语音的声学特性的特征,声学特征可以是指表示语音声学特性的物理量,如表示音色的能量集中区、共振峰频率、共振峰强度、带宽、表示语音韵律特性的时长、基频或者平均语声功率的至少一种等。声学特征可以是梅尔频率倒谱系数(MelFrequency Cepstrum Coefficient, MFCC)。

具体地,服务器可以对每个目标语音帧进行声学特征提取,得到每个目标语音帧对应的声学特征,声学特征按照语音的顺序进行排列,得到目标声学特征序列。

步骤S306,将目标声学特征序列输入到端点检测模型中进行处理,得到端点检测值序列,端点检测值序列包括各个目标语音帧分别对应的端点检测值。

其中,端点检测值是用于判断是否为端点的值,例如可以是0或者1。端点检测模型是用于检测是否为端点的模型,可以是深度神经网络模型。端点检测模型是预先采用有监督的训练得到的,在训练时,用于预训练神经网络模型的训练数据是包括语音部分和静音部分的一整段音频数据,整段音频数据中的静音部分可能属于真正断句结束后的静音,也可能属于暂时性停顿例如非真正断句结束时的静音。因此,可以将训练数据包括非真正断句结束的语音部分和静音部分例如用户犹豫、思考或者磕绊等暂时性停顿静音作为负样本,真正断句结束的语音部分和静音部分例如真正结束说话后等待回复时的静音作为正样本,神经网络模型可以基于训练数据学习得到整段语音数据对应声学特征的上下文关系,基于上下文(context)语义综合得到是否为端点的概率。

具体地,端点检测模型可以输出目标语音帧为端点的概率,服务器可以根据概率得到端点检测值。端点检测值按照语音顺序排列,得到端点检测值序列。

在一些实施例中,将目标声学特征序列输入到端点检测模型中进行处理,得到端点检测值序列包括:将目标声学特征序列输入到端点检测模型中,端点检测模型结合目标声学特征序列输出各个目标语音帧对应的端点检测概率;当目标语音帧对应的端点检测概率大于预设概率时,获取第一预设值作为端点检测值;将目标语音帧对应的端点检测值按照语音帧顺序组成端点检测值序列。

其中,一个目标语音帧对应的端点检测概率是结合整个目标声学特征序列得到的。例如端点检测模型可以是深度神经模型。预设概率可以根据需要设置,一般而言大于0.5,例如可以是0.8。第一预设值可以是预先设置的,例如可以是0。

具体地,将目标声学特征序列输入到端点检测模型中,端点检测模型输出每个目标语音帧为端点的概率,如果端点检测概率大于预设概率,则将第一预设值作为端点检测值。否则,可以将第二预设值例如1作为端点检测值。然后按照语音帧的顺序对端点检测值进行排列,得到端点检测值序列。举个例子,假设有5个语音帧,假设得到该语音帧对应的端点检测概率分别为0.20、0.30、0.85、0.99以及0.10。预设概率为0.8,第一预设值为0,第二预设值为1,则端点检测值序列为1、1、0、0以及1。

步骤S308,根据端点检测值序列得到目标语音数据对应的语音端点集合。

具体地,得到端点检测值序列后,可以获取端点检测值序列中满足端点条件的区域,获取该区域所对应的语音点,例如时间点或者语音帧的序号,作为语音端点。端点条件可以包括起点条件以及结束点条件。可以根据一帧的检测结果判断是否断句,也可以根据连续多帧的检测结果判断是否断句。例如当连续出现两帧音频数据的检测结果为“0”时,确定是真正断句结束了,例如“11000”。而例如“10111”这种情况,只有一个“0”,则确定用户还在说话,确定语音数据中不存在语音终止点。

在一些实施例中,结束点条件包括第一预设值的连续排列数量大于第一数量阈值,根据端点检测值序列得到目标语音数据对应的语音端点集合包括:获取端点检测值序列中,第一预设值的连续排列数量大于第一数量阈值的检测值区域;将检测值区域所对应的前向语音点作为目标语音数据对应的语音端点,得到语音端点集合。

其中,检测值区域对应的前向语音点是指检测值区域对应的前一个语音点。第一数量阈值可以根据需要设置,可以是大于2的数值,例如可以是3。检测值区域所对应的语音点可以用时间表示,也可以用语音帧的序号表示。检测值区域所对应的语音点可以是检测值区域的起点、中间点或者结束点。举个例子,假设第一数量阈值为2,第一预设值为0,端点检测值序列为1、1、0、1、0、0、0、1、1、1、0、0、0。第5个语音帧到第7个语音帧均为0,即0的连续排列数量为3,因此第5个语音帧到第7个语音帧为满足0的连续排列数量大于第一数量阈值的检测值区域,因此可以将检测值区域的前一个语音帧作为目标语音数据对应的语音端点,例如第4个语音帧作为语音结束点。通过将第一检测值区域对应的前向语音点作为语音结束点,可以减少噪声,即减少静音数据的数据量。

在一些实施例中,起始点条件包括第二预设值的连续排列数量大于第二数量阈值。因此可以获取端点检测值序列中,第二预设值的连续排列数量大于第二数量阈值的检测值区域; 将该检测值区域所对应的区域语音点作为目标语音数据对应的语音端点,得到语音端点集合。即语音端点包括起始点与结束点组成的语音端点集合。区域语音点是检测值区域所在的语音点,例如可以是检测值区域的初始语音点。 即可以将该检测值区域所对应的区域语音点作为目标语音数据对应的语音起始点。

在一些实施例中,针对语音的起始点和终止点,可以分别设置不同的判断阈值,例如第一数量阈值大于第二数量阈值。例如,语音的起始点是从没说话转换为开始说话,音频数据的特征变化比较明显,因此可以将起始点对应的阈值设置较小,例如2帧,即出现两帧音频数据对应的检测结果为“11”时则确定语音的起始点,为第一个“1”所对应的语音帧,从而提高了语音端点的检测效率。而说话过程转换为检测语音的终止点时,是从正在说话转换为不说话,音频数据的特征变化相较没有那么明显,为了保证端点检测的准确性,可以将终止点对应的阈值设置较大,例如4帧,即出现4帧音频数据对应的检测结果为“0000”时则确定为真正断句结束,将“0000”之前的“1”对应的语音帧作为语音结束点。

本申请实施例中,通过连续多帧的端点检测值判断是否断句,从而提高准确度。例如,模型的检测结果的准确率不是100%的,假设一帧的错误率为0.1,若根据连续三帧的检测结果确定是否断句,连续三帧的错误率就只有0.001。

在一些实施例中,在由第一预设值以及第二预设值组成的端点值序列中,可以先检测语音开始点,将端点检测值序列中,第二预设值的连续排列数量大于第二数量阈值的第二检测值区域所对应的区域语音点作为语音起始点,然后从该语音起始点开始,获取语音结束点。得到语音结束点之后,继续进入获取语音起始点的步骤。这样,服务器可以持续检测语音数据,当检测到语音起始点后,采用语音终止点的判断策略检测和判断终止点。当检测到终止点后,转换为语音起始点的判断策略检测和判断语音的起始点,以此反复检测用户语音的端点。

在一些实施例中,如图4所示,基于语音端点集合以及说话者切换点集合对目标语音数据进行语音切分,得到目标语音片段集合包括:

步骤S402,将语音端点集合中的语音端点与说话者切换点集合中的说话者切换点进行对比,得到与语音端点的距离小于距离阈值的说话者切换点。

具体地,第一距离阈值可以根据需要设置,例如可以是1秒。可以通过语音端点集合中的语音端点与说话者切换点集合中的说话者切换点的对比,获取小于第一距离阈值的说话者切换点。例如假设其中的说话者切换点为4.1秒,其中的一个端点为4秒,两者的距离为0.1秒,小于距离阈值1秒,则说话者切换点4.1秒为与语音端点小于距离阈值的说话者切换点

步骤S404,过滤说话者切换点集合中与语音端点的距离第一距离阈值的说话者切换点。

具体地,服务器将说话者切换点集合中与语音端点的距离第一距离阈值的说话者切换点删除,得到过滤后的说话者切换点集合。

步骤S406,基于语音端点集合以及过滤后的说话者切换点集合对目标语音数据进行语音切分,得到目标语音片段集合。

具体地,可以将语音端点以及过滤后的说话者切换点集合的说话者切换点都作为切分点,将切分点之间的语音数据作为一个片段。

举个实际的例子,假设VAD子模块确定4-10秒为说话者说话的音频数据,通过SCD子模块输出说话者转换的时间段包括4.1秒和7秒,由于4.1秒和4秒之间的时间点差值较小,0.1秒的时间不可能发生说话者转换,因此可以只认为7秒时发生了说话者转换,将4-10秒的音频数据划分为4-7秒和7-10秒分别对应的音频数据。

在一些实施例中,如图5所示,对目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音包括:

步骤S502,确定目标语音数据对应的目标说话者集合,获取目标说话者集合中各个目标说话者对应的标准声纹特征。

具体地,服务器可以获取目标语音数据中的说话者,例如目标语音数据中包括两个说话者A以及B。目标说话者可以是通过人脸识别得到的,也可以是人工输入的。服务器中可以存储每个目标说话者的标准的声纹特征。例如,可以预先采集每个说话者的声音,进行声纹特征采集,得到该目标说话者对应的标准声纹特征。

步骤S504,将各个目标说话者对应的标准声纹特征分别作为聚类中心,对目标声纹特征集合进行聚类处理,获取目标说话者对应的标准声纹特征所在的目标聚类。

具体地,在聚类时,将一个标准声纹特征作为一个类别的聚类中心。然后基于该聚类中心进行聚类处理,从而使得与标准声纹特征相似的目标声纹特征属于标准声纹特征所在的目标聚类。

步骤S506,获取目标聚类对应的目标声纹特征所对应的目标语音片段,作为目标说话者对应的语音。

具体地,可以获取属于目标聚类的目标声纹特征,将这些目标声纹特征所对应的目标语音片段,作为该目标说话者对应的语音。

举个实际的例子,假设有K个说话者,则获取这K个说话者对应的标准声纹特征,分为K个聚类中心,得到K个聚类。对于第一个聚类,是以用户A的标准声纹特征为聚类中心进行聚类的,假设该聚类有3个目标声纹特征,则这3个目标声纹特征所对应的目标语音片段均属于A对应的语音,从而可以从目标语音数据中分离出用户A的声音。

本申请实施例中,通过以目标说话者的标准声纹特征作为聚类中心,可以快速进行聚类,而且提高了聚类的准确度。

本申请实施例提供的方法,可以对目标语音数据进行话者分离,话者分离是指将一段语音数据中分属于不同说话者的音频数据进行分割,将同一说话者的音频数据合并成一类,将不同说话者的音频数据区分开,并获得每个说话者的音频数据所对应的时间位置信息,从而解决了确定语音数据中哪位说话者在什么时间说的问题,在实际应用过程中,当输入的语音数据包括两个或者两个以上的多人对话语音时,通过话者分离技术可以分离不同说话者的音频数据,从而针对不同说话者的音频数据进行语音识别或者语音校验等处理。例如,可以对客服语音进行话者分离,从而利用客服人员的音频数据审核或评估客服人员的业务情况。

在一些实施例中,在语音数据中还可能存在说话者重叠的情况,例如实际情况下10-14秒是客服在说话,13-17秒是客户在说话,此时13-14秒存在说话者重叠,即13-14秒内客户和客服都在说话。针对这种情况,可以在SCD子模块之前增加用于声源分离的子模块。

应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图6所示,提供了一种语音数据处理装置,包括:

目标语音数据获取模块602,用于获取待进行说话者分离的目标语音数据;

语音端点检测模块604,用于对目标语音数据进行语音端点检测,得到目标语音数据对应的语音端点集合;

说话者切换检测模块606,用于对目标语音数据进行说话者切换检测,得到目标语音数据对应的说话者切换点集合;

目标语音片段集合得到模块608,用于基于语音端点集合以及说话者切换点集合对目标语音数据进行语音切分,得到目标语音片段集合;

目标声纹特征集合得到模块610,用于对目标语音片段集合中的各个目标语音片段进行声纹特征提取,得到目标声纹特征集合,目标声纹特征集合包括各个目标语音片段分别对应的目标声纹特征;

聚类模块612,用于对目标声纹特征集合进行聚类处理,将属于同一聚类类别的目标声纹特征所对应的目标语音片段作为同一说话者对应的语音。

在一些实施例中,如图7所示,语音端点检测模块包括:

目标语音帧序列得到单元702,用于对目标语音数据进行语音帧划分,得到目标语音帧序列;

目标声学特征序列得到单元704,用于提取目标语音帧序列中的各个目标语音帧对应的声学特征,得到目标声学特征序列,目标声学特征序列包括各个目标语音帧分别对应的目标声学特征;

端点检测值序列得到单元706,用于将目标声学特征序列输入到端点检测模型中进行处理,得到端点检测值序列,端点检测值序列包括各个目标语音帧分别对应的端点检测值;

语音端点集合得到单元708,用于根据端点检测值序列得到目标语音数据对应的语音端点集合。

在一些实施例中,端点检测值序列得到单元用于:将目标声学特征序列输入到端点检测模型中,端点检测模型结合目标声学特征序列输出各个目标语音帧对应的端点检测概率;当目标语音帧对应的端点检测概率大于预设概率时,获取第一预设值作为端点检测值;将目标语音帧对应的端点检测值按照语音帧顺序组成端点检测值序列。

在一些实施例中,语音端点集合得到单元用于:获取端点检测值序列中,第一预设值的连续排列数量大于第一数量阈值的检测值区域;将检测值区域所对应的前向语音点作为目标语音数据对应的语音端点,得到语音端点集合。

在一些实施例中,说话者切换检测模块用于:基于语音端点集合对目标语音数据进行静音过滤以及语音切分,得到语音切分片段集合;对语音切分片段集合中的各个语音切分片段进行说话者切换检测,到语音切分片段对应的说话者切换点,各个语音切分片段对的说话者切换点组成说话者切换点集合。

在一些实施例中,目标语音片段集合得到模块用于:将语音端点集合中的语音端点与说话者切换点集合中的说话者切换点进行对比,得到与语音端点的距离小于距离阈值的说话者切换点;过滤说话者切换点集合中与语音端点的距离小于距离阈值的说话者切换点;基于语音端点集合以及过滤后的说话者切换点集合对目标语音数据进行语音切分,得到目标语音片段集合。

在一些实施例中,聚类模块用于:确定目标语音数据对应的目标说话者集合,获取目标说话者集合中各个目标说话者对应的标准声纹特征;将各个目标说话者对应的标准声纹特征分别作为聚类中心,对目标声纹特征集合进行聚类处理,获取目标说话者对应的标准声纹特征所在的目标聚类;获取目标聚类对应的目标声纹特征所对应的目标语音片段,作为目标说话者对应的语音。

关于语音数据处理装置的具体限定可以参见上文中对于语音数据处理方法的限定,在此不再赘述。上述语音数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储语音数据处理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种语音数据处理方法。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述语音数据处理方法的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述语音数据处理方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 语音数据处理方法、装置、计算机设备和存储介质
  • 语音数据处理方法、装置、计算机设备及存储介质
技术分类

06120112283526