将音频与文本匹配

matching audio to a text

我有一个音频文件和与此音频文件中的语音相对应的文本。

我正在收集的音频文件来自志愿者阅读提供给他们的文本。我想制作一种算法,将他们录制的音频与文本相匹配,以确保他们确实阅读了文本。

我还没有决定使用哪种语言,但我很好奇它是否可以在网络上实现?

使用 pre-trained 自动语音识别 (ASR) 模型,例如使用 Python 和 huggingface,例如 Facebook 的 Wav2vec 2.0 模型 (https://huggingface.co/facebook/wav2vec2-base-960h) or any other ASR model (https://huggingface.co/models?pipeline_tag=automatic-speech-recognition) 来获取语音的文本抄本。这些通常取决于语言,因此您必须找到适合您目标的模型。

将您已有的文本处理成与音频抄本更相似的形式(设置为小写,删除标点符号等)。

然后就看你怎么比较这两个文本了。这也取决于文本的长度。如果它只是单个句子,那么您可以比较它们是否完全相同。如果它有点长,您可以从 word-wise 匹配开始,看看它获得 right/wrong(单词错误率)的单词百分比。由于许多训练有素的 ASR 模型使用上下文来确定转录本,一些更高级的(但仍然是字符或 word-based)文本相似性指标(例如 BLEU or Levenshtein distance 可能更合适,特别是因为它处理了额外或剩余的问题为你说出在 self-created 指标中可能很难处理的词。

通常,您可以使用用于评估自动语音识别模型的相同方法,因为您做的是相同的事情(将抄本与预期文本进行比较)。有用于此的存储库和包,例如this one and this one.

在任何情况下,您都需要知道模型语音识别永远不会完美,因此分数不完美并不意味着您的志愿者没有遵循脚本。但是如果你比较志愿者之间的分数,你可以了解他们对剧本的遵守程度以及他们说话的总体清晰度。

您还应该记住,口音、背景噪音、音频质量以及志愿者记录方式与模型训练数据记录方式之间的一般相似性等因素都会影响分数。