模型简介
模型特点
模型能力
使用案例
🚀 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 库的支持,更多信息请查看 下面的专用部分。
✨ 主要特性
支持语言众多
支持近 100 种语言的语音和文本翻译,包括语音输入 101 种语言、文本输入/输出 96 种语言、语音输出 35 种语言。
多任务支持
支持语音到语音、语音到文本、文本到语音、文本到文本翻译以及自动语音识别等多种任务。
架构升级
v2 版本采用全新 UnitY2 架构,在质量和推理速度上都有提升。
库支持
得到 🤗 Transformers 库的支持,使用方便。
📦 安装指南
安装依赖库
首先,从主分支安装 🤗 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.config.sampling_rate
Audio(audio_array_from_text, rate=sample_rate)
# Audio(audio_array_from_audio, rate=sample_rate)
使用第三方库将音频保存为 .wav
文件
import scipy
sample_rate = model.config.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)
📚 详细文档
模型信息
属性 | 详情 |
---|---|
模型类型 | 一体化多语言多模态机器翻译模型 |
支持任务 | 语音到语音翻译(S2ST)、语音到文本翻译(S2TT)、文本到语音翻译(T2ST)、文本到文本翻译(T2TT)、自动语音识别(ASR) |
支持语言 | 语音输入 101 种语言、文本输入/输出 96 种语言、语音输出 35 种语言 |
架构版本 | v2 采用 UnitY2 架构 |
库支持 | 🤗 Transformers 库 |
模型评估
若要复现我们的结果或使用相同指标在你自己的测试集上进行评估,请查看 评估文档。
模型微调
请查看 微调文档。
支持的语言
以下是 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 是多任务适配的 UnitY2 架构,该架构具有分层字符到单元上采样和非自回归文本到单元解码功能,在质量和推理速度上都比 SeamlessM4T v1 有显著提升。
📄 许可证
本项目采用 CC BY - NC 4.0 许可证。
📖 引用
如需引用 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}
}











