🚀 大規模多言語音声 (MMS) - 微調整された言語識別モデル
このチェックポイントは、音声言語識別 (LID) 用に微調整されたモデルであり、Facebookの大規模多言語音声プロジェクトの一部です。このチェックポイントはWav2Vec2アーキテクチャに基づいており、生の音声入力を126の出力クラス(各クラスは言語を表す)の確率分布に分類します。このチェックポイントは10億のパラメータから構成され、126の言語でfacebook/mms - 1bから微調整されています。
🚀 クイックスタート
この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
を介していくつかの音声サンプルをロードします。音声データが16000kHzにサンプリングされていることを確認してください。
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]
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]
チェックポイントがサポートするすべての言語を見るには、以下のように言語IDを出力することができます。
processor.id2label.values()
アーキテクチャの詳細については、公式ドキュメントを参照してください。
💻 使用例
基本的な使用法
pip install torch accelerate torchaudio datasets
pip install --upgrade transformers
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"]
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)
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]
サポートされる言語
このモデルは126の言語をサポートしています。以下をクリックすると、このチェックポイントがサポートするすべての言語を[ISO 639 - 3コード](https://en.wikipedia.org/wiki/ISO_639 - 3)で表示できます。
言語とそのISO 649 - 3コードの詳細は、MMS言語カバレッジ概要で見ることができます。
クリックして切り替える
- 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億 |
音声サンプリングレート |
16,000kHz |
引用 |
@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} } |
🔗 追加リンク