Lychee-FD

Full-duplex realtime speech interaction model and Docker demo.

GitHub Demo Paper License

This repository hosts the Lychee-FD full-duplex model checkpoint. The Docker runtime and demo code are maintained in the GitHub repository:

https://github.com/HITsz-TMG/Lychee-FD

Required Weights

The Docker demo needs two weight directories:

Component Source Expected local directory
Lychee-FD full-duplex model HIT-TMG/Lychee-FD, folder lychee_full_duplex/ lychee_full_duplex/
Token2Wav vocoder stepfun-ai/Step-Audio-2-mini, folder token2wav/ token2wav/

The Lychee-FD checkpoint and Token2Wav checkpoint are intentionally separated. This model repository provides the Lychee-FD full-duplex checkpoint. Please download the Token2Wav folder from Step-Audio-2-mini separately.

Download Weights

Create one local model root and put both directories under it:

/path/to/model-root/
  lychee_full_duplex/
  token2wav/

Download the Lychee-FD checkpoint:

huggingface-cli download HIT-TMG/Lychee-FD \
  --include "lychee_full_duplex/*" \
  --local-dir /path/to/model-root

Download Token2Wav from Step-Audio-2-mini:

huggingface-cli download stepfun-ai/Step-Audio-2-mini \
  --include "token2wav/*" \
  --local-dir /path/to/model-root

After downloading, the directory should look like:

/path/to/model-root/
  lychee_full_duplex/
  token2wav/

Docker Quick Start

Clone the GitHub code repository:

git clone https://github.com/HITsz-TMG/Lychee-FD.git
cd Lychee-FD

Create a local Docker environment file:

cp .env.docker.example .env

Edit .env and replace the model paths:

LYCHEE_FD_IMAGE=ghcr.io/hitsz-tmg/lychee-fd:latest

# Host path on your machine.
HOST_MODEL_ROOT=/path/to/model-root

# Container paths. The host model root is mounted as /models.
CONTAINER_MODEL_ROOT=/models
ALLOWED_MODEL_ROOT=/models

# Main Lychee-FD checkpoint.
STEPAUDIO_MODEL_PATH=/models/lychee_full_duplex

# Token2Wav checkpoint downloaded from stepfun-ai/Step-Audio-2-mini.
STEPAUDIO_T2W_MODEL_PATH=/models/token2wav

Important path rule:

  • HOST_MODEL_ROOT is the path on your host machine.
  • STEPAUDIO_MODEL_PATH and STEPAUDIO_T2W_MODEL_PATH are paths inside the container.
  • By default, Docker mounts HOST_MODEL_ROOT to /models, so model paths inside .env should usually start with /models.

Start the demo:

docker compose pull
docker compose up

Open the frontend:

http://127.0.0.1:8084

For a remote server, replace 127.0.0.1 with the server IP.

GPU Settings

By default, Token2Wav and the main backend use separate GPUs:

TOKEN2WAV_CUDA_VISIBLE_DEVICES=0
BACKEND_CUDA_VISIBLE_DEVICES=1

For a single-GPU machine, set both to 0:

TOKEN2WAV_CUDA_VISIBLE_DEVICES=0
BACKEND_CUDA_VISIBLE_DEVICES=0

If GPU memory is limited, reduce the vLLM maximum context length:

STEPAUDIO_VLLM_MAX_MODEL_LEN=8192

Model Presets

The frontend model list is loaded from model_presets_dev.json in the GitHub repository. If you customize the model list, make sure the preset path uses the container path:

{
  "name": "lychee_full_duplex",
  "model_path": "/models/lychee_full_duplex",
  "backend_type": "vllm",
  "mode": "stable"
}

After editing presets:

docker compose restart frontend

Notes

  • The Docker image contains the runtime environment and demo code, but it does not include model weights.
  • The Token2Wav checkpoint is provided by stepfun-ai/Step-Audio-2-mini; please follow the license and usage terms of the upstream model repository.
  • For source code, Docker Compose files, and detailed serving instructions, see the GitHub repository: https://github.com/HITsz-TMG/Lychee-FD.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for HIT-TMG/Lychee-FD