All In One!Meta发布SeamlessM4T,支持100种语言,35种语音、开源、在线体验!
多语言识别翻译的研究一直都是学术界研究的重点。目前全球有几千种语言,在全球化背景下不同语言人群之间的交流越来越密切,然而学习一门外语的成本是非常大的。前两年的研究主要集中在一对一、一对多的研究,然而当面对这么多的语言时,既需要「考虑模型准确率,还需要考虑语种的识别」。最近,随着人工智能大型自然语言模型的发展,利用统一模型实现多语种识别翻译来实现不同语种之间交流逐渐的变成了可能。
最近「Meta刚刚发布的SeamlessM4T」,它在近「100种语言」中实现了最先进的结果,并在自动语音识别、语音转文本、语音转语音、文本转语音和文本转语音等方面实现了多任务支持——「全部集中在一个模型中」!
Paper:https://ai.meta.com/research/publications/seamless-m4t/
Code:https://github.com/facebookresearch/seamless_communication
Demo:https://huggingface.co/spaces/facebook/seamless_m4t
SeamlessM4T
构建通用语言翻译器是非常具有挑战性,因为现有的语音到语音和语音到文本系统仅涵盖世界语言的一小部分。SeamlessM4T 代表了语音到语音和语音到文本领域的重大突破,它解决了有限的语言覆盖范围和对单独系统的依赖的挑战;能够提供按需翻译,使使用不同语言的人们能够更有效地进行交流。,在英语、西班牙语和德语等资源丰富的语言上也保持着强劲的表现;除此之外,SeamlessM4T可以隐式的识别源语言,无需单独的语言识别模型。
SeamlessM4T统一多语言识别翻译模型特点总结:
-
自动语音识别近百种语言
-
近100种输入和输出语言的语音到文本翻译
-
语音翻译,支持近100种输入语言和35种(+英语)输出语言
-
近100种语言的文本到文本翻译
-
文本转语音翻译,支持近100种输入语言和35种(+英语)输出语言
目前Meta已经将模型开放出来供大家进行研究,但是必须遵循「不能商用」的许可。除此之外,他们还发布了迄今为止最大的开放多模式翻译数据集:「SeamlessAlign」,并且能够轻松使用 SONAR(一套完整的语音和文本句子编码器)和 stopes(多模式数据处理和并行数据挖掘库)对自己的单语言数据集进行挖掘。
SeamlessM4T实现方法
构建统一模型需要一个轻量级且易于与其他现代 PyTorch 生态系统库组合的序列建模工具包。Meta重新设计了fairseq,最初的序列建模工具包。凭借更高效的建模和数据加载器 API,fairseq2 有助于支持 SeamlessM4T 背后的建模。
对于模型,使用多任务UnitY模型架构,它能够直接生成翻译后的文本和语音。这种新架构还支持自动语音识别、文本到文本、文本到语音、语音到文本和语音到语音翻译,这些功能已经是普通 UnityY 模型的一部分。
多任务 UnitY 模型由三个主要的顺序组件组成。文本和语音编码器的任务是识别近100种语言的语音输入。然后,文本解码器将该含义转换为近100种文本语言,然后使用文本到单元模型将其解码为35种语音语言的离散声学单元。对自监督编码器、语音到文本、文本到文本翻译组件和文本到单元模型进行预训练,以提高模型的质量和训练稳定性。然后将解码的离散单元转换为 使用多语言 HiFi-GAN 单元声码器进行语音。
语音编码器
自监督语音编码器w2v-BERT 2.0是w2v-BERT的改进版本,提高了训练稳定性和表示质量,通过分析数百万小时的多语言语音来学习查找语音中的结构和含义。编码器获取音频信号,将其分解为更小的部分,并构建所说内容的内部表示。由于口语单词是由许多声音和字符组成的,因此我们使用长度适配器将它们粗略地映射到实际单词。
文本编码器
同样,我们有一个基于 NLLB 模型的文本编码器。它经过训练可以理解近 100 种语言的文本并生成对翻译有用的表示。
文本解码器
文本解码器经过训练可以采用编码的语音表示或文本表示。这可以应用于同一语言的任务,例如自动语音识别、多语言翻译任务。例如,某人可以用法语说出“bonjour”一词,并期望斯瓦希里语的翻译文本为“habari”。通过多任务训练,我们利用强大的文本到文本翻译模型(NLLB)的优势,通过标记级知识蒸馏来指导我们的语音到文本翻译模型。
语音解码器
使用声学单位来表示目标侧的语音。UnitY 模型中的文本到单元 (T2U) 组件根据文本输出生成这些离散语音单元,并在 UnityY 微调之前根据 ASR 数据进行预训练。然后使用多语言 HiFi-GAN 单元声码器将这些离散单元转换为音频波形。
最庞大的语料库
&emspSeamlessM4T模型受益于大量高质量的端到端数据,即语音到文本、语音到语音数据。仅依靠人工转录和翻译的语音无法应对100种语言的语音翻译任务。Meta基于在联合嵌入空间中使用相似性度量的文本到文本挖掘的开创性工作以及语音挖掘的初步工作来创建额外的资源来训练 SeamlessM4T 模型。
首先,为200种语言构建了一个新的大规模多语言和模态文本嵌入空间,名为 SONAR(句子级模态和语言无关表示),它在多语言相似性搜索方面大大优于LASER3或LaBSE等现有方法。然后,应用师生方法将此嵌入空间扩展到语音模态,目前涵盖35种语言。挖掘是在来自公开可用的网络数据存储库(数百亿个句子)和语音存储库(400 万小时)的数据中进行的。
总的来说,我们能够自动将超过443,000小时的语音与文本进行对齐,并创建约 29,000 小时的语音到语音对齐。该语料库被称为 SeamlessAlign,它是迄今为止就总容量和语言覆盖范围而言最大的开放语音/语音和语音/文本并行语料库。
实验结果
SeamlessM4T在近100种语言中实现了最先进的结果,并在自动语音识别、语音转文本、语音转语音、文本转语音和文本转语音等方面实现了多任务支持——全部集中在一个模型中。还显着提高了所支持的中低资源语言的性能,并保持了高资源语言的强劲性能。
为了在不依赖基于文本的指标的情况下更准确地评估系统,将无文本指标扩展到BLASER 2.0,现在可以跨语音和文本单元进行评估,其准确性与其前身相似。在进行鲁棒性测试时,与当前最先进的模型相比,系统在语音转文本任务中针对背景噪声和说话人变化的表现更好(平均分别提高了37%和48%)。
相关文章:

All In One!Meta发布SeamlessM4T,支持100种语言,35种语音、开源、在线体验!
多语言识别翻译的研究一直都是学术界研究的重点。目前全球有几千种语言,在全球化背景下不同语言人群之间的交流越来越密切,然而学习一门外语的成本是非常大的。前两年的研究主要集中在一对一、一对多的研究,然而当面对这么多的语言时…...

Python可视化工具库实战
Matplotlib Matplotlib 是 Python 的可视化基础库,作图风格和 MATLAB 类似,所以称为 Matplotlib。一般学习 Python 数据可视化,都会从 Matplotlib 入手,然后再学习其他的 Python 可视化库。 Seaborn Seaborn 是一个基于 Matplo…...

编解码视频测试序列集
最近测试解码器性能,搜集了一下可以免费的测试序列及,现在罗列如下,有很多需要翻墙: 1、h264的视频测试序列集 https://pi4.informatik.uni-mannheim.de/~kiess/test_sequences/download/ 2、HEVC测试序列 https://blog.csdn.net/…...

1 Hadoop入门
1.Hadoop是什么? (1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 (2)主要解决,海量数据的存储和海量数据的分析计算问题。 (3)广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈 2.Hadoop的优势 3 Hadoop组成 4 HDF…...

骨传导耳机哪款比较好,市面上最好的骨传导耳机分享
随着科技的日新月异,骨传导耳机也在不断更新换代。市场上涌现出许多品牌,这使得消费者在购买时感到困惑。别担心!我们为你整理了一些市场上最好的骨传导耳机品牌,希望能帮到你。现在,就让我们一起探索这些骨传导耳机的…...

centos7安装docker-compose—及常见错误排解
目录 一、Docker-Compose概述Compose有2个重要的概念:一、安装docker-compose1.从github上下载docker-compose二进制文件安装 二、Docker-compose实战 二、Dcoker-compose 不好下载,你直接使用docker 一个一个的安装使用dockerfile安装各种服务组件 一、…...

Stable Diffusion 文生图技术原理
图像生成模型简介 图片生成领域来说,有四大主流生成模型:生成对抗模型(GAN)、变分自动编码器(VAE)、流模型(Flow based Model)、扩散模型(Diffusion Model)。…...

Jumpserver堡垒机管理(安装和相关操作)-------从小白到大神之路之学习运维第89天
第四阶段 时 间:2023年8月28日 参加人:全班人员 内 容: Jumpserver堡垒机管理 目录 一、堡垒机简介 (一)运维常见背黑锅场景 (二)背黑锅的主要原因 (三)解决背黑…...

伦敦金走势多变怎么办
投资知识比较丰富的朋友,应该知道一个品种的价格过于波动,对投资者来说并是一件不友好的事情,因为频繁的价格变化,对于收益的稳定性会产生负面的影响,也可能让投资者的持仓陷入进退维谷的尴尬境地。 黄金作为贵金属市场…...

MybatisPlus-插件篇
文章目录 一、前言二、插件1、分页插件2.1.1、引入依赖2.1.1、配置分页插件2.1.3、使用分页方法 2、乐观锁插件2.1、引入依赖2.2、添加版本字段2.3、配置乐观锁插件2.4、执行更新操作 三、总结 一、前言 本文将详细介绍mybatisplus中常用插件的使用。 二、插件 1、分页插件 …...

数学建模:熵权法
🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 熵权法 构建原始矩阵 D a t a Data Data 形状为 m ∗ n m *n m∗n ,其中 m m m 为评价对象, n n n 为评价指标。对 D a t a Data Data矩阵的指标进行正向化处理,得到…...

软件测试实训系统建设方案
一 、系统概述 软件测试实训系统是软件开发过程中的一项重要测试活动,旨在验证不同软件模块或组件之间的集成与交互是否正常。综合测试确保各个模块按照设计要求正确地协同工作,以实现整个软件系统的功能和性能。以下是软件测试实训系统的一般流程和步骤…...

部署 ssm 项目到云服务器上(购买云服务器 + 操作远程云服务器 + 服务器中的环境搭建 + 部署项目到服务器)
部署 Web 项目 1、获取 Linux 环境1.1、如何去买一个云服务器1.2、远程操作云服务器1.3、在 Linux 系统中搭建 Java Web 的运行环境。1)安装 JDK(使用包管理器 yum 来安装)2) 安装Tomcat3)安装 MySQL。 1.4、在云服务器…...

python爬虫-使用selenium自动登录微博
环境准备:anaconda、pycharm编辑器、chromedriver(记得下载) 首先查看本地anaconda的python环境和selenium版本号(不同版本的api接口可能不同) conda list python输出 # Name Version Build Channel ipython …...

Python 面试:可变类型和不可变类型作为函数参数,关键字参数
1. 可变类型作为参数 可变对象: list/set/dict 参数会指向可变对象的副本的地址,每次修改的是同一个对象。 def flist(l):l.append(0)print(l)ll [] flist(ll) flist(ll)输出为: [0] [0, 0] # 注意:l只是ll的一个副本,修改l不…...

Web3.0时代什么时候到来,Web3.0有什么机会?
🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…...

vue心得
不是专业的前端开发,但因为E2E开发和架构设计的需要,必须对前端框架有一些了解。这两年项目前端在用vue,就记录一下vue的使用心得。 心得 component component: vue组件,可在其中完成界面呈现(V…...

JavaScript—数据类型、对象与构造方法
js是什么? JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。 js有哪些特点呢…...

自定义node-red节点中,如何编写节点的配置信息弹窗
前言 最近有读者通过博客向我咨询,在自定义node-red节点时,如何编写该节点的配置页面,就是我们通常见到的,双节节点打开的信息弹窗。如下图: 上面两张图,展示了inject节点与mqtt in 节点的配置弹窗。 在弹窗中,除了上面的删除,取消,完成,和下面的失效按钮。 中间…...

数据之美:探索数据可视化设计的奇妙世界
在信息时代的浪潮中,海量的数据正在影响着我们的生活和决策。然而,数据本身虽然有力量,但如何将其有机地呈现给我们,却成为了一个挑战。数据可视化设计应运而生,它不仅让枯燥的数字变得生动,还带来了一场视…...

docker初始化
避免僵尸进程 使用dump-init FROM node:16 AS builderRUN apt install dumb-init... ...ENTRYPOINT ["/usr/bin/dumb-init", "--"] CMD ["node", "dist/main"]使用tini docker run --init .......开启docker内部ssh docker exec -…...

【C语言】结构体变量引用的一个例子
文件test_funcs.c: #include <stdio.h> #include <stdlib.h>struct t_Test {int n1;int n2; };struct t_Test *alloc_Test(void) {struct t_Test *pTestNULL;pTestmalloc(sizeof(struct t_Test));pTest->n1 1;return pTest; }void func1(struct t_…...

美团笔试题之合并 K 个升序链表
文章目录 题目详情分析暴力求解两两合并链表 Java完整实现代码总结 题目详情 23 美团笔试真题 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 分析 暴力求解 将所有数值存入一个数组ÿ…...

C语言(第三十一天)
6. 调试举例1 求1!2!3!4!...10!的和,请看下面的代码: #include <stdio.h> //写一个代码求n的阶乘 int main() {int n 0;scanf("%d", &n);int i 1;int ret 1;for(i1; i<n; i){ret * i;}printf("%d\n", ret);return …...

【C/C++】虚析构 | 抽象类
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c系列专栏:C/C零基础到精通 🔥 给大…...

MySQL 的隐式转换导致诡异现象的案例一则
正是因为 MySQL 对字符串进行隐式转换时会截断再转,而不是像 Oracle、SQL Server 这些数据库针对这种问题直接报错,所以才出现了这个诡异的问题。 作者:刘晨 网名 bisal ,具有十年以上的应用运维工作经验,目前主要从事…...

【考研数学】概率论与数理统计 —— 第二章 | 一维随机变量及其分布(2,常见随机变量及其分布 | 随机变量函数的分布)
文章目录 引言三、常见的随机变量及其分布3.1 常见的离散型随机变量及其分布律(一)(0-1)分布(二)二项分布(三)泊松分布(四)几何分布(五࿰…...

【2023中国算力大会】《中国综合算力指数(2023年)》出炉,宁夏“资源环境”位列全国第1,“算力”跃入Top10
2023年8月18日-19日,2023中国算力大会在宁夏银川举行,本届大会以“算领新产业潮流 力赋高质量发展”为主题,打造“主题论坛、成果展示、产业推介、先锋引领”四大核心内容,全面展示算力产业发展最新成果,为产业各方搭建…...

自动设置服务器全教程
亲爱的爬虫探险家!在网络爬虫的世界里,自动设置代理服务器是一个非常有用的技巧。今天,作为一家代理服务器供应商,我将为你呈上一份轻松实用的教程,帮助你轻松搞定爬虫自动设置代理服务器。 一、为什么需要自动设置代…...

Mysql--技术文档--B树-数据结构的认知
阿丹解读: B树(B tree)和B树(B-tree)都是常见的自平衡搜索树数据结构,用于在存储和检索大量数据时提供高效的操作。 基本概念-B树/B树 B树(B-tree)和B树(B tree&#x…...