采用大规模LibriSpeech数据集微调的HuBERT模型,展示前沿语音识别性能
HuBERT模型通过LibriSpeech数据集上的960小时微调,提供准确的自动语音识别功能。解决大声单元处理、无词汇表和声单元长度可变等挑战,并在多项基准测试中与wav2vec 2.0性能相当或更优。通过自监督学习和离线聚类,得益于1B参数模型,显著降低了错误率,成为语音识别的关键突破方法。
hubert-xlarge-ls960-ft 是一个高级的自动语音识别(Automatic Speech Recognition, ASR)模型,由Facebook提出。该模型的开发目的是为了提升语音识别的准确性和效率,特别是在长时间语音资料上的表现。hubert-xlarge-ls960-ft是基于一个自监督的表示学习方法,称为HuBERT(Hidden-Unit BERT),专注于语音表示学习的复杂问题。
HuBERT 解决了语音识别中常见的三个主要问题:
为了解决这些难题,介绍了离线聚类步骤,为类似 BERT 的预测损失计算提供对齐的目标标签。此外,该方法的核心在于只在被掩蔽区间应用预测损失,这样可以迫使模型学习连续输入信号的综合声学和语言模型。
hubert-xlarge-ls960-ft 模型是在960小时LibriSpeech语音数据上进行微调,以16kHz频率采样的语音数据为基础。当使用该模型时,确保输入语音数据也以16kHz采样。
在LibriSpeech测试集(clean)上的测试词错误率(WER)为1.8,显示出卓越的语音识别性能。HuBERT 使用一个包含10亿参数的模型,在开发和测试的困难子集上,分别实现了最多19%和13%的相对WER减少。
该模型可以用于自动语音识别,适配器指会在模型输入为语音数据后输出文本转录,例如:
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 # 批处理大小为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"
该项目的详细信息及模型的原始实现可在GitHub上找到。它也在arxiv上有相关论文供研究者参考。
hubert-xlarge-ls960-ft项目采用Apache 2.0开源许可协议,用户可以在遵循相关协议的前提下自由使用和修改此模型。