跳转至

Fish Audio S2 环境依赖清单

锁定 2026-04 验证成功的版本。下次开新实例时照此部署。


一、GPU 实例(恒源云 gpushare.com)

硬件

项目 规格
显卡 RTX 3090 24GB(最低 16GB 可跑但紧张)
费用 ¥1.32/时(按量计费)
数据盘 勾选,模型保存在 /root/autodl-tmp/ 不丢失

系统依赖

apt update && apt install -y portaudio19-dev libsox-dev ffmpeg

Python 环境

Python  >=3.10        # 推荐 3.12
Conda   创建隔离环境

Fish Speech 代码 + 模型

WORKDIR=/root/autodl-tmp/fish-speech
mkdir -p $WORKDIR && cd $WORKDIR

# 克隆(锁定版本)
git clone https://github.com/fishaudio/fish-speech.git
cd fish-speech
# 当前仓库版本: fish-speech==2.0.0 (v2.0.0-beta 及之后)

# 创建环境
conda create -n fish-speech python=3.12 -y
conda activate fish-speech

# 安装(CUDA 12.9,与 RTX 3090 兼容)
pip install -e ".[cu129]"

Fish Speech 核心依赖(由 pip install 自动安装)

torch==2.8.0
torchaudio==2.8.0
transformers<=4.57.3
datasets==2.18.0
lightning>=2.1.0
hydra-core>=1.3.2
numpy
einops>=0.7.0
librosa>=0.10.1
gradio>5.0.0
uvicorn>=0.30.0
loguru>=0.6.0
loralib>=0.1.2
resampy>=0.4.3
einx[torch]==0.2.2
pydantic==2.9.2
pydub
pyaudio
silero-vad
ormsgpack
tiktoken>=0.8.0
opencc-python-reimplemented==0.1.7
descript-audio-codec
safetensors
modelscope==1.17.1

模型权重(~8GB,下载一次持久化)

HuggingFace: fishaudio/fish-speech-s2-pro  (旧名)
         或  fishaudio/s2-pro              (新名)
本地路径:   checkpoints/s2-pro/ 或 checkpoints/fish-speech-s2-pro/
关键文件:   codec.pth + Llama 权重
python -c "
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id='fishaudio/s2-pro',
    local_dir='checkpoints/s2-pro'
)
"

启动 API 服务

conda activate fish-speech
cd /root/autodl-tmp/fish-speech/fish-speech

# 基本启动
python -m tools.api \
    --listen 0.0.0.0:8080 \
    --llama-checkpoint-path checkpoints/s2-pro

# 或带 compile 加速(首次慢 5 分钟,后续快 10x)
python -m tools.api \
    --listen 0.0.0.0:8080 \
    --llama-checkpoint-path checkpoints/s2-pro \
    --compile

端口映射(恒源云)

  1. 恒源云控制台 → 自定义服务 → 开启
  2. 映射端口 8080 → 获取公网地址(如 http://i-1.gpushare.com:47555

二、本地机器(调用端)

Python 环境

Python  3.12.3

本地依赖

httpx       0.28.1    # Fish Audio API 调用
edge-tts    已安装     # 备用 TTS(Fish Audio 宕机时 fallback)
pydub       已安装     # 音频合并、格式转换
Pillow      10.2.0    # 幻灯片图片生成
ffmpeg      6.1.1     # 音视频处理后端

环境变量(.env

# Fish Audio(必填)
FISH_AUDIO_API_URL=http://i-1.gpushare.com:47555   # 恒源云公网地址
FISH_AUDIO_HOST_VOICE=/home/ai/lingtongask/voices/lingtong/voice_clip_15s.wav
FISH_AUDIO_GUEST_VOICE=/home/ai/lingtongask/voices/lingtong/voice_clip_15s.wav
TTS_ENGINE=fish_audio

参考音频(本地已有)

voices/lingtong/voice_clip_15s.wav   # 15秒灵通参考音频(主用)
voices/lingtong/voice_clip_45s.wav   # 45秒版本(备选)
voices/lingtong/voice_sample.wav     # 原始样本

三、快速重建清单(下次开新实例)

# 1. 开实例: RTX 3090, 勾选数据盘
# 2. SSH 连接后:

cd /root/autodl-tmp
# 如果首次: git clone + 下载模型(见上方)
# 如果数据盘已有模型:

cd /root/autodl-tmp/fish-speech/fish-speech
conda create -n fish-speech python=3.12 -y
conda activate fish-speech
pip install -e ".[cu129]"

# 启动服务
python -m tools.api --listen 0.0.0.0:8080 \
    --llama-checkpoint-path checkpoints/s2-pro --compile

# 3. 恒源云控制台映射端口 8080
# 4. 本地更新 .env 中的 FISH_AUDIO_API_URL
# 5. 开始合成

四、已知问题与注意事项

问题 说明
Fish Audio 返回 WAV 不是 MP3,代码中需兼容 .wav
服务器超时频繁 默认 120s read timeout,长文本需拆分(≤80字/段)
Edge TTS 备用 部分中文文本 YunxiNeural 会失败,需 fallback 到 YunjianNeural
显存需求 S2-Pro 4B FP16 占 ~10GB,3090 24GB 足够
非商业许可 S2-Pro 开源但非商业,商业部署需联系 Fish Audio
数据盘路径 恒源云: /root/autodl-tmp/,AutoDL: /root/autodl-tmp/,其他平台可能不同
compile 首次启动 首次 ~5 分钟编译,之后推理快 10x。只用几分钟就关机的话不值得开

五、GPU 使用计划

详见 GPU_USAGE_PLAN.md

核心原则: 1. 开机前 — 本地验证脚本、确认参考音频、检查余额 2. 开机后 — 一键部署 (scripts/gpu_deploy_and_start.sh) → 端口映射 → 合成 → 验证 3. 关机前 — 确认数据已保存到数据盘,本地已拿到产物

下次必做任务:EP052 重做 6 个 Edge TTS 片段(~25 分钟 GPU 时间,¥0.55)