如何通过运行 tests 目录脚本验证 ChatTTS 环境安装是否成功? 如何通过运行 tests 目录脚本验证 ChatTTS 环境安装是否成功【免费下载链接】ChatTTSA generative speech model for daily dialogue.项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTSChatTTS 是一个面向日常对话场景的文本转语音TTS生成模型。按 README 克隆仓库并安装依赖之后如何确认ChatTTS包、PyTorch 依赖和模型加载链路真的可用仓库的tests/目录提供了三个回归测试脚本和一条批量执行入口 tests/testall.sh它们的共同作用是加载模型、执行推理或文本精炼并在结果不符合预期时以非零状态退出。跑通这批脚本就完成了一次对环境安装结果的验证。准备条件克隆仓库并安装依赖按照 README 的 Get Started 章节操作git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS cd ChatTTS安装依赖有两种方式任选其一# 方式一直接在当前环境安装 pip install --upgrade -r requirements.txt# 方式二conda 隔离环境README 示例使用 Python 3.11 conda create -n chattts python3.11 conda activate chattts pip install -r requirements.txt注意 requirements.txt 中pynini、WeTextProcessing、nemo_text_processing三个文本归一化相关依赖只在sys_platform linux时安装。如果你在其他平台且没有这些包tests/#655.py运行时只会打出一条警告见下文不会中断。运行入口testall.sh 做了什么tests/testall.sh 的逻辑很直接#!/bin/sh exitcode0 for file in tests/*.py do echo Testing $file... python $file if [ $? -ne 0 ] then echo Error: $file exited with a non-zero status. exitcode1 fi echo Test $file success done exit $exitcode它遍历tests/*.py逐个用python执行检查每个脚本的退出状态码只要有一个脚本退出码非零就会打印Error: $file exited with a non-zero status.并把整体退出码置为 1。执行时必须位于项目根目录原因有两个脚本内部用相对路径tests/*.py和python $file调用测试文件三个测试脚本都通过sys.path.append(os.getcwd())把当前工作目录加入sys.path再import ChatTTS和from tools.logger import get_logger——这两个包分别位于仓库根目录的ChatTTS/和tools/。README 的 Quick Start 一节也明确要求Make sure you are under the project root directory when you execute these commands below。sh tests/testall.sh三个测试脚本分别验证什么脚本验证内容失败判定退出码置 1 的条件tests/#511.py完整推理链路chat.load(compileFalse, sourcehuggingface)后对 8 段中文文本执行chat.infer(..., skip_refine_textTrue, split_textFalse)任一段音频结果为None打印index k is None警告tests/#588.py文本精炼chat.infer(texts, refine_text_onlyTrue, streamFalse, ...)后的结果长度检查精炼后文本去除[xxx]标签长度超过原文 4 倍tests/#655.py精炼结果的确定性回归 tokenizer 编解码往返固定prompt和manual_seed12345要求精炼输出命中两个预期字符串之一且_prepare_generation_outputs再编码解码后的文本等于脚本中给定的固定序列精炼文本不匹配、或往返解码结果不等于脚本中的期望串三个脚本的公共点都用chat.load(compileFalse, sourcehuggingface)加载模型即模型文件来源是 HuggingFaceREADME 中模型发布在 2Noise/ChatTTS 仓库首次运行需要能访问 HuggingFace 完成模型获取在 macOSsys.platform darwin上会自动设置PYTORCH_ENABLE_MPS_FALLBACK1。tests/#655.py开头还有一段可选逻辑尝试注册英文归一化器normalizer_en_nemo_text()失败时仅打印警告Package nemo_text_processing not found!并继续执行——这是警告而非失败。如何判断安装验证通过sh tests/testall.sh运行结束后按以下顺序核对每个脚本的输出每个文件执行前打印Testing tests/xxx.py...脚本正常跑完打印Test tests/xxx.py success。失败时的输出某个脚本失败时除退出码非零外脚本自身会通过 logger级别为logging.WARN打印具体原因例如index 0 is None、refined text is ...、recoded text is ...testall.sh 随后打印Error: tests/xxx.py exited with a non-zero status.。shell 退出码命令结束后执行echo $?返回 0 表示全部通过返回 1 表示至少一个测试脚本失败可对照上表定位是哪个脚本、哪类检查不通过。限制说明这套脚本是回归测试而非功能演示不保存任何音频文件只检查推理/精炼/编解码结果是否符合脚本内的预期。tests/#655.py中的预期字符串、temperature/top_P/top_K等参数都是脚本写死的回归基准输出不匹配就判失败这是设计意图锁定模型行为不应替换成自己的参数。模型加载依赖 HuggingFace 网络可达compileFalse表示未启用编译加速README 注释说明设为True可获得更好性能但测试脚本统一使用False。如果某个脚本因依赖缺失在import阶段直接报错退出码非零同样会被 testall.sh 捕获为失败此时应先回到上面的依赖安装步骤排查。【免费下载链接】ChatTTSA generative speech model for daily dialogue.项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考