英文

Hubert-Extra-Large-Finetuned

Facebook's Hubert

该模型是在Librispeech的960小时样本上进行了微调的超大型模型,该样本使用16kHz采样的语音音频。在使用该模型时,请确保你的语音输入也以16kHz采样。

该模型是 hubert-xlarge-ll60k 的微调版本。

Paper

作者:Wei-Ning Hsu,Benjamin Bolte,Yao-Hung Hubert Tsai,Kushal Lakhotia,Ruslan Salakhutdinov,Abdelrahman Mohamed

摘要:自监督的语音表示学习方法面临着三个独特的问题:(1)每个输入语音中有多个声音单元,(2)在预训练阶段没有输入声音单元的词典,(3)声音单元的长度可变且没有明确的分割。为了解决这三个问题,我们提出了Hidden-Unit BERT(HuBERT)方法进行自监督的语音表示学习,该方法利用离线聚类步骤为BERT-like预测损失提供了对齐的目标标签。我们方法的一个关键要素是仅在屏蔽区域应用预测损失,这迫使模型在连续输入上学习组合声学模型和语言模型。HuBERT主要依赖于无监督聚类步骤的一致性,而不是所分配的聚类标签的内在质量。通过从一个简单的100个聚类的k-means教师开始,使用两次聚类迭代,HuBERT模型在Librispeech(960h)和Libri-light(60,000h)基准测试中,使用10min、1h、10h、100h和960h微调子集,要么与wav2vec 2.0的最新性能相匹配,要么有所改进。使用1B参数模型,HuBERT在更具挑战性的dev-other和test-other评估子集上相对WER降低了高达19%和13%。

原始模型可以在 https://github.com/pytorch/fairseq/tree/master/examples/hubert 下找到。

使用方式

该模型可用于自动语音识别,使用方法如下:

import torch
from transformers import Wav2Vec2Processor, HubertForCTC
from datasets import load_dataset

processor = Wav2Vec2Processor.from_pretrained("facebook/hubert-xlarge-ls960-ft")
model = HubertForCTC.from_pretrained("facebook/hubert-xlarge-ls960-ft")
    
ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation")

input_values = processor(ds[0]["audio"]["array"], return_tensors="pt").input_values  # Batch size 1
logits = model(input_values).logits
predicted_ids = torch.argmax(logits, dim=-1)
transcription = processor.decode(predicted_ids[0])

# ->"A MAN SAID TO THE UNIVERSE SIR I EXIST"