gpt-sovits测试语音克隆

写个测试程序,ref_10s.wav 作为参考音频,ref_10s.txt 作为参考文本,1.txt 作为待合成文本,进行合成,合成后的音频文件放到\gpt-sovits\media 这个免费云服务器文件夹下

现在我了解了三丰云项目结构。根据项目中的 batch_synthesize.py ,它使用预训练模型进行合成。让我为您编写一个简单的测试程序:

python 复制代码
import os
import sys

os.environ["gpt_path"] = r"E:\ai\python\gpt-sovits\models\AIDub\GPT-SoVITS\GPT_SoVITS\pretrained_models\s1v3.ckpt"
os.environ["sovits_path"] = r"E:\ai\python\gpt-sovits\models\AIDub\GPT-SoVITS\GPT_SoVITS\pretrained_models\sv\pretrained_eres2netv2w24s4ep4.ckpt"
os.environ["version"] = "v2"

sys.path.insert(0, r"E:\ai\python\gpt-sovits\models\AIDub\GPT-SoVITS")

print("开始导入模块...", flush=True)
from GPT_SoVITS.inference_webui import change_gpt_weights, change_sovits_weights, get_tts_wav
import GPT_SoVITS.inference_webui as inference_webui
from tools.i18n.i18n import I18nAuto
import soundfile as sf

print("模块导入完成", flush=True)
print(f"hps 是否已定义: {hasattr(inference_webui, 'hps')}", flush=True)
print(f"vq_model 是否已定义: {hasattr(inference_webui, 'vq_model')}", flush=True)

i18n = I18nAuto()

GPT_MODEL = os.environ["gpt_path"]
SOVITS_MODEL = os.environ["sovits_path"]

REF_AUDIO = r"E:\ai\python\gpt-sovits\media\5月27日_ref_10s.wav"
REF_TEXT = r"E:\ai\python\gpt-sovits\media\5月27日_ref_10s.txt"
TARGET_TEXT = r"E:\ai\python\gpt-sovits\media\1.txt"
OUTPUT_DIR = r"E:\ai\python\gpt-sovits\media"


def synthesize():
    print("=" * 50)
    print("GPT-SoVITS 语音合成测试")
    print("=" * 50)

    if not os.path.exists(REF_AUDIO):
        print(f"错误: 参考音频文件不存在: {REF_AUDIO}")
        return

    if not os.path.exists(REF_TEXT):
        print(f"错误: 参考文本文件不存在: {REF_TEXT}")
        return

    if not os.path.exists(TARGET_TEXT):
        print(f"错误: 待合成文本文件不存在: {TARGET_TEXT}")
        return

    if not os.path.exists(OUTPUT_DIR):
        os.makedirs(OUTPUT_DIR)

    print(f"\n参考音频: {REF_AUDIO}")
    print(f"参考文本: {REF_TEXT}")
    print(f"待合成文本: {TARGET_TEXT}")
    print(f"输出目录: {OUTPUT_DIR}")

    with open(REF_TEXT, "r", encoding="utf-8") as f:
        ref_text = f.read().strip()
    print(f"\n参考文本内容: {ref_text}")

    with open(TARGET_TEXT, "r", encoding="utf-8") as f:
        target_text = f.read().strip()
    print(f"待合成文本内容: {target_text}")

    print("\n加载模型...", flush=True)
    print(f"GPT模型: {GPT_MODEL}", flush=True)
    print(f"SoVITS模型: {SOVITS_MODEL}", flush=True)
    change_gpt_weights(gpt_path=GPT_MODEL)
    print("GPT模型加载完成", flush=True)
    try:
        gen = change_sovits_weights(sovits_path=SOVITS_MODEL)
        next(gen)
        next(gen)
        print("SoVITS模型加载完成", flush=True)
    except StopIteration:
        print("SoVITS模型加载完成(生成器已结束)", flush=True)
    except Exception as e:
        print(f"加载SoVITS模型时出现警告: {e}", flush=True)
        import traceback
        traceback.print_exc()

    print(f"hps 是否已定义: {hasattr(inference_webui, 'hps')}", flush=True)

    print("开始合成...")
    synthesis_result = get_tts_wav(
        ref_wav_path=REF_AUDIO,
        prompt_text=ref_text,
        prompt_language=i18n("中文"),
        text=target_text,
        text_language=i18n("中文"),
        top_p=1,
        temperature=1,
    )

    result_list = list(synthesis_result)

    if result_list:
        last_sampling_rate, last_audio_data = result_list[-1]
        output_path = os.path.join(OUTPUT_DIR, "output.wav")
        sf.write(output_path, last_audio_data, last_sampling_rate)
        print(f"\n合成完成! 音频已保存到: {output_path}")
    else:
        print("\n合成失败,未生成音频")


if __name__ == "__main__":
    synthesize()
相关推荐
2601_949499942 分钟前
芯瑞科技 DT-1414 光模块工程实测:完美兼容博通(安华高) HFBR-1414PTZ,VCSEL 替代方案
大数据·网络·人工智能·科技·光模块
城事漫游Molly3 分钟前
研究论证的四要素:主张、理由、证据、保证——用AI逐一检验
人工智能·ai for science·论文发表·博士生必读·论证argument·科研论文投稿
字节跳动视频云技术团队11 分钟前
AI 视频降本的三种做法,只有一种不牺牲画质
人工智能·aigc
自动化测试行业观察22 分钟前
从“自动化”到“智能化”:TestMan AI测试平台引领软件测试范式转移
运维·自动化测试·人工智能·测试工具·自动化·app测试·移动应用测试
HyperAI超神经28 分钟前
在线教程|ProteinGym 第一名!VenusREM 用「检索增强」预测蛋白突变影响,加速蛋白质设计
人工智能·深度学习·生物信息学·大模型推理·生物医学
合调于形29 分钟前
Bianfchheng (Baf) 《边城(八)》全文汉语拼音字母标调实测案例
人工智能·自然语言处理·人机交互·语音识别·学习方法
同创永益41 分钟前
锚定AI数字韧性赛道,同创永益完成新一轮股权融资
人工智能·it·同创永益·数字韧性
ZhengEnCi41 分钟前
AI Agent 在 Windows 执行命令不熟练:是 PowerShell 还是 cmd 的锅?
人工智能
零信任Enlink_Young42 分钟前
OpenAI 模型失控事件:AI 时代,零信任重塑内网安全
人工智能·安全
aneasystone本尊1 小时前
学习 Headroom 的三大压缩器
人工智能