ChatTTS真人文本转语音模型,富有韵律与情感,且免费开源

上期图文教程,我们分享了微软TTS真人转语音大模型,但是微软的TTS模型只有针对新用户免费一年,其他用户都是收费的,虽然微软开源了部分TTS的功能,但是针对真人类似的富有情感的TTS模型并没有进行开源,本期介绍的ChatTTS是一个开源的真人转语音模型。

ChatTTS简介

ChatTTS是专门为对话场景设计的文本转语音模型,例如LLM助手对话任务。它支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练。ChatTTS是一款强大的对话式文本转语音模型。它有中英混读和多说话人的能力。ChatTTS不仅能够生成自然流畅的语音,还能控制笑声,停顿,语气词啊等副语言现象。这个韵律超越了许多开源模型,首先听一段模型自动生成的语音。

  1. 对话式 TTS: ChatTTS针对对话式任务进行了优化,实现了自然流畅的语音合成,同时支持多说话人。
  2. 细粒度控制: 该模型能够预测和控制细粒度的韵律特征,包括笑声、停顿和插入词等。
  3. 更好的韵律: ChatTTS在韵律方面超越了大部分开源TTS模型。同时提供预训练模型,支持进一步的研究。

ChatTTS是一个开源模型,可以根据开源代码进行文本转语音的生成,当然,hugging face上也有开源的在线网页,直接免去了代码的部署,在线就可以生成高质量的语音。

ChatTTS使用

ChatTTS是一个开源的模型,可以直接使用官方提供的代码进行文本转语音的生成。首先需要复制ChatTTS整个GitHub仓,并在ChatTTS文件夹下安装需要的第三方模型。当然ChatTTS基于pytorch,确保自己电脑有GPU版本的torch库。

!git clone -q https://github.com/2noise/ChatTTS
%cd ChatTTS
!pip install -q omegaconf vocos vector_quantize_pytorch gradio cn2an pypinyin  WeTextProcessing

安装完成后,便可以输入如下代码加载模型。代码第一次执行时,会自动下载相关的预训练模型,等待下载完成后,就可以生成语音了。

import torch
torch._dynamo.config.cache_size_limit = 64
torch._dynamo.config.suppress_errors = True
torch.set_float32_matmul_precision('high')import ChatTTS
from IPython.display import Audio
chat = ChatTTS.Chat()
chat.load_models()

ChatTTS支持语音速度的调整,停顿的选择以及添加笑声等等,代码可以直接输入文本,让模型自动添加对应的停顿以及笑声关键词即可,也可以自行添加其关键词。

params_infer_code = {'prompt':'[speed_5]', 'temperature':.3}
params_refine_text = {'prompt':'[oral_2][laugh_0][break_6]'}wav = chat.infer('四川美食可多了,有麻辣火锅、宫保鸡丁、麻婆豆腐、担担面、回锅肉、夫妻肺片等,每样都让人垂涎三尺。', \params_refine_text=params_refine_text, params_infer_code=params_infer_code)
Audio(wav[0], rate=24_000, autoplay=True)

基于ChatTTS的开源代码搭建了网页部署版本,可以直接在Google cloab 或者本地运行。

!git clone -q https://github.com/6drf21e/ChatTTS_colab
%cd ChatTTS_colab
!git clone -q https://github.com/2noise/ChatTTS
%cd ChatTTS
!git checkout -q f4c8329
%cd ..
!mv ChatTTS abc
!mv abc/ChatTTS ./ChatTTS
!pip install -q omegaconf vocos vector_quantize_pytorch gradio cn2an pypinyin openai jieba WeTextProcessing
# 启动 Gradio 有公网地址
!python webui_mix.py --share

执行以上代码后,模型会自动下载,并部署网页版本ChatTTS,等待部署完成,直接打开公共链接即可。

INFO:httpx:HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
INFO:httpx:HTTP Request: GET https://checkip.amazonaws.com/ "HTTP/1.1 200 "
Running on local URL:  http://127.0.0.1:7860
INFO:httpx:HTTP Request: GET http://127.0.0.1:7860/startup-events "HTTP/1.1 200 OK"
INFO:httpx:HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
INFO:httpx:HTTP Request: GET https://api.gradio.app/v2/tunnel-request "HTTP/1.1 200 OK"
Running on public URL: https://054d1298c1303e0370.gradio.live

此项目不仅使用了ChatTTS进行文本转语音,且提供了OpenAI的ChatGPT的接口,可以利用提示词生成短篇小说,并自动生成音频小说,且支持长语音生成与多角色语音生成,一篇文本小说有声读物就可以诞生啦。

当然hugging face也部署了网页版本的ChatTTS,不喜欢代码部署的小伙伴可以直接在hugging face上面体验ChatTTS的功能。整体体验下来,还是不错的,直接输入自己的文本,生成的音频,让别人去听,很难区分是合成的音频。

https://huggingface.co/spaces/Dzkaka/ChatTTS
https://github.com/2noise/ChatTTS/blob/main/README_CN.md
https://github.com/6drf21e/ChatTTS_colab?tab=readme-ov-file更多transformer,VIT,swin tranformer
参考头条号:人工智能研究所
v号:启示AI科技

动画详解transformer  在线教程 

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

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

相关文章

软件测试基础1--功能测试

1、什么是软件测试? 软件是控制计算机硬件运行的工具。 软件测试:使用技术手段验证软件是否满足使用需求,为了发现软件功能和需求不相符合的地方,或者寻找实际输出和预期输出之间的差异。 软件测试的目的:减少软件缺陷…

学习笔记之JAVA篇(0724)

p 方法 方法声明格式: [修饰符1 修饰符2 ...] 返回值类型 方法名(形式参数列表){ java语句;......; } 方法调用方式 普通方法对象.方法名(实参列表)静态方法类名.方法名(实参列表) 方法的详…

【YashanDB知识库】YashanDB的JDBC/OCI驱动如何设置字符编码

问题现象 Oracle、Mysql数据库链接串,JDBC驱动连接串可以指定客户端的编码格式: jdbc:mysql://hostname:port/database_name?useUnicodetrue&characterEncodingutf8mb4 jdbc:oracle:thin://hostname:port/service_name?NLS_LANGUAGEAMERICAN&am…

【SQL语句大全(MySQL)】

SQL语法 添加删除修改查询基本查询条件查询分组函数/聚合函数分组查询排序分页查询(限制查询)多表查询连接查询根据年代分类连接查询根据连接方式分类1、内连接2、左外连接3、右外连接 多张表连接的语法格式 嵌套查询 SQL语句书写顺序 添加 INSERT INTO…

构建生成工具cmake的使用(1)

ps:本文是对cmake的基础讲解,掌握后解决70-80%情况是足以应对的,后续会对cmake有进阶内容。 一 前言 CMake 是一个工具,帮助开发者管理和自动化软件项目的构建过程。它使用一个叫做CMakeLists.txt 的文本文件来描述项目的组织结构、编译选项…

oracle数据库下的定时任务,如何创建Jobs

oarcle中写存储过程,上面的文章中已经介绍过了,这次是写好存储过程后,在Jobs文件夹中新建job,达到定时执行任务的目的。 1、在plsql数据库中,找到左边的Jobs,右键点击新建,如下图: 2、按照下图将相应的项添…

【Gitlab】SSH配置和克隆仓库

生成SSH Key ssh-keygen -t rsa -b 4096 私钥文件: id_rsa 公钥文件:id_rsa.pub 复制生成的ssh公钥到此处 克隆仓库 git clone repo-address 需要进行推送和同步来更新本地和服务器的文件 推送更新内容 git push <remote><branch> 拉取更新内容 git pull &…

LINUX高性能服务器框架

1.服务器模型&#xff1a; 1). C/S模型 &#xff1a; 此模型就是一个服务器能给多个客户端提供服务&#xff0c;但所以资源都被服务端所占有&#xff0c;客户端想要获取只能通过请求连接服务端去获取。由于客户端的请求访问是异步的&#xff0c;所以需要一个手段进行此类事件的…

基于微信小程序的课堂考勤系统的设计与实现(论文+源码)_kaic

基于微信小程序的课堂考勤系统的设计与实现 摘 要 在高校教育普及的今天&#xff0c;学生人数日益增多&#xff0c;为保证课堂质量&#xff0c;教师多要在课前进行考勤。因此本设计提出基于微信小程序的课堂考勤系统&#xff0c;增加了定位功能&#xff0c;避免了“假打卡”…

前端开发知识(一)-html

1.前端开发需掌握的内容&#xff1a; 2.前端开发的三剑客&#xff1a;html、css、javascript Vue可以简化JavaScpript流程。 Element&#xff08;饿了么开发的&#xff09; &#xff1a;前端组件库。 Ngix&#xff1a;前端服务器。 3.前端开发工具&#xff1a;vscode 1)按…

基于Java+SpringBoot+Vue的学生心理咨询评估系统

前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 哈喽兄弟们&#xff0c;好久不见哦&#xff5…

乐尚代驾六订单执行一

加载当前订单 需求 无论是司机端&#xff0c;还是乘客端&#xff0c;遇到页面切换&#xff0c;重新登录小程序等&#xff0c;只要回到首页面&#xff0c;查看当前是否有正在执行订单&#xff0c;如果有跳转到当前订单执行页面 之前这个接口已经开发&#xff0c;为了测试&…

Linux嵌入式学习——数据结构——线性表的链式结构

线性表的链式存储 解决顺序存储的缺点&#xff0c;插入和删除&#xff0c;动态存储问题。 特点&#xff1a; 线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素&#xff0c;存储单元可以是连续的&#xff0c;也可以不连续。可以被存储在任意内存未被占…

四、单线程多路IO复用+多线程业务工作池

文章目录 一、前言1 编译方法 二、单线程多路IO复用多线程业务工作池结构三、重写Client_Context类四、编写Server类 一、前言 我们以及讲完单线程多路IO复用 以及任务调度与执行的C线程池&#xff0c;接下来我们就给他结合起来。 由于项目变大&#xff0c;尝试解耦项目&#…

47.简易电压表的设计与验证(2)

&#xff08;1&#xff09;Verilog 代码&#xff1a; module adc_collect(input clk ,input reset_n ,input [7:0] adc_data ,output clk_adc );wire clk_adc_a ;…

提交高通量测序处理数据到 GEO --- 操作流程

❝ 写在前面 由于最近在提交课题数据到 NCBI 数据库&#xff0c;整理了相关笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。推荐先按顺序阅读往期内容&#xff1a; 1. 提交高通量测序数据到 GEO --- 说明书 2. 提交高通量测序原…

基于机器学习的二手房价格分析与预测设计与实现

概述 随着西安房地产市场的不断发展和变化&#xff0c;对二手房价格的准确预测变得至关重要。本研究旨在利用机器学习技术对西安市二手房价格进行深入分析与预测&#xff0c;通过对原始数据进行数据预处理和特征提取&#xff0c;以构建有效的预测模型。通过数据分析和可视化&a…

LabVIEW学习-LabVIEW处理带分隔符的字符串从而获取数据

带分隔符的字符串很好处理&#xff0c;只需要使用"分隔符字符串至一维字符串数组"函数或者"一维字符串数组至分隔符字符串"函数就可以很轻松地处理带分隔符地字符串。 这两个函数所在的位置为&#xff1a; 函数选板->字符串->附加字符串函数->分…

第13周 简历职位功能开发与Zookeeper实战

第13周 简历职位功能开发与Zookeeper实战 本章概述1. Mysql8窗口函数over使用1.1 演示表结构与数据1.2 案例1:获取男女总分数1.3 案例2****************************************************************************************本章概述 1. Mysql8窗口函数over使用 参考案例…

从零开始学习机器学习,掌握AI未来的关键!

从零开始学习机器学习 1. 介绍1.1 人工智能&#xff08;AI&#xff09;概述1.2 机器学习在人工智能中的应用1.3 机器学习基础概念 2. 监督学习2.1 什么是监督学习2.2 回归分析2.3 分类问题2.4 模型评估和选择 3. 无监督学习3.1 什么是无监督学习3.2 聚类算法3.3 降维技术 4. 深…