模型概述
模型特點
模型能力
使用案例
🚀 大規模多語言語音(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許可證。









