CHAT TTS的使用--克隆声音

383 阅读1分钟

找到一个开源的工具ChatTTS Voice Cloning
通过提交自已录的声音就可以将文字换成你想要的声音

image.png 下载这个文件,上面那个文件不行,原因还不清楚

image.png
CHAT TTS开源代码库 github.com/2noise/Chat…
自已的代码如下:

import ChatTTS
import torch
import torchaudio


###################################
# Sample a speaker from Gaussian.
#
chat = ChatTTS.Chat()
chat.load(compile=False)

rand_spk = torch.load(f'./asset/pt/forge_4.pt')

params_infer_code = ChatTTS.Chat.InferCodeParams(
    spk_emb=rand_spk,
    temperature=.1
    ,  # 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]',
)

texts = [
    "那部分代码是我自己写的,是不是警告我不清楚,用你在这里指指点点,笑死我了,你给我一分钱了吗,我要听你在这里像个甲方一样指手画脚。发言之前请先确认自己的话是纯粹发泄情绪还是真的为这个项目好",
    "如果你选择对我,对这个项目发泄情绪,我也只好也对你做同样的事了。告诉您一个小秘密,不懂代码可以不说话,您这样浅薄的发言,唯一的作用就是暴露您半桶水三脚猫般的知识水平,让懂代码的人看你在这里胡搅蛮缠无理取闹的笑话而已。如果你但凡有点良心,自己悄悄删掉这句话,我不会再追究,要是你还像这样子扰乱正常的讨论秩序,就不要怪我们不客气了"]

wavs = chat.infer(
    texts,
    params_refine_text=params_refine_text,
    params_infer_code=params_infer_code,
)

for i in range(len(wavs)):
    torchaudio.save(f"basic_output{i}.wav", torch.from_numpy(wavs[i]).unsqueeze(0), 24000)
    # unsqueeze(0)没有的话就会出错,这个要关注