Google Research 的 MSEB:符合基准测试约定的音频编码器实现及其在四类任务上的评估

10 十月 20263 视图

对 mseb==0.1.0 软件包的实用解析:介绍 types、encoder 和 evaluators 分层架构,在合成语料库上演示两个编码器,并直接调用分类、聚类、检索和分割指标。本文展示如何让自定义模型适配抽象的 MultiModalEncoder、解读 SoundEmbedding 格式,以及构建 TaskMetadata 以便后续提交至基准测试。

Google Research 的 MSEB:符合基准测试约定的音频编码器实现及其在四类任务上的评估

基准测试的用途与层级

MSEB 是 Google Research 推出的 Massive Sound Embedding Benchmark。安装该软件包时使用 mseb==0.1.0。该基准测试分为三个层级。

  • types 定义 Sound、SoundEmbedding、Score 和 TaskMetadata 类型。
  • encoder 包含抽象基类 MultiModalEncoder,这是模型需要实现的契约。
  • evaluators 包含用于不同任务的评估器。

这些层级分别用于描述数据、定义模型接口和衡量质量。实用标准:encoder 层规定对编码器的要求,而 evaluators 层规定评估方式。

编码器契约与数据类型

encoder 包含抽象基类 MultiModalEncoder。该类是模型需要实现的契约。types 定义 Sound、SoundEmbedding、Score 和 TaskMetadata。

SoundEmbedding 存储形状为 (N, D) 的嵌入向量,以及形状为 (M, 2) 的时间戳。时间戳表示区间的起始和结束时间,单位为秒。如果 M == N,则时间戳对应单独的帧。如果 M == 1,则嵌入向量对应整个语句。embedding 字段可以包含 N 个字符串,而不是向量。此外,SoundEmbedding 还包括上下文和编码统计信息,其中包含输入和嵌入向量的大小。

Score 描述指标、指标值、允许范围和说明。TaskMetadata 在评估结束时汇总,并用于实际提交。

实用标准:编码器应返回形状正确的 SoundEmbedding,并为每项任务填写 Score。

两个编码器示例:响度与音色

指南中实现了两个不同的编码器。一个测量随时间变化的响度,另一个测量音色。它们用于一个小型合成音频语料库。该语料库在笔记本中创建,因此无需下载数据。

根据指南的描述,这两个编码器在不同评估器下的表现各不相同。这意味着特征的选择会影响不同任务的质量。实用标准:对于分类、聚类、检索和分割任务,都应测试这两种方法。

四类任务的评估

嵌入向量会在分类、聚类、检索和分割任务中进行评估。示例中导入了 ClassificationEvaluator、ClusteringEvaluator、RetrievalEvaluator 和 SegmentationEvaluator。指标函数会被直接调用。最后汇总 TaskMetadata,用于实际提交。

该软件包还列出了用于重排序和转录的评估器。

分类、聚类、检索和分割评估器仅依赖 NumPy 和 scikit-learn。重排序和转录评估器使用 Whisper。

任务评估器依赖项
分类ClassificationEvaluatorNumPy、scikit-learn
聚类ClusteringEvaluatorNumPy、scikit-learn
检索RetrievalEvaluatorNumPy、scikit-learn
分割SegmentationEvaluatorNumPy、scikit-learn
重排序重排序评估器Whisper
转录转录评估器Whisper

实用标准:四类任务只需 NumPy、scikit-learn 和 CPU。重排序和转录则需要 Whisper。

依赖项与运行条件

所展示的步骤可在 CPU 上运行,且无需下载数据集。分类、聚类、检索和分割评估器仅依赖 NumPy 和 scikit-learn。重排序和转录评估器使用 Whisper。任务执行器使用 TensorFlow 和 apache-beam。

这些依赖项决定了运行环境。四类任务无需 GPU 或外部数据。重排序、转录和运行任务执行器则需要额外组件。

实用标准:如果目标是在分类、聚类、检索和分割任务中快速检查编码器,那么 CPU 和上述库就足够了。

实用选择标准

编码器的实现必须符合 MultiModalEncoder。返回的 SoundEmbedding 应包含形状为 (N, D) 的嵌入向量和形状为 (M, 2) 的时间戳。embedding 字段可以包含 N 个字符串,而不是向量。Score 应描述指标、指标值、允许范围和说明。TaskMetadata 在最后汇总,并用于实际提交。

对于分类、聚类、检索和分割任务的评估,可使用 ClassificationEvaluator、ClusteringEvaluator、RetrievalEvaluator 和 SegmentationEvaluator。它们依赖 NumPy 和 scikit-learn。重排序和转录则需要 Whisper。

实用标准:编码器应根据任务选择。两个编码器示例——响度和音色——在不同评估器下的表现各不相同。应在所需的任务集上测试这两个编码器。

常问问题

Google Research 的 MSEB:符合基准测试约定的音频编码器实现及其在四类任务上的评估