数据集:
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 exampleqbe
查询实例示例检测 (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 exampleer
关于 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 添加了该数据集。