Spaces:
Runtime error
Runtime error
RVC ํ๋ จ์ ๋ํ ์ค๋ช ๊ณผ ํ๋ค | |
====================================== | |
๋ณธ ํ์์๋ ์ด๋ป๊ฒ ๋ฐ์ดํฐ ํ๋ จ์ด ์ด๋ฃจ์ด์ง๊ณ ์๋์ง ์ค๋ช ํฉ๋๋ค. | |
# ํ๋ จ์ ํ๋ฆ | |
GUI์ ํ๋ จ ํญ์ ๋จ๊ณ๋ฅผ ๋ฐ๋ผ ์ค๋ช ํฉ๋๋ค. | |
## step1 | |
์คํ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ๋ํ, ๋ชจ๋ธ์ด ํผ์น(์๋ฆฌ์ ๋๋ฎ์ด)๋ฅผ ๊ณ ๋ คํด์ผ ํ๋์ง ์ฌ๋ถ๋ฅผ ์ฌ๊ธฐ์์ ์ค์ ํ ์๋ ์์ต๋๋ค.. | |
๊ฐ ์คํ์ ์ํ ๋ฐ์ดํฐ๋ `/logs/experiment name/`์ ๋ฐฐ์น๋ฉ๋๋ค.. | |
## step2a | |
์์ฑ ํ์ผ์ ๋ถ๋ฌ์ค๊ณ ์ ์ฒ๋ฆฌํฉ๋๋ค. | |
### ์์ฑ ํ์ผ ๋ถ๋ฌ์ค๊ธฐ | |
์์ฑ ํ์ผ์ด ์๋ ํด๋๋ฅผ ์ง์ ํ๋ฉด ํด๋น ํด๋์ ์๋ ์์ฑ ํ์ผ์ด ์๋์ผ๋ก ๊ฐ์ ธ์์ง๋๋ค. | |
์๋ฅผ ๋ค์ด `C:Users\hoge\voices`๋ฅผ ์ง์ ํ๋ฉด `C:Users\hoge\voices\voice.mp3`๊ฐ ์ฝํ์ง๋ง `C:Users\hoge\voices\dir\voice.mp3`๋ ์ฝํ์ง ์์ต๋๋ค. | |
์์ฑ ๋ก๋์๋ ๋ด๋ถ์ ์ผ๋ก ffmpeg๋ฅผ ์ด์ฉํ๊ณ ์์ผ๋ฏ๋ก, ffmpeg๋ก ๋์ํ๊ณ ์๋ ํ์ฅ์๋ผ๋ฉด ์๋์ ์ผ๋ก ์ฝํ๋๋ค. | |
ffmpeg์์ int16์ผ๋ก ๋ณํํ ํ float32๋ก ๋ณํํ๊ณ -1๊ณผ 1 ์ฌ์ด์ ์ ๊ทํ๋ฉ๋๋ค. | |
### ์ก์ ์ ๊ฑฐ | |
์์ฑ ํ์ผ์ ๋ํด scipy์ filtfilt๋ฅผ ์ด์ฉํ์ฌ ์ก์์ ์ฒ๋ฆฌํฉ๋๋ค. | |
### ์์ฑ ๋ถํ | |
์ ๋ ฅํ ์์ฑ ํ์ผ์ ๋จผ์ ์ผ์ ๊ธฐ๊ฐ(max_sil_kept=5์ด?)๋ณด๋ค ๊ธธ๊ฒ ๋ฌด์์ด ์ง์๋๋ ๋ถ๋ถ์ ๊ฐ์งํ์ฌ ์์ฑ์ ๋ถํ ํฉ๋๋ค.๋ฌด์์ผ๋ก ์์ฑ์ ๋ถํ ํ ํ์๋ 0.3์ด์ overlap์ ํฌํจํ์ฌ 4์ด๋ง๋ค ์์ฑ์ ๋ถํ ํฉ๋๋ค.4์ด ์ด๋ด์ ๊ตฌ๋ถ๋ ์์ฑ์ ์๋์ ์ ๊ทํ๋ฅผ ์ค์ํ ํ wav ํ์ผ์ `/logs/์คํ๋ช /0_gt_wavs`๋ก, ๊ฑฐ๊ธฐ์์ 16k์ ์ํ๋ง ๋ ์ดํธ๋ก ๋ณํํด `/logs/์คํ๋ช /1_16k_wavs`์ wav ํ์ผ๋ก ์ ์ฅํฉ๋๋ค. | |
## step2b | |
### ํผ์น ์ถ์ถ | |
wav ํ์ผ์์ ํผ์น(์๋ฆฌ์ ๋๋ฎ์ด) ์ ๋ณด๋ฅผ ์ถ์ถํฉ๋๋ค. parselmouth๋ pyworld์ ๋ด์ฅ๋์ด ์๋ ๋ฉ์๋์ผ๋ก ํผ์น ์ ๋ณด(=f0)๋ฅผ ์ถ์ถํด, `/logs/์คํ๋ช /2a_f0`์ ์ ์ฅํฉ๋๋ค. ๊ทธ ํ ํผ์น ์ ๋ณด๋ฅผ ๋ก๊ทธ๋ก ๋ณํํ์ฌ 1~255 ์ ์๋ก ๋ณํํ๊ณ `/logs/์คํ๋ช /2b-f0nsf`์ ์ ์ฅํฉ๋๋ค. | |
### feature_print ์ถ์ถ | |
HuBERT๋ฅผ ์ด์ฉํ์ฌ wav ํ์ผ์ ๋ฏธ๋ฆฌ embedding์ผ๋ก ๋ณํํฉ๋๋ค. `/logs/์คํ๋ช /1_16k_wavs`์ ์ ์ฅํ wav ํ์ผ์ ์ฝ๊ณ HuBERT์์ wav ํ์ผ์ 256์ฐจ์ feature๋ค๋ก ๋ณํํ ํ npy ํ์์ผ๋ก `/logs/์คํ๋ช /3_feature256`์ ์ ์ฅํฉ๋๋ค. | |
## step3 | |
๋ชจ๋ธ์ ํ๋ จ์ ์งํํฉ๋๋ค. | |
### ์ด๋ณด์์ฉ ์ฉ์ด ํด์ค | |
์ฌ์ธตํ์ต(๋ฅ๋ฌ๋)์์๋ ๋ฐ์ดํฐ์ ์ ๋ถํ ํ์ฌ ์กฐ๊ธ์ฉ ํ์ต์ ์งํํฉ๋๋ค.ํ ๋ฒ์ ๋ชจ๋ธ ์ ๋ฐ์ดํธ(step) ๋จ๊ณ ๋น batch_size๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ์ฌ ์์ธก๊ณผ ์ค์ฐจ๋ฅผ ์์ ํฉ๋๋ค. ๋ฐ์ดํฐ์ ์ ๋ถ์ ๋ํด ์ด ์์ ์ ํ ๋ฒ ์ํํ๋ ์ด๋ฅผ ํ๋์ epoch๋ผ๊ณ ๊ณ์ฐํฉ๋๋ค. | |
๋ฐ๋ผ์ ํ์ต ์๊ฐ์ ๋จ๊ณ๋น ํ์ต ์๊ฐ x (๋ฐ์ดํฐ์ ๋ด ๋ฐ์ดํฐ์ ์ / batch size) x epoch ์๊ฐ ์์๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก batch size๊ฐ ํด์๋ก ํ์ต์ด ์์ ์ ์ด๊ฒ ๋ฉ๋๋ค. (step๋น ํ์ต ์๊ฐ รท batch size)๋ ์์์ง์ง๋ง GPU ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. GPU RAM์ nvidia-smi ๋ช ๋ น์ด๋ฅผ ํตํด ํ์ธํ ์ ์์ต๋๋ค. ์คํ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ ์ต๋ํ ๋๋ฆฌ๋ฉด ์งง์ ์๊ฐ ๋ด์ ํ์ต์ด ๊ฐ๋ฅํฉ๋๋ค. | |
### ์ฌ์ ํ์ต๋ ๋ชจ๋ธ ์ง์ | |
RVC๋ ์ ์ ๋ฐ์ดํฐ์ ์ผ๋ก๋ ํ๋ จ์ด ๊ฐ๋ฅํ๋๋ก ์ฌ์ ํ๋ จ๋ ๊ฐ์ค์น์์ ๋ชจ๋ธ ํ๋ จ์ ์์ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก `rvc-location/pretrained/f0G40k.pth` ๋ฐ `rvc-location/pretrained/f0D40k.pth`๋ฅผ ๋ถ๋ฌ์ต๋๋ค. ํ์ต์ ํ ์์, ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ๋ ๊ฐ save_every_epoch๋ณ๋ก `logs/experiment name/G_{}.pth` ์ `logs/experiment name/D_{}.pth`๋ก ์ ์ฅ์ด ๋๋๋ฐ, ์ด ๊ฒฝ๋ก๋ฅผ ์ง์ ํจ์ผ๋ก์จ ํ์ต์ ์ฌ๊ฐํ๊ฑฐ๋, ๋ค๋ฅธ ์คํ์์ ํ์ตํ ๋ชจ๋ธ์ ๊ฐ์ค์น์์ ํ์ต์ ์์ํ ์ ์์ต๋๋ค. | |
### index์ ํ์ต | |
RVC์์๋ ํ์ต์์ ์ฌ์ฉ๋ HuBERT์ feature๊ฐ์ ์ ์ฅํ๊ณ , ์ถ๋ก ์์๋ ํ์ต ์ ์ฌ์ฉํ feature๊ฐ๊ณผ ์ ์ฌํ feature ๊ฐ์ ํ์ํด ์ถ๋ก ์ ์งํํฉ๋๋ค. ์ด ํ์์ ๊ณ ์์ผ๋ก ์ํํ๊ธฐ ์ํด ์ฌ์ ์ index์ ํ์ตํ๊ฒ ๋ฉ๋๋ค. | |
Index ํ์ต์๋ ๊ทผ์ฌ ๊ทผ์ ํ์๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Faiss๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. `/logs/์คํ๋ช /3_feature256`์ feature๊ฐ์ ๋ถ๋ฌ์, ์ด๋ฅผ ๋ชจ๋ ๊ฒฐํฉ์ํจ feature๊ฐ์ `/logs/์คํ๋ช /total_fea.npy`๋ก์ ์ ์ฅ, ๊ทธ๊ฒ์ ์ฌ์ฉํด ํ์ตํ index๋ฅผ`/logs/์คํ๋ช /add_XXX.index`๋ก ์ ์ฅํฉ๋๋ค. | |
### ๋ฒํผ ์ค๋ช | |
- ใขใใซใฎใใฌใผใใณใฐ (๋ชจ๋ธ ํ์ต): step2b๊น์ง ์คํํ ํ, ์ด ๋ฒํผ์ ๋๋ฌ ๋ชจ๋ธ์ ํ์ตํฉ๋๋ค. | |
- ็นๅพดใคใณใใใฏในใฎใใฌใผใใณใฐ (ํน์ง ์ง์ ํ๋ จ): ๋ชจ๋ธ์ ํ๋ จ ํ, index๋ฅผ ํ์ตํฉ๋๋ค. | |
- ใฏใณใฏใชใใฏใใฌใผใใณใฐ (์ํด๋ฆญ ํธ๋ ์ด๋): step2b๊น์ง์ ๋ชจ๋ธ ํ๋ จ, feature index ํ๋ จ์ ์ผ๊ด๋ก ์ค์ํฉ๋๋ค. |