本发明涉及人工智能领域,尤其涉及一种通话分离方法、装置、计算机设备及存储介质。
背景技术:
目前缺少合理的设计步骤来保证通话分离的实现效果,无法在不知道说话人信息的前提下,准确地区分在同一通话中由不同说话人发出的通话语音片段,在通话分离的实现效果上仍不理想。
技术实现要素:
有鉴于此,本发明实施例提供了一种通话分离方法、装置、计算机设备及存储介质,用以解决目前通话分离不精确的问题。
第一方面,本发明实施例提供了一种通话分离方法,包括:
获取原始通话片段,所述原始通话片段包括至少两个不同说话人的通话片段;
采用静音检测去除所述原始通话片段中的静音片段,得到第一通话片段;
将所述第一通话片段进行切割,得到至少三个第二通话片段,其中,一个所述说话人对应一个或多个所述第二通话片段;
获取每个所述第二通话片段的i-vector特征,采用预先训练好的双协方差概率线性判别分析模型对每个所述i-vector特征进行建模,得到每个所述第二通话片段的目标模型;
基于所述目标模型,采用变分贝叶斯算法确定相同的说话人的第二通话片段,并将所述相同的说话人的所述第二通话片段标记成统一的标签。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,将所述第一通话片段进行切割,得到至少三个第二通话片段,包括:
基于贝叶斯信息准则和似然比,在所述第一通话片段中检测并得到说话人的转变点;
根据所述说话人的转变点将所述第一通话片段进行切割,得到至少三个所述第二通话片段。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述目标模型的表达式φm=yk+∈m,其中,φm表示第m个所述第二通话片段提取的i-vector特征,y表示所述第二通话片段的与说话人关联向量,k为使imk=1的索引,im表示与所述第二通话片段的指示向量,
基于所述目标模型和所述变分贝叶斯算法获取第二通话片段的后验概率的表达式,
基于所述目标模型和所述变分贝叶斯算法获取说话人的后验概率的表达式,
基于变分贝叶斯算法对所述第二通话片段的后验概率q(i)和所述说话人的后验概率q(y)进行更新;
根据更新后的q(i)和更新后的q(y)确定相同的说话人的所述第二通话片段。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述采用变分贝叶斯算法在所述目标模型中确定相同的说话人的第二通话片段之前,还包括:
初始化所述第二通话片段的后验概率中说话人的个数,将所述第二通话片段的后验概率中每个不同的说话人作为一对;
计算每一对所述说话人之间的距离,得到距离最远的两个所述说话人;
重复预设次数的初始化所述第二通话片段的后验概率中说话人的个数,将所述第二通话片段的后验概率中每个不同的说话人作为一对和计算每一对所述说话人之间的距离,得到距离最远的两个所述说话人的步骤,得到在所述预设次数的步骤中距离最远的两个所述说话人,并将在所述预设次数的步骤中距离最远的两个所述说话人作为变分贝叶斯计算的起点。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述采用变分贝叶斯算法对所述第二通话片段的后验概率q(i)和所述说话人的后验概率q(y)进行更新,包括:
将所述第二通话片段的后验概率q(i)中的qms更新为
第二方面,本发明实施例提供了一种通话分离装置,包括:
原始通话片段获取模块,用于获取原始通话片段,所述原始通话片段包括至少两个不同说话人的通话片段;
第一通话片段获取模块,用于采用静音检测去除所述原始通话片段中的静音片段,得到第一通话片段;
第二通话片段获取模块,用于将所述第一通话片段进行切割,得到至少三个第二通话片段,其中,一个所述说话人对应一个或多个所述第二通话片段;
目标模型获取模块,用于获取每个所述第二通话片段的i-vector特征,采用预先训练好的双协方差概率线性判别分析模型对每个所述i-vector特征进行建模,得到每个所述第二通话片段的目标模型;
统一标签模块,用于基于所述目标模型,采用变分贝叶斯算法确定相同的说话人的第二通话片段,并将所述相同的说话人的所述第二通话片段标记成统一的标签。
第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述通话分离方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,包括:计算机可执行指令,当所述计算机可执行指令被运行时,用以执行第一方面任一项所述的通话分离方法。
上述技术方案中的一个技术方案具有如下有益效果:
本发明实施例中,首先将原始通话语音进行静音检测,可以去除语音通话中无人发出声音的静音片段,有利于提高通话分离的效率和精确度。接着将第一通话片段进行切割,可以得到不同说话人的第二通话片段,为后续确定相同的说话人的第二通话片段提供重要的技术前提。然后采用预先训练好的双协方差概率线性判别分析模型进行建模,得到每个第二通话片段的目标模型,可以通过双协方差概率线性判别分析模型将第二通话片段的特征更精确地表示出来。最后通过变分贝叶斯算法确定相同的说话人的第二通话片段,采用变分贝叶斯算法可以将属于同一说话人的第二通话片段进行聚类,精确度高,能达到精确的通话分离效果。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明一实施例中通话分离方法的一流程图;
图2是本发明一实施例中通话分离装置的一示意图;
图3是本发明一实施例中计算机设备的一示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述预设范围等,但这些预设范围不应限于这些术语。这些术语仅用来将预设范围彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一预设范围也可以被称为第二预设范围,类似地,第二预设范围也可以被称为第一预设范围。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1示出本实施例中通话分离方法的一流程图。该通话分离方法可应用在进行通话分离的终端设备上,用于实现通话分离的功能,具体可应用在安装在计算机设备上的电话通话分离系统中。其中,该计算机设备是可与用户进行人机交互的设备,包括但不限于电脑、智能手机和平板等设备。该通话分离方法包括如下步骤:
s10:获取原始通话片段,原始通话片段包括至少两个不同说话人的通话片段。
其中,原始通话片段可以是通过录音设备获取的、包括至少两个不同说话人的通话片段。在一实施例中,具体可以是在会议场景中通过录音设备录取的由多个说话人组成的原始通话片段。
s20:采用静音检测去除原始通话片段中的静音片段,得到第一通话片段。
其中,静音检测是指对原始通话片段中静默(无人说话)部分的检测。在一实施例中,可以采用语音端点检测(voiceactivitydetection,简称vad)的技术实现,包括采用帧幅度、帧能量、短时过零率和深度神经网络等方式实现。通过去除原始通话片段中静默的片段,可以将原始通话片段中说话人说话时的语音片段保留下来,从而在后续进行通话分离时,可以排除原始通话片段中静默部分的干扰,有效提高通话分离的效率和准确率。
s30:将第一通话片段进行切割,得到至少三个第二通话片段,其中,一个说话人对应一个或多个第二通话片段。
可以理解地,第一通话语音片段在时间轴上是连续的,但是在时间轴上会交替出现不同说话人的通话语音片段。因此,可以将第一通话语音片段切割成不同说话人所对应的通话片段,这些片段即第二通话片段。得到的第二通话片段至少包括三个片段(因为两个片段没有进行通话分离的必要),一个说话人可以对应有一个或多个第二通话片段,例如,有10个第二通话片段,该第二通话片段总共对应4个说话人a、b、c和d,那么a可以包括5个第二通话片段,b包括2个,c包括1个,d包括2个。
进一步地,在步骤s30中,将第一通话片段进行切割,得到至少三个第二通话片段,具体包括:
s31:基于贝叶斯信息准则和似然比,在第一通话片段中检测并得到说话人的转变点。
其中,贝叶斯信息准则(bayesianinformationcriterion,简称bic)是在不完全情报下,对部分未知的状态用主观概率估计,然后用贝叶斯公式对发生概率进行修正,最后再利用期望值和修正概率做出最优决策。似然比(likelihoodratio,简称lr)是反映真实性的一种指标。在一实施例中,通过采用贝叶斯信息准则结合似然比的方法,可以确定第一通话片段中更换说话人的具体时间,检测到第一通话片段中说话人的转变点。
s32:根据说话人的转变点将第一通话片段进行切割,得到至少三个第二通话片段。
在一实施例中,根据得到的转变点切割第一通话片段,可以实现初步的通话分离效果,可以确定每个得到的第二通话片段都对应一说话人。
在步骤s31-s32中,对第一通话片段实现了切割,使得切割得到的每个第二通话片段都对应一说话人,为后续确定相同的说话人的第二通话片段提供重要的技术前提。
s40:获取每个第二通话片段的i-vector特征,采用预先训练好的双协方差概率线性判别分析模型对每个i-vector特征进行建模,得到每个第二通话片段的目标模型。
其中,i-vector特征是指从高斯混合模型(gaussianmixturemodel,gmm)均值超矢量中提取的一个更紧凑的矢量,i-vector特征除了包含说话人的身份信息外,还包括关于声道,话筒,说话方式,语音等信息,可以全面地体现声音的声纹特征。在声纹识别中,双协方差概率线性判别分析模型是用来从i-vector中提取说话人信息的,可以通过该模型对声纹特征进行比对和区分。双协方差概率线性判别分析模型假设i-vector是由另外两个参数提取的:一个说话人的向量y(不同的说话人有不同的向量),一个剩余向量∈(不同的片段有不同的向量)。采用预先训练好的双协方差概率线性判别分析模型对每个i-vector特征进行建模,能够将第二通话片段的特征更精确地表示出来,以在确定相同的说话人的第二通话片段时,能够达到更精确的区分效果。
在建模前有以下前提条件:在一个对话中,说话人的总数有s个。将所有第二通话片段提取的i-vector表示为φ={φ1,...,φm}。对于每一个第二通话片段m=1,…,m,定义一个维度为s*1的指示向量im,如果说话人s在第二通话片段m中说话了,则im中的元素ims=1,如果说话人s在第二通话片段m中没说话,im中的元素ims=0。令i={i1,...,im}为一个给出的关于第二通话片段的指示向量集合。假设事件为说话人s在一个片段中说话,则给该时间赋上一个先验概率
有了上述建模的前提条件,目标模型的表达式为:φm=yk+∈m,其中,φm表示第m个第二通话片段提取的i-vector特征,y表示第二通话片段中的与说话人关联向量,为了和上述ys中的s做区分,令k为使imk=1的索引,im表示与第二通话片段的指示向量,
s50:基于目标模型,采用变分贝叶斯算法确定相同的说话人的第二通话片段,并将相同的说话人的第二通话片段标记成统一的标签。
其中,变分贝叶斯算法(variationalbayes,简称vb)是提供一种局部最优,但具有确定解的近似后验方法。
在一实施例中,y={y1,...,ys}为说话人向量的集合。通过这个目标模型,可以将确定相同的说话人的第二通话片段这个问题归纳成求说话人在一个给定的第二通话片段中说过话的后验概率,其中,后验概率是指关于随机事件或者不确定性断言的条件概率,是在相关证据或者背景给定并纳入考虑之后的条件概率。由于上述的假设,p(y,i|φ)是一个不能解的积分,本实施例中,通过近似推断的方法,采用变分贝叶斯算法来近似计算p(y|φ)和p(i|φ)。为简便表示,可以将p(y|φ)表示为q(i),将p(i|φ)表示为q(y),采用平均场变分贝叶斯方法假设后验概率可以被近似表示为:q(y,i)=q(y)q(i)。通过近似推断,可以确定说话人在一个给定的第二通话片段中说过话的后验概率,即可确定相同的说话人的第二通话片段,并将相同的说话人的第二通话片段标记成统一的标签,以将第二通话片段按所属的说话人区分开来。
进一步地,在步骤s50中,基于目标模型,采用变分贝叶斯算法确定相同的说话人的第二通话片段,具体包括:
s511:基于目标模型和变分贝叶斯算法获取第二通话片段的后验概率的表达式,
s512:基于目标模型和变分贝叶斯算法获取说话人的后验概率的表达式,
s513:基于变分贝叶斯算法对第二通话片段的后验概率q(i)和说话人的后验概率q(y)进行更新。
变分贝叶斯算法计算过程中采用了最大期望算法(expectationmaximizationalgorithm,简称em算法)的更新过程。最大期望算法包括e-step和m-step,第二通话片段的后验概率q(i)和说话人的后验概率q(y)在变分的e-step步骤更新;在m-step步骤将每个第二通话片段m赋给
进一步地,在步骤s513中,具体包括:
将第二通话片段的后验概率q(i)中的qms更新为
进一步地,在更新第二通话片段的后验概率q(i)和说话人的后验概率q(y)时,还可以引入温度参数β,采用变分贝叶斯算法的确定性退火变种对片段的后验概率和说话人的后验概率进行更新。具体地,更新过程为:qms更新为
s514:根据更新后的q(i)和更新后的q(y)确定相同的说话人的第二通话片段。
得到更新后的q(i)和更新后的q(y)即可得到说话人在一个给定的第二通话片段中说过话的后验概率,从而确定相同的说话人的第二通话片段。
进一步地,在步骤s50之前,即在采用变分贝叶斯算法在目标模型中确定相同的说话人的第二通话片段之前,还包括:
s521:初始化第二通话片段的后验概率中说话人的个数,将第二通话片段的后验概率中每个不同的说话人作为一对。
在一实施例中,初始化第二通话片段的后验概率中说话人的个数具体可以是初始化为3个说话人。
s522:计算每一对说话人之间的距离,得到距离最远的两个说话人。
其中,在双协方差概率线性判别分析模型中,可以采用余弦相似度和/或似然比分数作为衡量距离的标准。
s523:重复预设次数的初始化第二通话片段的后验概率中说话人的个数,将第二通话片段的后验概率中每个不同的说话人作为一对和计算每一对说话人之间的距离,得到距离最远的两个说话人的步骤,得到在预设次数的步骤中距离最远的两个说话人,并将在预设次数的步骤中距离最远的两个说话人作为变分贝叶斯计算的起点。
可以理解地,本步骤为重复预设次数(如10次)的步骤s521-s522,再将所有预设次数的步骤中距离最远的两个说话人作为变分贝叶斯计算的起点。
步骤s521-s523中是对变分贝叶斯算法的初始化进行的优化步骤,可以提高变分贝叶斯算法在采用最大期望算法进行迭代时得到的运算结果更加准确,并最终根据准确地得到说话人在一个给定的第二通话片段中说过话的后验概率,从而更好地对第二通话语音按说话人进行区分。
本发明实施例的技术方案具有以下有益效果:
本发明实施例中,首先将原始通话语音进行静音检测,可以去除语音通话中无人发出声音的静音片段,有利于提高通话分离的效率和精确度。接着将第一通话片段进行切割,可以得到不同说话人的第二通话片段,为后续确定相同的说话人的第二通话片段提供重要的技术前提。然后采用预先训练好的双协方差概率线性判别分析模型进行建模,得到每个第二通话片段的目标模型,可以通过双协方差概率线性判别分析模型将第二通话片段的特征更精确地表示出来。最后通过变分贝叶斯算法确定相同的说话人的第二通话片段,采用变分贝叶斯算法可以将属于同一说话人的第二通话片段进行聚类,精确度高,能达到精确的通话分离效果。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
基于实施例中所提供的通话分离方法,本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。
图2示出与实施例中通话分离方法一一对应的通话分离装置的原理框图。如图2所示,该通话分离装置包括原始通话片段获取模块10、第一通话片段获取模块20、第二通话片段获取模块30、目标模型获取模块40和统一标签模块50。其中,原始通话片段获取模块10、第一通话片段获取模块20、第二通话片段获取模块30、目标模型获取模块40和统一标签模块50的实现功能与实施例中通话分离方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。
原始通话片段获取模块10,用于获取原始通话片段,原始通话片段包括至少两个不同说话人的通话片段。
第一通话片段获取模块20,用于采用静音检测去除原始通话片段中的静音片段,得到第一通话片段。
第二通话片段获取模块30,用于将第一通话片段进行切割,得到至少三个第二通话片段,其中,一个说话人对应一个或多个第二通话片段。
目标模型获取模块40,用于获取每个第二通话片段的i-vector特征,采用预先训练好的双协方差概率线性判别分析模型对每个i-vector特征进行建模,得到每个第二通话片段的目标模型。
统一标签模块50,用于基于目标模型,采用变分贝叶斯算法确定相同的说话人的第二通话片段,并将相同的说话人的第二通话片段标记成统一的标签。
可选地,第一通话片段获取模块10包括转变点获取单元和第二通话片段获取单元。
转变点获取单元,用于基于贝叶斯信息准则和似然比,在第一通话片段中检测并得到说话人的转变点。
第二通话片段获取单元,用于根据说话人的转变点将第一通话片段进行切割,得到至少三个第二通话片段。
可选地,目标模型的表达式φm=yk+∈m,其中,φm表示第m个第二通话片段提取的i-vector特征,y表示第二通话片段的与说话人关联向量,k为使imk=1的索引,im表示与第二通话片段的指示向量,
第二通话片段后验概率获取单元,用于基于目标模型和变分贝叶斯算法获取第二通话片段的后验概率的表达式,
说话人后验概率获取单元,用于基于目标模型和变分贝叶斯算法获取说话人的后验概率的表达式,
更新单元,用于基于变分贝叶斯算法对第二通话片段的后验概率q(i)和说话人的后验概率q(y)进行更新。
确定单元,用于根据更新后的q(i)和更新后的q(y)确定相同的说话人的第二通话片段。
可选地,通话分离装置还包括初始化单元、距离单元和起点确定单元。
初始化单元,用于初始化第二通话片段的后验概率中说话人的个数,将第二通话片段的后验概率中每个不同的说话人作为一对。
距离单元,用于计算每一对说话人之间的距离,得到距离最远的两个说话人。
起点确定单元,用于重复预设次数的初始化第二通话片段的后验概率中说话人的个数,将第二通话片段的后验概率中每个不同的说话人作为一对和计算每一对说话人之间的距离,得到距离最远的两个说话人的步骤,得到在预设次数的步骤中距离最远的两个说话人,并将在预设次数的步骤中距离最远的两个说话人作为变分贝叶斯计算的起点。
可选地,更新单元包括:将第二通话片段的后验概率q(i)中的qms更新为
本发明实施例的技术方案具有以下有益效果:
本发明实施例中,首先将原始通话语音进行静音检测,可以去除语音通话中无人发出声音的静音片段,有利于提高通话分离的效率和精确度。接着将第一通话片段进行切割,可以得到不同说话人的第二通话片段,为后续确定相同的说话人的第二通话片段提供重要的技术前提。然后采用预先训练好的双协方差概率线性判别分析模型进行建模,得到每个第二通话片段的目标模型,可以通过双协方差概率线性判别分析模型将第二通话片段的特征更精确地表示出来。最后通过变分贝叶斯算法确定相同的说话人的第二通话片段,采用变分贝叶斯算法可以将属于同一说话人的第二通话片段进行聚类,精确度高,能达到精确的通话分离效果。
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例中通话分离方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器执行时实现实施例中通话分离装置中各模块/单元的功能,为避免重复,此处不一一赘述。
图3是本发明一实施例提供的计算机设备的示意图。如图3所示,该实施例的计算机设备60包括:处理器61、存储器62以及存储在存储器62中并可在处理器61上运行的计算机程序63,该计算机程序63被处理器61执行时实现实施例中的通话分离方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器61执行时实现实施例中通话分离装置中各模型/单元的功能,为避免重复,此处不一一赘述。
计算机设备60可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,处理器61、存储器62。本领域技术人员可以理解,图3仅仅是计算机设备60的示例,并不构成对计算机设备60的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器61可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器62可以是计算机设备60的内部存储单元,例如计算机设备60的硬盘或内存。存储器62也可以是计算机设备60的外部存储设备,例如计算机设备60上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器62还可以既包括计算机设备60的内部存储单元也包括外部存储设备。存储器62用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器62还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。