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

news2024/11/15 10:44:23

上期图文教程,我们分享了微软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.coloradmin.cn/o/1945042.html

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

相关文章

代码随想录day21 二叉树最后一天 || 669修剪二叉树 108将有序数组转变为平衡搜索二叉树 538把搜索二叉树变为累加二叉树

669修剪二叉树 力扣题目链接 题目描述: 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果…

Anything LLM ,构建自己的 RAG 架构 LLM,学习自己的知识库

本心、输入输出、结果 文章目录 Anything LLM ,构建自己的 RAG 架构 LLM,学习自己的知识库前言什么是Anything LLM?主要功能与技术原理功能亮点技术原理安装与使用方法初始设置模型部署案例应用企业知识管理个性化教育助手内容创作助手Anything LLM 开源新Anything LLM ,构…

DolphinDB Web 端权限管理:可视化操作指南

在现代数据库管理中,高效和直观的权限管理对于用户的数据安全是至关重要的。过去 DolphinDB 用户需要依赖系统脚本来管理用户和权限,这对于缺乏技术背景的管理员来说既复杂又容易出错。 为了提升用户体验和操作效率,DolphinDB 目前在 Web 上…

解决nvm use无效问题

首先安装先确定没错。nvm安装教程 问题:nvm use 后 node和npm均无法使用,nvm list也没有*号 原因:nvm目录下没有nodejs文件夹 解决办法:先nvm install 一个版本,复制,改名nodejs,比如我这里是复…

unity2D游戏开发02添加组件移动玩家

添加组件 给PlayGame和EnemyObject添加组件BoxCollider 2D碰撞器,不用修改参数 给PlayGame添加组件Rigibody 2D 设置数据 添加EnemyObject,属性如下 Edit->project setting->Physics 2D 将 y的值改为0 给playerObject添加标签 新建层 将PlayerObj…

MacOS安装SDKMan管理Java版本

文章目录 1 简介2 安装与卸载2.1 安装2.2 卸载 3 使用3.1 查看其他工具:支持 Ant, Maven 等3.2 查看Java版本3.3 安装Java,加上相关的版本3.4 设置Java版本(全局)3.5 只在当前窗口生效3.6 卸载1 默认环境无法卸载 4 jdk安装的位置5 与IDEA集成参考 1 简介…

【目标检测实验系列】EMA高效注意力机制,融合多尺度特征,助力YOLOv5检测模型涨点(文内附源码)

1. 文章主要内容 本篇博客主要涉及多尺度高效注意力机制,融合到YOLOv5s模型中,增加模型提取多尺度特征的能力,助力模型涨点。(通读本篇博客需要7分钟左右的时间)。 2. 简要概括 论文地址:EMA论文地址 如下…

使用 VMware vCenter Server(vSphere Client)迁移 ESXi 虚拟机

我需要将虚拟机 k8s-dev-node4从 ESXi 主机 192.168.1.161 迁移到 ESXi 主机 192.168.1.162 上,使用 VMware vCenter Server(vSphere Client)在浏览器上可视化操作,将这个需求变的非常简单。 1、选中需要迁移的虚拟机&#xff0c…

k8s部署rabbitmq集群

1 部署集群 1.1 安装 # 创建一个中间件的命名空间 kubectl create namespace middleware # 创建ConfigMap,包含RabbitMQ的配置文件内容 kubectl apply -f rabbitmq-configmap.yaml # 配置用于存储RabbitMQ数据的PersistentVolume(PV)和PersistentVolum…

系统架构设计师教程 第4章 信息安全技术基础知识-4.3 信息安全系统的组成框架4.4 信息加解密技术-解读

系统架构设计师教程 第4章 信息安全技术基础知识-4.3 信息安全系统的组成框架 4.3 信息安全系统的组成框架4.3.1 技术体系4.3.1.1 基础安全设备4.3.1.2 计算机网络安全4.3.1.3 操作系统安全4.3.1.4 数据库安全4.3.1.5 终端安全设备4.3.2 组织机构体系4.3.3 管理体系4.4 信息加…

机器学习(五) -- 无监督学习(1) --聚类2

系列文章目录及链接 上篇:机器学习(五) -- 无监督学习(1) --聚类1 下篇: 前言 tips:标题前有“***”的内容为补充内容,是给好奇心重的宝宝看的,可自行跳过。文章内容被…

微服务(网关路由)

目录 一:网关路由 1:认识网关 2:快速入门 2.1:创建项目 2.2:引入依赖 2.3:启动类 2.4:路由配置 2.5:测试 3:路由过滤 二:网关登录校验 1&…

OpenWrt 为软件包和docker空间扩容

参考资料 【openwrt折腾日记】解决openwrt固件刷入后磁盘空间默认小的问题,关联openwrt磁盘扩容空间扩容【openwrt分区扩容】轻松解决空间可用不足的尴尬丨老李一瓶奶油的YouTube 划分空间 参考一瓶奶油的YouTube 系统 -> 磁盘管理 -> 磁盘 -> 修改 格…

探索Linux-1

Linux是什么? Linux是一个开源的操作系统内核,由林纳斯托瓦兹(Linus Torvalds)于1991年首次发布。它基于Unix操作系统,但提供了更多的自由和灵活性。Linux内核是操作系统的核心部分,负责管理系统资源、处理…

编程中的智慧四:设计模式总览

前面三篇我们通过从一些零散的例子,和简单应用来模糊的感受了下设计模式在编程中的智慧,从现在开始正式进入设计模式介绍,本篇将从设计模式的7大原则、设计模式的三大类型、与23种设计模式的进行总结,和描述具体意义。 设计模式体…

LeetCode 860柠檬水找零(贪心算法)/406根据身高重建队列(贪心算法)

1. 柠檬水找零 思路分析 只需要维护三种金额的数量,5,10和20。 有如下三种情况: 情况一:账单是5,直接收下。情况二:账单是10,消耗一个5,增加一个10情况三:账单是20&am…

(35)远程识别(又称无人机识别)(二)

文章目录 前言 4 ArduRemoteID 5 终端用户数据的设置和使用 6 测试 7 为OEMs添加远程ID到ArduPilot系统的视频教程 前言 在一些国家,远程 ID 正在成为一项法律要求。以下是与 ArduPilot 兼容的设备列表。这里(here)有一个关于远程 ID 的很好解释和常见问题列表…

【linux】Shell脚本三剑客之awk命令的详细用法攻略

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

[用AI日进斗金系列③]用CodeFlying在企微接单自动生成一个固定资产管理系统

今天是【日进斗金】系列的第三期文章。 给新朋友简单介绍一下,我们这个系列主要是教大家如何在企业微信的工作台上接单赚米。 详细介绍可以看看前两期的文章 [用AI日进斗金系列]用码上飞在企微接单开发一个项目管理系统!-CSDN博客 [用AI日进斗金系列…

【Android】性能实践—编码优化与布局优化学习笔记

【Android】性能实践—编码优化与布局优化学习笔记 编码优化 使用场景 如果需要拼接字符串,优先使用StringBuffer和StringBuilder进行凭借,他们的性能优于直接用加号进行拼接,因为使用加号连接符会创建多余的对象一般情况下使用基本数据类…