数据集:
KBLab/rixvox
RixVox 是一个由瑞典议会 (Riksdag) 的演讲组成的语音数据集。它包括 2003 年至 2023 年期间辩论的演讲。使用 aeneas 工具,演讲的语音与书面记录的对话按句子级别进行了对齐。每个观察点可以由一个或多个连接的句子组成(持续时间最长为30秒)。对于每个观察点,都提供了详细的演讲者元数据,包括演讲者的姓名、性别、政党、出生年份以及他们所代表的选区。数据集总共包含5493小时的演讲与转录。
默认不支持任务(没有标签字段)。但该数据集可能适用于以下任务:
您可以使用 load_dataset() 下载和本地提取文件。我们建议将 cache_dir 参数设置为指向具有足够磁盘空间(1.2TB+)的位置。以下是如何下载 train 数据集的示例:
from datasets import load_dataset # To download/load all splits at once, don't specify a split rixvox = load_dataset("KBLab/rixvox", split="train", cache_dir="data_rixvox")
您也可以流式传输数据集。这在您想要探索数据集或者没有足够磁盘空间下载整个数据集时非常有用。以下是如何流式传输 train 数据集的示例:
from datasets import load_dataset rixvox = load_dataset("KBLab/rixvox", cache_dir="data_rixvox", split="train", streaming=True) print(next(iter(rixvox))) # Grab 5 observations rixvox_subset = rixvox.take(5) for example in rixvox_subset: print(example)
创建数据集时使用 PyTorch dataloader 。
本地模式:
from datasets import load_dataset from torch.utils.data.sampler import BatchSampler, RandomSampler # Dataset is not pre-shuffled, recommend shuffling it before training. rixvox = load_dataset("KBLab/rixvox", split="train", cache_dir="data_rixvox") batch_sampler = BatchSampler(RandomSampler(rixvox), batch_size=32, drop_last=False) dataloader = DataLoader(rixvox, batch_sampler=batch_sampler)
流式模式:
from datasets import load_dataset from torch.utils.data import DataLoader rixvox = load_dataset("KBLab/rixvox", split="train", cache_dir="data_rixvox") dataloader = DataLoader(rixvox, batch_size=32)
更多关于如何洗牌的信息,请参阅Huggingface的 streaming datasets 指南。
数据集总共有835,044个观察点,来自1,194个不同的演讲者。每个观察点的持续时间最长为30秒。一个观察点属于一次辩论( dokid ),是从一次演讲中提取出来的( anforande_nummer ),并根据其在演讲中的顺序编号( observation_nr )。以下是一个观察点的示例:
{'dokid': 'GR01BOU3', 'anforande_nummer': 191, 'observation_nr': 0, 'audio': {'path': 'GR01BOU3/2442210220028601121_anf191_1_25.wav', 'array': array([0.01171875, 0.01242065, 0.01071167, ..., 0.00689697, 0.00918579, 0.00650024]), 'sampling_rate': 16000}, 'text': 'Kristdemokraterna står bakom alla reservationer med kristdemokratiska förtecken, men jag nöjer mig med att yrka bifall till reservation 1. Jag ska i det här inlägget beröra några av de åtta punkter som är föremål för reservationer från kristdemokratiskt håll, i vissa fall tillsammans med andra partier.', 'debatedate': datetime.datetime(2003, 12, 4, 0, 0), 'speaker': 'Göran Hägglund', 'party': 'KD', 'gender': 'male', 'birth_year': 1959, 'electoral_district': 'Hallands län', 'intressent_id': '0584659199514', 'speaker_from_id': True, 'speaker_audio_meta': 'Göran Hägglund (Kd)', 'start': 1.4, 'end': 24.96, 'duration': 23.560000000000002, 'bleu_score': 0.7212783273624307, 'filename': 'GR01BOU3/2442210220028601121_anf191_1_25.wav', 'path': 'GR01BOU3/2442210220028601121_anf191_1_25.wav', 'speaker_total_hours': 30.621333333333332}
在 dataset viewer 中可以看更多示例。
数据集的拆分是在演讲者级别上随机采样的。也就是说,每个演讲者只在一个拆分中存在。对于每个拆分,我们根据以下条件对演讲者进行采样:
Dataset Split | Observations | Total duration of speech (hours) | Average duration obs. (seconds) | Number of speakers |
---|---|---|---|---|
Train | 818227 | 5383 | 23.69 | 1165 |
Validation | 7933 | 52 | 23.50 | 18 |
Test | 8884 | 59 | 23.74 | 11 |
有关此数据集创建的更多信息,请参阅我们博客中的文章 "Finding Speeches in the Riksdag's Debates" 。
在 RixVox 之前,用于训练瑞典语的ASR模型的转录语音只有几百小时。像 Whisper 这样的 ASR 模型已经证明,通过在预训练或微调期间增加更多的监督数据,可以显著提高模型的性能。议会辩论的媒体发布在网上,与转录和其他元数据一起作为开放数据。瑞典议会的开放数据计划为创建一个高质量的瑞典语开放语音语料库提供了机会。
瑞典议会。
有关如何在辩论音频文件中对演讲进行分段和识别的信息,请参阅文章 "Finding Speeches in the Riksdag's Debates" 。
有关如何使用演讲分段创建最终的 RixVox 数据集的信息,请参阅文章 "RixVox: A Swedish Speech Corpus with 5500 Hours of Speech from Parliamentary Debates" 。
复制数据集创建的代码是开放且可在 GitHub 上获得,链接为 KBLab/riksdagen_anforanden 。使用消费级 GPU 的工作站处理所有内容可能需要1-3周的时间。
谁是数据源语言的生产者?演讲的书面协议是由瑞典议会手动制作的。转录不总是逐字逐句,而是捕捉演讲者的意图。
演讲的分段以确定辩论中它们的开始和结束是自动完成的。将书面协议按句子级别与音频文件进行对齐也是使用 aeneas 工具自动完成的。有关详细信息,请参阅引文信息中的文章。
演讲对书面协议进行对齐的过程是自动完成的。它遵循以下一般步骤:
没有手动注释。
演讲者是在瑞典议会中发表公开演讲的议会成员或部长。瑞典议会是一个公共机构,演讲作为开放数据公开在网上。
我们预计该数据集主要用于训练瑞典语的ASR模型。多语言ASR模型中瑞典语文本到语音的性能也可能从大规模瑞典语语音语料库的提供中受益。反过来,改进的ASR模型可以帮助增加听觉受损人士对音频和视频媒体内容的可访问性。
该数据集还可用于训练其他音频任务的模型,如说话人分割、说话人验证和说话人识别。
由于包含有关说话者的年龄、性别和选区的元数据,该数据集还可以用于研究ASR模型中的偏见。
该数据集包含议会演讲,这些演讲通常比日常对话更正式。
在创建数据集的过程中,我们发现基于说话人辩论的演讲分段在以下情况下更容易失败:前一位演讲者、议会议长和后一位演讲者全部是同一性别。然而,总体而言,只有很少的演讲被过滤出最终的 RixVox 数据集。在对数据集进行质量过滤之后,剩下了5500小时的音频。我们认为这种过滤没有引入任何显著的系统偏差。
只对重复的常用短语进行了最小化去重。例如,"Fru talman!"、"Herr Talman!"等短语的使用很常见,属于形式上的用语。这些短语通常出现在大多数转录的开头,无论是演讲者是否说过。因此,在创建 RixVox 时,我们删除了每个演讲的第一个对齐句子。尽管如此,这些短语在演讲中经常重复。因此,在训练模型之前,进行更激进的数据去重可能会更有益。
瑞典国家图书馆的 KBLab。
RixVox 有可能被定期且不规则地更新,包括旧的和新的演讲。确实存在从 1966 年到 2002 年的较早录音的议会辩论,但它们尚未成为瑞典议会的开放数据的一部分。KBLab 正在探索将现有的演讲分段和对齐流程应用于这些音频,并为这些音频添加元数据的可能性。
每年都会有新的议会辩论,近年来每年增加400-500小时的演讲时长。
引用瑞典议会。
若要引用 RixVox,请随时引用引文信息中的 KBLab 博客文章。
@misc{rekathati2023rixvox:, author = {Rekathati, Faton}, title = {The KBLab Blog: RixVox: A Swedish Speech Corpus with 5500 Hours of Speech from Parliamentary Debates}, url = {https://kb-labb.github.io/posts/2023-03-09-rixvox-a-swedish-speech-corpus/}, year = {2023} }
@misc{rekathati2023finding, author = {Rekathati, Faton}, title = {The KBLab Blog: Finding Speeches in the Riksdag's Debates}, url = {https://kb-labb.github.io/posts/2023-02-15-finding-speeches-in-the-riksdags-debates/}, year = {2023} }
瑞典议会。
感谢 @lhoestq 对数据集脚本的审查。