共计 7238 个字符,预计需要花费 19 分钟才能阅读完成。
ChatTTS 是什么?
ChatTTS 是专为对话场景设计的语音生成模型,特别适用于大型语言模型 (LLM) 助手的对话任务,以及诸如对话式音频和视频介绍等应用。它支持中文和英文,通过使用大约 100,000 小时的中文和英文数据进行训练,ChatTTS 在语音合成中表现出高质量和自然度。
开源地址:https://github.com/2noise/ChatTTS
安装 ChatTTS
安装 ChatTTS 有 3 种方式,第 1 种是 Docker compose 安装 ChatTTS-ui(推荐)、第 2 种是安装一键安装包(推荐)、第 3 种本地安装方式、
本地部署 ChatTTS
系统环境介绍
以下都安装这个系统来介绍
系统:Windows11 专业版
CPU: 英特尔 I7-13700KF
内存:32G
硬盘:1T nvme SSD +4T 机械
显卡:RTX 4070 Ti
python 版本:Python 3.13.2
系统要安装 Docker 和 Docker compose
Docker compose 安装 ChatTTS-ui(推荐)
开源地址:https://github.com/jianchang512/ChatTTS-ui
1. 拉取项目仓库
在任意路径下克隆项目,例如:
git clone https://github.com/jianchang512/ChatTTS-ui.git chat-tts-ui
2. 启动 Runner
进入到项目目录:
cd chat-tts-ui
启动容器并查看初始化日志:
gpu 版本 | |
docker compose -f docker-compose.gpu.yaml up -d | |
| |
cpu 版本 | |
docker compose -f docker-compose.cpu.yaml up -d | |
| |
docker compose logs -f --no-log-prefix |
稍等一段时间,使用命令 docker ps 查看,如下则表示安装成功。
docker ps | |
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | |
7cce18cbbe8d chat-tts-ui-chat-tts-ui "/usr/local/bin/dock…" 7 minutes ago Up 2 minutes 7070-7071/tcp, 8080-8082/tcp, 0.0.0.0:9966->9966/tcp, :::9966->9966/tcp chat-tts-ui |
3. 访问 ChatTTS WebUI
启动:['0.0.0.0', '9966']
,也即,访问部署设备的 IP:9966
即可,例如:
-
本机:
http://127.0.0.1:9966
-
服务器:
http://192.168.1.100:9966
4. 生成语言
随便输入一段莎士比亚的《哈姆雷特》生存还是毁灭 莎士比亚 活着还是去死?这真是一个值得思虑的问题。
去忍受那狂暴的命运无情的摧残,还是挺身去反抗那无边的烦恼,把它扫一个干净。去死,去睡就结束了?如果睡眠能结束我们心灵的创伤和肉体所承受的千百样痛苦,那真是生存求之不得的天大的好事。
可以调试好可以下载语音。
Windows 预打包版(推荐)
从 Releases 中下载压缩包,解压后双击 app.exe 即可使用 某些安全软件可能报毒,请退出或使用源码部署 英伟达显卡大于 4G 显存,并安装了 CUDA11.8+ 后,将启用 GPU 加速
ChatTTS-UI 整合包下载
文件大小:3.69G
pan 点 baidu 点 com/s/1Hnqzm8ZdDKYX0dbvGmW38g?pwd=khds(浏览器中) 提取码: khds
由于平台不让放链接,可以关注“星哥玩云”公众号,回复“TTS 安装包”获得 ChatTTS 和 Spark-TTS 的一键安装包
本地安装(不推荐)
1. 安装 Python 和 git 环境
需要安装 python 和 git 软件
python 需要 3.9+ 版本,比如我选择 python 3.10.2
安装下 git 环境,这个就不详细将。
2. 克隆 ChatTTS-Ui
3. 解压后在根目录下输入 CMD 进入终端,然后依次执行下面的安装命令:
python -m venv venv | |
.\venv\scripts\activate | |
pip install -r requirements.txt |
4. 如果不需要 CUDA 加速,执行
pip install torch==2.1.2 torchaudio==2.1.2
如果需要 CUDA 加速,执行
pip install torch==2.1.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
5. 启动
最后执行 python app.py 启动,将自动打开浏览器窗口,默认地址 http://127.0.0.1:9966
(注意:默认从 modelscope 魔塔下载模型,不可使用代理下载,请关闭代理)
6. 下载 modelscope 下载模型
源码部署启动后,会先从 modelscope 下载模型,但 modelscope 缺少 spk_stat.pt,会报错,【】
下载后将该文件复制到 项目目录 /models/pzc163/chatTTS/asset/ 文件夹内
注意 modelscope 仅允许中国大陆 ip 下载模型,如果遇到 proxy 类错误,请关闭代理。
如果你希望从 huggingface.co 下载模型,请打开 app.py 查看大约第 50 行 -60 行的注释。如果需要 GPU 加速,必须是英伟达显卡,并且安装 cuda 版本的 torch
# 默认从 modelscope 下载模型, 如果想从 huggingface 下载模型,请将以下 3 行注释掉 | |
| |
CHATTTS_DIR = snapshot_download('pzc163/chatTTS',cache_dir=MODEL_DIR) | |
chat = ChatTTS.Chat() | |
chat.load_models(source="local",local_path=CHATTTS_DIR) | |
| |
# 如果希望从 huggingface.co 下载模型,将以下注释删掉。将上方 3 行内容注释掉 | |
| |
#os.environ['HF_HUB_CACHE']=MODEL_DIR | |
#os.environ['HF_ASSETS_CACHE']=MODEL_DIR | |
#chat = ChatTTS.Chat() | |
#chat.load_models() |
Spark-TTS 是什么
Spark-TTS 是最近备受瞩目的一个语音克隆开源项目,由香港科技大学、西北工业大学、上海交通大学等多所高校联合研发。经过本地测试,其效果与 F5-TTS 不相上下。
Spark-TTS 支持中英文语音克隆,安装部署过程并不复杂。本文将详细介绍如何安装部署,并进行修改,使其兼容 F5-TTS 的 API 接口,从而可以直接在 pyVideoTrans 软件的 F5-TTS 配音渠道中使用。
Spark-TTS 的项目地址
-
项目官网:
-
Github 仓库:https://github.com/SparkAudio/Spark-TTS
-
HuggingFace 模型库:https://huggingface.co/SparkAudio/Spark-TTS-0.5B
Spark-TTS 的主要功能
-
零样本文本到语音转换:Spark-TTS 能在没有特定语音数据的情况下,复现说话人的声音,实现零样本语音克隆。
-
多语言支持:Spark-TTS 支持中英双语,可实现跨语言语音合成。用户可以用一种语言输入文本,生成另一种语言的语音输出,满足多语言场景下的语音合成需求。
-
可控语音生成:用户可以通过调整参数(如性别、音调、语速、音色等)来定制虚拟说话者的声音,生成符合特定需求的语音内容。
-
高效简洁的语音合成:基于 Qwen2.5 架构,Spark-TTS 无需额外的生成模型(如流匹配模型),直接从 LLM 预测的编码中重建音频,提高了语音合成的效率。
-
虚拟说话者创建:用户可以创建完全由自己定义的虚拟说话者,通过参数调整使其具有独特的语音风格,适用于虚拟主播、有声读物等场景。
-
语音克隆与风格迁移:Spark-TTS 支持从少量语音样本中提取风格特征,将其迁移到合成语音中,实现个性化语音风格的复制和迁移。
Spark-TTS 的应用场景
-
语音助手开发:Spark-TTS 可以用于开发个性化的语音助手,通过调整音色、语速和语调等参数,生成自然流畅的语音输出,为用户提供更加人性化和个性化的交互体验。
-
多语言内容创作:工具支持中英双语,能实现跨语言语音合成,适合需要在不同语言版本之间保持一致语音风格的内容创作者,例如制作多语言的有声读物、广告或教育材料。
-
智能客服与信息播报:Spark-TTS 可以将文字信息转化为自然语音,用于智能客服系统,提供 24 小时不间断的服务,或者在公共交通、机场、医院等公共场所进行信息播报。
-
语音克隆与虚拟角色配音:Spark-TTS 支持零样本语音克隆,能快速复制特定说话人的声音风格,适用于虚拟角色配音、动画制作或虚拟主播等领域。
安装 Spark-TTS
Spark-TTS 整合安装包
由于迅雷限速下载还需要几个小时,等下载好了,再发链接
由于平台不让放链接,可以关注“星哥玩云”公众号,回复“TTS 安装包”获得 ChatTTS 和 Spark-TTS 的一键安装包
1. 下载 Spark-TTS 源码
推荐有一定操作基础的这样安装
首先,在非系统盘创建一个由英文或数字组成的文件夹,例如 D:/spark
。之所以要求使用英文、数字且非系统盘,是为了尽量避免可能出现的中文、权限等方面的错误。
然后,访问 Spark-TTS 官方代码仓库:https://github.com/SparkAudio/Spark-TTS
如下图所示,点击下载源码的 ZIP 包:
下载完成后解压,将所有文件和文件夹复制到 D:/spark
文件夹中。复制后的目录结构应如下图所示:
2. 创建虚拟环境并安装依赖
创建虚拟环境
在该文件夹地址栏输入 cmd
并回车,在弹出的黑色终端窗口中执行以下命令:
python -m venv venv
执行后,D:/spark
目录下会多出一个 venv
文件夹:
注意: 如果在执行时提示
python 不是内部或外部命令
,说明没有安装 Python 或没有将其添加到系统环境变量中,请参考相关文章安装 Python。
接下来,执行 venv\scripts\activate
激活虚拟环境。激活后,终端行首会出现 (venv)
字样,表示激活成功。后续所有命令都需要在此环境下执行,每次执行前请检查是否已激活。
安装依赖
在已激活的虚拟环境中,继续在终端中执行以下命令,安装所有依赖:
pip install -r requirements.txt | |
| |
或者: | |
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple |
3. 下载模型
开源 AI 项目所需的模型通常托管在 Hugging Face (huggingface.co) 上。由于该网站在国内已被屏蔽,因此需要科学上网才能下载模型。请确保已配置好科学上网环境,并设置了系统代理。
在当前目录 D:/spark
下创建一个名为 down.txt
的文本文件,将以下代码复制粘贴到文件中并保存:
from huggingface_hub import snapshot_download | |
snapshot_download("SparkAudio/Spark-TTS-0.5B", local_dir="pretrained_models/Spark-TTS-0.5B") | |
print('下载完成') |
然后,在已激活虚拟环境的终端窗口中执行以下命令:
python down.txt
注意检查命令行前是否存在 (venv)
:
等待终端提示下载完成。
如果输出类似以下信息,说明网络连接错误,可能是科学上网环境配置不正确:
Returning existing local_dir `pretrained_models\Spark-TTS-0.5B` as remote repo cannot be accessed in `snapshot_download` ((MaxRetryError("HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /api/models/SparkAudio/Spark-TTS-0.5B/revision/main (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x000001BC4C8A4430>, 'Connection to huggingface.co timed out. (connect timeout=None)'))"),'(Request ID: aa61d1fb-ffc7-4479-9a99-2258c1bc0aee)')).
4. 启动 Web 界面
模型下载完成后,就可以启动并打开 Web 界面了。
在已激活虚拟环境的终端中执行以下命令:
python webui.py
等待出现如下信息时,表示启动完成:
此时,可以在浏览器中打开地址 http://127.0.0.1:7860
,Web 界面如下图所示:
5. 语音克隆测试
如下图所示,选择一个你想要克隆音色的音频文件(时长 3-10 秒,发音清晰,背景干净)。
然后在右侧 Text of prompt speech
中输入该音频对应的文本内容,左侧输入你希望生成的语音文本,最后点击底部的 Generate 按钮开始执行。
执行完成后,如下图所示。
6. 在 pyVideotrans 软件中使用
Spark-TTS 与 F5-TTS 非常相似,只需进行简单修改,就可以直接在 pyVideotrans 的 F5-TTS 配音渠道中使用 Spark-TTS。
打开 webui.py
文件,在大约第 135 行的上方粘贴以下代码:
def basic_tts(gen_text_input, ref_text_input, ref_audio_input,remove_silence=None,speed_slider=None): | |
""" | |
Gradio callback to clone voice using text and optional prompt speech. | |
- text: The input text to be synthesised. | |
- prompt_text: Additional textual info for the prompt (optional). | |
- prompt_wav_upload/prompt_wav_record: Audio files used as reference. | |
""" | |
prompt_speech = ref_audio_input | |
prompt_text_clean = None if len(ref_text_input) < 2 else ref_text_input | |
| |
audio_output_path = run_tts( | |
gen_text_input, | |
model, | |
prompt_text=prompt_text_clean, | |
prompt_speech=prompt_speech | |
) | |
return audio_output_path,prompt_text_clean |
特别注意: Python 代码使用空格进行缩进对齐,否则代码会报错。为避免出错,建议不要使用记事本打开 webui.py
文件,而是使用专业的代码编辑器,例如 Notepad++ 或 VSCode 等免费工具。
然后,找到大约第 190 行的 generate_buttom_clone = gr.Button("Generate")
代码。在其上方粘贴以下代码,同样必须注意对齐:
generate_buttom_clone2 = gr.Button("Generate2",visible=False) | |
generate_buttom_clone2.click( | |
basic_tts, | |
inputs=[ | |
text_input, | |
prompt_text_input, | |
prompt_wav_upload, | |
text_input, | |
text_input | |
], | |
outputs=[audio_output,prompt_text_input], | |
api_name="basic_tts" | |
) |
保存文件后,重新启动 webui.py
:
python webui.py
-
将地址
http://127.0.0.1:7860
填写到 pyVideotrans 软件的“菜单”->“TTS 设置”->“F5-TTS”的 API 地址中,即可开始使用。参考音频的位置和填写方式与 F5-TTS 的使用方法一致。
结束
ChatTTS 和 Spark-TTS 都是非常优秀的免费开源声音克隆、文本转语音软件。感兴趣的小伙伴可以试试。
写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;也别忘了关注星哥玩云!这里有满满的干货分享,还有轻松有趣的技术交流~点个赞、分享给身边的小伙伴,一起成长,一起玩转技术世界吧!😊
