模型库 / facebook/w2v-bert-2.0

w2v-bert-2.0

facebook feature-extraction transformers af am ar
facebook/w2v-bert-2.0
3,193,130
下载量
214
收藏数
7
浏览量
mit
许可

简介

我们正在开源基于Conformer的W2v-BERT 2.0语音编码器,如论文第3.2.1节所述,该编码器是我们Seamless模型的核心。

模型卡片

许可协议 mit
语言
af am ar as az be bn bs bg ca cs zh cy da de el en et fi fr or om ga gl gu ha he hi hr hu hy ig id is it jv ja kn ka kk mn km ky ko lo ln lt lb lg lv ml mr mk mt mi my nl nb ne ny oc pa ps fa pl pt ro ru sk sl sn sd so es sr sv sw ta te tg tl th tr uk ur uz vi wo xh yo ms zu ary arz yue kea

模型配置

模型类型 wav2vec2-bert
架构 Wav2Vec2BertModel

模型详情

已翻译

W2v-BERT 2.0 语音编码器

我们正在开源基于 Conformer 的 W2v-BERT 2.0 语音编码器,如 论文 第 3.2.1 节所述,该编码器是 Seamless 模型的核心。

该模型在覆盖 143 种以上语言的 450 万小时未标注音频数据上进行了预训练。它需要经过微调才能用于自动语音识别(ASR)或音频分类等下游任务。

模型名称 参数量 检查点
W2v-BERT 2.0 600M 检查点

该模型及其训练由 🤗 Transformers 支持,更多信息请参阅 文档

🤗 Transformers 使用方式

这是一个不包含任何模型头的裸检查点,因此需要经过微调才能用于 ASR 等下游任务。不过,您可以使用以下代码片段从顶层提取音频 embedding:

from transformers import AutoFeatureExtractor, Wav2Vec2BertModel
import torch
from datasets import load_dataset

dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
dataset = dataset.sort("id")
sampling_rate = dataset.features["audio"].sampling_rate

processor = AutoProcessor.from_pretrained("facebook/w2v-bert-2.0")
model = Wav2Vec2BertModel.from_pretrained("facebook/w2v-bert-2.0")

# audio file is decoded on the fly
inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
with torch.no_grad():
    outputs = model(**inputs)

要了解更多关于模型使用的信息,请参考以下资源:
- 其文档
- 一篇展示如何在蒙古语 ASR 上微调该模型的博客文章
- 一个训练脚本示例

Seamless Communication 使用方式

该模型可在 Seamless Communication 中使用,该模型正是在此项目中发布的。

完成 安装步骤 后,以下是通过语音编码器进行前向传播的方法:

import torch

from fairseq2.data.audio import AudioDecoder, WaveformToFbankConverter
from fairseq2.memory import MemoryBlock
from fairseq2.nn.padding import get_seqs_and_padding_mask
from pathlib import Path
from seamless_communication.models.conformer_shaw import load_conformer_shaw_model

audio_wav_path, device, dtype = ...
audio_decoder = AudioDecoder(dtype=torch.float32, device=device)
fbank_converter = WaveformToFbankConverter(
    num_mel_bins=80,
    waveform_scale=2**15,
    channel_last=True,
    standardize=True,
    device=device,
    dtype=dtype,
)
collater = Collater(pad_value=1)

model = load_conformer_shaw_model("conformer_shaw", device=device, dtype=dtype)
model.eval()

with Path(audio_wav_path).open("rb") as fb:
    block = MemoryBlock(fb.read())

decoded_audio = audio_decoder(block)
src = collater(fbank_converter(decoded_audio))["fbank"]
seqs, padding_mask = get_seqs_and_padding_mask(src)

with torch.inference_mode():
  seqs, padding_mask = model.encoder_frontend(seqs, padding_mask)
  seqs, padding_mask = model.encoder(seqs, padding_mask)

标签

wav2vec2-bert af am ar as az be bn

操作


详细信息

厂商
facebook
任务
feature-extraction
框架
transformers
模型类型
wav2vec2-bert
许可(HF)
mit
语言
af, am, ar, as, az, be, bn, bs, bg, ca, cs, zh, cy, da, de, el, en, et, fi, fr, or, om, ga, gl, gu, ha, he, hi, hr, hu, hy, ig, id, is, it, jv, ja, kn, ka, kk, mn, km, ky, ko, lo, ln, lt, lb, lg, lv, ml, mr, mk, mt, mi, my, nl, nb, ne, ny, oc, pa, ps, fa, pl, pt, ro, ru, sk, sl, sn, sd, so, es, sr, sv, sw, ta, te, tg, tl, th, tr, uk, ur, uz, vi, wo, xh, yo, ms, zu, ary, arz, yue, kea