英文

Wav2Vec2-Large-Robust基于Switchboard数据集进行微调

Facebook's Wav2Vec2 .

此模型是 wav2vec2-large-robust 模型的微调版本。它在以下数据上进行了预训练:

  • Libri-Light :来自LibriVox项目的开源有声书籍;干净的朗读音频数据
  • CommonVoice :众包收集的音频数据;朗读的文本片段
  • Switchboard :电话语音语料库;含噪的电话数据
  • Fisher :会话式电话语音;含噪的电话数据

并且随后在300小时的以下数据上进行了微调:

使用该模型时,请确保语音输入也以16KHz进行采样。

Paper Robust Wav2Vec2

作者:Wei-Ning Hsu, Anuroop Sriram, Alexei Baevski, Tatiana Likhomanenko, Qiantong Xu, Vineel Pratap, Jacob Kahn, Ann Lee, Ronan Collobert, Gabriel Synnaeve, Michael Auli

摘要 自我监督学习的语音表示一直是一个非常活跃的研究领域,但大部分工作都集中在单一领域,例如有大量标记和未标记数据的读音频书籍。在本文中,我们探索了更一般的设置,其中无标记数据的领域与微调的有标记数据的领域不同,而这些又可能与测试数据的领域不同。我们的实验显示,在预训练期间使用目标领域数据能够大幅改善各种设置下的性能表现。在大规模竞争性设置中,我们展示了在无标记领域数据上预训练可以将在领域内和领域外的有标记数据上训练的模型之间的差距减小66%-73%。这显然具有实际意义,因为获得无标记目标领域数据比获得有标记数据容易得多。此外,我们发现在多个领域上进行预训练可以提高在训练过程中未见过的领域的泛化性能。代码和模型将在此 https URL 上提供。

可在 https://github.com/pytorch/fairseq/tree/master/examples/wav2vec#wav2vec-20 下找到原始模型。

使用方法

要转录音频文件,可以将模型作为独立的声学模型使用,方法如下:

 from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC
 from datasets import load_dataset
 import torch
 
 # load model and processor
 processor = Wav2Vec2Processor.from_pretrained("facebook/wav2vec2-large-robust-ft-swbd-300h")
 model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-large-robust-ft-swbd-300h")
     
 # load dummy dataset and read soundfiles
 ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation")
 
 # tokenize
 input_values = processor(ds[0]["audio"]["array"], return_tensors="pt", padding="longest").input_values  # Batch size 1
 
 # retrieve logits
 logits = model(input_values).logits
 
 # take argmax and decode
 predicted_ids = torch.argmax(logits, dim=-1)
 transcription = processor.batch_decode(predicted_ids)