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 Audio

chat = ChatTTS.Chat()
chat.load_models(compile=False) # Set to True for better performance

texts = ["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 Audio

chat = 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. 总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA多线程与IO流知识总结

文章目录 IO流体系字节流FileOutputStreamFileInputStreamtry-catch处理 字符流FileReaderFIleWriter原理分析 使用场景字节缓冲流BufferedInputStreamBufferedOutputStream 字符缓冲流BufferedReaderBufferedWriter 转换流InputStreamReaderOutputStreamWriter 序列化流Object…

SQL刷题笔记day8——SQL进阶——表与索引操作

目录 1 创建一张新表 2 修改表 3 删除表 4 创建索引 5 删除索引 1 创建一张新表 我的答案 create table if not exists user_info_vip (id int(11) primary key auto_increment Comment自增ID, # 有了主键就不用写not nul了 uid int(11) unique not null Comment用户ID, …

MMPose-RTMO推理详解及部署实现(下)

目录 前言一、RTMO推理(Python)1. RTMO预测2. RTMO预处理3. RTMO后处理4. RTMO推理 二、RTMO推理(C)1. ONNX导出2. RTMO预处理3. RTMO后处理4. RTMO推理 三、RTMO部署1. 源码下载2. 环境配置2.1 配置CMakeLists.txt2.2 配置Makefile 3. ONNX导出4. engine生成5. 源码修改6. 运行…

Git 恢复已删除的branch

六一节晚上改了点code, 做完之后commit, 然后误删了这个branch, 并且新建了branch. 那么怎样恢复已删除的branch呢? 网上查询一番,找到了答案: 1. git reflog 找到被删的branch中最后一笔commit, 记录它的SHA1。 怎么看SHA1是被删除的bra…

Mac修改Mysql8.0密码

转载请标明出处:http://blog.csdn.net/donkor_/article/details/139392605 文章目录 前言修改密码Step1:修改my.conf文件Step2:添加配置skip-grant-tablesStep3:重启mysql服务Step4:进入mysqlStep5:刷新权限Step6:修改密码Step7:再次刷新权限Step8:删除/注释 skip-…

本地安装AI大模型

使用ollmam安装llmama3等模型 1.打开ollmam下载对应系统的软件,安装即可 官网:Ollama, 安装直接点就就行了,没有其他操作 2.安装模型 在官网找到对于的模型下载命令 记录命令:ollama run llama3 打开一个cmd窗口,输…

opencv-python(三)

马赛克 face img[162:428,297:527] # 人脸坐标区域face face[::10,::10] # 每10个中取出一个像素,马赛克face np.repeat(face, 10, axis0) # 行方向重复10次face np.repeat(face, 10, axis1) # 列方向重复10次img[162:428,297:527] face[:266,:230] # 填充&a…

54. 螺旋矩阵【rust题解】

题目 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 示例 1 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2 输入:matrix [[1,2,3,4],[5,6,…

贴片和直插型IRM红外遥控接收头引脚定义和规格参数及使用注意事项

红外遥控接收头使用注意事项 引脚定义存在不同 红外遥控接收头大量使用在家用电器的遥控中,属于价廉物美的一种光电接收器件,批量价格约0.3元左右。 多数遥控接收头的引脚定义是OUT,GND,VCC,另有引脚定义不同为OUT,VCC,GND,记住…

基于STM32的水库预警系统的Proteus仿真

文章目录 一、水库预警系统1.题目要求2.思路2.1 OLED显示汉字2.2 水质传感器等等2.3 步进电机2.4 驱动水泵 3.仿真图3.1 未仿真时3.2 开始仿真,OLED开始显示3.3 提高水位,开启阀门和预警3.4 通过按键增大水位阈值,取消报警 4.仿真程序4.1 程序…

车联网安全入门——ICSim模拟器使用

文章目录 车联网安全入门——ISCim模拟器使用介绍主要特点:使用场景: 安装使用捕获can流量candumpcansnifferwiresharkSavvyCAN主要特点:使用场景: 重放can报文cansendSavvyCAN 总结 车联网安全入门——ISCim模拟器使用 &#x1…

前端表单校验完成之后,点击确认功能无反应FormInstance, FormRules

**产生原因:可能是在el-form 中添加的ref 前面加了“:”,也可能是ref中的值写错了** FormInstance, FormRules

Unity + 雷达 粒子互动(待更新)

效果预览: 花海(带移动方向) VFX 实例 脚本示例 使用TouchScript,计算玩家是否移动,且计算移动方向 using System.Collections; using System.Collections.Generic; using TouchScript; using TouchScript.Pointers; using UnityEngine; using UnityEngine.VFX;public …

装饰器,状态管理和if判断(HarmonyOS学习第六课)

Builder装饰器-自定义构建函数 前面介绍了如何创建一个自定义组件。该自定义组件内部UI结构固定,仅与使方法进行数据传递。ArkUI还提供了一种更轻量的UI 元素复用机制Builder,Builder 所装饰的函数遵循build( )函数语法规则,开发者可以将重…

网页安全登陆的设计思路

对于Web网站来讲,不管是企业内容信息化系统,还是公共站点(博客、音视频站等),都有需要用户注册和登录的功能。用以识别用户、信息交互、信息隔离以及商业行为等场景。用户数据已成为网站的重要资产。保护用户信息(数据)是网站安全运行的关键任务。本文以用户安全登录的场…

AI产品导航站

1、AI产品导航站 (chat2ai.cn)

自然语言处理(NLP)—— 神经网络语言处理

1. 总体原则 1.1 深度神经网络(Deep Neural Network)的训练过程 下图展示了自然语言处理(NLP)领域内使用的深度神经网络(Deep Neural Network)的训练过程的简化图。 在神经网络的NLP领域: 语料…

mybatis异常:Invalid bound statement (not found): com.lm.mapper.ArticleMapper.list

现象: 原因: 无效绑定,应该是mybatis最常见的一个异常了,接口与XML文件没绑定。首先,mapper接口并没有实现类,所以框架会通过JDK动态代理代理模式获取接口的代理实现类,进而根据接口全限定类名…

高清矩阵是什么?

在数学中,矩阵是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。如图为m行n列的矩阵: 由此延伸可以想到矩阵图片是把一个三维空间分切成多个行和列的区域进行图像捕获,将捕获图像再进行拼合成为…

C51学习归纳1 --- led点亮、led闪烁、led流水灯

第一节主要是针对LED的控制学习。这个过程中我们需要掌握的:1、控制的实现方法,控制实现的方法在后续的学习中是通用的。2、如何知道谁控制谁,通过查找开发板原理图获取,原理图的阅读的能力,在日后也是非常常用的。 一…