[MIKANTONE] 결과물의 선명도와 부드러움 개선하기

어디까지나 가설에 불과하며, 검증과정을 거칠 예정은 없습니다.

수식

저의 모델에선 로그함수를 이용해서 이미지 데이터를 노멀라이징 했기 때문에,

모델이 생성해 준 이미지를 stft 이미지로 변경하는 데에는 다음과 같은 지수함수를 이용해야 합니다.

$$ y = ae^{bx} $$

그리고 이 지수함수는 원칙 상 처음 stft 이미지를 노멀라이징 한 함수의 역함수를 사용하면 됩니다.

그러나 실제로 완성된 모델에 역함수를 바로 적용하면 당황스러운 상황을 마주하게 될 것입니다.

대략 두 경우 중 하나이며, 때로는 둘 다 해당될 수도 있습니다.

갈라짐이 있는 경우는 가장 판단하기 쉬우며 자주 발생합니다.

먹먹한 경우는 변환된 소리만 단독으로 들었을 때는 판단하기 어렵습니다만,

레퍼런스가 될 만한 원본 목소리를 같이 틀어보면 먹먹하다는 것을 바로 알 수 있습니다.

완성된 모델의 문제점 중 이 두 경우는 의외로 모델을 직접 건드리지 않고도 고칠 수 있는 경우에 해당합니다.

다만 모델에 따라 무려 보컬 에디터에서 수식을 직접 계산해 보며 조정해야 하는 점이 문제라면 문제여서,

이 점은 모델을 만들 때 수식을 계산해서 적용할 수 있도록 보완해 볼 계획입니다.

자, 그러면 두 경우가 어째서 발생하고, 어째서 제가 고칠 수 있다 고 하는지 한번 알아봅시다.

갈라짐이 심한 경우

사실 딥러닝을 통해 파동이 아닌 주파수의 이미지를 생성했기 때문에 발생하는 문제이지, 자연적인 소리라면 존재해서는 안 되는 경우랍니다.

소리가 갈라지는 이유는 여러 종류의 서로 다른 소리가 중첩되어 들리는 것으로 볼 수 있습니다.

제 모델의 경우 소리는 대체로 두 개로 분리되어 들리게 되는데, 그것은 stft 이미지의 맨 아래 첫째줄과 둘째줄에서 나오는 소리입니다.

img

아래의 첫째줄과 둘째줄까지 밝기가 강렬해 보이죠?

이 두 소리가 거의 경쟁적인데도 완벽한 배음을 이루지 못하게 되면서 불협에 가까운 소리가 나는 것으로 파악됩니다.

이 문제를 해결하기 위해서

먹먹한 경우

먹먹한 소리가 나는 이유는 고음역대 신호가 약해서 입니다. 이 경우 단순히 저음역 대비 고음역대 신호를 올려 주기 위해 기울기를 감소시키면 되는데,

먹먹한 경우

다음 4가지 식을 만족하는 함수

$$ g(x) = a'e^{b'x}+c' $$

가 필요합니다.

으로부터 다음과 같은 식이 얻어집니다.

$$ ae^{-b} = a'e^{-b'} + c' $$ $$ abe^{b} = a'b'e^{b'} $$ $$ b > b', a < a' $$

이 식을 풀면, 다음과 같은 방법으로 \(a', b', c'\) 을 구할 수 있습니다.

예를 들어, 지금 먹먹한 현상을 보이는 변환식이

$$ 0.0837e^{7x} $$

인 경우 \( a = 0.0837 \) , \( b = 7 \) 이 되겠습니다.

우선 \( b' \) 의 경우 7보다 작은 임의의 숫자인 6으로 잡겠습니다.

그리고 두번째 식으로부터,

$$ a'= \frac{0.0837\times{7}e^{7}}{6e^{6}} = 0.265 $$

로 결정합니다.

마지막으로,

$$ c' = 0.0837e^{-7} – 0.265e^{-6.5} = – 0.000322 $$

을 구합니다.

이 세 값을 앞의 수식에 대입해서 변환식을

$$ 0.265e^{6x} – 0.000322 $$

로 최종 수정합니다.

+

여행당일기

잡다한 블로그

카테고리

메인
전체보기
소개
공지
일기
개발
전체보기
연합우주
MIKANTONE
CabinetKey
창작
전체보기
커미션
단편
일러스트
3D
음악
한문
현재연