利用提前停止聚类的讲话者分离的制作方法
背景技术:
讲话者分离(speakerdiarization)是将输入音频流划分为分别对应于不同讲话者的多个部分的过程。讲话者分离旨在确定在音频流中“谁在何时讲话?”,以及每个讲话者处于活动状态的时间间隔。通过对涉及来自多个讲话者的语音的音频流应用讲话者分离,可以确定音频流中的每个语音话语是由哪个讲话者讲出的,或者每个讲话者已经讲出了什么语音话语。讲话者分离被广泛地用于各种场景。例如,对于来自会议的音频流,讲话者分离可用于自动生成会议记录,其记录了在会议期间的语音话语并为每个语音话语标识了讲话者。
技术实现要素:
提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。
本公开的实施例提出了用于利用提前停止聚类的讲话者分离的方法和装置。可以将音频流分割为至少一个语音段,所述音频流包括来自至少一个讲话者的语音。可以将所述至少一个语音段聚类为多个簇,所述多个簇的数量大于所述至少一个讲话者的数量。可以从所述多个簇中选择相似度最高的至少一个簇,所选择的至少一个簇的数量等于所述至少一个讲话者的数量。可以基于所选择的至少一个簇来建立讲话者分类模型。可以通过所述讲话者分类模型,将所述音频流中的语音帧与所述至少一个讲话者对准。
应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。
附图说明
以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。
图1示出了传统讲话者分离的示例性过程。
图2示出了根据实施例的利用提前停止聚类的讲话者分离的示例性过程。
图3示出了根据实施例的在讲话者分离中执行提前停止聚类的示例性过程。
图4示出了根据实施例的在讲话者分离中执行提前停止聚类的示例性过程。
图5示出了根据实施例的在讲话者分离中估计讲话者数量的示例性过程。
图6示出了根据实施例的在讲话者分离中选择簇的示例性过程。
图7示出了根据实施例的用于讲话者分离的示例性方法的流程图。
图8示出了根据实施例的用于讲话者分离的示例性装置。
图9示出了根据实施例的用于讲话者分离的示例性装置。
具体实施方式
现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。
通常,讲话者分离是通过语音分割(segmentation)和语音聚类来实现的。语音分割可以通过检测音频流中的讲话者改变点来将音频流分割成多个语音段。语音聚类可以基于讲话者特性来将语音段分组在一起,例如,将来自同一讲话者的可能的语音段分组为一个簇。根据传统的讲话者分离,语音聚类总是在簇的数量达到讲话者的数量时停止。讲话者的数量可能是已知的或估计的。在一些情况下,簇可以进一步用于建立或初始化讲话者分类模型,例如,隐马尔可夫模型(hmm),以用于改善音频流和讲话者之间的帧对准。由于在语音分割期间可能会遗漏或未能检测到某些讲话者改变点,例如,一个语音段可能包括来自不同讲话者的语音话语,因此,就讲话者而言,所得到的簇有时将会是不纯的(impure),例如,一个簇可能包括来自不同讲话者的语音话语或语音段,从而降低了讲话者分离的准确性。此外,基于这样的不纯的簇所建立的讲话者分类模型将进一步导致不正确的帧对准。
本公开的实施例提出了利用提前停止聚类(early-stopclustering)的改进的讲话者分离。在本文中,提前停止聚类可以指在讲话者分离期间,在所得到的簇的数量达到讲话者的数量之前就停止语音段的聚类。即,提前停止聚类旨在产生比讲话者数量更多的簇。这可以避免生成如果进一步执行聚类直到簇的数量达到讲话者的数量所导致的不纯的簇,因此,与传统的讲话者分离中的聚类操作相比,有助于生成就讲话者而言的更纯的簇。
根据本公开的实施例,讲话者分离可以进一步包括从通过提前停止聚类所产生的簇中选择多个簇,其中,所选择的簇的数量对应于讲话者的数量。然后,所选择的簇可以进而用于建立或初始化讲话者分类模型。由于所选择的簇可以是在通过提前停止聚类所生成的簇中相似度最高的那些簇,这可以确保讲话者分类模型可以是使用高质量或高纯度的簇来建立的,而不受不纯的簇的影响。相应地,所建立的讲话者分类模型可以具有更高的帧对准的性能。
此外,本公开的实施例还提出了用于以更高准确度来估计讲话者数量的新方式,该方式应用于讲话者数量未知情况下的提前停止聚类中。此外,本公开的实施例提出了在整个讲话者分离过程中利用讲话者瓶颈(bottleneck)特征,而不是利用讲话者声学特征,以便更好地提取和表示讲话者特性。
根据本公开实施例的利用提前停止聚类的讲话者分离可以具有比传统讲话者分离更好的系统性能,例如,更低的分离错误率(der)、在估计讲话者数量方面的更高准确性等。
图1示出了传统讲话者分离的示例性过程100。
在110处,可以获得音频流。音频流可以包括来自至少一个讲话者的语音。例如,音频流可以是来自涉及至少一个参加者的会议的音频记录、来自涉及至少一个演员的电影的对话等。
在120处,可以对音频流执行语音分割。语音分割可以尝试将音频流分割为多个讲话者同质语音段。每个语音段可以包括一个或多个语音帧。通常,语音分割可以采用讲话者改变点检测技术来检测音频流中的讲话者改变点,并基于讲话者改变点来在时间上将音频流分割为多个语音段,其中,每个语音段都旨在包含单个讲话者的语音话语。可替代地,语音分割也可以将音频流分成具有固定持续时间的语音段。
在130处,可以将在120处获得的语音段聚类为多个簇。通过在130处的聚类操作,可以基于相似度来合并语音段,使得在所得到的簇和讲话者之间存在一一对应关系。首先,可以针对语音段来获得讲话者特征向量或嵌入向量,例如,i-向量、x-向量等。然后,可以在语音段之间利用讲话者特征向量来执行语音相似度评分。例如,语音相似度评分可以基于例如概率线性判别分析(plda)、贝叶斯信息准则(bic)、广义似然比(glr)、kullback-leibler散度(kld)等。此后,根据预定的聚类策略,例如,凝聚层次聚类(ahc)等,可以基于相似度分数来合并语音段。例如,可以将彼此之间具有高相似度分数的那些语音段合并成一个簇。
在130处的聚类操作将在满足停止标准时停止。该停止标准指示所得到的簇的数量等于音频流中涉及的讲话者的数量。即,该聚类总是在所得到的簇的数量达到讲话者的数量时停止。在一种情况下,讲话者数量是已知的。例如,在执行讲话者分离之前,已知音频流中涉及多少讲话者。在另一种情况下,讲话者数量未知,因此应在执行聚类之前对讲话者数量进行估计。通常,通过对所要合并的簇的相似度分数设置阈值来估计讲话者数量。当所要合并的簇之间的相似度分数不满足阈值约束时,聚类停止,并且当前的簇的数量是对讲话者数量的估计。
可以通过在130处的聚类操作来生成多个簇,其中,簇的数量等于讲话者的数量,并且每个簇被认为对应于一个讲话者。
在140处,可以基于在130处所生成的簇来建立讲话者分类模型,该模型进一步用于实现在音频流与讲话者之间的帧对准。换句话说,这些簇可以用于对讲话者分类模型进行初始化。讲话者分类模型可以是例如隐马尔可夫模型(hmm)。作为示例,首先,对于每个簇,可以建立高斯混合模型(gmm)。相应地,该gmm也与对应于该簇的讲话者相关联。以这种方式,可以获得多个gmm,并且每个gmm对应于相应的讲话者。然后,可以基于多个gmm来建立hmm,其中,hmm的每个状态与相应的gmm相关联并且因此与相应的讲话者相关联。
在150处,可以通过讲话者分类模型来执行帧对准。帧对准也可以被称为帧重新分割。可以将音频流中的语音帧提供给讲话者分类模型,例如hmm,以与hmm的相应hmm状态对准,并且因此与相应讲话者对准。在帧对准之后将提供讲话者分离的最终结果。
应当理解,图1中的讲话者分离只是传统讲话者分离的一个示例,其它传统讲话者分离可能包括不同的操作。例如,在一些传统讲话者分离中,可能省略了在140处的建模操作和在150处的对准操作。在这种情况下,讲话者分离的最终结果将是基于在130处所获得的簇的。
图2示出了根据实施例的利用提前停止聚类的讲话者分离的示例性过程200。过程200通过在讲话者分离期间应用提前停止聚类,而对例如图1中的过程100的传统讲话者分离提供了改进。
在210处,可以获得音频流。
在一些实现方式中,过程200可以如传统的讲话者分离那样采用讲话者声学特征来进行随后操作,例如,分割、聚类、建模、对准等。在这种情况下,可以针对音频流中的每个语音帧提取讲话者声学特征向量。音频流中的语音帧的所提取的讲话者声学特征向量可以进一步用于随后操作。
在其它实现方式中,如图2所示,过程200可以采用讲话者瓶颈特征,而不是讲话者声学特征,来进行随后操作。讲话者分离可以受益于讲话者瓶颈特征的使用,因为讲话者瓶颈特征可以具有相对较低的维度,并且避免受到音频流中语音内容、背景噪声、回声等的影响。与讲话者声学特征相比,讲话者瓶颈特征可以更好地表示音频流中的语音帧和讲话者的声学特性,并且需要较低的计算成本。
根据提取讲话者瓶颈特征的示例性过程,对于音频流中的每个语音帧,可以提取该语音帧的讲话者声学特征,然后可以通过神经网络,例如深度神经网络(dnn),基于讲话者声学特征来生成该语音帧的讲话者瓶颈特征。该dnn可以被训练用于在以交叉熵作为损失函数的情况下在n个讲话者之间进行分类。dnn可以包括输入层、多个隐藏层、输出层等。在输入层,可以将当前语音帧的讲话者声学特征向量和可选的上下文语音帧的上下文讲话者声学特征向量级联在一起,以作为输入向量。可选地,也可以省略上下文讲话者声学特征向量,因此可以将当前语音帧的讲话者声学特征向量直接作为输入向量。然后,输入向量将经由多个隐藏层进行处理。最后一个隐藏层是瓶颈层,其维度小于其它隐藏层。输出层包括分别代表训练集中的多个讲话者的多个节点,表示为{spk1,spk2,μ,spkn},其中n是训练讲话者的数量。给定从语音帧中提取的讲话者声学特征向量,则可以提取瓶颈层的线性输出以作为讲话者瓶颈特征向量b。此外,给定从语音段内的语音帧中提取的讲话者声学特征向量序列,可以将瓶颈层的线性输出提取作为该语音段的讲话者瓶颈特征向量集合,
在下面的讨论中,在讲话者分离期间采用讲话者瓶颈特征。然而,应当理解,本公开的创新性构思也可以是以与在讲话者分离期间采用讲话者声学特征的情况相类似的方式来实现的。
在220处,可以对音频流执行语音分割以获得多个语音段。在220处的语音分割与图1中在120处的语音分割类似,不同之处在于220处的语音分割采用讲话者瓶颈特征来检测音频流中的讲话者改变点并相应地将音频流分割为多个语音段。
在230处,可以对在220处获得的语音段执行提前停止聚类,以生成多个簇。通过在230处的提前停止聚类操作,可以将语音段聚类为多个簇,其中,簇的数量大于讲话者的数量。换句话说,可以在所得到的簇的数量达到讲话者的数量之前停止聚类。
在一种实现方式中,可以基于余弦相似度和/或bic分数来将语音段迭代地聚类为多个簇。可以设计预定的标准,例如提前停止标准,以确保所得到的簇的数量大于讲话者的数量。例如,可以利用余弦相似度阈值、bic分数阈值、用于计算bic分数的惩罚权重等中的至少一个来定义提前停止标准。在迭代聚类期间,确定余弦相似度和/或bic分数是否满足提前停止标准。如果不满足提前停止标准,则迭代聚类可以继续,否则,如果满足提前停止标准,则迭代聚类可以停止。在一些实现方式中,可以经验性地设置或调整提前停止标准。在一方面,提前停止标准可以确保所得到的簇的数量大于讲话者的数量,在另一方面,提前停止标准可以考虑每个所得到的簇不能太小,即,应包含足够的信息,以便用于后续的讲话者分类模型的建立。将结合图3至图4来进一步讨论在230处的提前停止聚类操作。
在240处,可以对在230处生成的簇执行簇选择。可以从在230处生成的簇中选择一个或多个簇,其中,所选择的簇可以是在230处生成的簇之中具有最高相似度的,并且所选择的簇的数量对应于讲话者的数量。由于在230处生成的簇是通过提前停止聚类获得的,因此与传统的讲话者分离中的聚类操作相比,这些簇就讲话者而言可以是更纯的。相应地,在240处所选择的簇可以以更高的概率与相应讲话者相关联。即,对于一个所选择的簇,该簇中的语音段很可能确实来自同一讲话者。将结合图6进一步讨论240处的簇选择。
应当理解,在一些情况下,音频流中的讲话者的数量是未知的,因此过程200可以进一步包括讲话者数量估计操作,以用于基于在230处生成的簇来估计讲话者的数量。讲话者数量估计可以是在240处的簇选择之前执行的,相应地,当选择簇时可以利用所估计的讲话者数量。将结合图5进一步讨论讲话者数量估计。
在250处,可以基于在240处选择的簇来建立讲话者分类模型。在250处的建模操作与图1中的140处的建模操作相似,不同之处在于,在250处,用于建立或初始化讲话者分类模型的是在240处获得的所选择的簇。作为示例,讲话者分类模型可以是hmm。在这种情况下,对于每个所选择的簇,可以建立gmm,其与对应于所选择的簇的讲话者相关联。可以针对所选择的簇获得多个gmm,并将所述多个gmm进一步用于建立hmm,使得hmm的每个状态与相应的gmm相关联,从而与相应的讲话者相关联。得益于用于建立hmm的所选择的簇是高质量高纯度的簇的事实,与传统的讲话者分离中所建立的hmm相比,所建立的hmm可以具有用于区分不同讲话者语音的更高的性能。
在260处,可以通过在250处建立的讲话者分类模型来执行帧对准。可以将音频流中的语音帧提供给讲话者分类模型,例如,hmm,以对准到hmm的相应hmm状态,并从而对准到相应讲话者。
在一种实现方式中,可以对音频流中的每个语音帧执行帧对准,并且因此可以通过讲话者分类模型来将音频流中的每个语音帧与相应讲话者对准。最终,音频流中的所有语音帧将通过帧对准而对应到相应讲话者,这可以被提供作为讲话者分离过程200的结果。
在另一种实现方式中,可以对在240处未选择的那些簇中的每个语音帧执行帧对准,并且因此可以通过讲话者分类模型来将未选择的簇中的每个语音帧与相应讲话者对准。最终,可以将通过在260处的帧对准而对准到相应讲话者的语音帧以及在240处所选择的对应到相应讲话者的所选择簇中的语音帧组合在一起,以被提供作为讲话者分离过程200的结果。例如,对于给定的讲话者,如果在240处选择了对应到该讲话者且包括第一组语音帧的簇,并且在260处通过帧对准而将第二组语音帧对准到该讲话者,则可以将第一组语音帧和第二组语音帧组合在一起,以作为音频流中的与该讲话者相对应的所有语音帧的集合。
应当理解,图2所示的过程200中的所有操作都是示例性的,根据实际的设计和需求,根据本公开实施例的利用提前停止聚类的讲话者分离应当涵盖对过程200的任何改变、替换、添加等。例如,在一种实现方式中,讲话者分离可以进一步包括讲话者分类模型的更新操作。假设讲话者分类模型是利用gmm建立的hmm。在260处通过帧对准将音频流中的至少一个语音帧与第一讲话者对准之后,可以利用所述至少一个语音帧来更新,例如重新训练,对应于第一讲话者的gmm。然后,可以将与第一讲话者相对应的经更新的gmm用于更新或重新训练hmm,从而更新与相应讲话者相对应的hmm的各个状态。通过随着将语音帧对准到不同的讲话者而持续地执行讲话者分类模型的上述更新操作,可以在讲话者分离期间在区分不同讲话者的性能方面不断地改进讲话者分类模型,从而也改进了讲话者分离的准确性。
图3示出了根据实施例的在讲话者分离中执行提前停止聚类的示例性过程300。通过过程300,可以基于余弦相似度和/或bic分数来将音频流中的语音段迭代地聚类为多个簇,其中预定的提前停止标准被设计用于确保所得到的簇的数量大于讲话者的数量。
在302处,可以获得一个或多个语音段。所述语音段可以是由图2中的语音分割220通过分割音频流来产生的。
在304处,可以将语音段用于对数据集进行初始化。数据集可以包括一个或多个数据项,所述数据项是分别由语音段初始化的。通过形成数据集,基于余弦相似度和/或bic分数来将语音段迭代聚类为多个簇的操作被转换为在数据集中的数据项之间基于余弦相似度和/或bic分数来将数据集中的数据项迭代聚类为多个簇的操作。具体而言,可以至少基于数据集中的两个数据项的d-向量来计算余弦相似度,并且可以至少基于数据集中的两个数据项的高斯参数来计算bic分数。应当理解,此处引入“数据集”和“数据项”的概念仅仅是为了下面方便解释迭代聚类过程。在迭代聚类期间,数据集中的数据项的数量将随着聚类的迭代而逐渐减少。在迭代聚类期间,数据集中的数据项可以指尚未与其它语音段或簇聚类的语音段,或者指在至少一个先前迭代中由两个或多个语音段或簇所生成的簇。当过程300结束时,可以将数据集中的数据项视为是由提前停止聚类所生成的簇。然而,在其它情况下,也可以从过程300中省略对数据集的初始化,因此可以直接对语音段执行迭代聚类。
在306处,确定数据集中的数据项的数量是否大于1。如果是,则过程300进行到步骤308。否则,如果数据项的数量等于1,则过程300将在322处结束。应当理解,在306处的确定操作是可选的,并且可以从过程300中省略。
在308处,可以针对数据集中的每个数据项计算d-向量。如上所述,数据集中的数据项可以是语音段或者由两个或更多语音段所形成的簇,其中,每个语音段可以是由例如讲话者瓶颈特征来表示的。相应地,可以将数据项的d-向量计算为该数据项中所有语音段的讲话者瓶颈特征之间的平均向量。
在310处,可以利用数据集中的每两个数据项的d-向量来计算这两个数据项的余弦相似度。两个数据项的余弦相似度也可以被称为两个数据项的两个d-向量之间的余弦距离,其用于评估两个数据项之间的相关性。
在312处,可以选择在数据集中的具有最高余弦相似度的两个数据项。可以将所选择的两个数据项视为当前数据集中彼此具有最高相关性的数据项。
在选择了两个数据项之后,过程300的后续步骤可以进一步基于预定的提前停止标准来决定是否合并所选择的两个数据项。例如,可以通过确定所选择的两个数据项的余弦相似度和bic分数是否分别满足余弦相似度阈值和bic分数阈值来做出决定。如果满足余弦相似度阈值和bic分数阈值两者,则可以将所选择的两个数据项合并为数据集中的新数据项,否则,如果不满足余弦相似度阈值和/或bic分数阈值,则过程300可以停止。
在314处,确定所选择的两个数据项的余弦相似度是否高于余弦相似度阈值。余弦相似度阈值是预定的提前停止标准的一部分,并且是在考虑到确保聚类的提前停止的情况下导出或设置的。例如,可以将余弦相似度阈值设置为0.7等。
如果所选择的两个数据项的余弦相似度不高于余弦相似度阈值,则过程300将在322处结束,否则,过程300进行至步骤316。
在316处,计算所选择的两个数据项的bic分数。可以根据各种现有技术,至少基于两个数据项的高斯参数来计算bic分数。以下是计算bic分数的示例。
给定两个数据项
其中{μ1,∑1},{μ2,∑2}和{μ,∑}分别是在
模型选择目标函数是结合bic的两个假设的似然性比较,如下:
bic=r-λp方程(2)
其中r是两个假设的似然性比较:
r=(n1+n2)log|∑|-n1log|∑1|-n2log|∑2|方程(3)
λ是惩罚权重。p被计算为:
其中d是向量空间的维度,例如讲话者瓶颈特征向量的维度;n1和n2分别是
在以上bic分数的计算中,惩罚权重λ是要调整的参数。例如,惩罚权重λ可以被设置为2、2.2等。由于惩罚权重会影响bic分数并进一步影响在后续步骤中是否合并两个数据项,因此其也是预定的提前停止标准的一部分并用于确保聚类的提前停止。
在318处,确定所选择的两个数据项的bic分数是否低于bic分数阈值。bic分数阈值是预定的提前停止标准的一部分,并且是在考虑到确保聚类的提前停止的情况下导出或设置的。例如,可以将bic分数阈值设置为0。
如果所选择的两个数据项的bic分数不低于bic分数阈值,则过程300将在322处结束。否则,如果所选择的两个数据项的bic分数低于bic分数阈值,则可以在320处将所选择的两个数据项合并为数据集中的新数据项。该新数据项将在后续迭代中处理。相应地,由于将两个数据项合并为一个新的数据项,因此数据集被更新,并且数据集中的数据项的数量将减少一个。然后,过程300将返回到步骤306以执行下一次迭代。
通过根据过程300的迭代聚类,将最终在数据集中获得多个数据项,其对应于多个所得到的簇。取决于预定的提前停止标准,所得到的簇的数量大于讲话者的数量。
应当理解,过程300中的所有操作和这些操作的顺序都是示例性的,可以对过程300进行任何改变、替换、添加等。例如,在316处对bic分数的计算也可以是在步骤314处的确定操作之前执行的,从而可以联合地执行步骤314处的确定操作和步骤318处的确定操作,例如,确定是否满足余弦相似度阈值和bic分数阈值两者。如果两者都满足,则过程可以继续进行,以在320处合并所选择的两个数据项;否则,如果不满足余弦相似度阈值和第一bic分数阈值中的任一个,则该过程将在322处结束迭代聚类。
以上将过程300讨论作为独立的提前停止聚类过程,即,提前停止聚类的结果可以是由过程300提供的。但是,在一些实现方式中,过程300也可以被视为是提前停止聚类过程中的第一阶段,并且该提前停止聚类过程可以进一步包括第二阶段。
图4示出了根据实施例的在讲话者分离中执行提前停止聚类的示例性过程400。在一方面,过程400是图2中的过程300的延续,因此可以被视为是提前停止聚类过程中的第二阶段。可以执行过程400以将数据集中的数据项迭代地聚类为多个簇。
在402处,可以获得数据集。该数据集可以来自图3中的过程300,即,该数据集是过程300所最终产生的数据集。
在404处,确定数据集中的数据项的数量是否大于1。如果是,则过程400进行到步骤406。否则,如果数据项的数量等于1,则过程400将在414处结束。应当理解,在404处的确定操作是可选的,并且可以从过程400中省略。
在406处,可以计算数据集中每两个数据项的bic分数。在bic分数的计算中,惩罚权重λ是要调整的参数。例如,在406处,惩罚权重λ可以被设置为1.7、2等。由于惩罚权重影响bic分数并且进一步影响在后续步骤中是否合并两个数据项,因此其也是预定的提前停止标准一部分,并用于确保聚类的提前停止。应当理解,在406处的惩罚权重可以不同于图3中在316处的惩罚权重。
在408处,可以基于在406处从数据集中的数据项中所计算出的bic分数来选择在数据集中的具有最大bic分数的两个数据项。可以将所选择的两个数据项视为当前数据集中的彼此具有最高相关性的数据项。
在选择了两个数据项之后,处理400的后续步骤可以进一步基于预定的提前停止标准来决定是否合并所选择的两个数据项。例如,可以通过确定所选择的两个数据项的bic分数是否满足bic分数阈值来做出决定。如果满足,则可以将所选择的两个数据项合并为数据集中的新数据项,否则,如果不满足,则过程400可以停止。
在410处,确定所选择的两个数据项的bic分数是否满足bic分数阈值。bic分数阈值是预定的提前停止标准的一部分,并且是在考虑到确保聚类的提前停止的情况下导出或设置的。例如,bic分数阈值可以与在图3中的318处使用的bic分数阈值相同或不同。
如果所选择的两个数据项的bic分数不低于bic分数阈值,则过程400将在414处结束。否则,如果所选择的两个数据项的bic分数低于bic分数阈值,则可以在412处将所选择的两个数据项合并为数据集中的新数据项。该新数据项将在后续迭代中处理。相应地,由于将两个数据项合并为一个新的数据项,因此数据集被更新,并且数据集中的数据项的数量将减少一个。然后,过程400将返回到步骤404以执行下一次迭代。
通过根据过程400的迭代聚类,在数据集中将最终获得多个数据项,其对应于多个所得到的簇。取决于预定的提前停止标准,所得到的簇的数量大于讲话者的数量。
以上将过程400讨论作为提前停止聚类过程的第二阶段,即,可以通过过程300和过程400的组合来提供提前停止聚类的结果。应当理解,在一些实现方式中,过程300和过程400的顺序也可以互换。例如,过程400是提前停止聚类过程的第一阶段,过程300是提前停止聚类过程的第二阶段。此外,在一些实现方式中,过程400也可以是独立的提前停止聚类过程,因此,提前停止聚类过程的结果可以仅由过程400来提供。在这种情况下,在402处的获得数据集的步骤可以包括:获得由图2中的语音分割220通过分割音频流而产生的一个或多个语音段,以及利用所述语音段来初始化数据集中的一个或多个数据项。
图5示出了根据实施例的在讲话者分离中估计讲话者数量的示例性过程500。过程500是图2中的讲话者数量估计的示例,其被执行用于基于通过提前停止聚类所生成的多个簇来估计音频流中的讲话者的数量。过程500可以采用例如基于本征值分解的估计方式。
在502处,可以获得多个簇。所述簇可以是通过图2中的提前停止聚类230、图3中的过程300或图4中的过程400来生成的。所述多个簇的数量被表示为k。
在504处,可以计算多个簇的相似度矩阵s。在一种实现方式中,可以基于k个簇的bic分数来计算相似度矩阵。相似度矩阵s是k×k维度的对称矩阵,其中sj,k是簇j与簇k之间的相似度,其中j=1,…,k且k=1,…,k。
在506处,可以通过对相似度矩阵s执行本征值分解来获得相似度矩阵s的多个本征值。例如,可以针对相似度矩阵s获得k个本征值。
在508处,将k个本征值以降序排序为[e1,…,ek]。
在510处,可以通过对经排序的本征值进行连续相除来获得商序列。例如,商序列可以是通过将经排序的多个本征值中每两个连续的本征值相除而获得的。商序列可以被表示为k-1维度的向量
在512处,可以通过识别商序列中的拐点来确定讲话者的数量。拐点可以指商序列中的突然下降。讲话者的数量m可以是利用出现突然下降的k来估计的,即,
与传统的讲话者数量估计方式相比,基于本征值分解的过程500在估计讲话者数量方面具有高精度。
图6示出了根据实施例的在讲话者分离中选择簇的示例性过程600。过程600是图2中的簇选择240的示例,其被执行用于从通过图2中的230处的提前停止聚类操作所生成的多个簇中选择m个簇,其中m是音频流中的讲话者的数量并且可以是已知的或通过图5中的过程500来估计的。所选择的簇可以进一步用于建立讲话者分类模型。
根据过程600,所选择的簇可以是在通过提前停止聚类所生成的簇中具有最高相似度的。例如,过程600可以计算通过提前停止聚类所生成的簇中每一组m个簇的相似度度量,并且选择具有最大相似度度量的一组m个簇。在一种实现方式中,簇选择过程可以是基于例如穷尽搜索和本征值求和的。
在602处,可以获得多个簇。所述多个簇可以是通过图2中的提前停止聚类230、图3中的过程300或图4中的过程400来生成的。所述多个簇的数量被表示为k。
在604处,可以以与图5中的步骤504相似的方式来计算k个簇的相似度矩阵s。
在606处,可以从相似度矩阵s中穷尽地提取多个相似度子矩阵。每个相似度子矩阵可以是m×m矩阵,m是讲话者的数量。
具体而言,步骤606可以选择索引为il={i1,…,im}的任何m个簇,其中im对k个簇中的第m个所选择的簇进行索引。可以从相似度矩阵s中提取相似度子矩阵sl,其中第j行和第k列中的元素为sl(j,k)=s(ij,ik)。可以从k个簇中穷尽搜索m个簇的所有可能组合,并且最终可以得到l个相似度子矩阵,被表示为
在608处,可以计算每个相似度子矩阵的本征向量。例如,可以对l个相似度子矩阵执行本征值分解,以获得分别对应于l个相似度子矩阵的l个本征向量。每个本征向量包括m个本征值。
在610处,可以通过对相似度子矩阵的本征向量中的本征值求和来获得每个相似度子矩阵的本征值总和。例如,可以获得l个本征向量中的本征值的绝对值,并且可以对每个本征向量中的绝对本征值求和。相应地,可以获得l个本征值总和,被表示为{η1,…,ηl},其中ηl(l=1,…,l)是在第l个相似度子矩阵上计算的本征值总和。
在612处,可以从l个相似度子矩阵中识别出具有最大本征值总和的相似度子矩阵。
在614处,可以选择与所识别的相似度子矩阵相对应的一组m个簇。例如,可以将第l*个组合中的m个簇选择为:
l*=argmaxlηl方程(6)
所选择的m个簇是在通过提前停止聚类所生成的k个簇中具有最高相似度的。根据本公开的实施例,所选择的m个簇可以进一步用于建立讲话者分类模型。
图7示出了根据实施例的用于讲话者分离的示例性方法700的流程图。
在710处,可以将音频流分割为至少一个语音段,所述音频流包括来自至少一个讲话者的语音。
在720处,可以将所述至少一个语音段聚类为多个簇,所述多个簇的数量大于所述至少一个讲话者的数量。
在730处,可以从所述多个簇中选择相似度最高的至少一个簇,所选择的至少一个簇的数量等于所述至少一个讲话者的数量。
在740处,可以基于所选择的至少一个簇来建立讲话者分类模型。
在750处,可以通过所述讲话者分类模型,将所述音频流中的语音帧与所述至少一个讲话者对准。
在一种实现方式中,所述聚类可以包括基于余弦相似度和/或bic分数来将所述至少一个语音段迭代地聚类为所述多个簇。例如,所述聚类可以包括:利用所述至少一个语音段来对数据集进行初始化,所述数据集包括利用所述至少一个语音段分别初始化的至少一个数据项;以及基于所述数据集中的数据项之间的余弦相似度和/或bic分数,将所述至少一个数据项迭代地聚类为所述多个簇。
在上述实现方式中,所述方法可以进一步包括:确定所述余弦相似度和/或所述bic分数是否满足预定标准,所述预定标准是由余弦相似度阈值、bic分数阈值以及用于计算所述bic分数的惩罚权重中的至少一个来定义的;以及如果所述余弦相似度和/或所述bic分数满足所述预定标准,则停止所述聚类。
在以上实现方式中,余弦相似度可以是至少基于两个数据项的d-向量来计算的,并且bic分数可以是至少基于两个数据项的高斯参数来计算的。
在以上实现方式中,所述将所述至少一个数据项迭代地聚类为所述多个簇可以包括迭代地执行一系列操作,所述一系列操作包括:计算所述数据集中的每两个数据项的bic分数;选择所述数据集中的具有最大bic分数的两个数据项;确定所选择的两个数据项的bic分数是否满足bic分数阈值;以及如果满足所述bic分数阈值,则将所选择的两个数据项合并为所述数据集中的新数据项,否则,如果不满足所述bic分数阈值,则停止执行所述一系列操作。
在以上实现方式中,所述将所述至少一个数据项迭代地聚类为所述多个簇可以包括迭代地执行第一系列操作,所述第一系列操作包括:针对所述数据集中的每个数据项计算d-向量;利用所述数据集中的每两个数据项的d-向量来计算这两个数据项的余弦相似度;选择所述数据集中的具有最高余弦相似度的两个数据项;计算所选择的两个数据项的bic分数;确定所选择的两个数据项的余弦相似度和bic分数是否分别满足余弦相似度阈值和第一bic分数阈值;以及如果满足所述余弦相似度阈值和所述第一bic分数阈值两者,则将所选择的两个数据项合并为所述数据集中的新数据项,否则,如果不满足所述余弦相似度阈值和/或所述第一bic分数阈值,则停止执行所述第一系列操作。此外,所述方法可以进一步包括迭代地执行第二系列操作,所述第二系列操作包括:计算所述数据集中的每两个数据项的bic分数;选择所述数据集中的具有最大bic分数的两个数据项;确定所选择的两个数据项的bic分数是否满足第二bic分数阈值;以及如果满足所述第二bic分数阈值,则将所选择的两个数据项合并为所述数据集中的新数据项,否则,如果不满足所述第二bic分数阈值,则停止执行所述第二系列操作。
在以上实现方式中,bic分数可以是至少基于相应的惩罚权重来计算的。
在一种实现方式中,所述选择可以包括:计算所述多个簇中的每一组m个簇的相似度度量,m是所述至少一个讲话者的数量;以及选择具有最大相似度度量的一组m个簇。
在一种实现方式中,所述选择可以包括:计算所述多个簇的相似度矩阵;从所述相似度矩阵中穷尽地提取多个相似度子矩阵,每个相似度子矩阵是m×m矩阵,m是所述至少一个讲话者的数量;计算每个相似度子矩阵的本征向量;通过对每个相似度子矩阵的本征向量中的本征值求和,来获得该相似度子矩阵的本征值总和;从所述多个相似度子矩阵中识别出具有最大本征值总和的相似度子矩阵;以及选择与所识别出的相似度子矩阵相对应的一组m个簇。
在一种实现方式中,所述讲话者分类模型可以是hmm。所述建立所述讲话者分类模型可以包括:利用所选择的至少一个簇来分别建立至少一个gmm,每个gmm对应于所述至少一个讲话者中的一个讲话者;以及利用所述至少一个gmm来建立所述hmm,所述hmm的每个状态与所述至少一个gmm中的一个gmm相关联。
在以上实现方式中,所述方法还可以包括:在将所述音频流中的至少一个语音帧与所述至少一个讲话者中的第一讲话者对准之后,利用所述至少一个语音帧来更新与所述第一讲话者相对应的gmm;以及利用与所述第一讲话者相对应的经更新的gmm来更新所述hmm。
在一种实现方式中,所述对准可以包括:将所述音频流中的每个语音帧与所述至少一个讲话者中的相应讲话者对准;或者将所述多个簇中的至少一个未选择的簇中的每个语音帧与所述至少一个讲话者中的相应讲话者对准。
在一种实现方式中,所述方法可以进一步包括:基于所述多个簇来估计所述至少一个讲话者的数量。
在以上实现方式中,所述估计可以包括:计算所述多个簇的相似度矩阵;通过对所述相似度矩阵执行本征值分解来获得所述相似度矩阵的多个本征值;以降序对所述多个本征值进行排序;通过对所排序的多个本征值中的每两个连续本征值进行相除来获得商序列;以及通过识别所述商序列中的拐点来确定所述至少一个讲话者的数量。
在一种实现方式中,所述音频流中的所述语音帧可以是由讲话者瓶颈特征来表示的。所述方法可以进一步包括,对于所述音频流中的每个语音帧:提取所述语音帧的讲话者声学特征;以及通过神经网络,基于所述讲话者声学特征来生成所述语音帧的讲话者瓶颈特征。
应当理解,方法700可以进一步包括根据上述本公开实施例的用于利用提前停止聚类的讲话者分离的任何步骤/过程。
图8示出了根据实施例的用于讲话者分离的示例性装置800。
装置800可以包括:分割模块810,用于将音频流分割为至少一个语音段,所述音频流包括来自至少一个讲话者的语音;聚类模块820,用于将所述至少一个语音段聚类为多个簇,所述多个簇的数量大于所述至少一个讲话者的数量;选择模块830,用于从所述多个簇中选择相似度最高的至少一个簇,所选择的至少一个簇的数量等于所述至少一个讲话者的数量;建模模块840,用于基于所选择的至少一个簇来建立讲话者分类模型;以及对准模块850,用于通过所述讲话者分类模型,将所述音频流中的语音帧与所述至少一个讲话者对准。
在一种实现方式中,聚类模块820可以进一步用于:基于余弦相似度和/或bic分数,将所述至少一个语音段迭代地聚类为所述多个簇。
此外,装置800还可以包括根据上述本公开实施例的被配置为用于利用提前停止聚类的讲话者分离的任何其它模块。
图9示出了根据实施例的用于讲话者分离的示例性装置900。
装置900可以包括至少一个处理器910和存储计算机可执行指令的存储器920。当执行计算机可执行指令时,至少一个处理器910可以:将音频流分割为至少一个语音段,所述音频流包括来自至少一个讲话者的语音;将所述至少一个语音段聚类为多个簇,所述多个簇的数量大于所述至少一个讲话者的数量;从所述多个簇中选择相似度最高的至少一个簇,所选择的至少一个簇的数量等于所述至少一个讲话者的数量;基于所选择的至少一个簇来建立讲话者分类模型;以及通过所述讲话者分类模型,将所述音频流中的语音帧与所述至少一个讲话者对准。至少一个处理器910还可以被配置用于执行根据上述本公开实施例的用于利用提前停止聚类的讲话者分离的方法的任何操作。
本公开的实施例可以实施在非暂时性计算机可读介质中。该非暂时性计算机可读介质可以包括指令,当所述指令被执行时,使得一个或多个处理器执行根据上述本公开实施例的用于利用提前停止聚类的讲话者分离的方法的任何操作。
应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于所述方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。
还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。
已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑器件(pld)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其它适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、dsp或其它适合的平台所执行的软件。
软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部(如,缓存或寄存器)。
以上描述被提供用于使得本领域任何技术人员可以实施本文所描述的各个方面。这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其它方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换,都将通过引用而明确地包含到本文中,并且旨在由权利要求所覆盖。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除