🚀 大規模多言語音声 (MMS) - ファインチューニング済み自動音声認識 - FL102
このチェックポイントは、多言語の自動音声認識(ASR)用にファインチューニングされたモデルであり、Facebookの大規模多言語音声プロジェクトの一部です。このチェックポイントはWav2Vec2アーキテクチャに基づいており、アダプターモデルを使用して100以上の言語を文字起こしします。このチェックポイントは10億のパラメータから構成されており、facebook/mms - 1bをFleursの102言語でファインチューニングしたものです。
📚 目次
💻 使用例
このMMSチェックポイントは、Transformersを使って1107種類の異なる言語の音声を文字起こしするために使用できます。簡単な例を見てみましょう。
まず、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", "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)
ここで、同じモデルをメモリに保持したまま、便利な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)
同じように、他のすべてのサポートされる言語についても言語を切り替えることができます。詳細については、以下を参照してください。
processor.tokenizer.vocab.keys()
詳細については、公式ドキュメントを参照してください。
✨ サポートされる言語
このモデルは102の言語をサポートしています。以下をクリックすると、このチェックポイントがサポートするすべての言語をISO 639 - 3コードで表示できます。言語とそのISO 649 - 3コードの詳細は、MMS言語カバレッジ概要で確認できます。
クリックして表示
- 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
🔧 モデルの詳細
属性 |
詳情 |
開発者 |
Vineel Pratapら |
モデルタイプ |
多言語自動音声認識モデル |
言語 |
100以上の言語、サポートされる言語を参照 |
ライセンス |
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} } |
📄 追加リンク