Spaces:
Running
νμΈνλ
μ΄ νμ΄μ§λ₯Ό μ΄μλ€λ κ²μ, μ¬μ νμ΅λ ν¨μ·(Few-shot) λͺ¨λΈμ μ±λ₯μ λ§μ‘±νμ§ λͺ»νλ€λ μλ―ΈμΌ κ²μ λλ€. λ°μ΄ν°μ μ μ±λ₯μ ν₯μμν€κΈ° μν΄ λͺ¨λΈμ νμΈνλνκ³ μΆμΌμκ² μ£ .
νμ¬ λ²μ μμλ 'LLAMA' λΆλΆλ§ νμΈνλνμλ©΄ λ©λλ€.
LLAMA νμΈνλ
1. λ°μ΄ν°μ μ€λΉ
.
βββ SPK1
β βββ 21.15-26.44.lab
β βββ 21.15-26.44.mp3
β βββ 27.51-29.98.lab
β βββ 27.51-29.98.mp3
β βββ 30.1-32.71.lab
β βββ 30.1-32.71.mp3
βββ SPK2
βββ 38.79-40.85.lab
βββ 38.79-40.85.mp3
μμ κ°μ νμμΌλ‘ λ°μ΄ν°μ
μ λ³ννμ¬ data
λλ ν 리 μμ λ°°μΉνμΈμ. μ€λμ€ νμΌμ νμ₯μλ .mp3
, .wav
, .flac
μ€ νλμ¬μΌ νλ©°, μ£Όμ νμΌμ .lab
νμ₯μλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
!!! info "λ°μ΄ν°μ
νμ"
.lab
μ£Όμ νμΌμ μ€λμ€μ μ μ¬ λ΄μ©λ§ ν¬ν¨νλ©΄ λλ©°, νΉλ³ν νμμ΄ νμνμ§ μμ΅λλ€. μλ₯Ό λ€μ΄, hi.mp3
μμ "Hello, goodbye"λΌλ λμ¬λ₯Ό λ§νλ€λ©΄, hi.lab
νμΌμλ "Hello, goodbye"λΌλ ν μ€μ ν
μ€νΈλ§ μμ΄μΌ ν©λλ€.
!!! warning λ°μ΄ν°μ μ λν μλ μ κ·ν(loudness normalization)λ₯Ό μ μ©νλ κ²μ΄ μ’μ΅λλ€. μ΄λ₯Ό μν΄ fish-audio-preprocessλ₯Ό μ¬μ©ν μ μμ΅λλ€.
```bash
fap loudness-norm data-raw data --clean
```
2. μλ§¨ν± ν ν° λ°°μΉ μΆμΆ
VQGAN κ°μ€μΉλ₯Ό λ€μ΄λ‘λνλμ§ νμΈνμΈμ. λ€μ΄λ‘λνμ§ μμλ€λ©΄ μλ λͺ λ Ήμ΄λ₯Ό μ€ννμΈμ:
huggingface-cli download fishaudio/fish-speech-1.4 --local-dir checkpoints/fish-speech-1.4
μ΄ν μλ§¨ν± ν ν°μ μΆμΆνκΈ° μν΄ μλ λͺ λ Ήμ΄λ₯Ό μ€ννμΈμ:
python tools/vqgan/extract_vq.py data \
--num-workers 1 --batch-size 16 \
--config-name "firefly_gan_vq" \
--checkpoint-path "checkpoints/fish-speech-1.4/firefly-gan-vq-fsq-8x1024-21hz-generator.pth"
!!! note
μΆμΆ μλλ₯Ό λμ΄κΈ° μν΄ --num-workers
μ --batch-size
κ°μ μ‘°μ ν μ μμ§λ§, GPU λ©λͺ¨λ¦¬ νλλ₯Ό μ΄κ³Όνμ§ μλλ‘ μ£ΌμνμΈμ.
VITS νμμ κ²½μ°, --filelist xxx.list
λ₯Ό μ¬μ©νμ¬ νμΌ λͺ©λ‘μ μ§μ ν μ μμ΅λλ€.
μ΄ λͺ
λ Ήμ μ€ννλ©΄ data
λλ ν 리 μμ .npy
νμΌμ΄ μμ±λ©λλ€. λ€μκ³Ό κ°μ΄ νμλ©λλ€:
.
βββ SPK1
β βββ 21.15-26.44.lab
β βββ 21.15-26.44.mp3
β βββ 21.15-26.44.npy
β βββ 27.51-29.98.lab
β βββ 27.51-29.98.mp3
β βββ 27.51-29.98.npy
β βββ 30.1-32.71.lab
β βββ 30.1-32.71.mp3
β βββ 30.1-32.71.npy
βββ SPK2
βββ 38.79-40.85.lab
βββ 38.79-40.85.mp3
βββ 38.79-40.85.npy
3. λ°μ΄ν°μ μ protobufλ‘ ν¨νΉ
python tools/llama/build_dataset.py \
--input "data" \
--output "data/protos" \
--text-extension .lab \
--num-workers 16
λͺ
λ Ήμ΄ μλ£λλ©΄ data
λλ ν 리 μμ quantized-dataset-ft.protos
νμΌμ΄ μμ±λ©λλ€.
4. λ§μ§λ§μΌλ‘, LoRAλ₯Ό μ΄μ©ν νμΈνλ
λ§μ°¬κ°μ§λ‘, LLAMA
κ°μ€μΉλ₯Ό λ€μ΄λ‘λνλμ§ νμΈνμΈμ. λ€μ΄λ‘λνμ§ μμλ€λ©΄ μλ λͺ
λ Ήμ΄λ₯Ό μ€ννμΈμ:
huggingface-cli download fishaudio/fish-speech-1.4 --local-dir checkpoints/fish-speech-1.4
λ§μ§λ§μΌλ‘, μλ λͺ λ Ήμ΄λ₯Ό μ€ννμ¬ νμΈνλμ μμν μ μμ΅λλ€:
python fish_speech/train.py --config-name text2semantic_finetune \
project=$project \
+lora@model.model.lora_config=r_8_alpha_16
!!! note
batch_size
, gradient_accumulation_steps
λ±μ νμ΅ λ§€κ°λ³μλ₯Ό GPU λ©λͺ¨λ¦¬μ λ§κ² μ‘°μ νλ €λ©΄ fish_speech/configs/text2semantic_finetune.yaml
νμΌμ μμ ν μ μμ΅λλ€.
!!! note
Windows μ¬μ©μμ κ²½μ°, nccl
λ¬Έμ λ₯Ό νΌνλ €λ©΄ trainer.strategy.process_group_backend=gloo
λ₯Ό μ¬μ©ν μ μμ΅λλ€.
νλ ¨μ΄ μλ£λλ©΄ μΆλ‘ μΉμ μ μ°Έκ³ νμ¬ μμ±μ μμ±ν μ μμ΅λλ€.
!!! info κΈ°λ³Έμ μΌλ‘ λͺ¨λΈμ νμμ λ§νλ ν¨ν΄λ§ νμ΅νκ³ μμμ νμ΅νμ§ μμ΅λλ€. μμμ μμ μ±μ μν΄ ν둬ννΈλ₯Ό μ¬μ©ν΄μΌ ν©λλ€. μμμ νμ΅νλ €λ©΄ νλ ¨ λ¨κ³λ₯Ό λ릴 μ μμ§λ§, μ΄λ κ³Όμ ν©μ μνμ μ΄λν μ μμ΅λλ€.
νλ ¨μ΄ λλλ©΄ LoRA κ°μ€μΉλ₯Ό μΌλ° κ°μ€μΉλ‘ λ³νν νμ μΆλ‘ μ μνν΄μΌ ν©λλ€.
python tools/llama/merge_lora.py \
--lora-config r_8_alpha_16 \
--base-weight checkpoints/fish-speech-1.4 \
--lora-weight results/$project/checkpoints/step_000000010.ckpt \
--output checkpoints/fish-speech-1.4-yth-lora/
!!! note λ€λ₯Έ 체ν¬ν¬μΈνΈλ μλν΄ λ³Ό μ μμ΅λλ€. μꡬ μ¬νμ λ§λ κ°μ₯ μ΄κΈ° 체ν¬ν¬μΈνΈλ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. μ΄λ€μ μ’ μ’ λΆν¬ λ°(OOD) λ°μ΄ν°μμ λ μ’μ μ±λ₯μ λ°νν©λλ€.