Instalação
Requisitos
| Modelo | Memória GPU | GPU |
|---|---|---|
| Drama 3 | pelo menos 48 GB (FP8) | apenas NVIDIA GPU: sem CPU, Apple MPS ou AMD ROCm e sem --compile |
| S2-Pro | pelo menos 24 GB | NVIDIA GPU ou CPU |
- Sistema: Linux, WSL
Note
A V100 e outras GPUs anteriores a SM80 não têm bfloat16, pelo que o Drama 3 passa a float16 (mantendo o fluxo residual em fp32).
Configuração do Sistema
O Fish Audio Drama 3 e o S2-Pro partilham a mesma instalação. Escolha a opção que melhor se adapta ao seu ambiente de desenvolvimento.
Pré-requisitos: instale as dependências de sistema necessárias para o processamento de áudio:
Conda
conda create -n fish-speech python=3.12
conda activate fish-speech
# Instalação com GPU (escolha a sua versão do CUDA: cu126, cu128, cu129)
# Substitua os dois valores "cu129" ao usar cu126 ou cu128.
pip install --extra-index-url https://download.pytorch.org/whl/cu129 -e ".[cu129]"
# Instalação apenas para CPU
pip install --extra-index-url https://download.pytorch.org/whl/cpu -e ".[cpu]"
# Instalação padrão (usa o índice padrão do PyTorch)
pip install -e .
# Se encontrar um erro durante a instalação devido ao pyaudio, considere usar o seguinte comando:
# conda install pyaudio
# De seguida, execute pip install -e . novamente
UV
O UV resolução e instalação de dependências mais rápidas:
# Instalação com GPU (escolha a sua versão do CUDA: cu126, cu128, cu129)
uv sync --python 3.12 --extra cu129
# Instalação apenas para CPU
uv sync --python 3.12 --extra cpu
Suporte para Intel Arc XPU
Se usa uma GPU Intel Arc, instale com suporte XPU (apenas S2-Pro; o Drama 3 precisa de uma NVIDIA GPU):
conda create -n fish-speech python=3.12
conda activate fish-speech
# Instalar a biblioteca padrão C++ necessária
conda install libstdcxx -c conda-forge
# Instalar o PyTorch com suporte para Intel XPU
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpu
# Instalar o Fish Speech
pip install -e .
Warning
A opção compile não é suportada no Windows e no macOS. Se quiser usar compile, tem de instalar o Triton manualmente.
Baixar Pesos
Os dois modelos partilham a mesma linha de comandos e o mesmo servidor API; o tipo de modelo é lido do config.json do diretório de pesos. Guarde-os no mesmo diretório checkpoints.
Para descarregar precisa da CLI da Hugging Face:
Drama 3
Se o diretório de pesos não tiver codec.pth, é usado o codec do S2-Pro em checkpoints/s2-pro/codec.pth, por isso descarregue também o S2-Pro.
S2-Pro
Depois de descarregar os pesos, consulte Inferência.
Configuração do Docker
O Drama 3 e o S2-Pro oferecem várias formas de implementação com Docker. Pode usar imagens pré-construídas do Docker Hub, construir localmente com Docker Compose ou criar imagens personalizadas manualmente.
Fornecemos imagens do servidor API para GPU (CUDA126 por predefinição) e CPU. As imagens já incluem a WebUI: abra http://localhost:8080/ui depois de o contentor arrancar. A imagem GPU corre os dois modelos; a imagem CPU só suporta o S2-Pro.
Pré-requisitos
- Docker e Docker Compose instalados
- (Para GPU) NVIDIA Docker runtime instalado (obrigatório para o Drama 3)
- Memória GPU: pelo menos 48 GB para o Drama 3 (FP8), 24 GB recomendados para o S2-Pro
Executar a imagem pré-construída
Drama 3: em placas SM89 ou mais recentes exponha apenas uma placa, como abaixo; em placas mais antigas use --gpus all:
docker run --gpus device=0 \
-v ./checkpoints:/app/checkpoints \
-e LLAMA_CHECKPOINT_PATH=checkpoints/drama-3 \
-p 8080:8080 \
fishaudio/fish-speech:server-cuda
S2-Pro:
docker run --gpus all \
-v ./checkpoints:/app/checkpoints \
-e LLAMA_CHECKPOINT_PATH=checkpoints/s2-pro \
-e DECODER_CHECKPOINT_PATH=checkpoints/s2-pro/codec.pth \
-p 8080:8080 \
fishaudio/fish-speech:server-cuda
Usar o Docker Compose
Para desenvolvimento ou personalização, recomenda-se usar o Docker Compose para construir e executar localmente:
# Primeiro, clone o repositório
git clone https://github.com/fishaudio/fish-speech.git
cd fish-speech
# Iniciar o servidor API (por predefinição carrega checkpoints/s2-pro)
docker compose --profile server up
# Carregar o Drama 3 e fixá-lo numa única placa com DEVICE (até quatro quando não definido)
LLAMA_CHECKPOINT_PATH=checkpoints/drama-3 DEVICE=cuda:0 docker compose --profile server up
# Iniciar o servidor API com otimização de compilação (apenas S2-Pro)
COMPILE=1 docker compose --profile server up
# Implementação apenas com CPU (apenas S2-Pro)
BACKEND=cpu docker compose --profile server up
Variáveis de Ambiente para o Docker Compose
Pode personalizar a implementação com variáveis de ambiente:
# Exemplo de ficheiro .env
BACKEND=cuda # ou cpu
COMPILE=1 # Ativar otimização de compilação
API_PORT=8080 # Porta do servidor API
UV_VERSION=0.8.15 # Versão do gestor de pacotes UV
O comando constrói a imagem e inicia o contentor. Pode aceder ao servidor API em http://localhost:8080 e à WebUI em http://localhost:8080/ui.
Construção Manual com Docker
Para quem quer controlar o processo de construção em detalhe:
# Construir imagem do servidor API com suporte CUDA
docker build \
--platform linux/amd64 \
-f docker/Dockerfile \
--build-arg BACKEND=cuda \
--build-arg CUDA_VER=12.6.0 \
--build-arg UV_EXTRA=cu126 \
--target server \
-t fish-speech-server:cuda .
# Construir imagem apenas para CPU (suporta multiplataforma)
docker build \
--platform linux/amd64,linux/arm64 \
-f docker/Dockerfile \
--build-arg BACKEND=cpu \
--target server \
-t fish-speech-server:cpu .
# Construir imagem de desenvolvimento
docker build \
--platform linux/amd64 \
-f docker/Dockerfile \
--build-arg BACKEND=cuda \
--target dev \
-t fish-speech-dev:cuda .
Argumentos de Construção
BACKEND:cudaoucpu(predefinição:cuda)CUDA_VER: versão do CUDA (predefinição:12.6.0)UV_EXTRA: extra UV para CUDA (predefinição:cu126)UBUNTU_VER: versão do Ubuntu (predefinição:24.04)PY_VER: versão do Python (predefinição:3.12)
Montagem de Volumes
Ambos os métodos precisam de montar estes diretórios:
./checkpoints:/app/checkpoints- Diretório dos pesos do modelo./references:/app/references- Diretório dos áudios de referência
Variáveis de Ambiente
COMPILE=1- Ativa o torch.compile para inferência mais rápida (~10x)LLAMA_CHECKPOINT_PATH- Caminho dos pesos do modelo principal, por exemplocheckpoints/drama-3oucheckpoints/s2-proDECODER_CHECKPOINT_PATH- Caminho dos pesos do codec; se vazio, o servidor resolve a partir do diretório de pesosDEVICE- Dispositivo de inferência, por exemplocuda:0; o Drama 3 usa apenas essa placa quando definido e até quatro quando vazioFISH_DRAMA3_FP8_EXPERTS=0ou1- Força o Drama 3 a usar especialistas desquantizados ou em FP8 (por predefinição é escolhido segundo a GPU)FISH_DRAMA3_CUDA_GRAPH=0- Desativa a descodificação com CUDA graphs do Drama 3API_SERVER_NAME=0.0.0.0- Endereço do servidor APIAPI_SERVER_PORT=8080- Porta do servidor API
Note
Os contentores Docker leem os pesos dos modelos de /app/checkpoints. Descarregue os pesos necessários antes de iniciar os contentores.
Warning
O suporte a GPU requer o NVIDIA Docker runtime. Para implementação apenas com CPU, remova --gpus all e use as imagens de CPU.