[DL/Audio] VQVC & VQVC+

๊ตฌ๋งยท2024๋…„ 8์›” 31์ผ
0

[Paper Review]

๋ชฉ๋ก ๋ณด๊ธฐ
3/8

๐Ÿ“„ ์ฐธ๊ณ 

VQVC

์ถ”ํ›„์— ์ถ”๊ฐ€ ์˜ˆ์ •...

VQVC+

AutoEncoder-based system์— ๋Œ€ํ•ด U-Net architecture๋ฅผ ๋„์ž…ํ•ด conversion ํ’ˆ์งˆ์„ ํ–ฅ์ƒStrong information bottleneck์„ ์œ„ํ•ด latent vector๋ฅผ quantize ํ•˜๋Š” vector quantization์„ ๋„์ž…

๐Ÿ’ก quantization ์–‘์žํ™”
vqvc architecture

vqvc architecture
-> vqvc architecture

  • VQ = vector quantization layer

  • IN = instance normalization layer

  • VQVC

  • IN + VQ layer๋“ค์„ ์ ์šฉํ•ด voice conversion์„ ์–ป๊ธฐ ์œ„ํ•ด ๋‚ด์šฉ๊ณผ ํ™”์ž์˜ ์ •๋ณด๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค

-> vqvc+ architecture

  • ์„ฑ๋Šฅ ํ–ฅ์ƒ ์œ„ํ•ด U-net ์•„ํ‚คํ…์ณ ์ ์šฉ
  • ์ธ์ฝ”๋”์—์„œ ๊ฐ sub-module์€ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ VQVC ์ธ์ฝ”๋”
  • ์–‘์žํ™”๋œ output C์™€ ํ™”์ž์˜ ์ž„๋ฒ ๋”ฉ S๋Š” ์—ฐ์†์ ์ธ ์ž„๋ฒ ๋”ฉ V๋Œ€์‹ ์— ๋””์ฝ”๋”์™€ skip-connected (์ง์ ‘ ์—ฐ๊ฒฐ๋œ๋‹ค)

๐Ÿ’ก VQVC์˜ ํ•œ๊ณ„์ 

  • ์–ธ์–ด์  ๋‚ด์šฉ๊ณผ ํ™”์ž์˜ ์ •๋ณด๋ฅผ ์ž˜ ๋ถ„๋ฆฌ?ํ•˜์ง€๋งŒ ํ•ฉ์„ฑ๋œ ์˜ค๋””์˜ค ํ€„๋ฆฌํ‹ฐ๊ฐ€ ์—ฌ์ „ํžˆ ๊ฐœ์„  ํ•„์š”
  • target ํ™”์ž์˜ ํŠน์„ฑ์— ๋งž๋Š” ์˜ค๋””์˜ค๋ฅผ ํ•ฉ์„ฑํ•˜์ง€๋งŒ ์˜ค๋””์˜ค์˜ vocalization์€ ๋ชจํ˜ธํ•จ
  • ๊ทธ ์ด์œ ๋ฅผ ๋ฒกํ„ฐ ์–‘์žํ™”์— ์˜ํ•œ ์ •๋ณด์†์‹ค์ด๋ผ๊ณ  ์ƒ๊ฐ
    - ์ด๋Š” ๋””์ฝ”๋”๊ฐ€ ๋‚ด์šฉ์„ ์ ์ ˆํžˆ ์žฌ๊ฑด์„ค์„ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ
    โ‡’ ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ•ฉ์„ฑ ํ€„๋ฆฌํ‹ฐ ๋†’์ด๊ธฐ ์œ„ํ•ด Unet ์•„ํ‚คํ…์ณ๋ฅผ ๋„์ž…

Encoder

  • ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜? VQ down-conv 3๊ฐœ๋กœ ์ด๋ค„์ง
  • VQ down-conv
    • 2๊ฐœ์˜ 3x1 kernel 1D-convolution layer + IN layer + vector quantization layer
    • VQ down-conv(c_in, c_h)
      • input : (c_in, T)
      • output : V, C, S
      • V : convolution block์—์„œ ๊ฐ€์ ธ์˜จ ์—ฐ์†์  ๊ณต๊ฐ„์˜ ์ž„๋ฒ ๋”ฉ
        • ์ฐจ์› โ†’ (c_in / 2 , T / 2)
      • C : IN์—์„œ VQ๋ฅผ ์ง€๋‚˜๊ฐ€๋Š” ์–‘์žํ™”๋œ ํ–‰๋ ฌ์˜ V
        • ์ฐจ์› โ†’ (c_in / 2 , T / 2)
      • S : ํ™”์ž์˜ ์ž„๋ฒ ๋”ฉ
        • ์ฐจ์› โ†’ (c_in / 2 , T / 2)

Decoder

  • VQ up-conv 3๊ฐœ๋กœ ์ด๋ค„์ ธ์žˆ์Œ

  • VQ up-conv๋Š” ์ด์ „ ๋ ˆ์ด์–ด์˜ output์ธ V์™€ ๋Œ€์‘๋˜๋Š” ์ธ์ฝ”๋” ๋ ˆ์ด์–ด์—์„œ ์ƒ์„ฑ๋œ C, S๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์Œ

    • ์ž„๋ฒ ๋”ฉ๋“ค์€ ์ฃผํŒŒ์ˆ˜์™€ ์‹œ๊ฐ„ ๋„๋ฉ”์ธ ๋‘ ์š”์†Œ์— ์˜ํ•ด ๋”ํ•ด์ง€๊ณ  up-smapled๋œ๋‹ค
    • 3๊ฐ€์ง€ ๋ฉ”์ธ ์š”์†Œ๋“ค์ธ Group Norm block(GBlock) , TimeUpsampling, FreqUpsampling
    • GBlock
- 2๊ฐœ์˜ 3x1 kernel 1D-convolution layers + Group Norm + LeakyReLU
    - input size = output size
  • TimeUpsampling module
    • ์‹œ๊ฐ„ ์ฐจ์› ํ™•์žฅ ์œ„ํ•ด ๊ฐ ๋ฒกํ„ฐ๋ฅผ 2๋ฐฐ๋กœ ๋ณต์ œํ•จ
  • FreqUpsampling module
    • mel-spectrogram์—์„œ ์ €์ฃผํŒŒ๋Œ€ ๊ตฌ์—ญ์˜ ์ค‘์š”์„ฑ์„ ๊ฐ•์กฐ
    • ์ด๋Š” ์ €์ฃผํŒŒ์ˆ˜ ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•ด์„œ ๊ณ ์ฃผํŒŒ์ˆ˜ ๋ถ€๋ถ„์„ ์ƒ์„ฑํ•˜๊ณ  output์œผ๋กœ์„œ ํ•ฉ์นœ๋‹ค
  • C, S๋Š” ๋จผ์ € ๋”ํ•ด์ง€๊ณ  GBlock์„ ํ†ต๊ณผํ•œ๋‹ค
  • ๊ทธ๋ฆฌ๊ณ  ์ดํ›„์— ์ด์ „ ๋ ˆ์ด์–ด์˜ V๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค
  • ๊ทธ๋Ÿฐ ๋‹ค์Œ 2 ๊ฐœ์˜ ์—…์ƒ˜ํ”Œ๋ง ๋ชจ๋“ˆ์„ ๊ฑฐ์ณ ์ถœ๋ ฅ์„ ์–ป๋Š”๋‹ค

U-Net

  • VQ down-conv๋Š” ์ž์ฒด์ ์œผ๋กœ V, C,S๋ฅผ ๋งŒ๋“ ๋‹ค
  • ์ด์ค‘ V๋Š” ๋‹ค์Œ VQ down-conv ๋ชจ๋“ˆ๋กœ ์ „๋‹ฌ๋˜๊ณ , C, S๋Š” ๋””์ฝ”๋”์˜ ํ•ด๋‹น VQ up-conv๋กœ ์ „๋‹ฌ๋จ๋‹ค
  • ๋ชจ๋ธ์€ ๊ฐ ๋ ˆ์ด์–ด์˜ ์ตœ๊ทผ์˜ loss์ธ L_latent์™€ reconstruction loss์ธ L_rec๋กœ ํ›ˆ๋ จ๋œ๋‹ค
  • ํ•™์Šต ๋™์•ˆ์— ๋ชจ๋“  ๋ ˆ์ด์–ด์˜ L_latent์— ๋™์ผํ•œ ๊ฐ€์ค‘์น˜ ฮป\lambda๋ฅผ ํ• ๋‹นํ•œ๋‹ค
profile
๐Ÿ“ ๋ฐ์ดํ„ฐ์‚ฌ์ด์–ธ์Šค ํ•™๋ถ€์ƒ์˜ ๊ธฐ๋ก์žฅ!

0๊ฐœ์˜ ๋Œ“๊ธ€