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
操作
详细信息
- 厂商
- 任务
- 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