英文

多语言语音识别(MMS)- 细调ASR - L1107

此检查点是用于多语言自动语音识别(ASR)的模型,并且是Facebook的 Massive Multilingual Speech project 项目的一部分。该检查点基于 Wav2Vec2 architecture ,并利用了适配器模型来转录1000多种语言。该检查点包含10亿个参数,并经过从 facebook/mms-1b 细调的1107种语言。

目录

  • 示例
  • 支持的语言
  • 模型详细信息
  • 其他链接

示例

可以使用此MMS检查点与 Transformers 一起用于转录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-l1107"

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'

现在,我们可以保留同一个模型在内存中,并通过调用方便的 load_adapter() 函数和 set_target_lang() 函数切换语言适配器。我们将目标语言作为输入传递 - "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

支持的语言

该模型支持1107种语言。在以下中取消勾选以在 ISO 639-3 code 中切换此检查点的所有支持语言。您可以在 MMS Language Coverage Overview 中找到有关语言及其ISO 649-3代码的更多详细信息。

点击以切换
  • abi
  • abp
  • aca
  • acd
  • ace
  • acf
  • ach
  • acn
  • acr
  • acu
  • ade
  • adh
  • adj
  • adx
  • aeu
  • agd
  • agg
  • agn
  • agr
  • agu
  • agx
  • aha
  • ahk
  • aia
  • aka
  • akb
  • ake
  • akp
  • alj
  • alp
  • alt
  • alz
  • ame
  • amf
  • amh
  • ami
  • amk
  • ann
  • any
  • aoz
  • apb
  • apr
  • ara
  • arl
  • asa
  • asg
  • asm
  • ata
  • atb
  • atg
  • ati
  • atq
  • ava
  • avn
  • avu
  • awa
  • awb
  • ayo
  • ayr
  • ayz
  • azb
  • azg
  • azj-script_cyrillic
  • azj-script_latin
  • azz
  • bak
  • bam
  • ban
  • bao
  • bav
  • bba
  • bbb
  • bbc
  • bbo
  • bcc-script_arabic
  • bcc-script_latin
  • bcl
  • bcw
  • bdg
  • bdh
  • bdq
  • bdu
  • bdv
  • beh
  • bem
  • ben
  • bep
  • bex
  • bfa
  • bfo
  • bfy
  • bfz
  • bgc
  • bgq
  • bgr
  • bgt
  • bgw
  • bha
  • bht
  • bhz
  • bib
  • bim
  • bis
  • biv
  • bjr
  • bjv
  • bjw
  • bjz
  • bkd
  • bkv
  • blh
  • blt
  • blx
  • blz
  • bmq
  • bmr
  • bmu
  • bmv
  • bng
  • bno
  • bnp
  • boa
  • bod
  • boj
  • bom
  • bor
  • bov
  • box
  • bpr
  • bps
  • bqc
  • bqi
  • bqj
  • bqp
  • bru
  • bsc
  • bsq
  • bss
  • btd
  • bts
  • btt
  • btx
  • bud
  • bul
  • bus
  • bvc
  • bvz
  • bwq
  • bwu
  • byr
  • bzh
  • bzi
  • bzj
  • caa
  • cab
  • cac-dialect_sanmateoixtatan
  • cac-dialect_sansebastiancoatan
  • cak-dialect_central
  • cak-dialect_santamariadejesus
  • cak-dialect_santodomingoxenacoj
  • cak-dialect_southcentral
  • cak-dialect_western
  • cak-dialect_yepocapa
  • cap
  • car
  • cas
  • cat
  • cax
  • cbc
  • cbi
  • cbr
  • cbs
  • cbt
  • cbu
  • cbv
  • cce
  • cco
  • cdj
  • ceb
  • ceg
  • cek
  • cfm
  • cgc
  • chf
  • chv
  • chz
  • cjo
  • cjp
  • cjs
  • cko
  • ckt
  • cla
  • cle
  • cly
  • cme
  • cmo-script_khmer
  • cmo-script_latin
  • cmr
  • cnh
  • cni
  • cnl
  • cnt
  • coe
  • cof
  • cok
  • con
  • cot
  • cou
  • cpa
  • cpb
  • cpu
  • crh
  • crk-script_latin
  • crk-script_syllabics
  • crn
  • crq
  • crs
  • crt
  • csk
  • cso
  • ctd
  • ctg
  • cto
  • ctu
  • cuc
  • cui
  • cuk
  • cul
  • cwa
  • cwe
  • cwt
  • cya
  • cym
  • daa
  • dah
  • dar
  • dbj
  • dbq
  • ddn
  • ded
  • des
  • deu
  • dga
  • dgi
  • dgk
  • dgo
  • dgr
  • dhi
  • did
  • dig
  • dik
  • dip
  • div
  • djk
  • dnj-dialect_blowowest
  • dnj-dialect_gweetaawueast
  • dnt
  • dnw
  • dop
  • dos
  • dsh
  • dso
  • dtp
  • dts
  • dug
  • dwr
  • dyi
  • dyo
  • dyu
  • dzo
  • eip
  • eka
  • ell
  • emp
  • enb
  • eng
  • enx
  • ese
  • ess
  • eus
  • evn
  • ewe
  • eza
  • fal
  • fao
  • far
  • fas
  • fij
  • fin
  • flr
  • fmu
  • fon
  • fra
  • frd
  • ful
  • gag-script_cyrillic
  • gag-script_latin
  • gai
  • gam
  • gau
  • gbi
  • gbk
  • gbm
  • gbo
  • gde
  • geb
  • gej
  • gil
  • gjn
  • gkn
  • gld
  • glk
  • gmv
  • gna