模型简介
模型特点
模型能力
使用案例
🚀 大规模多语言语音(MMS) - 微调后的语言识别模型
本模型是经过微调的语音语言识别(LID)模型,是Facebook 大规模多语言语音项目 的一部分。该模型基于 Wav2Vec2架构,可将原始音频输入分类为126种输出类别的概率分布(每个类别代表一种语言)。此模型包含 10亿个参数,是在 facebook/mms - 1b 的基础上针对126种语言进行微调得到的。
🚀 快速开始
本MMS模型可与 Transformers 库配合使用,以识别音频中的口语语言,它能够识别 以下126种语言。
让我们来看一个简单的示例。
首先,我们安装 transformers
和其他一些库:
pip install torch accelerate torchaudio datasets
pip install --upgrade transformers
⚠️ 重要提示
要使用MMS,你至少需要安装
transformers >= 4.30
版本。如果4.30
版本尚未在 PyPI 上发布,请确保从源代码安装transformers
:
pip install git+https://github.com/huggingface/transformers.git
接下来,我们通过 datasets
加载一些音频样本。请确保音频数据的采样率为16000 kHz。
from datasets import load_dataset, Audio
# 英语
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"]
# 阿拉伯语
stream_data = load_dataset("mozilla-foundation/common_voice_13_0", "ar", split="test", streaming=True)
stream_data = stream_data.cast_column("audio", Audio(sampling_rate=16000))
ar_sample = next(iter(stream_data))["audio"]["array"]
然后,我们加载模型和处理器:
from transformers import Wav2Vec2ForSequenceClassification, AutoFeatureExtractor
import torch
model_id = "facebook/mms-lid-126"
processor = AutoFeatureExtractor.from_pretrained(model_id)
model = Wav2Vec2ForSequenceClassification.from_pretrained(model_id)
现在,我们处理音频数据,并将处理后的音频数据传入模型以将其分类为某种语言,就像我们通常对Wav2Vec2音频分类模型(如 [ehcalabres/wav2vec2 - lg - xlsr - en - speech - emotion - recognition](https://huggingface.co/harshit345/xlsr - wav2vec - speech - emotion - recognition))所做的那样:
# 英语
inputs = processor(en_sample, sampling_rate=16_000, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs).logits
lang_id = torch.argmax(outputs, dim=-1)[0].item()
detected_lang = model.config.id2label[lang_id]
# 'eng'
# 阿拉伯语
inputs = processor(ar_sample, sampling_rate=16_000, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs).logits
lang_id = torch.argmax(outputs, dim=-1)[0].item()
detected_lang = model.config.id2label[lang_id]
# 'ara'
要查看模型支持的所有语言,你可以按如下方式打印语言ID:
processor.id2label.values()
有关该架构的更多详细信息,请参阅 官方文档。
✨ 主要特性
- 支持126种语言的语音语言识别。
- 基于Wav2Vec2架构,具有较高的识别准确性。
- 可与Transformers库轻松集成,方便使用。
💻 使用示例
基础用法
from datasets import load_dataset, Audio
from transformers import Wav2Vec2ForSequenceClassification, AutoFeatureExtractor
import torch
# 加载英语音频样本
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"]
# 加载模型和处理器
model_id = "facebook/mms-lid-126"
processor = AutoFeatureExtractor.from_pretrained(model_id)
model = Wav2Vec2ForSequenceClassification.from_pretrained(model_id)
# 处理音频数据
inputs = processor(en_sample, sampling_rate=16_000, return_tensors="pt")
# 进行语言识别
with torch.no_grad():
outputs = model(**inputs).logits
lang_id = torch.argmax(outputs, dim=-1)[0].item()
detected_lang = model.config.id2label[lang_id]
print(detected_lang)
高级用法
# 可以通过循环处理多个音频样本
from datasets import load_dataset, Audio
from transformers import Wav2Vec2ForSequenceClassification, AutoFeatureExtractor
import torch
model_id = "facebook/mms-lid-126"
processor = AutoFeatureExtractor.from_pretrained(model_id)
model = Wav2Vec2ForSequenceClassification.from_pretrained(model_id)
languages = ["en", "ar"]
for lang in languages:
stream_data = load_dataset("mozilla-foundation/common_voice_13_0", lang, split="test", streaming=True)
stream_data = stream_data.cast_column("audio", Audio(sampling_rate=16000))
sample = next(iter(stream_data))["audio"]["array"]
inputs = processor(sample, sampling_rate=16_000, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs).logits
lang_id = torch.argmax(outputs, dim=-1)[0].item()
detected_lang = model.config.id2label[lang_id]
print(f"Detected language for {lang}: {detected_lang}")
📚 详细文档
支持的语言
本模型支持126种语言。点击以下内容可展开查看该模型支持的所有 [ISO 639 - 3代码](https://en.wikipedia.org/wiki/ISO_639 - 3) 语言。你可以在 MMS语言覆盖概述 中找到有关这些语言及其ISO 649 - 3代码的更多详细信息。
点击展开
- ara
- cmn
- eng
- spa
- fra
- mlg
- swe
- por
- vie
- ful
- sun
- asm
- ben
- zlm
- kor
- ind
- hin
- tuk
- urd
- aze
- slv
- mon
- hau
- tel
- swh
- bod
- rus
- tur
- heb
- mar
- som
- tgl
- tat
- tha
- cat
- ron
- mal
- bel
- pol
- yor
- nld
- bul
- hat
- afr
- isl
- amh
- tam
- hun
- hrv
- lit
- cym
- fas
- mkd
- ell
- bos
- deu
- sqi
- jav
- nob
- uzb
- snd
- lat
- nya
- grn
- mya
- orm
- lin
- hye
- yue
- pan
- jpn
- kaz
- npi
- kat
- guj
- kan
- tgk
- ukr
- ces
- lav
- bak
- khm
- fao
- glg
- ltz
- lao
- mlt
- sin
- sna
- ita
- srp
- mri
- nno
- pus
- eus
- ory
- lug
- bre
- luo
- slk
- fin
- dan
- yid
- est
- ceb
- war
- san
- kir
- oci
- wol
- haw
- kam
- umb
- xho
- epo
- zul
- ibo
- abk
- ckb
- nso
- gle
- kea
- ast
- sco
- glv
- ina
模型详情
属性 | 详情 |
---|---|
开发者 | Vineel Pratap等人 |
模型类型 | 多语言自动语音识别模型 |
支持语言 | 126种语言,见 支持的语言 |
许可证 | CC - BY - NC 4.0许可证 |
参数数量 | 10亿 |
音频采样率 | 16000 kHz |
引用方式 | @article{pratap2023mms, |
额外链接
📄 许可证
本模型采用CC - BY - NC 4.0许可证。









