Fish Speech 1.5开发者速查手册:模型权重路径、日志位置、缓存目录全标注

如果你正在使用Fish Speech 1.5镜像,是不是经常遇到这些问题:模型权重到底放在哪里?生成的音频文件去哪了?服务启动失败该看哪个日志?别急,这篇速查手册就是为你准备的。

作为开发者,我们最需要的就是清晰的路径指引。今天我就把Fish Speech 1.5(内置模型版)v1镜像里的所有关键文件位置、目录结构、配置路径都给你标注清楚,让你开发调试时不再迷路。

1. 核心文件系统全览

先来个整体认识,Fish Speech 1.5镜像的文件系统主要分为几个关键区域:

1.1 根目录结构概览

进入容器后,你会看到这样的目录布局:

/root/
├── fish-speech/          # 主项目目录
├── start_fish_speech.sh  # 启动脚本
├── fish_speech.log       # 运行日志
└── .cache/              # 用户缓存(部分依赖)

1.2 各目录功能说明

  • /root/fish-speech/:这是Fish Speech项目的核心代码库,所有源代码、工具脚本都在这里
  • /root/start_fish_speech.sh:一键启动脚本,负责按正确顺序启动后端API和前端WebUI
  • /root/fish_speech.log:最重要的日志文件,所有服务启动、运行、错误信息都记录在这里
  • /tmp/:临时文件目录,生成的音频文件默认存放在这里

2. 模型权重与配置文件路径

这是大家最关心的部分——模型文件到底在哪?

2.1 模型权重存放位置

Fish Speech 1.5的模型权重存放在固定路径:

/root/fish-speech/checkpoints/fish-speech-1___5/

在这个目录下,你会找到两个核心模型文件:

# 查看模型文件
ls -lh /root/fish-speech/checkpoints/fish-speech-1___5/

# 输出示例:
# -rw-r--r-- 1 root root 1.2G Jan  1 00:00 model.pth
# -rw-r--r-- 1 root root 180M Jan  1 00:00 firefly-gan-vq-fsq-8x1024-21hz-generator.pth

文件说明:

  1. model.pth(约1.2GB)

    • 这是LLaMA架构的文本转语义主模型
    • 负责将输入的文本转换为语义表示
    • 文件较大,首次加载需要一些时间
  2. firefly-gan-vq-fsq-8x1024-21hz-generator.pth(约180MB)

    • VQGAN声码器模型
    • 负责将语义表示转换为实际的音频波形
    • 支持24kHz采样率输出

2.2 配置文件路径

Fish Speech的配置文件分散在几个地方:

# 主要配置文件
/root/fish-speech/configs/

# 模型配置文件
/root/fish-speech/configs/fish_speech.yaml

# 声码器配置
/root/fish-speech/configs/vqgan/

如果你需要调整模型参数,可以修改这些配置文件。不过建议先备份原文件,因为镜像已经做了优化配置。

3. 服务与日志文件位置

了解服务运行状态,必须知道日志在哪。

3.1 服务启动脚本

启动脚本是入口,理解它有助于排查问题:

# 查看启动脚本内容
cat /root/start_fish_speech.sh

# 脚本主要做三件事:
# 1. 启动后端FastAPI服务(端口7861)
# 2. 等待后端就绪
# 3. 启动前端Gradio WebUI(端口7860)

3.2 日志文件详解

主日志文件:

/root/fish_speech.log

这个日志记录了完整的启动和运行过程:

# 实时查看日志(推荐)
tail -f /root/fish_speech.log

# 查看最后100行
tail -100 /root/fish_speech.log

# 查看错误信息
grep -i error /root/fish_speech.log

日志中的关键信息:

  1. 后端服务启动:会显示"Starting API server..."和"Uvicorn running on..."
  2. 前端服务启动:显示"Starting Gradio server..."和"Running on local URL:"
  3. 模型加载:显示"Loading model from checkpoint..."和模型加载进度
  4. 推理过程:显示文本处理、语音生成的时间消耗

3.3 服务进程检查

如果服务没起来,可以检查进程:

# 检查后端API服务(端口7861)
ps aux | grep api_server.py
lsof -i :7861

# 检查前端WebUI服务(端口7860)
ps aux | grep web_ui.py
lsof -i :7860

# 检查GPU使用情况
nvidia-smi

4. 生成文件与缓存目录

生成的音频文件去哪了?缓存文件在哪?

4.1 音频生成目录

默认情况下,生成的音频文件存放在临时目录:

# 查看最近生成的音频文件
ls -lh /tmp/fish_speech_*.wav

# 示例输出:
# -rw-r--r-- 1 root root 480K Mar 15 10:30 /tmp/fish_speech_123456.wav
# -rw-r--r-- 1 root root 720K Mar 15 10:31 /tmp/fish_speech_789012.wav

文件命名规则:

  • 格式:fish_speech_{timestamp}.wav
  • 位置:/tmp/目录下
  • 格式:WAV格式,24kHz采样率,单声道

4.2 缓存文件位置

模型推理过程中会产生一些缓存文件:

# PyTorch模型缓存
~/.cache/torch/

# HuggingFace相关缓存(如果用到)
~/.cache/huggingface/

# 临时推理缓存
/tmp/fish_speech_cache/

清理缓存建议: 如果磁盘空间不足,可以清理这些缓存,但注意清理后首次运行会变慢:

# 清理临时音频文件(保留最近的文件)
find /tmp -name "fish_speech_*.wav" -mtime +1 -delete

# 清理PyTorch缓存(谨慎操作)
rm -rf ~/.cache/torch/checkpoints/

5. 源代码与工具脚本位置

如果你想深入了解或修改代码,需要知道源代码在哪。

5.1 核心源代码目录

/root/fish-speech/fish_speech/     # 核心模型代码
/root/fish-speech/tools/           # 工具脚本
/root/fish-speech/web_ui.py        # Web界面
/root/fish-speech/api_server.py    # API服务

5.2 重要工具脚本

# API服务器
/root/fish-speech/tools/api_server.py

# Web界面(自研版本)
/root/fish-speech/web_ui.py

# 命令行工具
/root/fish-speech/tools/cli.py

# 批量处理脚本
/root/fish-speech/tools/batch_infer.py

5.3 自定义修改建议

如果你想修改代码,建议先复制到其他目录:

# 备份原文件
cp /root/fish-speech/web_ui.py /root/fish-speech/web_ui.py.backup

# 修改后重启服务
bash /root/start_fish_speech.sh

6. 环境配置与依赖

了解环境配置有助于解决依赖问题。

6.1 Python环境

# Python版本
python --version  # 3.11.x

# 虚拟环境位置(如果有)
/root/venv/ 或 /opt/conda/envs/fish-speech/

# 查看已安装包
pip list | grep -E "(torch|gradio|fastapi)"

6.2 关键依赖版本

镜像中预装了这些关键版本:

  • PyTorch 2.5.0 + CUDA 12.4
  • Gradio 6.2.0
  • FastAPI 0.104.1
  • Transformers 4.36.0

6.3 环境变量配置

镜像设置了这些环境变量:

# 查看环境变量
env | grep -E "(GRADIO|CUDA|PYTORCH)"

# 重要环境变量:
# GRADIO_CDN=false          # 禁用CDN,离线可用
# CUDA_VISIBLE_DEVICES=0    # 使用第一块GPU
# PYTORCH_CUDA_ALLOC_CONF=... # 内存分配配置

7. 常见问题排查路径指南

遇到问题?按这个路径排查。

7.1 服务启动失败

排查步骤:

  1. 先看日志tail -50 /root/fish_speech.log
  2. 检查端口lsof -i :7860lsof -i :7861
  3. 检查模型文件:确认/root/fish-speech/checkpoints/下的文件完整
  4. 检查GPUnvidia-smi查看GPU状态

常见错误:

# 错误:模型文件找不到
# 解决:检查checkpoints目录权限和文件完整性

# 错误:CUDA out of memory
# 解决:减少batch size或清理其他GPU进程

# 错误:端口被占用
# 解决:kill占用进程或修改端口

7.2 音频生成失败

排查步骤:

  1. 检查输入文本:是否过长?包含特殊字符?
  2. 查看临时目录ls -lh /tmp/fish_speech_*.wav
  3. 检查磁盘空间df -h /tmp
  4. 查看详细日志grep -A5 -B5 "生成" /root/fish_speech.log

7.3 性能问题排查

如果生成速度慢:

# 检查GPU使用率
nvidia-smi -l 1

# 检查CPU和内存
top

# 检查磁盘IO
iostat -x 1

# 查看模型加载时间
grep "Loading" /root/fish_speech.log

8. 开发调试实用技巧

分享几个我在使用中总结的实用技巧。

8.1 快速测试API

不用打开浏览器,直接命令行测试:

# 简单测试
curl -X POST http://127.0.0.1:7861/v1/tts \
  -H "Content-Type: application/json" \
  -d '{"text":"测试一下API是否正常","reference_id":null}' \
  --output test.wav

# 检查生成的文件
file test.wav
ls -lh test.wav

8.2 批量生成脚本

创建自己的批量处理脚本:

#!/usr/bin/env python3
import requests
import json
import time

api_url = "http://127.0.0.1:7861/v1/tts"

texts = [
    "第一段要生成的文本",
    "这是第二段内容",
    "继续生成第三段"
]

for i, text in enumerate(texts):
    print(f"生成第{i+1}段音频...")
    
    payload = {
        "text": text,
        "reference_id": None,
        "max_new_tokens": 1024
    }
    
    response = requests.post(api_url, json=payload)
    
    with open(f"output_{i+1}.wav", "wb") as f:
        f.write(response.content)
    
    time.sleep(1)  # 避免请求过快

print("批量生成完成!")

8.3 监控服务状态

创建简单的监控脚本:

#!/bin/bash
# monitor_fish_speech.sh

# 检查服务进程
check_process() {
    if ps aux | grep -q "[a]pi_server.py"; then
        echo " 后端API服务运行中"
    else
        echo " 后端API服务未运行"
    fi
    
    if ps aux | grep -q "[w]eb_ui.py"; then
        echo " 前端WebUI服务运行中"
    else
        echo " 前端WebUI服务未运行"
    fi
}

# 检查端口
check_port() {
    if lsof -i :7860 > /dev/null; then
        echo " 端口7860(WebUI)已监听"
    else
        echo " 端口7860未监听"
    fi
    
    if lsof -i :7861 > /dev/null; then
        echo " 端口7861(API)已监听"
    else
        echo " 端口7861未监听"
    fi
}

# 检查GPU内存
check_gpu() {
    echo "GPU使用情况:"
    nvidia-smi --query-gpu=memory.used,memory.total --format=csv,noheader
}

# 执行所有检查
check_process
check_port
check_gpu

9. 总结

通过这篇速查手册,你应该对Fish Speech 1.5镜像的文件系统有了全面了解。记住这几个关键路径:

  1. 模型权重/root/fish-speech/checkpoints/fish-speech-1___5/
  2. 运行日志/root/fish_speech.log
  3. 生成音频/tmp/fish_speech_*.wav
  4. 启动脚本/root/start_fish_speech.sh

在实际开发中,遇到问题先查日志,再检查文件路径,最后验证服务状态。这个镜像已经做了很多优化配置,大多数情况下开箱即用。

如果你需要扩展功能,比如添加新的语音风格、支持更多语言,可以基于现有的代码结构进行修改。记得修改前备份原文件,这样即使改错了也能快速恢复。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐