MaskGCT——开源文本转语音模型,可模仿任何人说话声音

server/2024/12/22 9:33:56/

前期介绍过很多语音合成的模型,比如ChatTTS,微软语音合成大模型,字节跳动自家发布的语音合成模型Seed-TTS。其模型随着技术的不断发展,模型说话的声音也越来越像人类,虽然 seed-tts 可以进行语音合成等功能,但是其模型并没有开源,本期介绍的MaskGCT文本转语音模型是一个开源的模型,不仅可以生成语音,还可以模仿任何人说话的声音,且可以进行语气的转换。

大规模的文本转语音(TTS)系统通常被划分为自回归系统与非自回归系统。自回归系统虽隐式地对时长予以建模,然而在鲁棒性层面呈现出一定的短板,且时长的可控性匮乏。非自回归系统于训练期间,需要文本和语音之间的显性对齐信息,并对语言单位(诸如音素)的时长进行预测,此举或许会折损其自然度。而 Masked Generative Code Transformer(MaskGCT),此乃一个全然非自回归的 TTS 模型,它既无需文本和语音监督之间的显性对齐信息,也无需音素级时长预测。
MaskGCT 属于一个两阶段模型:在第一阶段,该模型凭借文本预测从语音自监督学习(SSL)模型中萃取的语义标记;在第二阶段,模型对以这些语义标记为条件的声学标记予以预测。MaskGCT 遵循掩码和预测的学习范式。在训练进程中,MaskGCT 会依据给定的条件和提示,学习预测被遮蔽的语义或声学标记。在推理过程里,该模型能够以并行的方式生成指定长度的标记。针对 10 万小时的自然语音展开的实验表明,MaskGCT 在质量、相似度以及可理解性等方面,皆胜于当下最为先进的零样本 TTS 系统。

MaskGCT 由四个主要部分组成:
(1)语音语义表示编解码器将语音转换为语义标记;
(2)文本到语义模型使用文本预测语义标记并提示语义标记;
(3)语义到声学模型根据语义标记预测声学标记;
(4)语音声学编解码器根据声学标记重建语音波形。


MaskGCT模型根据用户提供的声音与文本,识别输入数据的语音语调,通过输入其他的文本,合成具有相同语音语调的声音。

在很多自媒体创作中,很多配音都是合成的声音,若是自己拿稿进行配音,不仅需要重复调整,还需要花费大量的时间与精力,而使用MaskGCT模型,就没有这个担忧,直接让模型学习下自己的语音语调,然后就可以一次性输入自己的文案,让模型进行配音了,这样就大大节省了人工配音的时间成本(更不需要一个专业的录音设备)


MaskGCT模型不仅可以模仿说话者的声音,也可以根据需要调整说话人的情绪,比如高兴的,生气等,这样就可以输入MaskGCT模型多段文案,然后控制每段文案的情绪,就可以得到完美的配音了。

当然MaskGCT模型也可以针对原始语音进行调整修改,可以直接修改原始语音的文案,让MaskGCT模型生成其他的语音。更多使用场景可以到MaskGCT模型 GitHub 上面查看。而官方也放出了在线体验地址,可以进行在线体验。

https://maskgct.github.io/ 
https://github.com/open-mmlab/Amphion/blob/main/models/tts/maskgct/README.md 
https://voice.funnycp.com/更多transformer,VIT,swin tranformer
参考头条号:人工智能研究所
v号:启示AI科技
​

 动画详解transformer  在线教程 


http://www.ppmy.cn/server/152199.html

相关文章

Day49 单调栈part02

42. 接雨水 接雨水这道题目是 面试中特别高频的一道题,也是单调栈应用的题目,大家好好做做。 建议是掌握 双指针 和单调栈,因为在面试中 写出单调栈可能 有点难度,但双指针思路更直接一些。在时间紧张的情况有,能写出双指针法也是不错的,然后可以和面试官在慢慢讨论如何…

经济学 ppt 2 部分

前言 上一次复习经济学是好久之前了,看了第一章的 ppt ,好像重点就是谁是软件经济学之父。昨天老师讲了一下题型,20 分选择题, 20 分判断题,20 分计算题,6 6 8 三个计算题,25 分表格&#xff0…

10. 考勤信息

题目描述 公司用一个字符串来表示员工的出勤信息 absent:缺勤late: 迟到leaveearly: 早退present: 正常上班 现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下: 缺勤不超过一次,没有连续的迟到/早退:任意连续7次考勤&a…

android liveData更新UI数据

1.创建LiveData的javaBean对象 public class ModelBean extends LiveData {private int flag; private String time; private String batteryStr; private int battery; //蓝牙连接状态 private int resourceId; private Boolean isConnected; private String mDeviceName; //…

nano编辑器怎么退出并保存

在使用 nano 编辑器时,退出并保存文件的操作如下: 保存更改:在编辑器中完成编辑后,按下 Ctrl O(字母O,不是数字0)键来保存更改。nano 会提示你输入文件名以保存更改。 退出编辑器:…

jvm字节码中方法的结构

“-Xss”这一名称并没有一个特定的“为什么”来解释其命名,它更多是JVM(Java虚拟机)配置参数中的一个约定俗成的标识。在JVM中,有多个配置参数用于调整和优化Java应用程序的性能,这些参数通常以一个短横线“-”开头&am…

【Spring】Spring的模块架构与生态圈—数据访问与集成(JDBC、ORM、Transactions)

在企业级应用中,数据的存储和访问是核心功能之一。Java开发语言通过Spring框架提供了多种方式来实现数据访问和集成,包括JDBC(Java Database Connectivity)、ORM(对象关系映射)以及事务管理。这些技术的有效…

WatchAlert - 开源多数据源告警引擎

概述 在现代 IT 环境中,监控和告警是确保系统稳定性和可靠性的关键环节。然而,随着业务规模的扩大和数据源的多样化,传统的单一数据源告警系统已经无法满足复杂的需求。为了解决这一问题,我开发了一个开源的多数据源告警引擎——…