模型简介
模型特点
模型能力
使用案例
🚀 大规模多语言语音(MMS) - 微调后的自动语音识别 - FL102
本检查点是一个针对多语言自动语音识别(ASR)进行微调的模型,是Facebook 大规模多语言语音项目 的一部分。该检查点基于 Wav2Vec2架构,并利用适配器模型来转录100多种语言。此检查点包含 10亿个参数,是在 Fleurs 的102种语言上,从 facebook/mms-1b 微调而来。
🚀 快速开始
安装依赖库
本MMS检查点可与 Transformers 配合使用,以转录1107种不同语言的音频。首先,我们需要安装 transformers
和其他一些库:
pip install torch accelerate torchaudio datasets
pip install --upgrade transformers
⚠️ 重要提示
要使用MMS,你需要至少安装
transformers >= 4.30
版本。如果 PyPI 上还没有4.30
版本,请确保从源代码安装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", "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)
处理音频数据并转录
现在,我们处理音频数据,将处理后的音频数据传入模型,并转录模型输出,就像我们通常对 facebook/wav2vec2-base-960h 等Wav2Vec2模型所做的那样。
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()
更多详细信息,请查看 官方文档。
✨ 主要特性
- 多语言支持:该模型支持102种语言,可广泛应用于不同语言的语音识别场景。
- 基于Wav2Vec2架构:利用先进的Wav2Vec2架构,结合适配器模型,实现高效的多语言转录。
📦 安装指南
pip install torch accelerate torchaudio datasets
pip install --upgrade transformers
若 transformers
版本未达到 4.30
,可从源代码安装:
pip install git+https://github.com/huggingface/transformers.git
💻 使用示例
基础用法
from datasets import load_dataset, Audio
from transformers import Wav2Vec2ForCTC, AutoProcessor
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-1b-fl102"
processor = AutoProcessor.from_pretrained(model_id)
model = Wav2Vec2ForCTC.from_pretrained(model_id)
# 处理音频数据并转录
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)
print(transcription)
高级用法
# 加载法语音频样本
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"]
# 切换语言适配器
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)
print(transcription)
📚 详细文档
你可以在以下链接找到更多详细信息:
🔧 技术细节
模型信息
属性 | 详情 |
---|---|
模型类型 | 多语言自动语音识别模型 |
开发者 | Vineel Pratap等人 |
支持语言 | 100多种语言,见 支持的语言 |
许可证 | CC - BY - NC 4.0许可证 |
参数数量 | 10亿 |
音频采样率 | 16000 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} } |
支持的语言
此模型支持102种语言。点击以下内容可展开查看此检查点支持的所有语言的 ISO 639 - 3代码。你可以在 MMS语言覆盖概述 中找到有关这些语言及其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
📄 许可证
本模型使用CC - BY - NC 4.0许可证。



