Skip to content

Serve

The serve command starts a FastAPI web server that provides both a web interface and HTTP API for text-to-speech generation.

Basic Usage

uvx pocket-tts serve
# or if installed manually:
pocket-tts serve

This starts a server on http://localhost:8000 with the default voice model.

Command Options

  • --host HOST: Host to bind to (default: "localhost")
  • --port PORT: Port to bind to (default: 8000)
  • --reload: Enable auto-reload for development
  • --language: Language for the TTS model, one of 'english_2026-01', 'english_2026-04', 'english', 'french_24l', 'german_24l', 'portuguese_24l', 'italian_24l', 'spanish_24l' (default: english, which is the same model as 'english_2026-04'). Incompatible with --config. The "24l" variants are bigger models, not distilled yet and here only as preview.
  • --config: Path to a custom config .yaml. Incompatible with --language.
  • --quantize: Use int8 quantization for the model (default: False). This can reduce memory usage and increase speed, with minimal impact on audio quality.

Examples

Basic Server

# Start with default settings
pocket-tts serve

# Custom host and port
pocket-tts serve --host "localhost" --port 8080

Custom Language

To select the default language model, pass --language:

pocket-tts serve --language french_24l

Custom Model Config

If you'd like to override the paths from which the models are loaded, you can provide a custom YAML configuration.

Copy one of the files in pocket_tts/config (for example pocket_tts/config/english.yaml) and change weights_path, weights_path_without_voice_cloning:, and tokenizer_path: to the paths of the models you want to load.

Then, use the --config option to point to your newly created config.

# Use a different config
pocket-tts serve --config "C://pocket-tts/my_config.yaml"

Web Interface

Once the server is running, navigate to http://localhost:8000 to access the web interface.

For more advanced usage, see the Python API documentation for direct integration with the TTS model.