数据集:
anton-l/superb
SUPERB 是一个评估共享模型在多种语音处理任务上性能的基准,只需最小程度地改变模型架构和标注数据。
SUPERB 排行榜可以在此处找到 https://superbbenchmark.org/leaderboard ,包括以下任务:
pr音素识别 (PR) 将语音转录为最小的内容单位。该任务通过进行对齐建模来避免潜在的不准确强制对齐。SUPERB 使用了 LibriSpeech train-clean-100/dev-clean/test-clean 子集进行训练/验证/测试。音素转录结果来自于 LibriSpeech 官方的 g2p-model-5 和 Kaldi librispeech s5 recipe 中的转换脚本。评估指标是音素错误率 (PER)。
asr语音识别 (ASR) 将语音转录为单词。与 PR 任务分析语音学建模的改进相比,ASR 反映了在实际场景中改进的重要性。SUPERB 使用了 LibriSpeech train-clean-100/dev-clean/test-clean 子集进行训练/验证/测试。评估指标是词错误率 (WER)。
ks关键词检测 (KS) 通过将语音分成预定义的单词集合来识别预注册的关键词。此任务通常在设备上执行,以获得快速响应时间。因此,准确性、模型大小和推断时间都非常重要。SUPERB 使用了广泛使用的 Speech Commands dataset v1.0 数据集进行该任务。数据集包含十个类别的关键词,还有一个用于表示静音的类别和一个用于包括误报的未知类别。评估指标是准确率 (ACC)。
示例用法:可以使用以下的辅助函数:
def map_to_array(example):
import soundfile as sf
speech_array, sample_rate = sf.read(example["file"])
example["speech"] = speech_array
example["sample_rate"] = sample_rate
return example
def sample_noise(example):
# Use this function to extract random 1 sec slices of each _silence_ utterance,
# e.g. inside `torch.utils.data.Dataset.__getitem__()`
from random import randint
if example["label"] == "_silence_":
random_offset = randint(0, len(example["speech"]) - example["sample_rate"] - 1)
example["speech"] = example["speech"][random_offset : random_offset + example["sample_rate"]]
return example
qbe 查询实例示例检测 (QbE) 通过对给定的查询和文档进行二进制判别,从而在音频数据库 (文档) 中检测出一个特定的词汇 (查询) 是否存在。SUPERB 采用了英文子集中的 QUESST 2014 challenge 。评估指标是最大加权词汇值 (MTWV),平衡了遗漏和误报。
ic意图分类 (IC) 将发言者的话语分类为预定义的类别,以确定发言者的意图。SUPERB 使用了 Fluent Speech Commands dataset 数据集,每个话语都标有三个意图标签: 动作、对象和位置。评估指标是准确率 (ACC)。
sf槽位填充 (SF) 从话语中预测出槽位的序列,例如槽位类型 "FromLocation" 对应着话语中的 "Taipei"。槽位类型和槽位值对于 SLU 系统的功能都是必要的。因此,评估指标包括槽位类型的 F1 分数和槽位值的 CER。SUPERB 采用了 Audio SNIPS 数据集,该数据集为 SNIPS 合成了多个说话人的话语。遵循 SNIPS 的标准拆分,我们进一步选择了具有美式口音的说话人进行训练,其他说话人用于验证/测试。
si说话人识别 (SI) 对每个话语进行说话人身份的多类分类,其中训练和测试中的说话人都属于相同的预定义集合。采用了广泛使用的 VoxCeleb1 dataset 数据集,评估指标是准确率 (ACC)。
asv自动说话人验证 (ASV) 将一对话语的说话人是否匹配进行二进制分类,且测试集中的说话人可能在训练集中没有出现。因此,ASV 比 SID 更具挑战性。使用了 VoxCeleb1 数据集,没有使用 VoxCeleb2 训练数据和噪声增强。评估指标是等误差率 (EER)。
sd说话人辨认 (SD) 预测每个时间戳的说话人说话身份,多个说话人可以同时说话。模型必须为每个帧编码丰富的说话者特征,并能够表示信号混合。采用了 LibriMix 数据集,使用 LibriSpeech train-clean-100/dev-clean/test-clean 生成训练/验证/测试数据的混合数据。我们首先集中于两个说话人的场景。用 Kaldi LibriSpeech ASR 模型生成的对齐结果生成了时间编码的说话者标签。评估指标是辨认错误率 (DER)。
示例用法可以使用以下辅助函数:
def load_audio_file(example, frame_shift=160):
import soundfile as sf
example["array"], example["sample_rate"] = sf.read(
example["file"], start=example["start"] * frame_shift, stop=example["end"] * frame_shift
)
return example
def generate_label(example, frame_shift=160, num_speakers=2, rate=16000):
import numpy as np
start = example["start"]
end = example["end"]
frame_num = end - start
speakers = sorted({speaker["speaker_id"] for speaker in example["speakers"]})
label = np.zeros((frame_num, num_speakers), dtype=np.int32)
for speaker in example["speakers"]:
speaker_index = speakers.index(speaker["speaker_id"])
start_frame = np.rint(speaker["start"] * rate / frame_shift).astype(int)
end_frame = np.rint(speaker["end"] * rate / frame_shift).astype(int)
rel_start = rel_end = None
if start <= start_frame < end:
rel_start = start_frame - start
if start < end_frame <= end:
rel_end = end_frame - start
if rel_start is not None or rel_end is not None:
label[rel_start:rel_end, speaker_index] = 1
example["label"] = label
return example
er 关于 audio 字段的注释
当访问音频列时: dataset[0]["audio"] 音频文件将自动解码并重新采样到 dataset.features["audio"].sampling_rate 。解码和重新采样大量音频文件可能需要相当长的时间。因此,首先在查询 "audio" 列之前查询采样索引非常重要,即 dataset[0]["audio"] 应始终优先于 dataset["audio"][0] 。
pr asr所有拆分的数据字段如下:
| train | validation | test | |
|---|---|---|---|
| asr | 28539 | 2703 | 2620 |
| train | validation | test | |
|---|---|---|---|
| ks | 51094 | 6798 | 3081 |
| train | validation | test | |
|---|---|---|---|
| ic | 23132 | 3118 | 3793 |
| train | validation | test | |
|---|---|---|---|
| si | 138361 | 6904 | 8251 |
数据被拆分为 "train"、"dev" 和 "test" 三个集合,每个集合都包含以下数量的示例:
| train | dev | test | |
|---|---|---|---|
| sd | 13901 | 3014 | 3002 |
数据被拆分为 5 个集合,用于 5 折交叉验证:
| session1 | session2 | session3 | session4 | session5 | |
|---|---|---|---|---|---|
| er | 1085 | 1023 | 1151 | 1031 | 1241 |
[需要更多信息]
[需要更多信息]
谁是源语言制作者?[需要更多信息]
[需要更多信息]
注释者是谁?[需要更多信息]
[需要更多信息]
[需要更多信息]
[需要更多信息]
[需要更多信息]
[需要更多信息]
[需要更多信息]
@article{DBLP:journals/corr/abs-2105-01051,
author = {Shu{-}Wen Yang and
Po{-}Han Chi and
Yung{-}Sung Chuang and
Cheng{-}I Jeff Lai and
Kushal Lakhotia and
Yist Y. Lin and
Andy T. Liu and
Jiatong Shi and
Xuankai Chang and
Guan{-}Ting Lin and
Tzu{-}Hsien Huang and
Wei{-}Cheng Tseng and
Ko{-}tik Lee and
Da{-}Rong Liu and
Zili Huang and
Shuyan Dong and
Shang{-}Wen Li and
Shinji Watanabe and
Abdelrahman Mohamed and
Hung{-}yi Lee},
title = {{SUPERB:} Speech processing Universal PERformance Benchmark},
journal = {CoRR},
volume = {abs/2105.01051},
year = {2021},
url = {https://arxiv.org/abs/2105.01051},
archivePrefix = {arXiv},
eprint = {2105.01051},
timestamp = {Thu, 01 Jul 2021 13:30:22 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2105-01051.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
Note that each SUPERB dataset has its own citation. Please see the source to see
the correct citation for each contained dataset.
感谢 @lewtun 、 @albertvillanova 和 @anton-l 添加了该数据集。