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.4 --local-dir checkpoints/fish-speech-1.4 | |
``` | |
### 1. ์์ฑ์์ ํ๋กฌํํธ ์์ฑ: | |
!!! note | |
๋ชจ๋ธ์ด ์์์ ๋ฌด์์๋ก ์ ํํ๋๋ก ํ๋ ค๋ฉด ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. | |
```bash | |
python tools/vqgan/inference.py \ | |
-i "paimon.wav" \ | |
--checkpoint-path "checkpoints/fish-speech-1.4/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.4" \ | |
--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.4/firefly-gan-vq-fsq-8x1024-21hz-generator.pth" | |
``` | |
## HTTP API ์ถ๋ก | |
์ถ๋ก ์ ์ํ HTTP API๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์๋์ ๋ช ๋ น์ด๋ก ์๋ฒ๋ฅผ ์์ํ ์ ์์ต๋๋ค: | |
```bash | |
python -m tools.api \ | |
--listen 0.0.0.0:8080 \ | |
--llama-checkpoint-path "checkpoints/fish-speech-1.4" \ | |
--decoder-checkpoint-path "checkpoints/fish-speech-1.4/firefly-gan-vq-fsq-8x1024-21hz-generator.pth" \ | |
--decoder-config-name firefly_gan_vq | |
``` | |
์ถ๋ก ์๋๋ฅผ ๋์ด๊ณ ์ถ๋ค๋ฉด `--compile` ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. | |
์ดํ, http://127.0.0.1:8080/ ์์ API๋ฅผ ํ์ธํ๊ณ ํ ์คํธํ ์ ์์ต๋๋ค. | |
์๋๋ `tools/post_api.py`๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญ์ ๋ณด๋ด๋ ์์์ ๋๋ค. | |
```bash | |
python -m tools.post_api \ | |
--text "์ ๋ ฅํ ํ ์คํธ" \ | |
--reference_audio "์ฐธ๊ณ ์์ฑ ๊ฒฝ๋ก" \ | |
--reference_text "์ฐธ๊ณ ์์ฑ์ ํ ์คํธ ๋ด์ฉ" \ | |
--streaming True | |
``` | |
์ ๋ช ๋ น์ ์ฐธ๊ณ ์์ฑ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ํ๋ ์์ฑ์ ํฉ์ฑํ๊ณ , ์คํธ๋ฆฌ๋ฐ ๋ฐฉ์์ผ๋ก ๋ฐํํฉ๋๋ค. | |
๋ค์ ์์๋ ์ฌ๋ฌ ๊ฐ์ ์ฐธ๊ณ ์์ฑ ๊ฒฝ๋ก์ ํ ์คํธ๋ฅผ ํ๊บผ๋ฒ์ ์ฌ์ฉํ ์ ์์์ ๋ณด์ฌ์ค๋๋ค. ๋ช ๋ น์์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ์ ๋ ฅํฉ๋๋ค. | |
```bash | |
python -m tools.post_api \ | |
--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.post_api -h`๋ฅผ ์ฌ์ฉํ์ฌ ํ์ธํ ์ ์์ต๋๋ค. | |
## GUI ์ถ๋ก | |
[ํด๋ผ์ด์ธํธ ๋ค์ด๋ก๋](https://github.com/AnyaCoder/fish-speech-gui/releases) | |
## WebUI ์ถ๋ก | |
๋ค์ ๋ช ๋ น์ผ๋ก WebUI๋ฅผ ์์ํ ์ ์์ต๋๋ค: | |
```bash | |
python -m tools.webui \ | |
--llama-checkpoint-path "checkpoints/fish-speech-1.4" \ | |
--decoder-checkpoint-path "checkpoints/fish-speech-1.4/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 ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. | |
์ฆ๊ธฐ์ธ์! | |