一个完整的音频数据集指南

完整音频数据集指南

介绍

🤗 Datasets是一个开源库,用于从各个领域下载和准备数据集。其简洁的API允许用户只用一行Python代码下载和准备数据集,并提供了一套函数,可以进行高效的预处理。可用的数据集数量是无与伦比的,包含了所有最受欢迎的机器学习数据集。

不仅如此,🤗 Datasets还准备了多个与音频相关的特性,使得研究人员和从业者可以轻松地处理音频数据集。在本文中,我们将展示这些特性,展示为什么🤗 Datasets是下载和准备音频数据集的首选之地。

目录

  1. The Hub
  2. 加载音频数据集
  3. 加载简单,处理简单
  4. 流式模式:银弹
  5. The Hub上的音频数据集之旅
  6. 结束语

The Hub

Hugging Face Hub是一个托管模型、数据集和演示的平台,全部开源且对公众可用。它是一个包含各种领域、任务和语言的音频数据集的不断增长的集合。通过与🤗 Datasets的紧密集成,可以使用一行代码下载Hub上的所有数据集。

让我们前往Hub并按任务筛选数据集:

  • Hub上的语音识别数据集
  • Hub上的音频分类数据集

截至撰写本文时,Hub上有77个语音识别数据集和28个音频分类数据集,这些数字还在不断增加。您可以选择其中任何一个数据集来满足您的需求。让我们查看第一个语音识别结果。点击common_voice会弹出数据集卡片:

在这里,我们可以找到有关数据集的其他信息,查看在数据集上训练的模型,最令人兴奋的是,可以听实际的音频样本。数据集预览显示在数据集卡片的中间。它向我们展示了每个子集和划分的前100个样本。更重要的是,它已经加载了音频样本,可以实时播放。如果我们点击第一个样本的播放按钮,我们可以听音频并查看相应的文本。

数据集预览是在使用音频数据集之前体验的绝佳方式。您可以选择Hub上的任何数据集,浏览样本并听不同子集和划分的音频,以判断它是否适合您的需求。选择了数据集后,加载数据以开始使用它非常简单。

加载音频数据集

🤗 Datasets的一个重要特性是能够使用一行Python代码下载和准备数据集。这是通过load_dataset函数实现的。传统上,加载数据集涉及到:i) 下载原始数据,ii) 从压缩格式中提取数据,iii) 准备单个样本和划分。使用load_dataset,所有繁重的工作都在背后完成。

让我们以加载Speech Colab的GigaSpeech数据集为例。GigaSpeech是一个相对较新的用于评估学术语音系统的语音识别数据集,是Hugging Face Hub上众多音频数据集之一。

要加载GigaSpeech数据集,我们只需取得数据集在Hub上的标识符(speechcolab/gigaspeech),并将其指定给load_dataset函数。GigaSpeech有五个配置,从xs(10小时)到xl(10,000小时),大小逐渐增加。出于本教程的目的,我们将加载最小的配置。我们只需要数据集的标识符和所需的配置来下载数据集:

from datasets import load_dataset

gigaspeech = load_dataset("speechcolab/gigaspeech", "xs")

print(gigaspeech)

打印输出:

DatasetDict({
    train: Dataset({
        features: ['segment_id', 'speaker', 'text', 'audio', 'begin_time', 'end_time', 'audio_id', 'title', 'url', 'source', 'category', 'original_full_path'],
        num_rows: 9389
    })
    validation: Dataset({
        features: ['segment_id', 'speaker', 'text', 'audio', 'begin_time', 'end_time', 'audio_id', 'title', 'url', 'source', 'category', 'original_full_path'],
        num_rows: 6750
    })
    test: Dataset({
        features: ['segment_id', 'speaker', 'text', 'audio', 'begin_time', 'end_time', 'audio_id', 'title', 'url', 'source', 'category', 'original_full_path'],
        num_rows: 25619
    })
})

就这样,我们已经准备好了GigaSpeech数据集!没有比加载音频数据集更简单的方法了。我们可以看到我们已经预分区了训练、验证和测试集,并提供了相应的信息。

load_dataset函数返回的gigaspeech对象是一个DatasetDict。我们可以像处理普通的Python字典一样处理它。要获取训练集,我们将相应的键传递给gigaspeech字典:

print(gigaspeech["train"])

打印输出:

Dataset({
    features: ['segment_id', 'speaker', 'text', 'audio', 'begin_time', 'end_time', 'audio_id', 'title', 'url', 'source', 'category', 'original_full_path'],
    num_rows: 9389
})

这将返回一个Dataset对象,其中包含训练集的数据。我们可以进一步深入并获取拆分的第一个项目。同样,这可以通过标准的Python索引操作实现:

print(gigaspeech["train"][0])

打印输出:

{'segment_id': 'YOU0000000315_S0000660',
 'speaker': 'N/A', 
 'text': "AS THEY'RE LEAVING <COMMA> CAN KASH PULL ZAHRA ASIDE REALLY QUICKLY <QUESTIONMARK>", 
 'audio': {'path': '/home/sanchit_huggingface_co/.cache/huggingface/datasets/downloads/extracted/7f8541f130925e9b2af7d37256f2f61f9d6ff21bf4a94f7c1a3803ec648d7d79/xs_chunks_0000/YOU0000000315_S0000660.wav', 
           'array': array([0.0005188 , 0.00085449, 0.00012207, ..., 0.00125122, 0.00076294,
       0.00036621], dtype=float32), 
           'sampling_rate': 16000
           }, 
 'begin_time': 2941.889892578125, 
 'end_time': 2945.070068359375, 
 'audio_id': 'YOU0000000315', 
 'title': 'Return to Vasselheim | Critical Role: VOX MACHINA | Episode 43', 
 'url': 'https://www.youtube.com/watch?v=zr2n1fLVasU', 
 'source': 2, 
 'category': 24, 
 'original_full_path': 'audio/youtube/P0004/YOU0000000315.opus',
 }

我们可以看到训练集返回了许多特征,包括segment_idspeakertextaudio等等。对于语音识别,我们将关注textaudio列。

使用🤗 Datasets的remove_columns方法,我们可以删除语音识别不需要的数据集特征:

COLUMNS_TO_KEEP = ["text", "audio"]
all_columns = gigaspeech["train"].column_names
columns_to_remove = set(all_columns) - set(COLUMNS_TO_KEEP)

gigaspeech = gigaspeech.remove_columns(columns_to_remove)

让我们检查一下我们是否成功保留了textaudio列:

print(gigaspeech["train"][0])

打印输出:

{'text': "AS THEY'RE LEAVING <COMMA> CAN KASH PULL ZAHRA ASIDE REALLY QUICKLY <QUESTIONMARK>", 
 'audio': {'path': '/home/sanchit_huggingface_co/.cache/huggingface/datasets/downloads/extracted/7f8541f130925e9b2af7d37256f2f61f9d6ff21bf4a94f7c1a3803ec648d7d79/xs_chunks_0000/YOU0000000315_S0000660.wav', 
           'array': array([0.0005188 , 0.00085449, 0.00012207, ..., 0.00125122, 0.00076294,
       0.00036621], dtype=float32), 
           'sampling_rate': 16000}}

太棒了!我们可以看到我们已经获得了两个必需的列textaudiotext是一个包含样本转录的字符串,audio是一个采样率为16KHz的一维幅值数组。这就是我们加载的数据集!

易于加载,易于处理

使用🤗 Datasets加载数据集只是其中一部分的乐趣。我们现在可以使用可用的工具套件高效地预处理我们的数据,以便进行模型训练或推理。在本节中,我们将执行三个阶段的数据预处理:

  1. 对音频数据进行重新采样
  2. 预处理函数
  3. 过滤函数

1. 对音频数据进行重新采样

load_dataset函数会使用音频样本的发布采样率准备音频样本。但这并不总是我们的模型所期望的采样率。在这种情况下,我们需要将音频重新采样到正确的采样率。

我们可以使用🤗 Datasets的cast_column方法将音频输入设置为我们期望的采样率。这个操作不会在原地改变音频,而是向datasets发出信号,在加载音频样本时动态重新采样。下面的代码单元将采样率设置为8kHz:

from datasets import Audio

gigaspeech = gigaspeech.cast_column("audio", Audio(sampling_rate=8000))

重新加载GigaSpeech数据集中的第一个音频样本将对其进行重新采样到所需的采样率:

print(gigaspeech["train"][0])

打印输出:

{'text': "AS THEY'RE LEAVING <COMMA> CAN KASH PULL ZAHRA ASIDE REALLY QUICKLY <QUESTIONMARK>", 
 'audio': {'path': '/home/sanchit_huggingface_co/.cache/huggingface/datasets/downloads/extracted/7f8541f130925e9b2af7d37256f2f61f9d6ff21bf4a94f7c1a3803ec648d7d79/xs_chunks_0000/YOU0000000315_S0000660.wav', 
           'array': array([ 0.00046338,  0.00034808, -0.00086153, ...,  0.00099299,
        0.00083484,  0.00080221], dtype=float32), 
           'sampling_rate': 8000}
 }

我们可以看到采样率已经被降采样到了8kHz。数组的值也不同,因为现在我们只有大约每两个幅值中的一个。让我们将数据集的采样率设置回16kHz,这是大多数语音识别模型所期望的采样率:

gigaspeech = gigaspeech.cast_column("audio", Audio(sampling_rate=16000))

print(gigaspeech["train"][0])

打印输出:

{'text': "当他们离开的时候<逗号>卡什能不能快点把扎赫拉拉到一旁<问号>", 
 'audio': {'path': '/home/sanchit_huggingface_co/.cache/huggingface/datasets/downloads/extracted/7f8541f130925e9b2af7d37256f2f61f9d6ff21bf4a94f7c1a3803ec648d7d79/xs_chunks_0000/YOU0000000315_S0000660.wav', 
           'array': array([0.0005188 , 0.00085449, 0.00012207, ..., 0.00125122, 0.00076294,
       0.00036621], dtype=float32), 
           'sampling_rate': 16000}
 }

很简单!cast_column 提供了一个简单的机制来根据需要对音频数据集进行重新采样。

2. 预处理函数

处理音频数据集中最具挑战性的一个方面是将数据以正确的格式准备好供我们的模型使用。使用 🤗 Datasets 的 map 方法,我们可以编写一个函数来预处理数据集的单个样本,然后将其应用到每个样本上而无需进行任何代码更改。

首先,让我们从 🤗 Transformers 中加载一个处理器对象。该处理器将音频预处理为输入特征,并将目标文本标记化为标签。我们使用 AutoProcessor 类从给定的模型检查点加载处理器。在此示例中,我们从 OpenAI 的 Whisper VoAGI.en 检查点加载处理器,但您可以将其更改为 Hugging Face Hub 上的任何模型标识符:

from transformers import AutoProcessor

processor = AutoProcessor.from_pretrained("openai/whisper-VoAGI.en")

太棒了!现在我们可以编写一个函数,将单个训练样本通过 processor 进行处理,为我们的模型做好准备。我们还会计算每个音频样本的输入长度,这是我们下一步数据准备所需的信息:

def prepare_dataset(batch):
    audio = batch["audio"]
    batch = processor(audio["array"], sampling_rate=audio["sampling_rate"], text=batch["text"])
    
    batch["input_length"] = len(audio["array"]) / audio["sampling_rate"]
    return batch

我们可以使用 🤗 Datasets 的 map 方法将数据准备函数应用于所有训练样本。在这里,我们还删除了 textaudio 列,因为我们已经将音频预处理为输入特征,并将文本标记化为标签:

gigaspeech = gigaspeech.map(prepare_dataset, remove_columns=gigaspeech["train"].column_names)

3. 过滤函数

在训练之前,我们可能有一个用于过滤训练数据的启发式方法。例如,我们可能希望过滤掉超过30秒的音频样本,以防止截断音频样本或出现内存错误。我们可以以与前一步对模型数据的准备方式相同的方式进行操作。

我们首先编写一个指示要保留和丢弃哪些样本的函数。这个名为 is_audio_length_in_range 的函数返回一个布尔值:小于30秒的样本返回 True,大于等于30秒的样本返回 False。

MAX_DURATION_IN_SECONDS = 30.0

def is_audio_length_in_range(input_length):
    return input_length < MAX_DURATION_IN_SECONDS

我们可以使用 🤗 Datasets 的 filter 方法将此过滤函数应用于所有训练样本,保留所有小于30秒的样本(True),丢弃所有大于等于30秒的样本(False):

gigaspeech["train"] = gigaspeech["train"].filter(is_audio_length_in_range, input_columns=["input_length"])

有了这些,我们已经完全准备好为我们的模型使用 GigaSpeech 数据集了!总共,这个过程需要 13 行 Python 代码,从加载数据集到最后的过滤步骤。

为了尽可能地保持笔记本的通用性,我们只进行了基本的数据准备步骤。然而,对于您的音频数据集,您可以应用任何函数,没有限制。您可以扩展函数prepare_dataset,执行更复杂的操作,如数据增强、语音活动检测或降噪。使用🤗 Datasets,只要您可以用Python函数编写,就可以应用到您的数据集上!

流媒体模式:银弹

音频数据集面临的最大挑战之一就是它们的巨大大小。GigaSpeech的xs配置只包含了10小时的训练数据,但下载和准备所需的存储空间超过了13GB。那么,如果我们想要在更大的数据集上进行训练会发生什么呢?完整的xl配置包含了10,000小时的训练数据,需要超过1TB的存储空间。对于大多数语音研究者来说,这远远超出了典型硬盘的规格。我们需要购买额外的存储空间吗?还是有办法在这些数据集上进行训练,而无需考虑磁盘空间的限制呢?

🤗 Datasets正是可以实现这一点的。它通过流媒体模式实现,如图1所示。流媒体模式允许我们在迭代数据集时逐步加载数据。与一次性下载整个数据集不同,我们逐个样本地加载和准备数据集。这样,我们只加载正在使用的样本,而不加载不需要的样本!一旦我们处理完一个样本,我们继续迭代数据集并加载下一个样本。

这类似于下载电视节目与流媒体观看电视节目的区别。当我们下载电视节目时,我们将整个视频离线下载并保存到磁盘上。我们必须等待整个视频下载完成后才能观看,并且需要与视频文件大小一样多的磁盘空间。与之相比,流媒体观看电视节目时,我们不会将任何部分下载到磁盘上,而是在需要时实时迭代远程视频文件并加载每个部分。我们无需等待整个视频缓冲完成才能开始观看,只要第一部分视频准备好了,我们就可以开始观看!这就是我们应用于加载数据集的流媒体原理。

图1:流媒体模式。数据集在我们迭代数据集时逐步加载。

与一次性下载整个数据集相比,流媒体模式有三个主要优势:

  1. 磁盘空间:在迭代数据集时,样本逐个加载到内存中。由于数据没有在本地下载,所以没有磁盘空间要求,因此您可以使用任意大小的数据集。
  2. 下载和处理时间:音频数据集很大,需要大量时间来下载和处理。通过流媒体模式,加载和处理是实时进行的,这意味着一旦第一个样本准备好,您就可以立即开始使用数据集。
  3. 轻松实验:您可以对一小部分样本进行实验,以确保您的脚本正常工作,而无需下载整个数据集。

流媒体模式有一个注意事项。当下载数据集时,原始数据和处理后的数据都会保存在本地磁盘上。如果我们想要重新使用这个数据集,我们可以直接从磁盘上加载处理后的数据,跳过下载和处理步骤。因此,我们只需要执行一次下载和处理操作,之后就可以重复使用准备好的数据。使用流媒体模式,数据不会下载到磁盘上。因此,下载和预处理的数据都不会被缓存。如果我们想要重新使用数据集,必须重新执行流媒体步骤,加载和处理音频文件。因此,建议只下载您可能多次使用的数据集。

如何启用流媒体模式?很简单!只需在加载数据集时设置streaming=True,其余工作将由系统自动处理:

gigaspeech = load_dataset("speechcolab/gigaspeech", "xs", streaming=True)

在本教程中所涵盖的所有步骤都可以应用于流式数据集,无需进行任何代码更改。唯一的变化是,您不能再使用Python索引访问单个样本(即 gigaspeech["train"][sample_idx] )。相反,您必须遍历数据集,例如使用 for 循环。

流式模式可以将您的研究提升到一个新的水平:不仅可以访问最大的数据集,而且可以轻松地在一个过程中评估多个数据集,而不必担心磁盘空间。与在单个数据集上评估相比,多数据集评估可以为语音识别系统的泛化能力提供更好的度量指标(参见端到端语音基准(ESB))。附带的Google Colab提供了一个使用流式模式在八个英语语音识别数据集上评估Whisper模型的示例脚本。

在Hub上的音频数据集导览

本节作为Hugging Face Hub上最受欢迎的语音识别、语音翻译和音频分类数据集的参考指南。我们可以将我们在GigaSpeech数据集上所学到的知识应用到Hub上的任何数据集上。我们只需要在 load_dataset 函数中切换数据集标识符即可。就这么简单!

  1. 英语语音识别
  2. 多语言语音识别
  3. 语音翻译
  4. 音频分类

英语语音识别

语音识别,或称为语音转文本,是将口语转换为书面文本的任务,其中口语和文本都属于同一语言。我们提供了Hugging Face Hub上最受欢迎的英语语音识别数据集的摘要:

请参考Google Colab指南,了解如何在一个脚本中评估系统在所有八个英语语音识别数据集上的表现。

以下数据集描述主要摘自ESB基准论文。

LibriSpeech ASR

LibriSpeech是一个用于评估ASR系统的标准大规模数据集。它包含了从LibriVox项目中收集的大约1000小时的有声图书。LibriSpeech在促进研究人员利用大量预先存在的转录语音数据方面发挥了重要作用。因此,它已成为学术演讲系统基准测试中最受欢迎的数据集之一。

librispeech = load_dataset("librispeech_asr", "all")

Common Voice

Common Voice是一系列众包开源语音数据集,其中演讲者用各种语言录制来自维基百科的文本。由于任何人都可以贡献录音,因此音频质量和演讲者之间存在显著差异。音频条件具有挑战性,包括录音产生的伪影、带口音的演讲、停顿以及外来词的存在。转录文本的大小写和标点符号都有。版本11.0的英语子集包含约2300小时的经过验证的数据。使用此数据集需要您同意Common Voice的使用条款,可以在Hugging Face Hub上找到:mozilla-foundation/common_voice_11_0 。一旦您同意使用条款,您将获得访问数据集的权限。然后在加载数据集时,您需要提供Hub中的身份验证令牌。

common_voice = load_dataset("mozilla-foundation/common_voice_11", "en", use_auth_token=True)

VoxPopuli

VoxPopuli是一个大规模的多语言语音语料库,由2009-2020年欧洲议会活动记录的数据组成。因此,它主要包含来自非母语演讲者的演讲、政治演讲等领域的语音。英语子集包含约550小时的标记语音。

voxpopuli = load_dataset("facebook/voxpopuli", "en")

TED-LIUM

TED-LIUM是基于英语TED演讲会议视频的数据集。演讲风格是演讲教育性质的讲座。转录的讲座涵盖了各种不同的文化、政治和学术话题,因此涉及到技术词汇。最新的第3版数据集包含约450小时的训练数据。验证数据和测试数据来自遗留数据集,与早期版本保持一致。

tedlium = load_dataset("LIUM/tedlium", "release3")

GigaSpeech

GigaSpeech是一个多领域的英语语音识别语料库,由有声读物、播客和YouTube精心策划而成。它涵盖了叙述性和即兴性演讲等多个主题的语音,如艺术、科学和体育。它包含的训练集大小从10小时到10,000小时不等,并具有标准化的验证和测试集。

gigaspeech = load_dataset("speechcolab/gigaspeech", "xs", use_auth_token=True)

SPGISpeech

SPGISpeech是由S&P Global, Inc.手动转录的公司盈利电话的英语语音识别语料库。这些转录根据演讲和即兴演讲的专业风格指南进行了完全格式化。它包含的训练集大小从200小时到5,000小时不等,并具有规范化的验证和测试集。

spgispeech = load_dataset("kensho/spgispeech", "s", use_auth_token=True)

Earnings-22

Earnings-22是从全球公司收集的一个包含119小时英语盈利电话的语料库。该数据集的目标是聚集涵盖各种真实金融话题的广泛演讲者和口音。演讲者和口音的差异很大,其中的演讲者来自七个不同的语言地区。Earnings-22主要作为一个仅供测试的数据集进行发布。Hub中包含一个已将该数据集分成训练-验证-测试集的版本。

earnings22 = load_dataset("revdotcom/earnings22")

AMI

AMI包括100小时的会议录音,这些录音使用不同的录音流进行捕捉。该语料库包含了会议的手动注释的正字法转录,这些转录在词级别进行了对齐。AMI数据集的各个样本包含非常大的音频文件(10到60分钟之间),这些文件被分段为适合大多数语音识别系统训练的长度。AMI包含两个子集:IHM和SDM。IHM(个人耳机麦克风)包含更容易的近场语音,SDM(单个远程麦克风)包含更难的远场语音。

ami = load_dataset("edinburghcstr/ami", "ihm")

多语种语音识别

多语种语音识别指的是除英语以外的所有语言的语音识别(语音转文本)。

Multilingual LibriSpeech

Multilingual LibriSpeech是LibriSpeech ASR语料库的多语种版本。它包含了从LibriVox项目中提取的大量有声读物语料库,适用于学术研究。它包含了八种高资源语言(英语、德语、荷兰语、西班牙语、法语、意大利语、葡萄牙语和波兰语)的数据。

Common Voice

Common Voice是一系列众包开放许可的语音数据集,其中讲话者用各种语言录制维基百科的文本。由于任何人都可以贡献录音,因此音频质量和讲话者都存在显著的变化。音频条件具有挑战性,包括录音的残留物、带口音的演讲、犹豫以及外语词的存在。转录是大小写和标点的。截至第11版,共提供了100多种语言,既有低资源语言也有高资源语言。

VoxPopuli

VoxPopuli是一个大规模的多语种语音语料库,其中的数据来自2009-2020年欧洲议会事件录音。因此,它涉及演讲、政治演讲的独特领域,主要来自非母语讲话者。它包含了15种欧洲语言的带标签的音频-转录数据。

FLEURS

FLEURS(Few-shot Learning Evaluation of Universal Representations of Speech)是一个用于评估102种语言的语音识别系统的数据集,其中包括许多被归类为“低资源”的语言。该数据源自FLoRes-101数据集,这是一个从英语到其他101种语言的机器翻译语料库,其中有3001个句子的翻译。母语讲者用其母语朗读句子的转录进行录制。录制的音频数据与句子的转录配对,以实现对所有101种语言的多语种语音识别。训练集每种语言包含约10小时的有监督音频-转录数据。

语音翻译

语音翻译是将口语转化为书面文本的任务,其中语音和文本处于不同的语言环境(例如,英语语音到法语文本)。

CoVoST 2

CoVoST 2是一个大规模的多语言语音翻译语料库,涵盖了从21种语言到英语的翻译以及从英语到15种语言的翻译。该数据集使用Mozilla的开源众包语音录制数据库Common Voice创建而成。该语料库中包含了2900小时的语音数据。

FLEURS

FLEURS(Few-shot Learning Evaluation of Universal Representations of Speech)是一个用于评估102种语言中的语音识别系统的数据集,其中包括许多被归类为“低资源”的语言。该数据源自FLoRes-101数据集,该数据集是一个从英语到101种其他语言的机器翻译语料库,其中包含3001个句子的翻译。数据集使用母语人士以其母语朗读句子的转录结果。通过将录制的音频数据与每种语言的句子转录配对,构建了一个n对n的平行语料库,用于语音翻译数据。训练集每种源语言-目标语言组合包含约10小时的有监督音频转录数据。

音频分类

音频分类是将原始音频输入映射到类别标签输出的任务。音频分类的实际应用包括关键词检测、说话者意图和语言识别。

SpeechCommands

SpeechCommands是一个数据集,由一秒钟的音频文件组成,每个文件中包含一个英语单词的发音或背景噪音。这些单词来自一个小的命令集,并由多个不同的说话者发音。该数据集旨在帮助训练和评估小型设备上的关键词检测系统。

多语种口语词汇

多语种口语词汇是一个大规模的语音样本语料库,每个样本包含一个口语单词。该数据集包含50种语言和超过340,000个关键词,总计23.4百万个一秒钟的口语示例,或超过6000小时的音频。音频转录数据源自Mozilla Common Voice项目。对每个单词级别的话语生成时间戳,并用于提取单个口语单词及其对应的转录,从而形成一个新的单一口语单词语料库。该数据集的预期用途是学术研究和多语种关键词检测和口语检索的商业应用。

FLEURS

FLEURS(Few-shot Learning Evaluation of Universal Representations of Speech)是一个用于评估102种语言中的语音识别系统的数据集,其中包括许多被归类为“低资源”的语言。该数据源自FLoRes-101数据集,该数据集是一个从英语到101种其他语言的机器翻译语料库,其中包含3001个句子的翻译。母语人士以其母语朗读句子的转录结果。录制的音频数据与其所说语言的标签配对。该数据集可以用作语言识别的音频分类数据集:系统被训练以预测语料库中每个话语的语言。

结束语

在本博文中,我们探索了Hugging Face Hub,并体验了数据集预览功能,这是一种在下载之前听音频数据集的有效方法。我们只需一行Python代码即可加载音频数据集,并执行一系列通用的预处理步骤,为机器学习模型做好准备。总共只需要13行代码,依靠简单的Python函数来执行必要的操作。我们介绍了流式模式,一种在使用过程中动态加载和准备音频数据样本的方法。最后,我们总结了Hub上最受欢迎的语音识别、语音翻译和音频分类数据集。

阅读完本博文后,希望您同意🤗 数据集是下载和准备音频数据集的首选之地。🤗 数据集的实现离不开社区的努力。如果您想贡献一个数据集,请参考添加新数据集指南。

感谢以下人员对本博文的贡献:Vaibhav Srivastav、Polina Kazakova、Patrick von Platen、Omar Sanseviero和Quentin Lhoest。