# Server This page covers server-side inference for Fish Audio S2, plus quick links for WebUI inference and Docker deployment. ## API Server Inference Fish Speech provides an HTTP API server entrypoint at `tools/api_server.py`. ### Start the server locally ```bash python tools/api_server.py \ --llama-checkpoint-path checkpoints/s2-pro \ --decoder-checkpoint-path checkpoints/s2-pro/codec.pth \ --listen 0.0.0.0:8080 ``` Common options: - `--compile`: enable `torch.compile` optimization - `--half`: use fp16 mode - `--api-key`: require bearer token authentication - `--workers`: set worker process count ### Health check ```bash curl -X GET http://127.0.0.1:8080/v1/health ``` Expected response: ```json {"status":"ok"} ``` ### Main API endpoint - `POST /v1/tts` for text-to-speech generation - `POST /v1/vqgan/encode` for VQ encode - `POST /v1/vqgan/decode` for VQ decode ### Python client example The base TTS model is selected when the server starts. In the example above, the server is started with the `checkpoints/s2-pro` weights, so every request sent to `http://127.0.0.1:8080/v1/tts` will use **S2-Pro** automatically. There is no separate per-request `model` field in `tools/api_client.py` for local server calls. ```bash python tools/api_client.py \ --url http://127.0.0.1:8080/v1/tts \ --text "Hello from Fish Speech" \ --output s2-pro-demo ``` If you want to select a saved reference voice, use `--reference_id`. This chooses the **voice reference**, not the base TTS model: ```bash python tools/api_client.py \ --url http://127.0.0.1:8080/v1/tts \ --text "Hello from Fish Speech" \ --reference_id my-speaker \ --output s2-pro-demo ``` ## WebUI Inference For WebUI usage, see: - [WebUI Inference](https://speech.fish.audio/inference/#webui-inference) ## Docker For Docker-based server or WebUI deployment, see: - [Docker Setup](https://speech.fish.audio/install/#docker-setup) You can also start the server profile directly with Docker Compose: ```bash docker compose --profile server up ```