news 2026/9/20 22:45:17

ChatTTS-ui 语音合成音色定制:10分钟拿到3种选音色方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ChatTTS-ui 语音合成音色定制:10分钟拿到3种选音色方法

ChatTTS-ui 语音合成音色定制:10分钟拿到3种选音色方法

【免费下载链接】ChatTTS-ui一个简单的本地网页界面,使用ChatTTS将文字合成为语音,同时支持对外提供API接口。A simple native web interface that uses ChatTTS to synthesize text into speech, along with support for external API interfaces.项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui

ChatTTS-ui 是一个本地文字转语音合成工具,支持中英混排输入。本文按实际任务拆解四件事:启动服务、用三种途径选音色、把自备音色文件放进项目、调节语气效果。照做一遍,10 分钟内就能听到第一段定制语音。

最快上手合成:三条命令听到第一段语音

先克隆仓库并装好依赖:

git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui cd ChatTTS-ui && pip install -r requirements.txt python3 app.py

首次启动会自动下载 ChatTTS 模型文件,网络连不上 Hugging Face 时会自动切到国内魔搭镜像源。终端出现 Start 提示、浏览器自动打开后即可使用,默认地址是http://127.0.0.1:9966🎧

在网页文本框输入一句话并点击合成。默认使用预置音色 2222,稍等几秒就能听到第一段语音。这一步不需要任何额外配置,先跑通流程。

选音色的三种途径:预置音色、自定义种子值、音色文件

合成时你听到的声音由三种途径决定,按场景任选其一:

途径操作方式适合场景
预置音色voice填数字要一个稳定可复现的固定音色
自定义种子值custom_voice填大于 0 的整数想当场生成一个新音色
音色文件.csv 或 .pt 文件放入 speaker 目录要复用某个已确认的音色

预置常用值有 2222、7869、6653、4099、5099,任意其他数字也可以填。填了custom_voicevoice字段会被忽略,系统以这个数字为随机种子(决定音色随机性的整数)生成音色,并自动存成 speaker 目录下的{值}.csv,下次填同一个值即可得到同一音色。注意同一种子值在不同机器上音调可能略有差异,先试听确认可用再固定使用。

音色文件放进项目:版本不匹配时的格式转换步骤

0.92 版本起支持 .csv 和 .pt 两种音色文件。把文件放进 speaker 目录 后重启程序,它就会出现在音色下拉框里,API 的voice参数也可以直接填文件名(带或不带后缀都行)。

从魔搭等渠道下载的 .pt 文件(默认文件名形如seed_XXXX_restored_emb.pt)因为 0.96 版本后 ChatTTS 内核升级,不能直接用了。需要先在项目根目录执行音色格式转换脚本 cover-pt.py:

python cover-pt.py

脚本会把 speaker 里所有以seed_开头、_emb.pt结尾的文件转成以_emb-covert.pt结尾的新文件,原文件转换完成后可以删掉。之后在界面下拉框选这个新文件即可使用该音色。

调节语气效果:prompt 标签的三种写法

prompt参数控制语音的细微效果,写法是一串方括号标签,常用的有三种:

  • [oral_X]:口语感强弱,X 越大越"聊天腔"
  • [laugh_X]:是否带笑,X=0 为无笑声
  • [break_X]:停顿时长,X 越大停顿越明显

标签直接拼接,X 取非负整数。比如合成一句带停顿、偏口语的表达,可以这样调用 API:

import requests res = requests.post('http://127.0.0.1:9966/tts', data={ "text": "欢迎收听本地语音合成教程", "voice": "2222", "prompt": "[oral_2][break_4]" }) print(res.json())

返回的 JSON 里带 wav 文件路径和可下载网址。另外 temperature(默认 0.3)、top_p(默认 0.7)能调节合成的随机程度,想更稳定就往低调。

设备与显存门槛:自动选 GPU 还是 CPU

启动时程序会自动挑选计算设备,也可以用.env文件里的device变量强制指定:

  • default:优先找英伟达 GPU,显存不足会自动退回 CPU(README 中描述的门槛为显存低于 4G 强制 CPU)
  • cpu:强制 CPU 推理
  • mps:使用 Apple 芯片的 GPU
  • cuda:强制使用英伟达 GPU

没有 GPU 也能跑,只是合成速度慢。有 4G 以上显存的英伟达卡时,装好 CUDA 12.8+ 和 CUDA 版 torch,启动即自动走 GPU 加速。

遇到问题先查这里:四个高频现象

音色文件不在下拉框里—— 原因:文件放错目录或扩展名不是 .csv/.pt。处理:移到 speaker 目录后重启程序。

下载的 .pt 音色报错或声音异常—— 原因:0.96 内核升级后旧格式不兼容。处理:先跑python cover-pt.py转换,再用-covert.pt结尾的新文件。

有英伟达显卡却仍走 CPU—— 原因:装的是非 CUDA 版 torch。处理:卸载后重装 CUDA 版,且系统需已装 CUDA 12.8+ 工具包。

同一种子值两台机器听感不同—— 原因:随机音色受运行环境影响,音调可能漂移。处理:接受小差异,或用 .csv/.pt 音色文件把声音固定下来。

到这里,选音色、换音色、调效果三条线就都通了。下一步建议挑一个顺耳的种子值,试听两遍后存成文件,之后直接当固定音色用。

【免费下载链接】ChatTTS-ui一个简单的本地网页界面,使用ChatTTS将文字合成为语音,同时支持对外提供API接口。A simple native web interface that uses ChatTTS to synthesize text into speech, along with support for external API interfaces.项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 22:45:13

油猴脚本装完不生效?从匹配规则到CSP的完整排查指南

油猴脚本装好了,脚本也显示“安装成功”,打开网页却一动不动——这个情况我见得太多了。不管是 Tampermonkey 还是 Violentmonkey,凡是折腾过用户脚本的人,十有八九都栽过这个跟头。明明安装步骤没毛病,油猴扩展也在工…

作者头像 李华
网站建设 2026/9/20 22:44:54

QQ空间历史说说导出:免费开源工具的完整使用指南

QQ空间历史说说导出:免费开源工具的完整使用指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 为什么几年的QQ空间说说自己翻不到 想找一条几年前发的说说,从…

作者头像 李华
网站建设 2026/9/20 22:44:48

@mdx-js/vue 完全指南:在 Vue 项目中用 Context 为 MDX 注入组件

mdx-js/vue 完全指南:在 Vue 项目中用 Context 为 MDX 注入组件 【免费下载链接】mdx Markdown for the component era 项目地址: https://gitcode.com/gh_mirrors/md/mdx mdx-js/vue 是 MDX 官方生态中面向 Vue 的 context 组件提供器,它基于 Vu…

作者头像 李华
网站建设 2026/9/20 22:42:39

从网页对话到AI编程工作台:本地模型、模型网关与提示词实战

最近大半年,我把自己的开发环境逐步从“编辑器 浏览器问AI”切换成了一整套真正意义上的 AI 编程工作台。这里说的“工作台”不是某个软件,而是一套组合:终端、编辑器、本地模型、云端 API、提示词模板和自动化脚本协同工作,目的…

作者头像 李华