【S2ST】Direct Speech-to-Speech Translation With Discrete Units

【S2ST】Direct Speech-to-Speech Translation With Discrete Units

    • Abstract
    • Introduction
    • Related work
      • Model
      • Speech-to-unit translation (S2UT) model
      • Multitask learning
      • Unit-based vocoder
    • Experiments
      • Data
      • System setup
      • Baseline
        • ASR
        • MT
        • TTS
        • S2T
        • Transformer Translatotron
      • Evaluation
        • different targets for the auxiliary tasks(4 vs. 5)
        • proposed S2UT model vs transformer Translatotron(5 vs 7)
        • incorporate target text CTC decoding to the S2UT model
      • System benchmark

Abstract

Applying a self-supervised method extracts discrete units(rather than target text) from target speech, speech-to-unit translation(S2UT). Model unit to target speech.
应用自监督方法,生成target speech离散的units(S2UT), 从离散的units建模speech。当target text可以获得时,本文设计了一个语音和文本联合训练的框架,可以同时产生文本和语音两个模态的输出。在Fisher SpanishEnglish dataset数据集上,与Transformer Translatotron相比提升了6.7 BLEU。当没有任何文本的transcription时,模型达到了和有文本监督的时候相当的效果,说明了模型在unwrittern language的translation的潜力。

Introduction

传统的speech-to-text translation (S2T)方法,应用ASR+MT级联,近年来为了减缓级联系统的误差累计,end-to-end S2T方法被提出,这些S2T模型进一步接一个text-to-speech (TTS)模型,即可以产生speech和text的translation,具有广泛的应用场景。
最近,researcher开始探索direct speech-to-speech translation (S2ST), 不依赖中间的text generation过程[Translatotron][Translatotron2]。与级联系统相比,直接 S2ST 具有更低的计算成本和推理延迟的好处,因为需要更少的解码步骤。此外,直接 S2ST 是可以翻译unwriiten language。Translatotron 首先通过训练基于注意力的序列到序列模型来解决这个问题,该模型将source频谱图映射到target频谱图。模型训练难度大,因为它需要模型不仅可以学习两种语言之间的对齐,还可以学习两种语言的声学和语言特征。因此,直接 S2ST 系统和 S2T+TTS 级联系统之间存在性能差距。最近对语音自我监督学习的成功表明,从大型未标记语音语料库中学习到的语音表示可以在包括 ASR 、说话人和语言识别等各种下游任务上取得令人印象深刻的性能。此外,从自监督语音表示的聚类中获得的离散语音单元允许研究人员利用现有的语音 NLP 建模技术,例如spoken generative language modeling。
在这项工作中,我们通过预测target语音的自监督离散表示而不是梅尔谱图特征来解决在直接 S2ST 中建模目标语音的挑战。与谱图特征相比,自监督离散units可以将语言内容与说话人识别或语音中的韵律信息区分开来。
对于有target transcription的语言,联合学习S2ST和S2T,发现离散单元+speech text联合训练+beam search能达到ST+TTS的性能。接着探索了用source speech和target speech 离散的单元multi task learning,这为不用text,训练直接的S2ST提供了可能性。除此之外,本文测量了推理时间和memory,本文提出的系统比cascaded系统更有效率。

Related work

Cascaded ASR+MT->ST->S2ST

Model

在这里插入图片描述

Speech-to-unit translation (S2UT) model

Hubert generate units, s2ut model refer to MT model(transformer based)

Multitask learning

Encoder 接辅助模块,识别phoneme, character, subword units 或者source、target句子的其他tokens。
对于written target languages,添加了以离散单元解码器中间层为条件的目标文本CTC解码,用于模型生成双模态输出。CTC 的使用可以减轻语音和文本输出之间的长度不匹配。然而,由于它只允许单调对齐,因此source和target之间的reorder依赖transformer层。

Unit-based vocoder

Unit hifigan

Experiments

Data

Fisher Spanish-English speech translation corpus(是个st的数据集,需要调TTS接口生成target speech)
在这里插入图片描述

System setup

HuBERT base, extract units on English speech. 在source speech应用倒谱均值和方差归一化和SpecAugment. 应用了4个辅助任务, source phonemes (sp), target phonemes (tp), source characters (sc) and target characters (tc). Sp 和 sc 接在第六层,tp和tc接在encoder 的第8层和decoder。

Baseline

Two cascaded baselines, ASR+MT+TTS, S2T+TTS; One direct S2ST baseline.

ASR

transformer-based Spanish ASR, transformer-based

MT

gru_transformer

TTS

transformer-based TTS model

S2T

尝试了LSTM-based model 和 transformer-based model, LSTM-based model更好。

Transformer Translatotron

Evaluation

translation quality and the speech quality
在这里插入图片描述

different targets for the auxiliary tasks(4 vs. 5)

character 比 phoneme要好

proposed S2UT model vs transformer Translatotron(5 vs 7)

Discrete units are easier to learn. 6 vs 7 means r=5 doesn’t hurt the performance.

incorporate target text CTC decoding to the S2UT model

With dual modality, the bleu improved, increase the beam size, the bleu can increase more.

System benchmark

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/205509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python Jinja2 库的无限可能性

更多资料获取 📚 个人网站:ipengtao.com Jinja2,作为Python中最流行的模板引擎之一,为开发者提供了强大的工具,用于在Web应用和其他项目中生成动态内容。本文将深入研究 Jinja2 库的各个方面,提供更丰富的…

数据科学:Matplotlib、Seaborn笔记

数据科学:Numpy、Pandas 数据科学:Matplotlib、Seaborn笔记 数据科学:Numpy、Pandas、Matplotlib、Seaborn、Scipy、Scikit-Learn 三、Matplotlib1.Matplotlib subplots函数2.tight_layout()函数3.Matplotlib grid()设置网格格式4.fill_bet…

<蓝桥杯软件赛>零基础备赛20周--第9周--前缀和与差分

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周(读者可以按…

从零开始的c语言日记day41——自定义类型结构体

一、结构体的声明 1.1结构的基础知识 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 Tag结构体标签 Member-list成员列表-里面可以有很多成员 Variable-list变量列表 结构体类型的定义方式 S1,s2是struct stu类型的…

黑苹果之显卡篇

一、什么是显卡 显卡GPU(Video card、Display card、Graphics card、Video adapter)是个人计算机基础的组成部分之一,将计算机系统需要的显示信息进行转换驱动显示器,并向显示器提供逐行或隔行扫描信号,控制显示器的正…

python数据分析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 pandas统计分析基础实训 实训1 读取并查看某地区房屋销售数据的基本信息1. 训练要点2. 需求说明3.实现思路及步骤 实训2 提取房屋售出时间信息并描述房屋价格信息1. 训练要点…

数据结构 图的广度优先搜索和深度优先搜索

一、广度优先搜索 广度优先搜索等价于树的层次遍历,将起点的每一层进行遍历 当这一层结点全部被遍历完时,再遍历下一层次,从图中可以根据距离遍历起点的长度进行层次选择 例: 以a结点作为开始结点 a的下一层次有b c e三个结点 所以…

Spark Structured Streaming使用教程

文章目录 1、输入数据源2、输出模式3、sink输出结果4、时间窗口4.1、时间窗口4.2、时间水印(Watermarking) 5、使用例子 Structured Streaming是一个基于Spark SQL引擎的可扩展和容错流处理引擎,Spark SQL引擎将负责增量和连续地运行它&#…

Spring Security 自定义异常失效?从源码分析到解决方案

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

使用阿里巴巴同步工具DataX实现Mysql与ElasticSearch(ES)数据同步

一、Linux环境要求 二、准备工作 2.1 Linux安装jdk 2.2 linux安装python 2.3 下载DataX: 三、DataX压缩包导入,解压缩 四、编写同步Job 五、执行Job 六、定时更新 6.1 创建定时任务 6.2 提交定时任务 6.3 查看定时任务 七、增量更新思路 一、Linux环境要…

微信小程序js数组对象根据某个字段排序

一、排序栗子 注: 属性字段需要进行转换,如String类型或者Number类型 //升序排序 首元素(element1)在前 降序则(element1)元素在后 data data.sort((element1, element2) >element1.属性 - element2.属性 ); 二、代码 Page({/*** 页面的初始数据*/data: {user:…

SpringSecurity安全授权

目录 前言 正文 1.基本流程 2.基本用法 3.配置项 4.HttpSecurity 方式和内存认证方式 5.认证流程 6.基于数据库查询的登录验证 7.多种角色权限认证 8.自定义权限认证 总结 前言 安全对于任何系统来说都是非常重要的,权限的分配和管理一直都是开发者需…

C语言——输出菱形

法一&#xff1a; #include<stdio.h> #define N 7 //假设输出7层菱形 int main(){int i;//i控制第几行 int j;//j控制每一行空格的循环个数 int k;//k控制每一行*的循环次数 for(i1;i<4;i){//将图形分为两部分,前四行(第一部分) for(j1;j<4-i;j){//输出第i行的…

echarts双折线图

引用 //反应时长 durationCharts categoryCommonChart(studyBehavior.durationCharts, durationCharts) function categoryCommonChart(odata, dom){var myChart echarts.init(document.getElementById(dom));let oarr []oarr odata.series.map(function(item){let color…

随笔-这都是命吗

我与鹏哥、小付有个小群&#xff0c;前几天&#xff0c;鹏哥在群里发了一个图&#xff0c;是他那个城市准备扶持的高新产业&#xff0c;有元宇宙、量子信息、生物制药、人工智能什么的。 先前的时候鹏哥给我说过&#xff0c;当地准备了六百多亩地&#xff0c;准备发展高新产业…

Linux-进程之间的通信

目录 ​编辑 一.什么是进程之间的通信 二.进程之间的通信所访问的数据 三.进程之间的通信是如何做到的 四.基于内存文件级别的通信方式——管道 1.什么是管道 2.管道的建立过程——匿名管道 a.什么是匿名管道 b.匿名管道特点&#xff1a; c.使用匿名管道的…

风格迁移网络修改流程(自用版)

一. AdaAttN-Revisit Attention Mechanism in Arbitrary Neural Style Transfer&#xff08;ICCV2021&#xff09; 下载vgg_normalised.pth打开visdom python -m visdom.server在 train_adaattn.sh 中配置 content_path、style_path 和 image_encoder_path&#xff0c;分别表…

固态硬盘速度测试:硬盘实际性能是否符合标准?

在进行固态硬盘速度测试之前我们先来了解一下固态硬盘的读写速度是什么。固态硬盘的读写速度主要分为顺序读写和随机读写&#xff08;4K&#xff09;。 ​顺序读写&#xff1a;指的是硬盘在读写连贯、集中大文件时候的速度。比如在读取、拷贝单个视频文件时&#xff0c;就是硬盘…

【项目问题解决】IDEA2020.3 使用 lombok 插件 java: 找不到符号 符号: 方法 builder()

目录 lombok找不到符号问题修改 1.问题描述2.问题原因3.解决思路4.解决方案5.总结6.参考 文章所属专区 项目问题解决 1.问题描述 IDEA2020.3 使用 lombok 插件 java: 找不到符号 符号: 方法 builder()&#xff0c;无法使用lombok下应有的注解&#xff0c;一度怀疑是版本问题 …

使用Inno Setup 打包程序文件 怎么把其中一个文件安装时复制到指定系统文件夹

环境: Inno Setup 6.6 Win10 专业版 问题描述: 使用Inno Setup 打包程序文件 怎么把其中一个文件安装时复制到指定系统文件夹 将文件api-ms-win-shcore-scaling-l1-1-1.dll复制到system32里面 解决方案: 1.由于安全和权限的限制,直接在Inno Setup脚本中复制文件到C:\…