Project Icon

seamless_communication

AI多语言实时表情语音翻译系统

Seamless Communication项目开发了一系列AI模型,包括SeamlessM4T、SeamlessExpressive和SeamlessStreaming,支持近100种语言的多模态、实时和富有表现力的翻译。该项目通过开源工具和数据集,为研究人员和开发者提供了强大的序列建模组件,推动了更自然、真实的跨语言交流技术发展。

Seamless简介

Seamless是一系列人工智能模型,旨在实现跨语言更自然、更真实的交流。SeamlessM4T是一个大规模多语言多模态机器翻译模型,支持约100种语言。SeamlessM4T为SeamlessExpressive提供基础,后者是一个跨语言保留语调和声音风格元素的模型。SeamlessStreaming则是一个支持约100种语言的同声传译和流式自动语音识别模型。SeamlessExpressive和SeamlessStreaming被整合到Seamless中,形成一个具有多语言、实时和富有表现力翻译特征的统一模型。

链接

演示

论文

Seamless

EMMA

SONAR

博客

AI at Meta 博客

教程

在NeurIPS 2023 - Seamless EXPO上提供的详尽教程,是学习如何使用整套Seamless模型的一站式资源。请随意尝试该notebook。

SeamlessM4T

SeamlessM4T是我们基础的全能大规模多语言多模态机器翻译模型,为近100种语言的语音和文本提供高质量翻译。

SeamlessM4T模型支持以下任务:

  • 语音到语音翻译(S2ST)
  • 语音到文本翻译(S2TT)
  • 文本到语音翻译(T2ST)
  • 文本到文本翻译(T2TT)
  • 自动语音识别(ASR)

:star2: 我们正在发布SeamlessM4T v2,这是一个采用我们新颖的UnitY2架构的更新版本。这个新模型在质量和语音生成任务的推理延迟方面都优于SeamlessM4T v1。

要了解更多关于SeamlessM4T模型系列、每个模型使用的方法、它们的语言覆盖范围及其性能,请访问SeamlessM4T README🤗 模型卡片

[!注意] Seamless M4T也可在🤗 Transformers库中使用。访问此部分获取更多详情。

SeamlessExpressive

SeamlessExpressive是一个语音到语音翻译模型,它捕捉某些未被充分探索的语调方面,如语速和停顿,同时保留说话者的声音风格和高质量的内容翻译。

要了解更多关于SeamlessExpressive模型的信息,请访问SeamlessExpressive README🤗 模型卡片

SeamlessStreaming

SeamlessStreaming是一个流式翻译模型。该模型支持语音作为输入模态,语音/文本作为输出模态。

SeamlessStreaming模型支持以下任务:

  • 语音到语音翻译(S2ST)
  • 语音到文本翻译(S2TT)
  • 自动语音识别(ASR)

要了解更多关于SeamlessStreaming模型的信息,请访问SeamlessStreaming README🤗 模型卡片

Seamless

Seamless模型是用于富有表现力的流式语音到语音翻译的统一模型。

最新动态

  • [2023/12/18] 我们开源了基于Conformer的W2v-BERT 2.0语音编码器,如论文第3.2.1节所述,这是我们Seamless模型的核心。
  • [2023/12/14] 我们发布了在NeurIPS 2023上提供的Seamless教程

快速开始

安装

[!注意] 先决条件之一是fairseq2,它只为Linux x86-64和Apple silicon Mac计算机提供预构建包。此外,它依赖于libsndfile,可能尚未安装在您的机器上。如果遇到任何安装问题,请参阅其README获取进一步说明。

pip install .

[!注意] 转录推理音频以计算指标使用Whisper,它会自动安装。Whisper反过来需要在您的系统上安装命令行工具ffmpeg,可从大多数包管理器获得。

运行推理

SeamlessM4T推理

以下是从根目录使用CLI运行推理的示例。

S2ST任务:

m4t_predict <输入音频路径> --task s2st --tgt_lang <目标语言> --output_path <保存音频路径>

T2TT任务:

m4t_predict <输入文本> --task t2tt --tgt_lang <目标语言> --src_lang <源语言>

请参阅推理README获取如何运行推理的详细说明,以及源端和目标端支持的语音、文本模态的语言列表。

关于使用GGML原生运行S2TT/ASR(无需Python),请参阅unity.cpp部分

SeamlessExpressive推理

[!注意] 请查看部分了解如何下载模型。

以下是从根目录使用CLI运行推理的示例。

expressivity_predict <输入音频路径> --tgt_lang <目标语言> --model_name seamless_expressivity --vocoder_name vocoder_pretssel --output_path <保存音频路径>

SeamlessStreaming和Seamless推理

流式评估README提供了运行SeamlessStreaming和Seamless模型评估的详细说明。CLI有一个--no-scoring选项,可用于跳过评分部分,仅运行推理。

请查看推理README获取更多详情。

运行SeamlessStreaming演示

您可以复制SeamlessStreaming HF space来运行流式演示。

您也可以通过从这里克隆space在本地运行演示。有关安装的更多详情,请参阅SeamlessStreaming HF仓库的README

在本地运行SeamlessM4T和SeamlessExpressive Gradio演示

要在本地启动与我们在Hugging Face上托管的相同演示Space:

cd demo
pip install -r requirements.txt
python app.py

资源和使用

模型

SeamlessM4T 模型

模型名称参数数量检查点指标
SeamlessM4T-Large v223亿🤗 模型卡 - 检查点指标
SeamlessM4T-Large (v1)23亿🤗 模型卡 - 检查点指标
SeamlessM4T-Medium (v1)12亿🤗 模型卡 - 检查点指标

SeamlessExpressive 模型

🤗 模型卡

要访问和下载 SeamlessExpressive,请通过此申请表申请模型资源。获得批准后,您将收到一封包含每个模型资源下载链接的电子邮件。

请注意,SeamlessExpressive 是根据其自身的许可协议可接受使用政策提供的。

SeamlessStreaming 模型

模型名称参数数量检查点指标
SeamlessStreaming25亿🤗 模型卡 - 单调解码器检查点 - 流式 UnitY2 检查点指标

Seamless 模型

Seamless 模型实际上就是将 SeamlessStreaming 模型中的非表现力 vocoder_v2 替换为表现力 vocoder_pretssel 的版本。 请查看上面的章节了解如何获取 vocoder_pretssel 检查点。

W2v-BERT 2.0 语音编码器

模型名称参数数量检查点
W2v-BERT 2.06亿🤗 模型卡 - 检查点

以下是如何通过语音编码器进行前向传播的方法:

import torch

from fairseq2.data.audio import AudioDecoder, WaveformToFbankConverter
from fairseq2.memory import MemoryBlock
from fairseq2.nn.padding import get_seqs_and_padding_mask
from fairseq2.data import Collater
from pathlib import Path
from seamless_communication.models.conformer_shaw import load_conformer_shaw_model


audio_wav_path, device, dtype = ...
audio_decoder = AudioDecoder(dtype=torch.float32, device=device)
fbank_converter = WaveformToFbankConverter(
    num_mel_bins=80,
    waveform_scale=2**15,
    channel_last=True,
    standardize=True,
    device=device,
    dtype=dtype,
)
collater = Collater(pad_value=1)

model = load_conformer_shaw_model("conformer_shaw", device=device, dtype=dtype)
model.eval()

with Path(audio_wav_path).open("rb") as fb:
    block = MemoryBlock(fb.read())

decoded_audio = audio_decoder(block)
src = collater(fbank_converter(decoded_audio))["fbank"]
seqs, padding_mask = get_seqs_and_padding_mask(src)

with torch.inference_mode():
  seqs, padding_mask = model.encoder_frontend(seqs, padding_mask)
  seqs, padding_mask = model.encoder(seqs, padding_mask)

评估

SeamlessM4T 评估

要复现我们的结果,或使用相同的指标对您自己的测试集进行评估,请查看此处的 README

SeamlessExpressive 评估

以下是高效批量评估的脚本。

export MODEL_DIR="/path/to/SeamlessExpressive/model"
export TEST_SET_TSV="input.tsv" # 您的数据集,TSV 文件格式,包含 "id"、"audio" 等表头
export TGT_LANG="spa" # 目标翻译语言,选项包括 "fra"、"deu"、"eng"("cmn" 和 "ita" 为实验性支持)
export OUTPUT_DIR="tmp/" # 生成的文本/单元/波形的输出目录
export TGT_TEXT_COL="tgt_text" # ${TEST_SET_TSV} 中用于参考目标文本的列,用于计算 BLEU 分数。可以跳过此参数。
export DFACTOR="1.0" # 模型推理的持续时间因子,用于调整每个位置的预测持续时间(preddur=DFACTOR*preddur),影响输出语音速率。值越大意味着语音速率越慢(默认为 1.0)。有关我们使用的持续时间因子详情,请参见表现力评估 README。
expressivity_evaluate ${TEST_SET_TSV} \
  --gated-model-dir ${MODEL_DIR} --task s2st --tgt_lang ${TGT_LANG} \
  --audio_root_dir "" --output_path ${OUTPUT_DIR} --ref_field ${TGT_TEXT_COL} \
  --model_name seamless_expressivity --vocoder_name vocoder_pretssel \
  --text_unk_blocking True --duration_factor ${DFACTOR}

请查看此 README 章节

SeamlessStreaming 和 Seamless 评估

流式评估 README 中有关于运行 SeamlessStreaming 和 Seamless 模型评估的详细说明。

Unity.cpp

为了实现无处不在的无缝通信,我们实现了 unity.cpp,使用户可以在 GGML(一个 C 语言张量库,便于在各种平台上集成)中运行 SeamlessM4T 模型。

要转录/翻译给定的音频,请执行以下命令:

./ggml/bin/unity --model seamlessM4T_medium.ggml input.wav

有关构建和更多用法的详细信息,请查看 unity.cpp

表现力数据集

我们创建了两个表现力语音到语音翻译数据集,mExpresso 和 mDRAL,涵盖英语和其他五种语言 —— 法语、德语、意大利语、普通话和西班牙语。目前,我们开源了 mExpresso 中英语到其他语言方向的语音到文本部分,剩余部分的数据集将很快开源。详情请查看 README

SeamlessAlignExpressive

我们正在推出首个表现力语音对齐程序。从原始数据开始,表现力对齐程序自动发现不仅含义相同,而且整体表现力相同的音频片段对。为展示这一程序,我们提供了元数据,用于创建一个名为 SeamlessAlignExpressive 的基准数据集,可用于验证我们的对齐方法的质量。SeamlessAlignExpressive 是首个大规模(11,000+ 小时)多语言表现力翻译音频对齐集合。更多详情可在 SeamlessAlignExpressive README 中找到。

将原始音频转换为单元

请查看此处的 README。请注意,SeamlessM4T v1 模型使用简化单元,而其他模型使用非简化单元。

无缝通信依赖于 Meta 开发的 4 个库。

fairseq2

fairseq2 是我们下一代开源序列建模组件库,为研究人员和开发人员提供机器翻译、语言建模和其他序列生成任务的构建模块。本仓库中的所有 SeamlessM4T 模型都由 fairseq2 提供支持。

SONAR 和 BLASER 2.0

SONAR(Sentence-level multimOdal and laNguage-Agnostic Representations)是一个新的多语言和多模态句子嵌入空间,在 xsim 和 xsim++ 多语言相似度搜索任务上优于现有的句子嵌入,如 LASER3 和 LabSE。SONAR 为多种语言提供文本和语音编码器。SeamlessAlign 是基于 SONAR 嵌入进行挖掘的。 BLASER 2.0是我们最新的基于模型的多模态翻译评估指标。它是BLASER的扩展版本,支持语音和文本。它直接在源信号上操作,因此不需要像ASR-BLEU那样的中间ASR系统。与第一个版本一样,BLASER 2.0利用输入和输出句子嵌入之间的相似性。SONAR是BLASER 2.0的底层嵌入空间。使用BLASER 2.0进行评估的脚本可以在SONAR仓库中找到。

stopes

作为无缝通信项目的一部分,我们扩展了stopes库。第一版提供了用于构建翻译模型训练数据集的文本到文本挖掘工具。第二版借助SONAR进行了扩展,支持围绕训练大型语音翻译模型的任务。特别是,我们提供了读取/写入fairseq audiozip数据集的工具,以及一个新的挖掘流程,可以进行语音到语音、文本到语音、语音到文本和文本到文本的挖掘,所有这些都基于新的SONAR嵌入空间。

SimulEval

SimulEval是一个用于评估同声传译模型的库。SimulEval还提供了一个后端,用于使用部分/增量输入进行生成,具有灵活/可扩展的状态,用于实现流式推理。用户定义实现SimulEval接口的代理,这些代理可以在管道中连接在一起。您可以在这里找到为SeamlessStreaming实现的代理。

[遗留] SeamlessM4T v1说明

微调SeamlessM4T v1模型

请查看此处的README

设备端模型

除了Seamless-M4T大型(2.3B)和中型(1.2B)模型外,我们还发布了一个针对设备端推理的小型模型(281M)。要了解更多关于使用和模型详情,请查看此处的README

SeamlessAlign挖掘数据集

我们开源了SeamlessAlign的元数据,这是最大的开放多模态翻译数据集,总计超过27万小时的对齐语音和文本数据。社区可以根据SeamlessAlign readme重建该数据集。

引用

如果您在工作中使用Seamless或任何在Seamless中发布的模型/数据集/工件,请引用:

@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}
}

许可证

我们有三个许可证类别。

以下非生成组件根据MIT_LICENSE中的MIT许可证授权:

以下模型根据LICENSE中的CC-BY-NC 4.0许可证授权:

  • SeamlessM4T模型(v1和v2)。
  • SeamlessStreaming模型。

以下模型根据SEAMLESS_LICENSE中的Seamless许可证授权:

  • Seamless模型。
  • SeamlessExpressive模型。
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号