模型简介
模型特点
模型能力
使用案例
🚀 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}
}











