Spaces:
Running
Running
| # ์ถ๋ก | |
| ์ถ๋ก ์ ๋ช ๋ น์ค, HTTP API, ๊ทธ๋ฆฌ๊ณ ์น UI์์ ์ง์๋ฉ๋๋ค. | |
| !!! note | |
| ์ ์ฒด ์ถ๋ก ๊ณผ์ ์ ๋ค์์ ์ฌ๋ฌ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค: | |
| 1. VQGAN์ ์ฌ์ฉํ์ฌ ์ฝ 10์ด ๋ถ๋์ ์์ฑ์ ์ธ์ฝ๋ฉํฉ๋๋ค. | |
| 2. ์ธ์ฝ๋ฉ๋ ์๋งจํฑ ํ ํฐ๊ณผ ํด๋น ํ ์คํธ๋ฅผ ์์๋ก ์ธ์ด ๋ชจ๋ธ์ ์ ๋ ฅํฉ๋๋ค. | |
| 3. ์๋ก์ด ํ ์คํธ๋ฅผ ์ ๋ ฅํ๋ฉด, ๋ชจ๋ธ์ด ํด๋นํ๋ ์๋งจํฑ ํ ํฐ์ ์์ฑํฉ๋๋ค. | |
| 4. ์์ฑ๋ ์๋งจํฑ ํ ํฐ์ VITS / VQGAN์ ์ ๋ ฅํ์ฌ ์์ฑ์ ๋์ฝ๋ฉํ๊ณ ์์ฑํฉ๋๋ค. | |
| ## ๋ช ๋ น์ค ์ถ๋ก | |
| ํ์ํ `vqgan` ๋ฐ `llama` ๋ชจ๋ธ์ Hugging Face ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋ค์ด๋ก๋ํ์ธ์. | |
| ```bash | |
| huggingface-cli download fishaudio/fish-speech-1.5 --local-dir checkpoints/fish-speech-1.5 | |
| ``` | |
| ### 1. ์์ฑ์์ ํ๋กฌํํธ ์์ฑ: | |
| !!! note | |
| ๋ชจ๋ธ์ด ์์์ ๋ฌด์์๋ก ์ ํํ๋๋ก ํ๋ ค๋ฉด ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. | |
| ```bash | |
| python tools/vqgan/inference.py \ | |
| -i "paimon.wav" \ | |
| --checkpoint-path "checkpoints/fish-speech-1.5/firefly-gan-vq-fsq-8x1024-21hz-generator.pth" | |
| ``` | |
| ์ด ๋ช ๋ น์ ์คํํ๋ฉด `fake.npy` ํ์ผ์ ์ป๊ฒ ๋ฉ๋๋ค. | |
| ### 2. ํ ์คํธ์์ ์๋งจํฑ ํ ํฐ ์์ฑ: | |
| ```bash | |
| python tools/llama/generate.py \ | |
| --text "๋ณํํ ํ ์คํธ" \ | |
| --prompt-text "์ฐธ๊ณ ํ ํ ์คํธ" \ | |
| --prompt-tokens "fake.npy" \ | |
| --checkpoint-path "checkpoints/fish-speech-1.5" \ | |
| --num-samples 2 \ | |
| --compile | |
| ``` | |
| ์ด ๋ช ๋ น์ ์คํํ๋ฉด ์์ ๋๋ ํ ๋ฆฌ์ `codes_N` ํ์ผ์ด ์์ฑ๋๋ฉฐ, N์ 0๋ถํฐ ์์ํ๋ ์ ์์ ๋๋ค. | |
| !!! note | |
| ๋น ๋ฅธ ์ถ๋ก ์ ์ํด `--compile` ์ต์ ์ ์ฌ์ฉํ์ฌ CUDA ์ปค๋์ ๊ฒฐํฉํ ์ ์์ต๋๋ค (~์ด๋น 30 ํ ํฐ -> ~์ด๋น 500 ํ ํฐ). | |
| `--compile` ๋งค๊ฐ๋ณ์๋ฅผ ์ฃผ์ ์ฒ๋ฆฌํ์ฌ ๊ฐ์ํ ์ต์ ์ ์ฌ์ฉํ์ง ์์ ์๋ ์์ต๋๋ค. | |
| !!! info | |
| bf16์ ์ง์ํ์ง ์๋ GPU์ ๊ฒฝ์ฐ `--half` ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํด์ผ ํ ์ ์์ต๋๋ค. | |
| ### 3. ์๋งจํฑ ํ ํฐ์์ ์์ฑ ์์ฑ: | |
| #### VQGAN ๋์ฝ๋ | |
| ```bash | |
| python tools/vqgan/inference.py \ | |
| -i "codes_0.npy" \ | |
| --checkpoint-path "checkpoints/fish-speech-1.5/firefly-gan-vq-fsq-8x1024-21hz-generator.pth" | |
| ``` | |
| ## HTTP API ์ถ๋ก | |
| ์ถ๋ก ์ ์ํ HTTP API๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์๋์ ๋ช ๋ น์ด๋ก ์๋ฒ๋ฅผ ์์ํ ์ ์์ต๋๋ค: | |
| ```bash | |
| python -m tools.api_server \ | |
| --listen 0.0.0.0:8080 \ | |
| --llama-checkpoint-path "checkpoints/fish-speech-1.5" \ | |
| --decoder-checkpoint-path "checkpoints/fish-speech-1.5/firefly-gan-vq-fsq-8x1024-21hz-generator.pth" \ | |
| --decoder-config-name firefly_gan_vq | |
| ``` | |
| ์ถ๋ก ์๋๋ฅผ ๋์ด๊ณ ์ถ๋ค๋ฉด `--compile` ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. | |
| ์ดํ, http://127.0.0.1:8080/ ์์ API๋ฅผ ํ์ธํ๊ณ ํ ์คํธํ ์ ์์ต๋๋ค. | |
| ์๋๋ `tools/api_client.py`๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญ์ ๋ณด๋ด๋ ์์์ ๋๋ค. | |
| ```bash | |
| python -m tools.api_client \ | |
| --text "์ ๋ ฅํ ํ ์คํธ" \ | |
| --reference_audio "์ฐธ๊ณ ์์ฑ ๊ฒฝ๋ก" \ | |
| --reference_text "์ฐธ๊ณ ์์ฑ์ ํ ์คํธ ๋ด์ฉ" \ | |
| --streaming True | |
| ``` | |
| ์ ๋ช ๋ น์ ์ฐธ๊ณ ์์ฑ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ํ๋ ์์ฑ์ ํฉ์ฑํ๊ณ , ์คํธ๋ฆฌ๋ฐ ๋ฐฉ์์ผ๋ก ๋ฐํํฉ๋๋ค. | |
| ๋ค์ ์์๋ ์ฌ๋ฌ ๊ฐ์ ์ฐธ๊ณ ์์ฑ ๊ฒฝ๋ก์ ํ ์คํธ๋ฅผ ํ๊บผ๋ฒ์ ์ฌ์ฉํ ์ ์์์ ๋ณด์ฌ์ค๋๋ค. ๋ช ๋ น์์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ์ ๋ ฅํฉ๋๋ค. | |
| ```bash | |
| python -m tools.api_client \ | |
| --text "์ ๋ ฅํ ํ ์คํธ" \ | |
| --reference_audio "์ฐธ๊ณ ์์ฑ ๊ฒฝ๋ก1" "์ฐธ๊ณ ์์ฑ ๊ฒฝ๋ก2" \ | |
| --reference_text "์ฐธ๊ณ ์์ฑ ํ ์คํธ1" "์ฐธ๊ณ ์์ฑ ํ ์คํธ2"\ | |
| --streaming False \ | |
| --output "generated" \ | |
| --format "mp3" | |
| ``` | |
| ์ ๋ช ๋ น์ด๋ ์ฌ๋ฌ ์ฐธ๊ณ ์์ฑ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก `MP3` ํ์์ ์์ฑ์ ํฉ์ฑํ์ฌ, ํ์ฌ ๋๋ ํ ๋ฆฌ์ `generated.mp3`๋ก ์ ์ฅํฉ๋๋ค. | |
| `--reference_audio`์ `--reference_text` ๋์ ์ `--reference_id`(ํ๋๋ง ์ฌ์ฉ ๊ฐ๋ฅ)๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ๋ก์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ `references/<your reference_id>` ํด๋๋ฅผ ๋ง๋ค์ด ํด๋น ์์ฑ๊ณผ ์ฃผ์ ํ ์คํธ๋ฅผ ๋ฃ์ด์ผ ํฉ๋๋ค. ์ฐธ๊ณ ์์ฑ์ ์ต๋ 90์ด๊น์ง ์ง์๋ฉ๋๋ค. | |
| !!! info | |
| ์ ๊ณต๋๋ ํ๋ผ๋ฏธํฐ๋ `python -m tools.api_client -h`๋ฅผ ์ฌ์ฉํ์ฌ ํ์ธํ ์ ์์ต๋๋ค. | |
| ## GUI ์ถ๋ก | |
| [ํด๋ผ์ด์ธํธ ๋ค์ด๋ก๋](https://github.com/AnyaCoder/fish-speech-gui/releases) | |
| ## WebUI ์ถ๋ก | |
| ๋ค์ ๋ช ๋ น์ผ๋ก WebUI๋ฅผ ์์ํ ์ ์์ต๋๋ค: | |
| ```bash | |
| python -m tools.webui \ | |
| --llama-checkpoint-path "checkpoints/fish-speech-1.5" \ | |
| --decoder-checkpoint-path "checkpoints/fish-speech-1.5/firefly-gan-vq-fsq-8x1024-21hz-generator.pth" \ | |
| --decoder-config-name firefly_gan_vq | |
| ``` | |
| > ์ถ๋ก ์๋๋ฅผ ๋์ด๊ณ ์ถ๋ค๋ฉด `--compile` ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. | |
| !!! note | |
| ๋ผ๋ฒจ ํ์ผ๊ณผ ์ฐธ๊ณ ์์ฑ ํ์ผ์ ๋ฏธ๋ฆฌ ๋ฉ์ธ ๋๋ ํ ๋ฆฌ์ `references` ํด๋์ ์ ์ฅํด ๋๋ฉด, WebUI์์ ๋ฐ๋ก ํธ์ถํ ์ ์์ต๋๋ค. (ํด๋น ํด๋๋ ์ง์ ์์ฑํด์ผ ํฉ๋๋ค.) | |
| !!! note | |
| WebUI๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด `GRADIO_SHARE`, `GRADIO_SERVER_PORT`, `GRADIO_SERVER_NAME`๊ณผ ๊ฐ์ Gradio ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. | |
| ์ฆ๊ธฐ์ธ์! | |