英文

大规模多语种语音(MMS) - 微调ASR - 全部

该检查点是用于多语种ASR的模型微调,是Facebook的一部分。该检查点基于,并利用适配器模型来转录100多种语言。该检查点由10亿个参数组成,并从上的102种语言上进行了微调。

目录

  • 示例
  • 支持的语言
  • 模型详情
  • 其他链接

示例

这个MMS检查点可以与一起使用来转录1107种不同语言的音频。让我们看一个简单的例子。

首先,我们安装transformers和一些其他库

pip install torch accelerate torchaudio datasets
pip install --upgrade transformers

注意:要使用MMS,您需要安装至少transformers >= 4.30。如果4.30版本尚未可用,请确保从源代码安装transformers:

pip install git+https://github.com/huggingface/transformers.git

接下来,我们通过datasets加载一些音频样本。确保音频数据采样率为16000 kHz。

from datasets import load_dataset, Audio

# English
stream_data = load_dataset("mozilla-foundation/common_voice_13_0", "en", split="test", streaming=True)
stream_data = stream_data.cast_column("audio", Audio(sampling_rate=16000))
en_sample = next(iter(stream_data))["audio"]["array"]

# French
stream_data = load_dataset("mozilla-foundation/common_voice_13_0", "fr", split="test", streaming=True)
stream_data = stream_data.cast_column("audio", Audio(sampling_rate=16000))
fr_sample = next(iter(stream_data))["audio"]["array"]

接下来,我们加载模型和处理器

from transformers import Wav2Vec2ForCTC, AutoProcessor
import torch

model_id = "facebook/mms-1b-fl102"

processor = AutoProcessor.from_pretrained(model_id)
model = Wav2Vec2ForCTC.from_pretrained(model_id)

现在我们处理音频数据,将处理后的音频数据传递给模型并转录模型输出,就像我们通常对Wav2Vec2模型(如 facebook/wav2vec2-base-960h )所做的那样。

inputs = processor(en_sample, sampling_rate=16_000, return_tensors="pt")

with torch.no_grad():
    outputs = model(**inputs).logits

ids = torch.argmax(outputs, dim=-1)[0]
transcription = processor.decode(ids)
# 'joe keton disapproved of films and buster also had reservations about the media'

现在,我们可以在内存中保持相同的模型,只需通过调用方便的函数来切换语言适配器,模型使用tokenizer。我们将目标语言作为输入传递 - "fra"代表法语。

processor.tokenizer.set_target_lang("fra")
model.load_adapter("fra")

inputs = processor(fr_sample, sampling_rate=16_000, return_tensors="pt")

with torch.no_grad():
    outputs = model(**inputs).logits

ids = torch.argmax(outputs, dim=-1)[0]
transcription = processor.decode(ids)
# "ce dernier est volé tout au long de l'histoire romaine"

同样的方式,语言可以切换到所有其他支持的语言。请查看:

processor.tokenizer.vocab.keys()

有关更多详细信息,请参阅 the official docs

支持的语言

此模型支持102种语言。单击以下内容以切换到 ISO 639-3 code 中此检查点的所有支持语言。您可以在 MMS Language Coverage Overview 中找到有关这些语言及其ISO 649-3代码的更多详细信息。

点击切换
  • afr
  • amh
  • ara
  • asm
  • ast
  • azj-script_latin
  • bel
  • ben
  • bos
  • bul
  • cat
  • ceb
  • ces
  • ckb
  • cmn-script_simplified
  • cym
  • dan
  • deu
  • ell
  • eng
  • est
  • fas
  • fin
  • fra
  • ful
  • gle
  • glg
  • guj
  • hau
  • heb
  • hin
  • hrv
  • hun
  • hye
  • ibo
  • ind
  • isl
  • ita
  • jav
  • jpn
  • kam
  • kan
  • kat
  • kaz
  • kea
  • khm
  • kir
  • kor
  • lao
  • lav
  • lin
  • lit
  • ltz
  • lug
  • luo
  • mal
  • mar
  • mkd
  • mlt
  • mon
  • mri
  • mya
  • nld
  • nob
  • npi
  • nso
  • nya
  • oci
  • orm
  • ory
  • pan
  • pol
  • por
  • pus
  • ron
  • rus
  • slk
  • slv
  • sna
  • snd
  • som
  • spa
  • srp-script_latin
  • swe
  • swh
  • tam
  • tel
  • tgk
  • tgl
  • tha
  • tur
  • ukr
  • umb
  • urd-script_arabic
  • uzb-script_latin
  • vie
  • wol
  • xho
  • yor
  • yue-script_traditional
  • zlm
  • zul

模型详情

  • 开发者: Vineel Pratap 等。

  • 模型类型:多语种自动语音识别模型

  • 语言:100多种语言,请参阅支持的语言

  • 许可证:CC-BY-NC 4.0 许可证

  • 参数数目:10亿个

  • 音频采样率:16,000 kHz

  • 引用:

    @article{pratap2023mms,
      title={Scaling Speech Technology to 1,000+ Languages},
      author={Vineel Pratap and Andros Tjandra and Bowen Shi and Paden Tomasello and Arun Babu and Sayani Kundu and Ali Elkahky and Zhaoheng Ni and Apoorv Vyas and Maryam Fazel-Zarandi and Alexei Baevski and Yossi Adi and Xiaohui Zhang and Wei-Ning Hsu and Alexis Conneau and Michael Auli},
    journal={arXiv},
    year={2023}
    }
    

其他链接