ChatTTS:开源最强文本转真人语音工具

目录

1.前言        

2.详细介绍

2.1 什么是ChatTTS

2.2 项目地址:

2.3 应用特点:

3.如何安装和使用

3.1.谷歌colab

3.1.1.点击链接

3.1.2 进行保存

3.1.3 按照流程依次点击运行

3.1.4 填写自己需要转的文字

3.2 本地运行

3.2.1 下载或克隆项目源码到本地

3.2.2 安装相关依赖

 3.2.3 介绍用法

1.基本用法

2.高级用法

3.示例:自我介绍

3.2.4 用PyCharm打开项目文件

 3.2.5 运行测试代码,安装模型

 3.2.6 通过Webui的方式运行

3.3 直接exe文件使用

3. 总结


1.前言        

        也快到期末了,最近就基本不做别的事情,主要对期末进行复习和做自己喜欢的一些事情,下面是对自己发现的一个好玩的项目进行分享,如果不想太麻烦的话,直接看3.3有直接可以运行的版本进行使用.

2.详细介绍

2.1 什么是ChatTTS

        ChatTTS(Chat Text-to-Speech)是一种技术,它允许计算机程序将文本转换成口语,即语音输出。这种技术广泛应用于各种场景,比如语音助手、电子书阅读器、自动电话系统、辅助技术等。用户输入文本,ChatTTS系统会将这些文本转换成语音,然后通过扬声器播放出来,或者通过音频文件保存。这种转换通常涉及到语音合成技术,包括自然语言处理和语音合成引擎,使得生成的语音听起来尽可能自然和流畅。

2.2 项目地址:

目前项目已通过Github加速,在Gitee存在备份

ChatTTS:ChatTTS is a generative speech model for daily dialogue. - GitCodeicon-default.png?t=N7T8https://gitcode.com/2noise/ChatTTS/overview?utm_source=csdn_github_accelerator&isLogin=1

2noise/ChatTTS 在 upstract.com (github.com)icon-default.png?t=N7T8https://github.com/2noise/ChatTTS?ref=upstract.com

2.3 应用特点:

  1. 对话式优化:ChatTTS专注于对话式任务,确保合成语音的自然性和流畅性。
  2. 细粒度控制:支持对笑声、停顿和插入词等声音元素的精确操纵。
  3. 多说话人支持:能够模拟不同性别和风格的说话人,增加语音的多样性。
  4. 高效接口:提供简单易用的Python API,方便快速集成到现有项目中。
  5. 多语言支持:支持中文和英文,适用于多语言环境并满足不同语言用户的需求。
  6. 大规模数据训练:使用了大约10万小时的中文和英文数据进行训练,使得语音合成质量高,听起来自然。
  7. 开源:项目是开源的,鼓励进一步的研发与创新,并提供预训练模型。
  8. 易用性:只需要文本信息作为输入,就可以生成相应的语音文件,方便有语音合成需求的用户4。
  9. 对话任务兼容性:适合处理通常分配给大型语言模型(LLMs)的对话任务,提供更自然流畅的互动体验。
  10. 控制和安全性:致力于提高模型的可控性,添加水印,并将其与LLMs集成,确保模型的安全性和可靠性。

3.如何安装和使用

3.1.谷歌colab

         使用这个的话是傻瓜式,但是有限制条件,首先需要进行科学上网以及需要有谷歌账号,其次运行起来比较慢,经过测试第一次部署后,生成一段20多秒的语音大概需要10分钟左右

3.1.1.点击链接

点击进入后,登录谷歌账号

https://colab.research.google.com/drive/1_Ma1BXvIrYw9kO4UYsSG4GaFkttbS1wY?usp=sharing&pli=1#scrollTo=-NdpPWnIQb_qicon-default.png?t=N7T8https://colab.research.google.com/drive/1_Ma1BXvIrYw9kO4UYsSG4GaFkttbS1wY?usp=sharing&pli=1#scrollTo=-NdpPWnIQb_q

3.1.2 进行保存

首先进入后先进行Ctrl+S进行保存,留到自己的盘中

3.1.3 按照流程依次点击运行

接下来按照顺序进行点击运行,即可

在第二个安装依赖的运行时,会出现下面的重启会话,点击重启会话,然后再运行一次

然后继续按照顺序进行运行

3.1.4 填写自己需要转的文字

        到达这个运行窗口时,填入自己需要转换的文字写入,将其转换为语音,记住每次需要转换时都要运行这段代码,然后正常继续运行就可以了.

3.2 本地运行

        需要使Pycharm,需要Git或是将项目源码zip下载到本地

3.2.1 下载或克隆项目源码到本地

通过git进行克隆

2noise/ChatTTS 在 upstract.com (github.com)

下载zip推荐下面的这个,下载后是有-main的我把他去掉了;

ChatTTS:ChatTTS is a generative speech model for daily dialogue. - GitCode

3.2.2 安装相关依赖

        如下图所示,先切换到下载或是克隆的文件目录下,然后运行打开命令框,输入命令,等待安装,当然如果中间出现报错,可以自行百度解决,一般我这样安装时就会出错,但是测试的时候发现没出错,说明,目前依赖什么的还是很适配的不会出现什么问题.

PowerShell 7.4.2
cd D:\ChatTTS
pip install -r requirements.txt -i https://pypi.doubanio.com/simple/

 

 3.2.3 介绍用法

为什么要介绍用法呢,因为接下来会用到

1.基本用法
import ChatTTS
from IPython.display import Audiochat = ChatTTS.Chat()
chat.load_models(compile=False) # Set to True for better performancetexts = ["PUT YOUR TEXT HERE",]wavs = chat.infer(texts, )torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000)
2.高级用法
###################################
# Sample a speaker from Gaussian.rand_spk = chat.sample_random_speaker()params_infer_code = {'spk_emb': rand_spk, # add sampled speaker 'temperature': .3, # using custom temperature'top_P': 0.7, # top P decode'top_K': 20, # top K decode
}###################################
# For sentence level manual control.# use oral_(0-9), laugh_(0-2), break_(0-7) 
# to generate special token in text to synthesize.
params_refine_text = {'prompt': '[oral_2][laugh_0][break_6]'
} wav = chat.infer(texts, params_refine_text=params_refine_text, params_infer_code=params_infer_code)###################################
# For word level manual control.
text = 'What is [uv_break]your favorite english food?[laugh][lbreak]'
wav = chat.infer(text, skip_refine_text=True, params_refine_text=params_refine_text,  params_infer_code=params_infer_code)
torchaudio.save("output2.wav", torch.from_numpy(wavs[0]), 24000)
3.示例:自我介绍
inputs_en = """
chat T T S is a text to speech model designed for dialogue applications. 
[uv_break]it supports mixed language input [uv_break]and offers multi speaker 
capabilities with precise control over prosodic elements [laugh]like like 
[uv_break]laughter[laugh], [uv_break]pauses, [uv_break]and intonation. 
[uv_break]it delivers natural and expressive speech,[uv_break]so please
[uv_break] use the project responsibly at your own risk.[uv_break]
""".replace('\n', '') # English is still experimental.params_refine_text = {'prompt': '[oral_2][laugh_0][break_4]'
} 
# audio_array_cn = chat.infer(inputs_cn, params_refine_text=params_refine_text)
audio_array_en = chat.infer(inputs_en, params_refine_text=params_refine_text)
torchaudio.save("output3.wav", torch.from_numpy(audio_array_en[0]), 24000)

3.2.4 用PyCharm打开项目文件

按照官方示例代码来一个test.py

import ChatTTS
from IPython.display import Audiochat = ChatTTS.Chat()
chat.load_models()texts = ["我是测试文本", "你好,世界!"]wavs = chat.infer(texts, use_decoder=True)Audio(wavs[0], rate=24_000, autoplay=True)

 3.2.5 运行测试代码,安装模型

然后进行运行或是python test.py进行运行都可以,运行后就会下载很多依赖项

 3.2.6 通过Webui的方式运行

推荐使用webui的方式来运行,界面如下

​git clone GitHub - cronrpc/ChatTTS-webui: TTS

然后安装依赖,依赖中少了一个gradio,需要单独安装

pip install -r requirements.txt -i https://pypi.doubanio.com/simple/pip install gradio

然后运行python webui.py就可以打开界面进行使用了

3.3 直接exe文件使用

下面是佬对进行项目进行打包的版本,有不同win,linux使用的介绍以及一些报错的解决方案

Releases · jianchang512/ChatTTS-ui (github.com)icon-default.png?t=N7T8https://github.com/jianchang512/chatTTS-ui/releases

        通过网盘进行下载解压后,,在文件中找到exe文件,记得需要通过管理员运行,运行完成后会出现图所示的界面,代表成功

 一些基本的介绍在下面的图片中

3. 总结

        在学习过程中对于配置环境以及接触新知识是一件比较重要的事情,借着这个好玩的项目,重新对安装依赖进行一个回忆.

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

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

相关文章

算法每日一题(python,2024.05.31)

题目来源(力扣. - 力扣(LeetCode),简单) 解题思路: 二次遍历,第一次遍历用哈希表记录每个字母的出现次数,出现一次则将它的value值赋为True,将它的下标赋为key值&#x…

HTTPS加密

一.加密是什么 加密就是把明文(要传输的信息)进行一系列的变换,生成密文. 有加密就有解密,解密就是把密文进行一系列的变换,生成明文. 在这个加密和解密过程中,往往需要一个或多个中间数据,辅助进行这个过程,这样的数据称为密钥. 加密解密到如今已经发展成了一个独立的学科 : 密…

基于Springboot开发的外卖餐购项目(后台管理+消费者端)

免费获取方式↓↓↓ 项目介绍039: 系统运行 后端登录页: http://localhost:8081/backend/page/login/login.html 消费端请求:消费端主页: http://localhost:8081/front/index.html 管理员账号 admin 123456 消费者不需要登录 采用技术栈 前端:Eleme…

力扣20 有效的括号

给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

【智能算法】红嘴蓝喜鹊优化算法(RBMO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年,S Fu受到自然界中红嘴蓝喜鹊社会行为启发,提出了红嘴蓝喜鹊优化算法(Red-billed Blue Magpie Optimizer, RBMO)。 2.算法原理 2.1算…

MicroBlaze 处理器参考指南

概述 本章包含MicroBlaze功能的概述和详细信息MicroBlaze架构包括Big-Endian或Little-Endian位反转格式,32位或64位通用寄存器,虚拟内存管理,缓存软件支持,和AXI4-Stream接口 简介 MicroBlaze嵌入式处理器软核是一个精简指令集…

[JS] 前端充分使用console.log()有效输出(2024-6-1)

将变量包装在对象中 不要使用 console.log(url, url2, baz),而是使用 console.log({ url, url2, baz })。 如果你比较这两者,你会发现这有多么有用:拥有 url 和 url2 键可以避免这两个 URL 之间的混淆。 在日志前加上唯一字符串前缀 在应用…

开箱即用的Spring Boot 企业级开发平台【毕设项目推荐】

项目概述 基于 Spring 实现的通用权限管理平台(RBAC模式)。整合最新技术高效快速开发,前后端分离模式,开箱即用。 核心模块包括:用户、角色、职位、组织机构、菜单、字典、日志、多应用管理、文件管理、定时任务等功能…

牛客网刷题 | BC107 箭形图案

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 KiKi学习了循环&am…

【计算机毕业设计】359微信小程序校园失物招领系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

Android学习之ION memory manager

目录 what is ION? ION原理 ION数据结构 用户空间 API ION API what is ION? ION是Google的内存管理器,用来支持不同的内存分配机制,如CARVOUT(PMEM),物理连续内存(kmalloc), 虚拟地址连续但物理不连续内存(vmalloc), IOM…

智慧校园的应用场景有哪些

在21世纪的教育挑战中,如何利用科技手段优化教育资源分配,提升教学质量?智慧校园给出了答案。基于信息化的教育改革,智慧校园不仅提升了校园管理的效率,更通过一系列智能化应用,重塑了教学、学习和交流的方…

搭建大型分布式服务(三十八)SpringBoot 整合多个kafka数据源-支持protobuf

系列文章目录 文章目录 系列文章目录前言一、本文要点二、开发环境三、原项目四、修改项目五、测试一下五、小结 前言 本插件稳定运行上百个kafka项目&#xff0c;每天处理上亿级的数据的精简小插件&#xff0c;快速上手。 <dependency><groupId>io.github.vipjo…

多个短视频剪辑成一个视频:四川京之华锦信息技术公司

多个短视频剪辑成一个视频&#xff1a;创作中的艺术与技术 在数字时代&#xff0c;短视频以其短小精悍、内容丰富的特点&#xff0c;迅速成为社交媒体上的热门内容形式。然而&#xff0c;有时单一的短视频难以完全表达创作者的意图或满足观众的观赏需求。因此&#xff0c;将多…

【Qt秘籍】[007]-LineEdit Pushbutton控件

Qt的中有着各种各样的控件&#xff0c;相较于传统C/C的输出默认只能在控制台实现&#xff0c;Qt中可以有不同的接口实现各种不同的功能&#xff0c;下面我们将实现不同功能的输出 hello world&#xff01; 标签Label 【Qt秘籍】[006]-Label实现Hello World程序-编程第一步-CSD…

C语言王国——内存函数

目录 1 memcpy函数 1.1 函数表达式 1.2 函数模拟 2 memmove函数 2.1 函数的表达式 2.2 函数模拟 3 memset函数 3.1 函数的表达式 3.2 函数的运用 4 memcmp函数 4.1函数的表达式&#xff1a; 4.2 函数的运用 5 结论 接上回我们讲了C语言的字符和字符串函数&#…

MAC帧

基本问题 数据链路层的协议有很多&#xff0c;但是都有三个基本问题&#xff1a;封装成帧&#xff0c;透明传输和差错检测。 封装成帧 封装成帧&#xff08;Framing&#xff09;就是在一段数据的前后分别添加首部和尾部&#xff0c;这样就构成了一个帧。帧是数据链路层的传送…

vue中使用WebSocket心跳机制与Linux中的心跳机制

WebSocket心跳机制 一、WebSocket简介 WebSocket是HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术&#xff0c;属于应用层协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。 二、WebSocket事件与方法 …

曝光超1.5亿,迪丽热巴“抖音直播首秀”解锁德施曼智能锁科技革命

作为中国电商行业年中最大的消费狂欢节点&#xff0c;今年的618大促热闹依旧&#xff1b;各大品牌在今年极简的现货模式下展开了周期最长的品牌实力比拼。其中&#xff0c;高端智能锁领军品牌德施曼在618大促期间&#xff0c;携手代言人迪丽热巴&#xff0c;再次掀起智能锁消费…

设计模式(七)结构型模式---组合模式

文章目录 组合模式简介结构UML图具体实现UML图代码实现 组合模式简介 组合模式&#xff08;Composite Pattern&#xff09;又叫整体模式&#xff0c;它创建了对象组的树形结构&#xff0c;将对象组合成树状结构来表示“整体-部分”的层次关系。实际使用点&#xff1a;HashMap中…