モデル概要
モデル特徴
モデル能力
使用事例
🚀 SeamlessM4T v2
SeamlessM4T は、約100言語の音声とテキストに対して高品質な翻訳を提供する、包括的な多言語・多モーダル機械翻訳モデルです。
SeamlessM4Tモデルは以下のタスクをサポートしています。
- 音声から音声への翻訳 (S2ST)
- 音声からテキストへの翻訳 (S2TT)
- テキストから音声への翻訳 (T2ST)
- テキストからテキストへの翻訳 (T2TT)
- 自動音声認識 (ASR)
SeamlessM4Tモデルは以下をサポートしています。
- 🎤 音声入力には101言語。
- 💬 テキスト入出力には96言語。
- 🔊 音声出力には35言語。
🌟 私たちは、新しい UnitY2 アーキテクチャを搭載したSeamlessM4T v2をリリースしています。 この新しいモデルは、音声生成タスクにおいてSeamlessM4T v1よりも品質と推論速度が向上しています。
SeamlessM4Tのv2バージョンは、新しい UnitY2 アーキテクチャをマルチタスクに適応させたものです。 Unity2 は、階層的な文字からユニットへのアップサンプリングと非自己回帰的なテキストからユニットへのデコードにより、SeamlessM4T v1よりも品質と推論速度が大幅に向上しています。
SeamlessM4T v2は 🤗 Transformers でもサポートされています。詳細は以下の専用セクションをご覧ください。
📦 SeamlessM4T モデル
モデル名 | パラメータ数 | チェックポイント | 評価指標 |
---|---|---|---|
SeamlessM4T-Large v2 | 23億 | チェックポイント | 評価指標 |
SeamlessM4T-Large (v1) | 23億 | チェックポイント | 評価指標 |
SeamlessM4T-Medium (v1) | 12億 | チェックポイント | 評価指標 |
上記の metrics
ファイルには、論文で報告されているseamlessM4T-LargeとSeamlessM4T-Mediumの広範な評価結果(平均値)が含まれています。
FLEURS、CoVoST2、CVSS-Cの評価データIDはこちらで確認できます。
🔧 SeamlessM4Tモデルの評価
私たちの結果を再現するか、独自のテストセットで同じ評価指標を使用して評価するには、こちらの評価READMEを参照してください。
🔧 SeamlessM4Tモデルの微調整
微調整については、こちらの微調整READMEを参照してください。
💻 Transformersの使用方法
SeamlessM4Tは 🤗 Transformers ライブラリで利用可能で、最小限の依存関係で使用できます。始めるには以下の手順を実行します。
- まず、mainから 🤗 Transformersライブラリ と sentencepiece をインストールします。
pip install git+https://github.com/huggingface/transformers.git sentencepiece
- 以下のPythonコードを実行して音声サンプルを生成します。ここではターゲット言語をロシア語に設定しています。
from transformers import AutoProcessor, SeamlessM4Tv2Model
import torchaudio
processor = AutoProcessor.from_pretrained("facebook/seamless-m4t-v2-large")
model = SeamlessM4Tv2Model.from_pretrained("facebook/seamless-m4t-v2-large")
# テキストから
text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt")
audio_array_from_text = model.generate(**text_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()
# 音声から
audio, orig_freq = torchaudio.load("https://www2.cs.uic.edu/~i101/SoundFiles/preamble10.wav")
audio = torchaudio.functional.resample(audio, orig_freq=orig_freq, new_freq=16_000) # 16 kHzの波形配列である必要があります
audio_inputs = processor(audios=audio, return_tensors="pt")
audio_array_from_audio = model.generate(**audio_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()
- ipynbノートブックで音声サンプルを聴くには、以下のコードを実行します。
from IPython.display import Audio
sample_rate = model.sampling_rate
Audio(audio_array_from_text, rate=sample_rate)
# Audio(audio_array_from_audio, rate=sample_rate)
または、サードパーティのライブラリ(例:scipy
)を使用して .wav
ファイルとして保存することもできます。
import scipy
sample_rate = model.sampling_rate
scipy.io.wavfile.write("out_from_text.wav", rate=sample_rate, data=audio_array_from_text)
# scipy.io.wavfile.write("out_from_audio.wav", rate=sample_rate, data=audio_array_from_audio)
🤗 Transformers ライブラリを使用してSeamlessM4Tモデルを推論する詳細については、SeamlessM4T v2 ドキュメント またはこの 実践的な Google Colab を参照してください。
🗣️ サポートされている言語
以下に、SeamlessM4T-large (v1/v2) でサポートされている言語を示します。
source
列は、言語がソース音声 (Sp
) および/またはソーステキスト (Tx
) としてサポートされているかを指定します。
target
列は、言語がターゲット音声 (Sp
) および/またはターゲットテキスト (Tx
) としてサポートされているかを指定します。
コード | 言語 | 文字体系 | ソース | ターゲット |
---|---|---|---|---|
afr | アフリカーンス語 | ラテン文字 | Sp, Tx | Tx |
amh | アムハラ語 | エチオピア文字 | Sp, Tx | Tx |
arb | 現代標準アラビア語 | アラビア文字 | Sp, Tx | Sp, Tx |
ary | モロッコアラビア語 | アラビア文字 | Sp, Tx | Tx |
arz | エジプトアラビア語 | アラビア文字 | Sp, Tx | Tx |
asm | アッサム語 | ベンガル文字 | Sp, Tx | Tx |
ast | アストゥリアス語 | ラテン文字 | Sp | -- |
azj | 北アゼルバイジャン語 | ラテン文字 | Sp, Tx | Tx |
bel | ベラルーシ語 | キリル文字 | Sp, Tx | Tx |
ben | ベンガル語 | ベンガル文字 | Sp, Tx | Sp, Tx |
bos | ボスニア語 | ラテン文字 | Sp, Tx | Tx |
bul | ブルガリア語 | キリル文字 | Sp, Tx | Tx |
cat | カタルーニャ語 | ラテン文字 | Sp, Tx | Sp, Tx |
ceb | セブアノ語 | ラテン文字 | Sp, Tx | Tx |
ces | チェコ語 | ラテン文字 | Sp, Tx | Sp, Tx |
ckb | 中央クルド語 | アラビア文字 | Sp, Tx | Tx |
cmn | 中国語(北京語) | 簡体字 | Sp, Tx | Sp, Tx |
cmn_Hant | 中国語(北京語) | 繁体字 | Sp, Tx | Sp, Tx |
cym | ウェールズ語 | ラテン文字 | Sp, Tx | Sp, Tx |
dan | デンマーク語 | ラテン文字 | Sp, Tx | Sp, Tx |
deu | ドイツ語 | ラテン文字 | Sp, Tx | Sp, Tx |
ell | ギリシャ語 | ギリシャ文字 | Sp, Tx | Tx |
eng | 英語 | ラテン文字 | Sp, Tx | Sp, Tx |
est | エストニア語 | ラテン文字 | Sp, Tx | Sp, Tx |
eus | バスク語 | ラテン文字 | Sp, Tx | Tx |
fin | フィンランド語 | ラテン文字 | Sp, Tx | Sp, Tx |
fra | フランス語 | ラテン文字 | Sp, Tx | Sp, Tx |
fuv | ナイジェリアフルフルデ語 | ラテン文字 | Sp, Tx | Tx |
gaz | 中西部オロモ語 | ラテン文字 | Sp, Tx | Tx |
gle | アイルランド語 | ラテン文字 | Sp, Tx | Tx |
glg | ガリシア語 | ラテン文字 | Sp, Tx | Tx |
guj | グジャラート語 | グジャラート文字 | Sp, Tx | Tx |
heb | ヘブライ語 | ヘブライ文字 | Sp, Tx | Tx |
hin | ヒンディー語 | デーヴァナーガリー文字 | Sp, Tx | Sp, Tx |
hrv | クロアチア語 | ラテン文字 | Sp, Tx | Tx |
hun | ハンガリー語 | ラテン文字 | Sp, Tx | Tx |
hye | アルメニア語 | アルメニア文字 | Sp, Tx | Tx |
ibo | イボ語 | ラテン文字 | Sp, Tx | Tx |
ind | インドネシア語 | ラテン文字 | Sp, Tx | Sp, Tx |
isl | アイスランド語 | ラテン文字 | Sp, Tx | Tx |
ita | イタリア語 | ラテン文字 | Sp, Tx | Sp, Tx |
jav | ジャワ語 | ラテン文字 | Sp, Tx | Tx |
jpn | 日本語 | 日本語文字 | Sp, Tx | Sp, Tx |
kam | カンバ語 | ラテン文字 | Sp | -- |
kan | カンナダ語 | カンナダ文字 | Sp, Tx | Tx |
kat | グルジア語 | グルジア文字 | Sp, Tx | Tx |
kaz | カザフ語 | キリル文字 | Sp, Tx | Tx |
kea | カブベルディアヌ語 | ラテン文字 | Sp | -- |
khk | ハルハモンゴル語 | キリル文字 | Sp, Tx | Tx |
khm | クメール語 | クメール文字 | Sp, Tx | Tx |
kir | キルギス語 | キリル文字 | Sp, Tx | Tx |
kor | 韓国語 | ハングル文字 | Sp, Tx | Sp, Tx |
lao | ラオス語 | ラオス文字 | Sp, Tx | Tx |
lit | リトアニア語 | ラテン文字 | Sp, Tx | Tx |
ltz | ルクセンブルク語 | ラテン文字 | Sp | -- |
lug | ガンダ語 | ラテン文字 | Sp, Tx | Tx |
luo | ロウ語 | ラテン文字 | Sp, Tx | Tx |
lvs | 標準ラトビア語 | ラテン文字 | Sp, Tx | Tx |
mai | マイティリー語 | デーヴァナーガリー文字 | Sp, Tx | Tx |
mal | マラヤーラム語 | マラヤーラム文字 | Sp, Tx | Tx |
mar | マラーティー語 | デーヴァナーガリー文字 | Sp, Tx | Tx |
mkd | マケドニア語 | キリル文字 | Sp, Tx | Tx |
mlt | マルタ語 | ラテン文字 | Sp, Tx | Sp, Tx |
mni | メイティ語 | ベンガル文字 | Sp, Tx | Tx |
mya | ビルマ語 | ビルマ文字 | Sp, Tx | Tx |
nld | オランダ語 | ラテン文字 | Sp, Tx | Sp, Tx |
nno | ノルウェー語(ニーノシュク) | ラテン文字 | Sp, Tx | Tx |
nob | ノルウェー語(ボクモール) | ラテン文字 | Sp, Tx | Tx |
npi | ネパール語 | デーヴァナーガリー文字 | Sp, Tx | Tx |
nya | ニャンジャ語 | ラテン文字 | Sp, Tx | Tx |
oci | オック語 | ラテン文字 | Sp | -- |
ory | オディア語 | オリヤ文字 | Sp, Tx | Tx |
pan | パンジャーブ語 | グルムキー文字 | Sp, Tx | Tx |
pbt | 南パシュトゥー語 | アラビア文字 | Sp, Tx | Tx |
pes | 西ペルシア語 | アラビア文字 | Sp, Tx | Sp, Tx |
pol | ポーランド語 | ラテン文字 | Sp, Tx | Sp, Tx |
por | ポルトガル語 | ラテン文字 | Sp, Tx | Sp, Tx |
ron | ルーマニア語 | ラテン文字 | Sp, Tx | Sp, Tx |
rus | ロシア語 | キリル文字 | Sp, Tx | Sp, Tx |
slk | スロバキア語 | ラテン文字 | Sp, Tx | Sp, Tx |
slv | スロベニア語 | ラテン文字 | Sp, Tx | Tx |
sna | ショナ語 | ラテン文字 | Sp, Tx | Tx |
snd | シンド語 | アラビア文字 | Sp, Tx | Tx |
som | ソマリ語 | ラテン文字 | Sp, Tx | Tx |
spa | スペイン語 | ラテン文字 | Sp, Tx | Sp, Tx |
srp | セルビア語 | キリル文字 | Sp, Tx | Tx |
swe | スウェーデン語 | ラテン文字 | Sp, Tx | Sp, Tx |
swh | スワヒリ語 | ラテン文字 | Sp, Tx | Sp, Tx |
tam | タミル語 | タミル文字 | Sp, Tx | Tx |
tel | テルグ語 | テルグ文字 | Sp, Tx | Sp, Tx |
tgk | タジク語 | キリル文字 | Sp, Tx | Tx |
tgl | タガログ語 | ラテン文字 | Sp, Tx | Sp, Tx |
tha | タイ語 | タイ文字 | Sp, Tx | Sp, Tx |
tur | トルコ語 | ラテン文字 | Sp, Tx | Sp, Tx |
ukr | ウクライナ語 | キリル文字 | Sp, Tx | Sp, Tx |
urd | ウルドゥー語 | アラビア文字 | Sp, Tx | Sp, Tx |
uzn | 北ウズベク語 | ラテン文字 | Sp, Tx | Sp, Tx |
vie | ベトナム語 | ラテン文字 | Sp, Tx | Sp, Tx |
xho | コーサ語 | ラテン文字 | Sp | -- |
yor | ヨルバ語 | ラテン文字 | Sp, Tx | Tx |
yue | 広東語 | 繁体字 | Sp, Tx | Tx |
zlm | 口語マレー語 | ラテン文字 | Sp | -- |
zsm | 標準マレー語 | ラテン文字 | Tx | Tx |
zul | ズールー語 | ラテン文字 | Sp, Tx | Tx |
なお、seamlessM4T-mediumはテキストモダリティで200言語をサポートしており、NLLB-200に基づいています(詳細なリストはアセットカードを参照)。
📄 引用
SeamlessM4T v2について引用する場合は、以下を使用してください。
@inproceedings{seamless2023,
title="Seamless: Multilingual Expressive and Streaming Speech Translation",
author="{Seamless Communication}, Lo{\"i}c Barrault, Yu-An Chung, Mariano Coria Meglioli, David Dale, Ning Dong, Mark Duppenthaler, Paul-Ambroise Duquenne, Brian Ellis, Hady Elsahar, Justin Haaheim, John Hoffman, Min-Jae Hwang, Hirofumi Inaguma, Christopher Klaiber, Ilia Kulikov, Pengwei Li, Daniel Licht, Jean Maillard, Ruslan Mavlyutov, Alice Rakotoarison, Kaushik Ram Sadagopan, Abinesh Ramakrishnan, Tuan Tran, Guillaume Wenzek, Yilin Yang, Ethan Ye, Ivan Evtimov, Pierre Fernandez, Cynthia Gao, Prangthip Hansanti, Elahe Kalbassi, Amanda Kallet, Artyom Kozhevnikov, Gabriel Mejia, Robin San Roman, Christophe Touret, Corinne Wong, Carleigh Wood, Bokai Yu, Pierre Andrews, Can Balioglu, Peng-Jen Chen, Marta R. Costa-juss{\`a}, Maha Elbayad, Hongyu Gong, Francisco Guzm{\'a}n, Kevin Heffernan, Somya Jain, Justine Kao, Ann Lee, Xutai Ma, Alex Mourachko, Benjamin Peloquin, Juan Pino, Sravya Popuri, Christophe Ropers, Safiyyah Saleem, Holger Schwenk, Anna Sun, Paden Tomasello, Changhan Wang, Jeff Wang, Skyler Wang, Mary Williamson",
journal={ArXiv},
year={2023}
}











