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 νκ²½ λ³μλ₯Ό μ¬μ©ν μ μμ΅λλ€. | |
μ¦κΈ°μΈμ! | |