数据集:
google/fleurs
Fleurs是 FLoRes machine translation benchmark 的语音版本。我们使用了来自FLoRes公开可用的dev和devtest数据集中的102种语言的2009个多对多平行句子。
训练集提供了约10小时的训练,训练集的说话人与开发/测试集的说话人不同。使用了多语言微调,对所有语言的“单位错误率”(字符,标记)求平均。语言和结果也被分为七个地理区域:
数据集库允许您在纯Python环境中以大规模加载和预处理数据集。可以使用load_dataset函数一次将数据集下载并准备到本地磁盘。
例如,要下载Hindi配置,只需指定相应的语言配置名称(即"Hindi"对应的"hi_in"):
from datasets import load_dataset fleurs = load_dataset("google/fleurs", "hi_in", split="train")
使用数据集库,您还可以通过将streaming=True参数添加到load_dataset函数调用中,实时流式传输数据集。以流式模式加载数据集时,一次加载一个样本,而不是将整个数据集下载到磁盘。
from datasets import load_dataset fleurs = load_dataset("google/fleurs", "hi_in", split="train", streaming=True) print(next(iter(fleurs)))
奖励 : 使用您自己的数据集(本地/流式)直接创建数据集。
本地:
from datasets import load_dataset from torch.utils.data.sampler import BatchSampler, RandomSampler fleurs = load_dataset("google/fleurs", "hi_in", split="train") batch_sampler = BatchSampler(RandomSampler(fleurs), batch_size=32, drop_last=False) dataloader = DataLoader(fleurs, batch_sampler=batch_sampler)
流式:
from datasets import load_dataset from torch.utils.data import DataLoader fleurs = load_dataset("google/fleurs", "hi_in", split="train") dataloader = DataLoader(fleurs, batch_size=32)
要了解有关加载和准备音频数据集的更多信息,请查看 hf.co/blog/audio-datasets 。
使用 here 在FLEURS上训练您自己的CTC或Seq2Seq自动语音识别模型。
使用 here 在FLEURS上微调您自己的语言识别模型。
from datasets import load_dataset fleurs_asr = load_dataset("google/fleurs", "af_za") # for Afrikaans # to download all data for multi-lingual fine-tuning uncomment following line # fleurs_asr = load_dataset("google/fleurs", "all") # see structure print(fleurs_asr) # load audio sample on the fly audio_input = fleurs_asr["train"][0]["audio"] # first decoded audio sample transcription = fleurs_asr["train"][0]["transcription"] # first transcription # use `audio_input` and `transcription` to fine-tune your model for ASR # for analyses see language groups all_language_groups = fleurs_asr["train"].features["lang_group_id"].names lang_group_id = fleurs_asr["train"][0]["lang_group_id"] all_language_groups[lang_group_id]
语言识别通常是一种领域分类,但在FLEURS-LangID的情况下,用不同语言进行录制,并且句子对应着n对平行句子,在相同的领域中,这使得这个任务特别适用于评估LangID。该设置很简单,FLEURS-LangID被分割为每种语言的训练/验证/测试。我们只需通过合并所有语言的训练/验证/测试集创建一个单一的LangID训练/验证/测试集。
from datasets import load_dataset fleurs_langID = load_dataset("google/fleurs", "all") # to download all data # see structure print(fleurs_langID) # load audio sample on the fly audio_input = fleurs_langID["train"][0]["audio"] # first decoded audio sample language_class = fleurs_langID["train"][0]["lang_id"] # first id class language = fleurs_langID["train"].features["lang_id"].names[language_class] # use audio_input and language_class to fine-tune your model for audio classification
检索提供了n对平行语音和文本数据。类似于XTREME用Tatoeba评估双语挖掘,即句子翻译检索,我们使用检索来评估语音短语的固定大小表示的质量。我们的目标是鼓励创建用于语音检索的固定大小的语音编码器。该系统必须检索与15种语言中的“查询”语音的翻译对应的英文“关键”语音。结果必须在用作查询的检索测试集上报告(也是英文关键词)。我们通过大量的语音短语增加了英文关键短语,以增加任务的难度。
from datasets import load_dataset fleurs_retrieval = load_dataset("google/fleurs", "af_za") # for Afrikaans # to download all data for multi-lingual fine-tuning uncomment following line # fleurs_retrieval = load_dataset("google/fleurs", "all") # see structure print(fleurs_retrieval) # load audio sample on the fly audio_input = fleurs_retrieval["train"][0]["audio"] # decoded audio sample text_sample_pos = fleurs_retrieval["train"][0]["transcription"] # positive text sample text_sample_neg = fleurs_retrieval["train"][1:20]["transcription"] # negative text samples # use `audio_input`, `text_sample_pos`, and `text_sample_neg` to fine-tune your model for retrieval
用户可以利用FLEURS-Retrieval的训练(和验证)集使用排序损失来构建更好的跨语言固定大小的语音表示。
我们展示了数据集配置 af_za 的详细信息,所有其他配置具有相同的结构。
af_za
数据配置 af_za 的示例数据实例如下所示:
{'id': 91, 'num_samples': 385920, 'path': '/home/patrick/.cache/huggingface/datasets/downloads/extracted/310a663d52322700b3d3473cbc5af429bd92a23f9bc683594e70bc31232db39e/home/vaxelrod/FLEURS/oss2_obfuscated/af_za/audio/train/17797742076841560615.wav', 'audio': {'path': '/home/patrick/.cache/huggingface/datasets/downloads/extracted/310a663d52322700b3d3473cbc5af429bd92a23f9bc683594e70bc31232db39e/home/vaxelrod/FLEURS/oss2_obfuscated/af_za/audio/train/17797742076841560615.wav', 'array': array([ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., -1.1205673e-04, -8.4638596e-05, -1.2731552e-04], dtype=float32), 'sampling_rate': 16000}, 'raw_transcription': 'Dit is nog nie huidiglik bekend watter aantygings gemaak sal word of wat owerhede na die seun gelei het nie maar jeugmisdaad-verrigtinge het in die federale hof begin', 'transcription': 'dit is nog nie huidiglik bekend watter aantygings gemaak sal word of wat owerhede na die seun gelei het nie maar jeugmisdaad-verrigtinge het in die federale hof begin', 'gender': 0, 'lang_id': 0, 'language': 'Afrikaans', 'lang_group_id': 3}
所有拆分之间的数据字段相同。
每个配置只有一个"train"拆分,其中包含大约1000个示例,以及一个"validation"和一个"test"拆分,每个拆分包含大约400个示例。
我们为每个句子收集了一到三个录音(平均2.3个),并构建了新的训练-开发-测试分割,训练、开发和测试分别包含1509、150和350个句子。
这个数据集旨在鼓励在世界上更多的语言中发展语音技术。其目标之一是为每个人提供平等的获取语音识别或语音翻译等技术的机会,意味着更好的配音或更好地访问互联网上的内容(如播客、流媒体或视频)。
大多数数据集在性别话语上具有公平的分布(例如,新引入的FLEURS数据集)。虽然涵盖了来自世界各地的许多语言,但该基准测试错过了许多同样重要的语言。我们认为通过FLEURS构建的技术应该适用于所有语言。
该数据集特别关注朗读语音,因为CoVoST-2或LibriSpeech等常用的评估基准在这种语音类型上进行评估。有时在朗读语音环境和更嘈杂的环境(如生产环境)之间存在一种已知的不匹配。鉴于许多语言仍然需要取得更好的进展,我们相信在FLEURS上取得的更好性能仍然会与语音理解的实际进展相关。
所有数据集均遵循 Creative Commons license (CC-BY) 许可协议。
您可以在 https://arxiv.org/abs/2205.12446 上访问FLEURS论文。请在引用FLEURS语料库时引用此论文:
@article{fleurs2022arxiv, title = {FLEURS: Few-shot Learning Evaluation of Universal Representations of Speech}, author = {Conneau, Alexis and Ma, Min and Khanuja, Simran and Zhang, Yu and Axelrod, Vera and Dalmia, Siddharth and Riesa, Jason and Rivera, Clara and Bapna, Ankur}, journal={arXiv preprint arXiv:2205.12446}, url = {https://arxiv.org/abs/2205.12446}, year = {2022},
感谢 @patrickvonplaten 和 @aconneau 添加此数据集。