🚀 Wav2Vec2-XLS-R-2B-22-16 (XLS-R-Any-to-Any)
本项目是Facebook基于Wav2Vec2 XLS - R微调的模型,主要用于语音翻译。它能将多种口语语言翻译成多种书面语言,为跨语言交流提供了强大的工具。
支持的语言和数据集
属性 |
详情 |
支持语言 |
英语、法语、德语、西班牙语、加泰罗尼亚语、意大利语、俄语、中文、葡萄牙语、波斯语、爱沙尼亚语、蒙古语、荷兰语、土耳其语、阿拉伯语、瑞典语、拉脱维亚语、斯洛文尼亚语、泰米尔语、日语、印尼语、威尔士语等 |
训练数据集 |
Common Voice、Multilingual LibriSpeech、Covost2 |
模型架构
这是一个SpeechEncoderDecoderModel模型。编码器从facebook/wav2vec2-xls-r-2b
检查点进行预热启动,解码器从facebook/mbart-large-50
检查点启动。随后,该编码器 - 解码器模型在Covost2数据集的{input_lang}
-> {output_lang}
翻译对上进行了微调。
支持的语言翻译对
该模型可以将以下口语语言{input_lang}
翻译成以下书面语言{output_lang}
:
{input_lang}
-> {output_lang}
其中,{input_lang}
为:
{en
, fr
, de
, es
, ca
, it
, ru
, zh-CN
, pt
, fa
, et
, mn
, nl
, tr
, ar
, sv-SE
, lv
, sl
, ta
, ja
, id
, cy
}
{output_lang}
为:
{en
, de
, tr
, fa
, sv-SE
, mn
, zh-CN
, cy
, ca
, sl
, et
, id
, ar
, ta
, lv
, ja
}
🚀 快速开始
🔍 演示
你可以在这个空间测试该模型。你可以选择目标语言,用上述任何一种输入语言录制一些音频,然后坐等检查点对输入内容进行翻译,看看效果如何。
💻 使用示例
基础用法
由于这是一个标准的序列到序列的Transformer模型,你可以使用generate
方法,将语音特征传递给模型来生成转录内容。
你可以直接通过ASR管道使用该模型。默认情况下,检查点会将英语口语翻译成书面德语。要更改书面目标语言,你需要将正确的forced_bos_token_id
传递给generate(...)
,以指定解码器生成的目标语言。
要根据你选择的语言ID选择正确的forced_bos_token_id
,请使用以下映射:
MAPPING = {
"en": 250004,
"de": 250003,
"tr": 250023,
"fa": 250029,
"sv": 250042,
"mn": 250037,
"zh": 250025,
"cy": 250007,
"ca": 250005,
"sl": 250052,
"et": 250006,
"id": 250032,
"ar": 250001,
"ta": 250044,
"lv": 250017,
"ja": 250012,
}
以下是一个将语音翻译成瑞典语的示例:
from datasets import load_dataset
from transformers import pipeline
forced_bos_token_id = MAPPING["sv"]
librispeech_en = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation")
audio_file = librispeech_en[0]["file"]
asr = pipeline("automatic-speech-recognition", model="facebook/wav2vec2-xls-r-2b-22-to-16", feature_extractor="facebook/wav2vec2-xls-r-2b-22-to-16")
translation = asr(audio_file, forced_bos_token_id=forced_bos_token_id)
高级用法
你也可以按以下步骤逐步使用该模型:
import torch
from transformers import Speech2Text2Processor, SpeechEncoderDecoderModel
from datasets import load_dataset
model = SpeechEncoderDecoderModel.from_pretrained("facebook/wav2vec2-xls-r-2b-22-to-16")
processor = Speech2Text2Processor.from_pretrained("facebook/wav2vec2-xls-r-2b-22-to-16")
ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation")
forced_bos_token_id = MAPPING["sv"]
inputs = processor(ds[0]["audio"]["array"], sampling_rate=ds[0]["audio"]["array"]["sampling_rate"], return_tensors="pt")
generated_ids = model.generate(input_ids=inputs["input_features"], attention_mask=inputs["attention_mask"], forced_bos_token_id=forced_bos_token)
transcription = processor.batch_decode(generated_ids)
更多用于{lang}
-> en
语音翻译的XLS - R模型
📄 许可证
本项目采用Apache - 2.0许可证。