首页 > 解决方案 > 寻找两个不同人所说的两个音频信号之间的相似性

问题描述

我有一个 14 秒的 master.wav 文件和另一个 221 秒的 child.wav 文件,每个 14 秒分为总共 207 个块。现在我想将每个子块与主文件进行比较,并希望找到它们之间的相似性。假设是具有最高相似性的子块将包含主文件中所说的完全相同或某些相同的单词。我正在使用 pyaudioanalysis 库来提取 .wav 文件的特征(https://github.com/tyiannak/pyAudioAnalysis

标签: pythonaudiocorrelationaudio-processing

解决方案


您可以从每个块中提取嵌入向量并计算它们的余弦相似度(或其他距离度量,如果需要)。嵌入向量是一个固定维度的向量(它使您能够比较具有不同持续时间的语音样本),它总结了给定语音中的全局信息(例如,说话者身份)。可以使用为分布表示或说话人识别训练的编码器模块来提取嵌入向量。以下是一些流行的嵌入方法:

  1. i-vector:训练总结给定语音的分布模式
  2. 基于深度学习的嵌入(例如,x 向量):经过训练以包含说话人判别信息

这些方法对于比较说出不同句子(或单词)的语音样本很有用,因为它们通常针对与文本无关的说话人验证进行了优化。如果您没有任何可用于训练此类模型的大规模训练数据,幸运的是,有一些公开可用的预训练模型:

  1. https://github.com/clovaai/voxceleb_trainer
  2. https://kaldi-asr.org/models/m7

推荐阅读