| --- |
| title: Seamless Streaming |
| emoji: 📞 |
| colorFrom: blue |
| colorTo: yellow |
| sdk: docker |
| pinned: false |
| suggested_hardware: t4-small |
| models: |
| - facebook/seamless-streaming |
| --- |
| |
| # Seamless Streaming demo |
| ## Running on HF spaces |
| You can simply duplicate the space to run it. |
|
|
| ## Running locally |
| ### Install backend seamless_server dependencies |
| |
| > [!NOTE] |
| > Please note: we *do not* recommend running the model on CPU. CPU inference will be slow and introduce noticable delays in the simultaneous translation. |
| |
| > [!NOTE] |
| > The example below is for PyTorch stable (2.1.1) and variant cu118. |
| > Check [here](https://pytorch.org/get-started/locally/) to find the torch/torchaudio command for your variant. |
| > Check [here](https://github.com/facebookresearch/fairseq2#variants) to find the fairseq2 command for your variant. |
| |
| If running for the first time, create conda environment and install the desired torch version. Then install the rest of the requirements: |
| ``` |
| cd seamless_server |
| conda create --yes --name smlss_server python=3.8 libsndfile==1.0.31 |
| conda activate smlss_server |
| conda install --yes pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia |
| pip install fairseq2 --pre --extra-index-url https://fair.pkg.atmeta.com/fairseq2/whl/nightly/pt2.1.1/cu118 |
| pip install -r requirements.txt |
| ``` |
| |
| ### Install frontend streaming-react-app dependencies |
| ``` |
| conda install -c conda-forge nodejs |
| cd streaming-react-app |
| npm install --global yarn |
| yarn |
| yarn build # this will create the dist/ folder |
| ``` |
| |
| |
| ### Running the server |
| |
| The server can be run locally with uvicorn below. |
| Run the server in dev mode: |
| |
| ``` |
| cd seamless_server |
| uvicorn app_pubsub:app --reload --host localhost |
| ``` |
| |
| Run the server in prod mode: |
| |
| ``` |
| cd seamless_server |
| uvicorn app_pubsub:app --host 0.0.0.0 |
| ``` |
| |
| To enable additional logging from uvicorn pass `--log-level debug` or `--log-level trace`. |
| |
| |
| ### Debuging |
| |
| If you enable "Server Debug Flag" when starting streaming from the client, this enables extensive debug logging and it saves audio files in /debug folder. |