英文

Hubert-Large-Finetuned

Facebook's Hubert

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

该模型是 hubert-large-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类似的预测损失提供对齐的目标标签。我们方法的一个关键因素是仅在掩码区域上应用预测损失,这迫使模型在连续输入上学习联合声学和语言模型。HuBERT主要依赖于无监督聚类步骤的一致性,而不是分配的聚类标签的内在质量。通过使用100个聚类的简单k-means聚类器,并使用两次聚类迭代,HuBERT模型在Librispeech(960h)和Libri-light(60,000h)基准测试中匹配或改进了wav2vec 2.0的最新性能,其中包括10分钟、1小时、10小时、100小时和960小时的微调子集。使用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-large-ls960-ft")
model = HubertForCTC.from_pretrained("facebook/hubert-large-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"