| ## ์๊ตฌ ์ฌ์ |
|
|
| - GPU ๋ฉ๋ชจ๋ฆฌ: 24GB (์ถ๋ก ์) |
| - ์์คํ
: Linux, WSL |
|
|
| ## ์์คํ
์ค์ |
|
|
| Fish Audio S2๋ ๋ค์ํ ์ค์น ๋ฐฉ๋ฒ์ ์ง์ํฉ๋๋ค. ์์ ์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ฐ์ฅ ์ ํฉํ ๋ฐฉ๋ฒ์ ์ ํํ์ธ์. |
|
|
| **์ฌ์ ์๊ตฌ์ฌํญ**: ์ค๋์ค ์ฒ๋ฆฌ๋ฅผ ์ํ ์์คํ
์์กด์ฑ์ ์ค์นํฉ๋๋ค: |
| ``` bash |
| apt install portaudio19-dev libsox-dev ffmpeg |
| ``` |
|
|
| ### Conda |
|
|
| ```bash |
| conda create -n fish-speech python=3.12 |
| conda activate fish-speech |
| |
| # GPU ๋ฒ์ ์ค์น (CUDA ๋ฒ์ ์ ํ: cu126, cu128, cu129) |
| pip install -e .[cu129] |
| |
| # CPU ๋ฒ์ ๋ง ์ค์น |
| pip install -e .[cpu] |
| |
| # ๊ธฐ๋ณธ ์ค์น (PyTorch ๊ธฐ๋ณธ ์ธ๋ฑ์ค ์ฌ์ฉ) |
| pip install -e . |
| |
| # pyaudio ์ค์น ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํด ๋ณด์ธ์: |
| # conda install pyaudio |
| # ๊ทธ๋ฐ ๋ค์ pip install -e . ๋ฅผ ๋ค์ ์คํํ์ธ์ |
| ``` |
|
|
| ### UV |
|
|
| UV๋ ๋ ๋น ๋ฅธ ์์กด์ฑ ํด๊ฒฐ ๋ฐ ์ค์น๋ฅผ ์ ๊ณตํฉ๋๋ค: |
|
|
| ```bash |
| # GPU ๋ฒ์ ์ค์น (CUDA ๋ฒ์ ์ ํ: cu126, cu128, cu129) |
| uv sync --python 3.12 --extra cu129 |
| |
| # CPU ๋ฒ์ ๋ง ์ค์น |
| uv sync --python 3.12 --extra cpu |
| ``` |
| ### Intel Arc XPU ์ง์ |
|
|
| Intel Arc GPU ์ฌ์ฉ์๋ ๋ค์์ ํตํด XPU ์ง์์ ์ค์นํ์ธ์: |
|
|
| ```bash |
| conda create -n fish-speech python=3.12 |
| conda activate fish-speech |
| |
| # ํ์ํ C++ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น |
| conda install libstdcxx -c conda-forge |
| |
| # Intel XPU๋ฅผ ์ง์ํ๋ PyTorch ์ค์น |
| pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpu |
| |
| # Fish Speech ์ค์น |
| pip install -e . |
| ``` |
|
|
| !!! warning |
| `compile` ์ต์
์ Windows์ macOS์์ ์ง์๋์ง ์์ต๋๋ค. ์ปดํ์ผ์ ํ์ฑํํ์ฌ ์คํํ๋ ค๋ฉด Triton์ ์ง์ ์ค์นํด์ผ ํฉ๋๋ค. |
| |
|
|
| ## Docker ์ค์ |
|
|
| Fish Audio S2 ์๋ฆฌ์ฆ ๋ชจ๋ธ์ ๋ค์ํ ์๊ตฌ์ ๋ถ์ํ๊ธฐ ์ํด ์ฌ๋ฌ Docker ๋ฐฐํฌ ์ต์
์ ์ ๊ณตํฉ๋๋ค. Docker Hub์ ์ฌ์ ๋น๋๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, Docker Compose๋ก ๋ก์ปฌ์์ ๋น๋ํ๊ฑฐ๋, ์๋์ผ๋ก ์ฌ์ฉ์ ์ ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค. |
|
|
| WebUI์ API ์๋ฒ ๋ชจ๋์ ๋ํด GPU(๊ธฐ๋ณธ๊ฐ CUDA 12.6) ๋ฐ CPU ๋ฒ์ ์ Docker ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํฉ๋๋ค. Docker Hub์ ์ฌ์ ๋น๋๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, Docker Compose๋ก ๋ก์ปฌ์์ ๋น๋ํ๊ฑฐ๋, ์๋์ผ๋ก ์ฌ์ฉ์ ์ ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค. ๋ก์ปฌ์์ ๋น๋ํ๋ ค๋ฉด ์๋ ์ง์นจ์ ๋ฐ๋ฅด์ธ์. ์ฌ์ ๋น๋๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด [์ถ๋ก ๊ฐ์ด๋](inference.md)๋ฅผ ์ง์ ์ฐธ์กฐํ์ธ์. |
|
|
| ### ์ฌ์ ์๊ตฌ์ฌํญ |
|
|
| - Docker ๋ฐ Docker Compose ์ค์น |
| - NVIDIA Docker ๋ฐํ์ ์ค์น (GPU ์ง์์ฉ) |
| - CUDA ์ถ๋ก ์ ์ํ ์ต์ 24GB์ GPU ๋ฉ๋ชจ๋ฆฌ |
|
|
| ### Docker Compose ์ฌ์ฉ |
|
|
| ๊ฐ๋ฐ ๋๋ ์ฌ์ฉ์ ์ ์๋ฅผ ์ํด Docker Compose๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ์์ ๋น๋ํ๊ณ ์คํํ ์ ์์ต๋๋ค: |
|
|
| ```bash |
| # ๋จผ์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํฉ๋๋ค |
| git clone https://github.com/fishaudio/fish-speech.git |
| cd fish-speech |
| |
| # CUDA๋ก WebUI ์์ |
| docker compose --profile webui up |
| |
| # ์ปดํ์ผ ์ต์ ํ๋ก WebUI ์์ |
| COMPILE=1 docker compose --profile webui up |
| |
| # API ์๋ฒ ์์ |
| docker compose --profile server up |
| |
| # ์ปดํ์ผ ์ต์ ํ๋ก API ์๋ฒ ์์ |
| COMPILE=1 docker compose --profile server up |
| |
| # CPU ์ ์ฉ ๋ฐฐํฌ |
| BACKEND=cpu docker compose --profile webui up |
| ``` |
|
|
| #### Docker Compose ํ๊ฒฝ ๋ณ์ |
|
|
| ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ๋ฅผ ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค: |
|
|
| ```bash |
| # .env ํ์ผ ์์ |
| BACKEND=cuda # ๋๋ cpu |
| COMPILE=1 # ์ปดํ์ผ ์ต์ ํ ํ์ฑํ |
| GRADIO_PORT=7860 # WebUI ํฌํธ |
| API_PORT=8080 # API ์๋ฒ ํฌํธ |
| UV_VERSION=0.8.15 # UV ํจํค์ง ๊ด๋ฆฌ์ ๋ฒ์ |
| ``` |
|
|
| ์ด ๋ช
๋ น์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ ์ปจํ
์ด๋๋ฅผ ์คํํฉ๋๋ค. WebUI๋ `http://localhost:7860`์์, API ์๋ฒ๋ `http://localhost:8080`์์ ์ ๊ทผํ ์ ์์ต๋๋ค. |
|
|
| ### ์๋ Docker ๋น๋ |
|
|
| ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉ์ ์ ์ํ๋ ค๋ ๊ณ ๊ธ ์ฌ์ฉ์๋ฅผ ์ํด: |
|
|
| ```bash |
| # CUDA๋ฅผ ์ง์ํ๋ WebUI ์ด๋ฏธ์ง ๋น๋ |
| 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 webui \ |
| -t fish-speech-webui:cuda . |
| |
| # CUDA๋ฅผ ์ง์ํ๋ API ์๋ฒ ์ด๋ฏธ์ง ๋น๋ |
| 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 . |
| |
| # CPU ์ ์ฉ ์ด๋ฏธ์ง ๋น๋ (๋ฉํฐ ํ๋ซํผ ์ง์) |
| docker build \ |
| --platform linux/amd64,linux/arm64 \ |
| -f docker/Dockerfile \ |
| --build-arg BACKEND=cpu \ |
| --target webui \ |
| -t fish-speech-webui:cpu . |
| |
| # ๊ฐ๋ฐ์ฉ ์ด๋ฏธ์ง ๋น๋ |
| docker build \ |
| --platform linux/amd64 \ |
| -f docker/Dockerfile \ |
| --build-arg BACKEND=cuda \ |
| --target dev \ |
| -t fish-speech-dev:cuda . |
| ``` |
|
|
| #### ๋น๋ ์ธ์ |
|
|
| - `BACKEND`: `cuda` ๋๋ `cpu` (๊ธฐ๋ณธ๊ฐ: `cuda`) |
| - `CUDA_VER`: CUDA ๋ฒ์ (๊ธฐ๋ณธ๊ฐ: `12.6.0`) |
| - `UV_EXTRA`: CUDA์ฉ UV ์ถ๊ฐ ํจํค์ง (๊ธฐ๋ณธ๊ฐ: `cu126`) |
| - `UBUNTU_VER`: Ubuntu ๋ฒ์ (๊ธฐ๋ณธ๊ฐ: `24.04`) |
| - `PY_VER`: Python ๋ฒ์ (๊ธฐ๋ณธ๊ฐ: `3.12`) |
|
|
| ### ๋ณผ๋ฅจ ๋ง์ดํธ |
|
|
| ๋ ๋ฐฉ๋ฒ ๋ชจ๋ ๋ค์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง์ดํธํด์ผ ํฉ๋๋ค: |
|
|
| - `./checkpoints:/app/checkpoints` - ๋ชจ๋ธ ๊ฐ์ค์น ๋๋ ํ ๋ฆฌ |
| - `./references:/app/references` - ์ฐธ์กฐ ์ค๋์ค ํ์ผ ๋๋ ํ ๋ฆฌ |
|
|
| ### ํ๊ฒฝ ๋ณ์ |
|
|
| - `COMPILE=1` - `torch.compile`์ ํ์ฑํํ์ฌ ์ถ๋ก ์๋ ํฅ์ (์ฝ 10๋ฐฐ) |
| - `GRADIO_SERVER_NAME=0.0.0.0` - WebUI ์๋ฒ ํธ์คํธ |
| - `GRADIO_SERVER_PORT=7860` - WebUI ์๋ฒ ํฌํธ |
| - `API_SERVER_NAME=0.0.0.0` - API ์๋ฒ ํธ์คํธ |
| - `API_SERVER_PORT=8080` - API ์๋ฒ ํฌํธ |
|
|
| !!! note |
| Docker ์ปจํ
์ด๋๋ ๋ชจ๋ธ ๊ฐ์ค์น๊ฐ `/app/checkpoints`์ ๋ง์ดํธ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ์ปจํ
์ด๋๋ฅผ ์์ํ๊ธฐ ์ ์ ํ์ํ ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ๋ค์ด๋ก๋ํ๋์ง ํ์ธํ์ธ์. |
| |
| !!! warning |
| GPU ์ง์์๋ NVIDIA Docker ๋ฐํ์์ด ํ์ํฉ๋๋ค. CPU ์ ์ฉ ๋ฐฐํฌ์ ๊ฒฝ์ฐ `--gpus all` ํ๋๊ทธ๋ฅผ ์ ๊ฑฐํ๊ณ CPU ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ธ์. |
| |