DDSP / ko_README.md
gosummer's picture
Upload 26 files
da6258f verified

์–ธ์–ด: English ็ฎ€ไฝ“ไธญๆ–‡ ํ•œ๊ตญ์–ด

DDSP-SVC

logo
DDSP(์ฐจ๋ณ„ํ™” ๊ฐ€๋Šฅํ•œ ๋””์ง€ํ„ธ ์‹ ํ˜ธ) ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ์‹ ๊ฒฝ๋ง ์ฒ˜๋ฆฌ ๋…ธ๋ž˜ ์Œ์„ฑ ๋ณ€ํ™˜ ์‹œ์Šคํ…œ

0. ์†Œ๊ฐœ

DDSP-SVC๋Š” ์ƒˆ๋กœ์šด ์˜คํ”ˆ ์†Œ์Šค ๋…ธ๋ž˜ ์Œ์„ฑ ๋ณ€ํ™˜ ํ”„๋กœ์ ํŠธ์ด๋ฉฐ ๊ฐœ์ธ ์ปดํ“จํ„ฐ์—์„œ ๋Œ€์ค‘ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌด๋ฃŒ AI ์Œ์„ฑ ๋ณ€ํ™˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ์ „๋…ํ•ฉ๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋ณด๋‹ค ๋” ์œ ๋ช…ํ•œ Diff-SVC์™€ SO-VITS-SVC๋ž‘ ๋น„๊ตํ•ด๋ณด์•˜์„๋•Œ, ํ›ˆ๋ จ๊ณผ ํ•ฉ์„ฑ ๊ณผ์ •์—์„œ ์กฐ๊ธˆ ๋” ๋‚ฎ์€ ์ปดํ“จํ„ฐ ์‚ฌ์–‘์—์„œ๋„ ๋™์ž‘ํ•˜๊ณ  ํ›ˆ๋ จ ์‹œ๊ฐ„๋„ ๋ช‡ ๋ฐฐ ๋” ๋‹จ์ถ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์Œ์„ฑ์„ ๋ณ€๊ฒฝ ํ•  ๋•Œ SO-VITS-SVC์—์„œ ์š”๊ตฌํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ์ž์›๋ณด๋‹ค ์š”๊ตฌ ๊ธฐ์ค€์ด ๋‚ฎ์œผ๋ฉฐ Diff-SVC์˜ ๊ฒฝ์šฐ ์‹ค์‹œ๊ฐ„ ์Œ์„ฑ ๋ณ€๊ฒฝ์ด ๋„ˆ๋ฌด ๋Š๋ฆฝ๋‹ˆ๋‹ค.

๋ณธ๋ž˜ DDSP ์˜ ํ•ฉ์„ฑ ํ’ˆ์งˆ์ด ๊ทธ๋‹ฅ ์ด์ƒ์ ์ด์ง€๋Š” ์•Š์ง€๋งŒ (ํ›ˆ๋ จ ์ค‘์— TensorBoard์—์„œ ๋ณธ๋ž˜์˜ ์ถœ๋ ฅ์„ ๋“ค์„ ์ˆ˜ ์žˆ์Œ) ์‚ฌ์ „ํ›ˆ๋ จ๋œ ๋ณด์ฝ”๋” ๊ธฐ๋ฐ˜ enhancer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช‡๋ช‡ ๋ฐ์ดํ„ฐ์…‹์ด SO-VITS-SVC์˜ ์Œ์งˆ๊ณผ ๋น„์Šทํ•œ ์ˆ˜์ค€์œผ๋กœ ๋„๋‹ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•™์Šต ๋ฐ์ดํ„ฐ์˜ ํ’ˆ์งˆ์ด ๋งค์šฐ ๋†’์€ ๊ฒฝ์šฐ์—๋„ Diff-SVC์˜ ์Œ์งˆ์ด ๊ฐ€์žฅ ์ข‹์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ๋ชจ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋Š” samples ํด๋”์— ์กด์žฌํ•˜๋ฉฐ ๊ด€๋ จ๋œ ์ฒดํฌํฌ์ธํŠธ ๋ชจ๋ธ๋“ค์€ Releases ํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋กœ๋“œ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : DDSP-SVC๋ฅผ ํ†ตํ•ด ํ•™์Šต์‹œํ‚ค๋Š” ๋ชจ๋ธ์ด ํ•ฉ๋ฒ•์ ์œผ๋กœ ํ—ˆ๊ฐ€๋œ ๋ฐ์ดํ„ฐ๋กœ ํ•™์Šต๋˜๋„๋ก ํ•ด์ฃผ์‹œ๊ณ  ๋ถˆ๋ฒ•์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์Œ์„ฑ์„ ํ•ฉ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ์ผ์ด ์—†๋„๋ก ํ•ด์ฃผ์„ธ์š”. ๋ณธ ์ €์žฅ์†Œ์˜ ์†Œ์œ ์ž๋Š” ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ์™€ ์˜ค๋””์˜ค ์ด์šฉํ•œ ๊ถŒ๋ฆฌ ์นจํ•ด, ์‚ฌ๊ธฐ ๋ฐ ๊ธฐํƒ€ ๋ถˆ๋ฒ• ํ–‰์œ„์— ๋Œ€ํ•ด ์ฑ…์ž„์„ ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

1. ์˜์กด์„ฑ ์„ค์น˜ํ•˜๊ธฐ

์šฐ์„  PyTorch๋ฅผ ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์„œ ์„ค์น˜ํ•˜๋Š”๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ดํ›„ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”:

pip install -r requirements.txt 

์•ˆ๋‚ด : ์œˆ๋„์šฐ ๊ธฐ์ค€ Python 3.8 + torch 1.9.1 + torchaudio 0.6.0 ๋ฒ„์ „์—์„œ ํ…Œ์ŠคํŠธ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ์ตœ์‹  ๋ฒ„์ „์ด๊ฑฐ๋‚˜ ๊ตฌ ๋ฒ„์ „์˜ ์˜์กด์„ฑ์ผ ๊ฒฝ์šฐ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

^ ์—…๋ฐ์ดํŠธ: ์œˆ๋„์šฐ ๊ธฐ์ค€ Python 3.8 + cuda 11.8 + torch 2.0.0 + torchaudio 2.0.1 ์—์„œ ๋™์ž‘ํ•˜๊ณ , ํ•™์Šต ์†๋„๊ฐ€ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค!

2. ์‚ฌ์ „ ํ›ˆ๋ จ๋œ ๋ชจ๋ธ ์ค€๋น„ํ•˜๊ธฐ

์—…๋ฐ์ดํŠธ: ContentVec ์ธ์ฝ”๋”๊ฐ€ ์ด์ œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. HubertSoft ์ธ์ฝ”๋” ๋Œ€์‹  ContentVec ์ธ์ฝ”๋”๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜๊ณ  ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • (์š”๊ตฌ๋จ) ์‚ฌ์ „ ํ›ˆ๋ จ๋œ HubertSoft ์ธ์ฝ”๋”๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜๊ณ  pretrain/hubert ํด๋”์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค..
  • ์‚ฌ์ „ ํ›ˆ๋ จ๋œ ๋ณด์ฝ”๋” ๊ธฐ๋ฐ˜ enhancer๋ฅผ DiffSinger ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ณด์ฝ”๋” ํ”„๋กœ์ ํŠธ์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ pretrain/ ํด๋”์— ์••์ถ•์„ ํ’€์–ด์ฃผ์„ธ์š”.

3. ์ „์ฒ˜๋ฆฌ ์ž‘์—…

ํ•™์Šต์‹œํ‚ฌ ๋ฐ์ดํ„ฐ์…‹ (.wav ํ˜•์‹์˜ ์˜ค๋””์˜ค ํด๋ฆฝ)์„ data/train/audio ํด๋”์— ๋„ฃ์–ด์ฃผ์„ธ์š”.

๊ฒ€์ฆํ•  ๋ฐ์ดํ„ฐ์…‹ (.wav ํ˜•์‹์˜ ์˜ค๋””์˜ค ํด๋ฆฝ, ์œ„ ๋ฐ์ดํ„ฐ์…‹์—์„œ ํ€„๋ฆฌํ‹ฐ๊ฐ€ ๊ดœ์ฐฎ์€ ๋ฐ์ดํ„ฐ๋“ค)์„ data/val/audio ํด๋”์— ๋„ฃ์–ด์ฃผ์„ธ์š”.

๋˜ํ•œ,

python draw.py

๋ฅผ ์‹คํ–‰ ํ•˜์—ฌ ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ์…‹์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (draw.py์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์••์ถ• ํ•ด์ œํ•œ ํŒŒ์ผ๋“ค๊ณผ ๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

Combtooth substractive synthesiser (๊ถŒ์žฅ๋จ)๋ฅผ ์ด์šฉํ•ด ์ „์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

python preprocess.py -c configs/combsub.yaml

๋˜๋Š” Sinusoids additive synthesiser๋ฅผ ์ด์šฉํ•ด ์ „์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

python preprocess.py -c configs/sins.yaml

์ „์ฒ˜๋ฆฌ ์ด์ „์— config/<๋ชจ๋ธ ์ด๋ฆ„>.yaml์— ์œ„์น˜ํ•œ ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์„ค์ •์€ GTX-1660 ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ๋กœ 44.1khz ์ƒ˜ํ”Œ๋ง ์†๋„ synthesiser๋ฅผ ์ด์šฉํ•˜๋Š”๋ฐ ์ ํ•ฉํ•˜๊ฒŒ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋‚ด 1: ๋ชจ๋“  ์˜ค๋””์˜ค ํด๋ฆฝ์˜ ์ƒ˜ํ”Œ๋ง ์†๋„๋ฅผ yaml ์„ค์ • ํŒŒ์ผ์—์„œ ์„ค์ •ํ•œ ์†๋„์™€ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€ํ•ด์ฃผ์„ธ์š”! ๋™์ผํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ์€ ๋™์ž‘ํ•˜๋‚˜ ์ƒ˜ํ”Œ๋ง ์†๋„๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ์†๋„๊ฐ€ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค.

์•ˆ๋‚ด 2: ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹์˜ ์˜ค๋””์˜ค ํด๋ฆฝ ๊ฐฏ์ˆ˜๋Š” (๋ถ„ํ• ํ•œ๋‹ค๋Š” ๊ธฐ์ค€์œผ๋กœ) 1000๊ฐœ ์ •๋„๊ฐ€ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ธด ์˜ค๋””์˜ค ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ํŒŒ์ผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋„ฃ๋Š”๋‹ค๋ฉด ํ•™์Šต ์†๋„๋Š” ํ–ฅ์ƒ๋˜๋‚˜ ๋ชจ๋“  ์˜ค๋””์˜ค ํŒŒ์ผ์˜ ๊ธธ์ด๊ฐ€ 2์ดˆ ์ดํ•˜์ด๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋””์˜ค ํŒŒ์ผ์ด ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์ด ๋งŽ์•„์•ผ ํ•˜๋ฉฐ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์ด ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ 'cache_all_data'๋ฅผ false๋กœ ๋ฐ”๊ฟˆ์œผ๋กœ์จ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋‚ด 3: ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ์…‹์˜ ์˜ค๋””์˜ค ํด๋ฆฝ ๊ฐฏ์ˆ˜๋Š” 10๊ฐœ ์ •๋„๊ฐ€ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ์…‹์ด ๋„ˆ๋ฌด ๋งŽ์„ ๊ฒฝ์šฐ ๊ฒ€์ฆ ๊ณผ์ •์—์„œ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๋‹ˆ ์กฐ์ ˆํ•ด์„œ ๋„ฃ์–ด์ฃผ์„ธ์š”.

์•ˆ๋‚ด 4: ๋ฐ์ดํ„ฐ์…‹์ด ๋†’์€ ํ’ˆ์งˆ์ด ์•„๋‹ ๊ฒฝ์šฐ ์„ค์ • ํŒŒ์ผ์—์„œ 'f0_extractor'๋ฅผ 'crepe'๋กœ ์„ค์ •ํ•ด์ฃผ์„ธ์š”. Crepe ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์†Œ์Œ ์–ต์ œ์— ํŠนํ™”๋˜์–ด ์žˆ์œผ๋‚˜ ๋ฐ์–ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์„ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ: ๋‹ค์ค‘ Speaker ํ•™์Šต์„ ์ด์ œ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ • ํŒŒ์ผ์˜ 'n_spk' ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋‹ค์ค‘ Speaker ๋ชจ๋ธ์ธ์ง€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์ค‘ Speaker ๋ชจ๋ธ๋กœ ํ•™์Šตํ•˜๊ณ  ์‹ถ์€์‹  ๊ฒฝ์šฐ ์Œ์„ฑ ํด๋” ์ด๋ฆ„์ด ์–‘์ˆ˜์—ฌ์•ผ ํ•˜๋ฉฐ Speaker์˜ ID๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” 'n_spk'์˜ ์ˆ˜๋ณด๋‹ค ํฌ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค. ํด๋” ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค:

# ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹
# ์ฒซ๋ฒˆ์งธ Speaker
data/train/audio/1/aaa.wav
data/train/audio/1/bbb.wav
...
# ๋‘๋ฒˆ์งธ Speaker
data/train/audio/2/ccc.wav
data/train/audio/2/ddd.wav
...

# ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ์…‹
# ์ฒซ๋ฒˆ์งธ Speaker
data/val/audio/1/eee.wav
data/val/audio/1/fff.wav
...
# ๋‘๋ฒˆ์งธ Speaker
data/val/audio/2/ggg.wav
data/val/audio/2/hhh.wav
...

'n_spk' = 1์ธ ๊ฒฝ์šฐ 1์ธ Speaker ๋ชจ๋ธ์— ๋Œ€ํ•œ ํด๋” ๊ตฌ์กฐ๋„ ์ง€์›ํ•˜๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

# ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹
data/train/audio/aaa.wav
data/train/audio/bbb.wav
...
# ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ์…‹
data/val/audio/ccc.wav
data/val/audio/ddd.wav
...

4. ํ•™์Šต์‹œํ‚ค๊ธฐ

# combsub ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚จ๋‹ค๋Š” ์˜ˆ
python train.py -c configs/combsub.yaml

๋‹ค๋ฅธ ๋ชจ๋ธ๋“ค์„ ํ•™์Šตํ•  ๋•Œ์—๋„ ๋ช…๋ น์€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

์ค‘๋„์— ํ•™์Šต์„ ์ผ์‹œ ์ค‘๋‹จ ํ•˜์…”๋„ ์•ˆ์ „ํ•˜๋ฉฐ ๋™์ผํ•œ ๋ช…๋ น์„ ์ž…๋ ฅํ•ด ๋‹ค์‹œ ํ•™์Šต์„ ์ด์–ด๊ฐ€์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•™์Šต ์ง„ํ–‰ ๋„์ค‘ ์ผ์‹œ ์ค‘๋‹จํ•˜์—ฌ ์ƒˆ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ํ•™์Šต ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•œ ๋’ค (batchsize, lr ๋“ฑ) ๋™์ผํ•œ ๋ช…๋ น์„ ์ž…๋ ฅํ•ด ๋ชจ๋ธ์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. ์‹œ๊ฐํ™”

# TensorBoard๋ฅผ ์ด์šฉํ•ด ํ•™์Šต ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ
tensorboard --logdir=exp

ํ…Œ์ŠคํŠธ ์Œ์„ฑ ์ƒ˜ํ”Œ๋“ค์€ ์ฒซ ๊ฒ€์ฆ ์ดํ›„ TensorBoard์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์•ˆ๋‚ด: TensorBoard์— ํ‘œ์‹œ๋˜๋Š” ํ…Œ์ŠคํŠธ ์Œ์„ฑ ์ƒ˜ํ”Œ๋“ค์€ DDSP-SVC ๋ชจ๋ธ์„ ํ†ตํ•œ ์ถœ๋ ฅ๋ฌผ์ด๋ฉฐ Enhancer๋ฅผ ํ†ตํ•ด ํ–ฅ์ƒ๋œ ์Œ์„ฑ์ด ์•„๋‹™๋‹ˆ๋‹ค. Enhancer๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํ•ฉ์„ฑ ๊ฒฐ๊ณผ๋ฌผ์„ ํ…Œ์ŠคํŠธ ํ•˜๊ณ  ์‹ถ์œผ์‹  ๊ฒฝ์šฐ ์•„๋ž˜ ๋‚ด์šฉ์— ์„ค๋ช…๋œ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•ด์ฃผ์„ธ์š”.

6. ๋น„์‹ค์‹œ๊ฐ„ ์Œ์„ฑ ๋ณ€ํ™˜์„ ํ•  ๊ฒฝ์šฐ

(์ถ”์ฒœ๋จ) ์‚ฌ์ „ ํ•™์Šต๋œ ๋ณด์ฝ”๋” ๊ธฐ๋ฐ˜ Enhancer๋ฅผ ์ด์šฉํ•ด ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ:

# enhancer_message_key = 0(๊ธฐ๋ณธ๊ฐ’)์ธ ๊ฒฝ์šฐ ์ผ๋ฐ˜ ์Œ์„ฑ ๋ฒ”์œ„์—์„œ ๋†’์€ ์˜ค๋””์˜ค ํ’ˆ์งˆ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
# enhancer_adaptive_key ์„ 0 ์ด์ƒ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ Enhancer๋ฅผ ๋” ๋†’์€ ์Œ์—ญ์œผ๋กœ ์ ์šฉ์‹œํ‚ต๋‹ˆ๋‹ค.
python main.py -i <์ž…๋ ฅ.wav> -m <๋ชจ๋ธํŒŒ์ผ.pt> -o <์ถœ๋ ฅ.wav> -k <ํ‚ค ๋ณ€๊ฒฝ (๋ฐ˜์Œ)> -id <speaker ์•„์ด๋””> -eak <enhancer_adaptive_key (๋ฐ˜์Œ)>

DDSP์˜ ๋‚ (Raw) ์ถœ๋ ฅ๋ฌผ:

# ๋น ๋ฅด์ง€๋งŒ ์ƒ๋Œ€์ ์œผ๋กœ ๋‚ฎ์€ ํ’ˆ์งˆ (TensorBoard์—์„œ ๋“ค์œผ์‹œ๋Š”๊ฒƒ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.)
python main.py -i <์ž…๋ ฅ.wav> -m <๋ชจ๋ธํŒŒ์ผ.pt> -o <์ถœ๋ ฅ.wav> -k <ํ‚ค ๋ณ€๊ฒฝ (๋ฐ˜์Œ)> -id <speaker ์•„์ด๋””> -e false

f0 ์ถ”์ถœ๊ณผ ์‘๋‹ต ์ž„๊ณ„๊ฐ’์— ๋Œ€ํ•œ ๊ธฐํƒ€ ์˜ต์…˜์€ ๋„์›€๋ง์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

python main.py -h

(์—…๋ฐ์ดํŠธ) ๋‹ค์ค‘ Speaker๊ฐ€ ์ด์ œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. "-mix" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ์Œ์ƒ‰์„ ๋””์ž์ธํ•˜์‹ค ์ˆ˜ ์žˆ์œผ๋ฉฐ ์•„๋ž˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

# ์ฒซ๋ฒˆ์งธ Speaker์™€ ๋‘๋ฒˆ์งธ Speaker์˜ ์Œ์ƒ‰์„ 0.5, 0.5 ๋น„์œจ๋กœ ํ˜ผํ•ฉํ•ฉ๋‹ˆ๋‹ค
python main.py -i <์ž…๋ ฅ.wav> -m <๋ชจ๋ธํŒŒ์ผ.pt> -o <์ถœ๋ ฅ.wav> -k <ํ‚ค ๋ณ€๊ฒฝ (๋ฐ˜์Œ)> -mix "{1:0.5, 2:0.5}" -eak 0

7. ์‹ค์‹œ๊ฐ„ ์Œ์„ฑ ๋ณ€ํ™˜์„ ํ•  ๊ฒฝ์šฐ

๋‹ค์Œ ๋ช…๋ น์„ ์ด์šฉํ•ด ๊ฐ„๋‹จํ•œ GUI๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

python gui.py

ํ”„๋ก ํŠธ์—”๋“œ์—์„œ๋Š” ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ, ํฌ๋กœ์Šค ํŽ˜์ด๋”ฉ, SOLA ๊ธฐ๋ฐ˜ ์Šคํ”Œ๋ผ์ด์‹ฑ ๋ฐ contextual semantic ์ฐธ์กฐ์™€ ๊ฐ™์€ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์งง์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„๊ณผ ๋ฆฌ์†Œ์Šค ์ ์œ ๋กœ ๋น„์‹ค์‹œ๊ฐ„ ํ•ฉ์„ฑ์— ๊ฐ€๊นŒ์šด ์Œ์งˆ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ: Phase ๋ณด์ฝ”๋” ๊ธฐ๋ฐ˜์˜ ์Šคํ”Œ๋ผ์ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋‚˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ SOLA ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ด๋ฏธ ์Šคํ”Œ๋ผ์ด์‹ฑ ์Œ์งˆ์ด ์ถฉ๋ถ„ํžˆ ๋†’์•„ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™” ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ๊ทน๋„์˜ ์ €์ง€์—ฐ ์‹ค์‹œ๊ฐ„ ์Œ์งˆ์„ ์ถ”๊ตฌํ•˜์‹ ๋‹ค๋ฉด ํ™œ์„ฑํ™” ํ•˜์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‹ ์ค‘ํ•˜๊ฒŒ ์กฐ์ •ํ•ด๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์Œ์งˆ์ด ๋” ๋†’์•„์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ์—์„œ ํฌ๋กœ์Šค ํŽ˜์ด๋“œ ์‹œ๊ฐ„์ด 0.1์ดˆ๋ณด๋‹ค ๊ธธ๋ฉด Phase ๋ณด์ฝ”๋”๊ฐ€ ์Œ์งˆ์„ ํฌ๊ฒŒ ์ €ํ•˜์‹œํ‚ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค.

8. ์ฐธ๊ณ