文本转语音工具 ChatTTS 使用教程

Part.I Introduction

ChatTTS (Chat Text To Speech) 是专门为对话场景设计的文本转语音模型,例如LLM助手对话任务。它支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练。在 HuggingFace 中开源的版本为4万小时训练且未SFT的版本。

在这里插入图片描述
开发 ChatTTS 的团队称:突破开源天花板!ChatTTS 有如下特点:

在这里插入图片描述
ChatTTS 文本转语音示例如下

B 站_ChatTTS 示例

Part.II 一键安装部署

Chap.I 下载

建议使用『ChatTTS 一键本地安装!目前最简单高效的部署方案【文本转语音】』进行安装部署,使用的是 123 云盘,近 3G 压缩包分分钟下完。

在这里插入图片描述
1、下载好后解压,得到如下文件,双击app.exe,会自动进行环境配置。

在这里插入图片描述
2、环境配置好后会在浏览器中弹出来使用接口(http://127.0.0.1:9966/)。
在这里插入图片描述

Chap.II 使用

参数的含义如下:

  • text:指的是需要转换成语音的文字内容。
  • Refine text:选择是否自动对输入的文本进行优化处理。
  • 随机度:一个控制输出随机性的参数,数值越大,生成的语音随机性越高,这可能导致生成的语音质量有时更好,有时更差。
  • 音色选择:默认值为2222,这是一个数字参数,用于选择声音的类型。可选的数字有2222、7869、6653、4099、5099,可以任选其一,或者输入其他数字以随机选择声音。
  • 定制声音:这是一个正整数参数,用于定制声音的音调和音色。如果设置了此值,将优先使用,而忽略声音选择参数。
  • 提示设置(Prompt):用于添加笑声、停顿等效果。例如,可以设置为[oral_2][laugh_0][break_6]

在这里插入图片描述
合成好之后即可下载

Chap.III 存在的问题

这种方法虽然简单,但是看不到程序内部运行的逻辑,也没有办法更改程序本身的代码,出现问题也没有行之有效的解决方案。笔者在尝试的时候就遇到了一些问题,如下:

1、无法识别[lauge]等提示词
2、前面几秒声音乱入。

Part.III 手动部署

https://github.com/2noise/ChatTTS/tree/main/docs/cn

克隆仓库

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

安装依赖

pip install --upgrade -r requirements.txt

Chap.I 快速使用

建议先执行一遍

python examples/cmd/run.py "Your text 1."

快速使用:命令行交互(生成的音频将保存至 ./output_audio_n.mp3)

python examples/cmd/run.py "Your text 1." "Your text 2."

快速使用:WebUI 可视化界面

python examples/web/webui.py

在这里插入图片描述

PS:建议文字数目不要超过150个。长文本后面就是在瞎说。

Chap.II 开发教程

安装ChatTTS的Python 包,方法有如下三种

1、从 PyPI 安装稳定版

pip install ChatTTS

2、从 GitHub 安装最新版

pip install git+https://github.com/2noise/ChatTTS

3、从本地文件夹安装开发版

pip install -e .

基础用法

import ChatTTS
import torch
import torchaudio

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

texts = ["PUT YOUR 1st TEXT HERE", "PUT YOUR 2nd TEXT HERE"]

wavs = chat.infer(texts)

torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000)

进阶用法

###################################
# Sample a speaker from Gaussian.

rand_spk = chat.sample_random_speaker()
print(rand_spk) # save it for later timbre recovery

params_infer_code = ChatTTS.Chat.InferCodeParams(
    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 = ChatTTS.Chat.RefineTextParams(
    prompt='[oral_2][laugh_0][break_6]',
)

wavs = 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]'
wavs = 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)

Reference

### 如何在 ChatTTS使用音色选择功能 在 ChatTTS 工具中,音色选择是一个重要的参数,允许用户指定不同的声音类型来生成语音。默认情况下,音色选择的值为 `2222`[^2]。 #### 设置音色选择参数 为了更改音色,可以在请求 API 或者配置界面中修改 `音色选择` 参数。该参数接受特定的数字作为输入,这些数字对应于预定义的声音类型: - 可选的数字有:`2222`, `7869`, `6653`, `4099`, `5099` - 用户也可以输入其他任意正整数以随机获得一种新的音色组合 当指定了有效的音色编号之后,系统会根据所给定的 ID 来加载相应的声学特征并应用于最终输出的音频文件上。 #### 示例代码片段展示如何通过编程方式设置音色选项 下面是一段 Python 代码示例,展示了怎样利用 HTTP 请求向 ChatTTS 发送带有自定义音色的选择命令: ```python import requests url = "https://huggingface.co/spaces/Hilley/ChatTTS-OpenVoice" payload = { 'text': '你好世界', '音色选择': '7869' # 更改这里的值即可切换不同风格的发音人 } response = requests.post(url, data=payload) if response.status_code == 200: with open('output.wav', 'wb') as f: f.write(response.content) else: print(f"Error: {response.text}") ``` 需要注意的是,在某些情况下可能会遇到由于模型本身的局限而导致无法完全按照预期调整音色的情况[^3];此时建议关注官方更新或尝试其他可用的方法来进行微调。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪猪头拯救地球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值