paddlespeech.vector.cluster.plda模块

一个流行的说话人识别/分段模型(LDA和PLDA)。

Relevant Papers
  • 该PLDA的实现基于以下论文。

  • PLDA model Training
    • 叶江等,“在I-向量和超向量空间中进行PLDA建模以进行说话人验证,”发表于Interspeech,2012年。

    • 帕特里克·肯尼等,“PLDA用于具有任意时长的语音验证,”发表于ICASSP,2013。

  • PLDA scoring (fast scoring)
    • 丹尼尔·加西亚-罗梅罗等, “说话人识别系统中i-vector长度归一化的分析,” 发表于Interspeech, 2011。

    • 魏炜琳等,“带有不确定性传播的PLDA快速评分,”发表于《Odyssey》,2016年。

    • Kong Aik Lee 等,"针对部分开放集说话人检测的多会话 PLDA 评分 I-向量," 发表在 Interspeech 2013。

Credits

此代码改编自: https://git-lium.univ-lemans.fr/Larcher/sidekit

class paddlespeech.vector.cluster.plda.Ndx(ndx_file_name='', models=array([], dtype=float64), testsegs=array([], dtype=float64))[来源]

基础: object

一个编码试验索引信息的类。它有一个模型名称的列表和一个测试段名称的列表,以及一个矩阵,指示哪些模型和测试段的组合是感兴趣的试验。

方法

filter(modlist, seglist, keep)

删除Ndx中的一些信息。

validate()

检查类型为 Ndx 的对象是否遵循某些必须始终为真的规则。

save_ndx_object

filter(modlist, seglist, keep)[来源]

从Ndx中移除一些信息。对于从汇总性别Ndx创建性别特定Ndx非常有用。根据'keep'的值,两个输入列表表示要保留的字符串或要丢弃的字符串。

save_ndx_object(output_file_name)[来源]
validate()[来源]

检查类型为 Ndx 的对象是否遵循必须始终为真的某些规则。返回一个布尔值,指示该对象是否有效

class paddlespeech.vector.cluster.plda.PLDA(mean=None, F=None, Sigma=None, rank_f=100, nb_iter=10, scaling_factor=1.0)[来源]

基础: object

一个用于从嵌入训练PLDA模型的类。

输入为 paddlespeech.vector.cluster.diarization.EmbeddingMeta 格式。 训练一个简化的 PLDA 模型,没有类内协方差矩阵但有完整的残差协方差矩阵。

方法

plda([emb_meta, output_file_name])

训练PLDA模型,不使用类内协方差矩阵,而使用完整的残差协方差矩阵。

scoring(enroll, test, ndx[, ...])

计算两组向量之间的PLDA得分。

plda(emb_meta=None, output_file_name=None)[来源]

训练PLDA模型,没有类内协方差矩阵,但有完整的残差协方差矩阵。

scoring(enroll, test, ndx, test_uncertainty=None, Vtrans=None, p_known=0.0, scaling_factor=1.0, check_missing=True)[来源]

计算两个向量集之间的PLDA得分。要执行的试验列表在Ndx对象中给出。PLDA矩阵必须预先计算。假设i-vectors/x-vectors在之前进行了白化处理。

class paddlespeech.vector.cluster.plda.Scores(scores_file_name='')[来源]

基础: object

一个用于存储试验分数的类。 modelset 和 segset 字段分别是模型和测试片段名称的列表。 scoremat 和 scoremask 的元素 i,j 对应于涉及模型 i 和测试片段 j 的试验。

paddlespeech.vector.cluster.plda.fa_model_loop(batch_start, mini_batch_indices, factor_analyser, stat0, stats, e_h, e_hh)[来源]

PLDA估计的函数。

paddlespeech.vector.cluster.plda.ismember(list1, list2)[来源]