模型概述
模型特點
模型能力
使用案例
🚀 SeamlessM4T v2
SeamlessM4T 是我們的基礎一體化大規模多語言和多模態機器翻譯模型,可為近 100 種語言的語音和文本提供高質量翻譯。
SeamlessM4T 模型支持以下任務:
- 語音到語音翻譯(S2ST)
- 語音到文本翻譯(S2TT)
- 文本到語音翻譯(T2ST)
- 文本到文本翻譯(T2TT)
- 自動語音識別(ASR)
SeamlessM4T 模型支持:
- 🎤 101 種語音輸入語言。
- 💬 96 種文本輸入/輸出語言。
- 🔊 35 種語音輸出語言。
🌟 我們發佈了 SeamlessM4T v2,這是一個採用了全新 UnitY2 架構的更新版本。該新模型在語音生成任務的質量和推理速度上均優於 SeamlessM4T v1。
SeamlessM4T v2 是我們全新 UnitY2 架構的多任務適配版本。Unity2 憑藉其分層字符到單元的上採樣和非自迴歸文本到單元的解碼,在質量和推理速度上顯著優於 SeamlessM4T v1。
SeamlessM4T v2 也得到了 🤗 Transformers 庫的支持,更多信息請見 下方專用章節。
🚀 快速開始
SeamlessM4T 是一款強大的多語言多模態機器翻譯模型,支持多種翻譯任務和近 100 種語言。以下將為你介紹其使用的基本步驟和相關信息。
✨ 主要特性
- 多任務支持:支持語音到語音翻譯、語音到文本翻譯、文本到語音翻譯、文本到文本翻譯以及自動語音識別等多種任務。
- 廣泛的語言支持:支持 101 種語音輸入語言、96 種文本輸入/輸出語言和 35 種語音輸出語言。
- 高質量翻譯:採用全新 UnitY2 架構,在語音生成任務的質量和推理速度上均有提升。
📦 安裝指南
安裝依賴庫
首先,你需要安裝 🤗 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)
📚 詳細文檔
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 庫使用
有關使用 🤗 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(完整列表見 資產卡片)。
📄 許可證
本項目採用 CC - BY - NC - 4.0 許可證。
🔧 技術細節
模型指標
屬性 | 詳情 |
---|---|
評估指標 | BLEU、WER、CHRF |
推理功能 | 不支持 |
標籤 | 自動語音識別、音頻到音頻、文本到語音 |
庫名稱 | seamless_communication |
引用信息
如需引用 SeamlessM4T v2,請使用以下 BibTeX 格式:
@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}
}











