ChatTTS - 用于对话场景的文本转语音

2024-06-10 20:44

本文主要是介绍ChatTTS - 用于对话场景的文本转语音,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家好,我是小麦,今天给大家分享一款免费,可用于对话场景的文本转语音工具。

阅读感悟

不知道大家在日常的学习、工作中是否有这样的一个情况,当我们阅读完一篇文章,很快就能读完,但印象不会很深;或者说在很多时候,对着电脑、手机看久了,眼睛很疲劳,希望能够通过听觉来接收我们文章的内容。我自己在时常阅读公众号文章,就很喜欢去听,而不是阅读的方式。逐渐发现听内容比阅读内容更容易吸收,而且能够极大的缓解我们的眼睛疲劳。

音频阅读文章内容

通过将视觉转为听觉,在很大程度上增加了我们的用户体验性,同时也能更好的帮助我们了解到文章的内容。例如我们在开车时,不方便阅读精彩的文章,这时候通过将视觉转为听觉,就可以了解到文章内容。

上面提到的问题,也很简单,无非就是将文本内容转成音频内容。市面上也有很多这样的技术,能够将文本转成音频。很多的大企业也提供了这样的开发能力,通过与平台对接,将我们自己产品的内容转换为音频内容。随着技术的发展,音频的模式也越来越丰富。例如支持音频人性别、音色、音频背景等方面的设置。

这些产品的功能虽然很强大,但需要具备一定的程序开发能力,对于不懂程序开发的用户来说,不是很友好。最重要的问题,当我们要生成很多的音频文件时,就需要付费使用,费用成本也不低。
文字转音频价格

ChatTTS是什么

今天要分享的内容就是ChatTTS,ChatTTS是什么呢?它又比其他的文章转音频有什么好处呢?

ChatTTS是一款基于对话场景下,经过优化,适用于自然、对话式文本转语音,并且是免费开源支持多种语言的工具。你可以将它嵌入到自己的程序中,同时你也可以使用官方的在线工具,直接使用。

ChatTTS文本转语音工具

用官方的描述,ChatTTS是什么。ChatTTS是专为对话场景设计的语音生成模型,特别适用于大型语言模型(LLM)助手的对话任务,以及诸如对话式音频和视频介绍等应用。它支持中文和英文,通过使用大约100,000小时的中文和英文数据进行训练,ChatTTS在语音合成中表现出高质量和自然度。

如何使用

如果你是一个非编程人员,可以直接使用官网的在线语音生成工具就可以了。直接将需要转换成语音的文本贴如内容框,同时也可以针对生成的语音做一些调整,例如音速、音色等内容。生成好之后,点击页面的下载按钮,就可以把音频文件保存在本地,这样你就可以在其他地方使用了。
ChatTTS参数调整

如果你是一名编程人员,希望能够继承到自己的产品中,这就需要你编程适当的代码才可以实现。不过这样非常的简单,官方也提供了代码示例,就短短的几行代码就可以做到。

1、从GitHub上下载代码

git clone https://github.com/2noise/ChatTTS

2、安装代码依赖
在开始之前,请确保已安装所需的软件包。您将需要torch和ChatTTS。如果尚未安装,可以使用pip安装。

pip install torch ChatTTS

3、导入所需要的库
在你的代码文件中导入必要的库。您将需要torch、ChatTTS和IPython.display中的Audio。

import torch
import ChatTTS
from IPython.display import Audio

4、初始化ChatTTS
创建ChatTTS类的实例并加载预训练模型。

chat = ChatTTS.Chat()
chat.load_models()

5、准备文本内容
定义要转换为语音的文本。将YOUR TEXT HERE替换为您想要的文本。

texts = ["你好,欢迎使用ChatTTS!"]

6、生成语音
使用infer方法从文本生成语音。设置use_decoder=True以启用解码器。

wavs = chat.infer(texts, use_decoder=True)

7、播放音频
使用IPython.display中的Audio类播放生成的音频。将采样率设置为24,000 Hz并启用自动播放。

Audio(wavs[0], rate=24_000, autoplay=True)

至此,整个程序的功能就实现了。可以通过下面完整代码,不难看出短短几行代码就能够将我们所需要的文本内容转成语音文件。

import torch
import ChatTTS
from IPython.display import Audio# 初始化ChatTTS
chat = ChatTTS.Chat()
chat.load_models()# 定义要转换为语音的文本
texts = ["你好,欢迎使用ChatTTS!"]# 生成语音
wavs = chat.infer(texts, use_decoder=True)# 播放生成的音频
Audio(wavs[0], rate=24_000, autoplay=True)

ChatTTS

可能你会产生一个疑问,市场上这么多的文字转语音工具,那ChatTTS有什么优势,或者说有什么特点呢?前面也提到了,该工具是免费开源,并且支持程序接入,同时也是支持在线使用。

具体的特点,来看看官网都是怎么说的呢。

1、多语言支持

ChatTTS 的一个关键特性是支持多种语言,包括英语和中文。这使其能够为广泛用户群提供服务,并克服语言障碍。

2、大规模数据训练

ChatTTS 使用了大量数据进行训练,大约有1000万小时的中文和英文数据。这样的大规模训练使其声音合成质量高,听起来自然。

3、对话任务兼容性

ChatTTS 很适合处理通常分配给大型语言模型LLMs的对话任务。它可以为对话生成响应,并在集成到各种应用和服务时提供更自然流畅的互动体验。

4、开源计划

项目团队计划开源一个经过训练的基础模型。这将使学术研究人员和社区开发人员能够进一步研究和发展这项技术。

5、控制和安全性

团队致力于提高模型的可控性,添加水印,并将其与LLMs集成。这些努力确保了模型的安全性和可靠性。

6、易用性

ChatTTS 为用户提供了易于使用的体验。它只需要文本信息作为输入,就可以生成相应的语音文件。这样的简单性使其方便有语音合成需求的用户。

使用感受

不管是在线工具,还是通过程序接入的方式,都整体体验了一次。效果相对还是不错的,对于生成内容比较多,又担心费用问题的群体可以考虑。其中还有一个亮点,它可以根据你文本的描述,生成对应的语言特色。

例如我在生成的文本中,提到了用四川话。最终生成的音频效果,就会带有四川话的特点。

本工具的分享就此结束,希望该工具的分享也对你有所帮助。

这篇关于ChatTTS - 用于对话场景的文本转语音的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049222

相关文章

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

99%的人都选错了! 路由器WiFi双频合一还是分开好的专业解析与适用场景探讨

《99%的人都选错了!路由器WiFi双频合一还是分开好的专业解析与适用场景探讨》关于双频路由器的“双频合一”与“分开使用”两种模式,用户往往存在诸多疑问,本文将从多个维度深入探讨这两种模式的优缺点,... 在如今“没有WiFi就等于与世隔绝”的时代,越来越多家庭、办公室都开始配置双频无线路由器。但你有没有注

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使