🚀 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許可證。