노래를 불러주는 AI가 있습니다. Diff-SVC라고 부릅니다.
물론 정확히 말하면 stable-diffusion을 기반으로 목소리를 변환해주는것에 가깝습니다. 뒤에 SVC는 Singing Vocal Conversion이라고 해서 대놓고 목소리변환이라고 정의합니다.

누군가의 목소리를 학습한 AI가 다른 사람이 부른 노래의 목소리를 학습한 목소리로 바꿔주는 겁니다.

방법은 Stable-Diffusion과 동일한데

1. 목소리를 학습한 AI를 준비합니다. 이 AI는 사실 MEL-Spectrogram형태로 목소리를 학습했습니다.
2. 타겟의 음성을 준비합니다.
3. 여기에 각종노이즈를 섞어줍니다. 그냥 전파가 잘 안잡히는 라디오 수준으로 만든다고 생각하면 됩니다. 노래가 잡음과 함께 들려서 "노래가 들린다"수준으로 만드는겁니다.
4. 이걸 AI한테 "복원"하라고 시킵니다. AI는 자기나름대로 "복원"작업을 해서 돌려줍니다. 물론 아는 목소리는 자기가 학습한 목소리 뿐이라 오리지널이 아닌 학습한 그 목소리로 복원해줍니다.

...?

5. 보컬의 목소리가 바뀌었습니다.


그래서 이것저것 해보던 중 굉장한 사실을 알았습니다. 분명 "복원"이지만 원래 파일상태가 개판인 타겟을 넣으면 복원된것도 개판으로 나오더군요.

전 이걸 가이드보컬이라고 부르고 있습니다. 실제 녹음실에서 가수들이 노래부를때 가이드보컬의 노래를 듣고 이에 맞춰서 자신의 목소리로 부르거든요. 가이드보컬은 주로 오래된 경력자나 진짜 실력자가 합니다. 그래야 신인 가수들이 따라오니까요.

꼭 AI가 하는 짓이 가이드보컬을 따라 부르는 느낌이네요. 괜찮은 보컬은 AI가 변환했을때 상당히 훌륭한 결과가 나오는 반면 엉망인(특히 음반에서 보컬추출 등으로 만들어서 여기저기 망가진)걸 타겟으로하면 AI도 이상하게 만듭니다.

재미있지요.
TTS의 경우 학습초기를 보면 옹알이를 들을 수 있는데 꼭 애기들이 말을 배우는 느낌이 듭니다. 그런데 보컬AI도 좋은 가이드를 만나야 좋은 결과가 나온다는게 참 신기하네요.

,

요즘 스마트폰들은 3.5파이 스테레오 구멍이 없습니다.
그냥 블루투스 쓰라는 것처럼 들리는데 삼성의 경우 USB-C형태의 이어폰을 번들로 줍니다. 이걸로 라디오도 들으라는 의미인데 라디오를 위해 굳이 그걸 챙길리가...

그리고 이어폰을 쓰면서 충전도 안 되지요. 이어폰이 USB를 점령하고 있으니까요.

하지만 사람들은 다 계획이 있었나봅니다.

이런 케이블을 하나 사면 충전과 동시에 3.5파이 이어폰을 쓸 수 있습니다.

더 웃긴건 케이블안에 DAC가 내장되어있는건지 소리가 노이즈없이 더 깨끗하게 들립니다.

USB-C AUX Y젠더라고 검색하면 비슷한것들이 나오고 케이블류는 다 파는걸로 유명한 Coms에서 팝니다.
일단 제가 구매한건 IH618이라는 품목인데 인터넷에는 안 나오네요.

어쨌건 굳이 3.5파이 구멍이 없어도 되겠네요

,

우선 고등학교에서 수열은 배우셨을거라고 생각하고 간단한걸 이야기해보겠습니다

1 2 4 8 16 32 64 ?

다음에는 무엇이 올까요?
눈치빠른 사람은 128이라고 할겁니다.

이런걸 많이 해보셨다면 패턴이 눈에 보이니까요.
뒤의숫자=2x앞의숫자

2 3 5 9 17 33 65 ?
이건요?

129라는 숫자가 보이셨나요? 아까 수열에 +1이 된 패턴입니다. 생각보다 쉽죠?
뒤의숫자 = 2x앞의숫자+1

이제부터는 조금 다른 문제입니다.

0 1 3 7 15 29 63 127

여기서 잘못 된 숫자를 고쳐보세요.

이것의 답은 29가 아닌 31입니다. 아까 패턴에서 -1을 한건데 엉뚱한 녀석이 있습니다.
그래서 그 부분을 수열의 패턴을 "학습"을 통해 알아냈고 잘못 된 부분을 "복원"했습니다.

어쨌건 우린 일부가 망가진 수열에서 잘 못된 부분을 찾아서 고칠 수 있게 되었습니다. 왜냐하면 패턴을 함수형태로 알고 있으니 이 함수에서 벗어난 부분을 고치면 되니까요.

이번엔 일부가 망가진 수준이 아닌 모두 망가진 수열을 준비해봅니다.
이 수열은 우리가 알아낸 함수와 맞는 부분이 하나도 없습니다.

3 54 19 7 284 16 34 18

이중에 아무거나 하나를 붙잡고 복원해봅시다
저는 19를 기준으로 하겠습니다
7 11 19 36 67 131

역시 제일 위에서 알아낸 수열에서 -3을 한 것으로 했습니다. 하지만 19말곤 같은 숫자가 없네요.
이건 거의 "무에서 유를 창조"한 수준입니다. 어찌됐건 우리가 학습한 패턴에 맞게 "복원"을 했습니다.

우리는 이런식으로 "패턴을 학습"했고 이에 맞추어 "복원"했지만 사실상 "창조"에 가까운 짓을 해버렸습니다.


그런데 이 수열이라는게 말입니다. 우리가 보자마자 알아낼 수 있을 정도로 쉬운녀석들만 있는 것이 아닙니다.

이게 뭐지 싶은 규칙성따위 안 보이는 수열도 참 많습니다. 대부분의 자연현상들이 그러합니다. 그러나 과학자들은 그걸 최대한 복잡한 함수화해서 근사값형태로 중간값들을 뽑아내지요. 데이터들을 최대한 모아서 오차를 점점 줄여나가서 기어코 설명할 수 있을 정도로 수치화 합니다.

그림도 사실 규칙성따위 보이지 않는 수열입니다. 심지어 이건 그냥 수열도 아니고 2차원 수열입니다. 이걸 우린 행렬이라고 부릅니다. 고등학생때 수학을 포기한적이 없다면 한번은 들어보셨을겁니다.

정제가 잘 된 그림들을 모아 행렬로 표시하고 행렬들의 패턴을 알아내 함수 형태로 가지고 있는겁니다. 다만 그 함수가 굉장히 길고 복잡해서 여백이 부족해 적기 힘든겁니다.

하지만 컴퓨터는 단순노동으로 그 긴 함수계산을 빠르게 할 수 있고 "학습"이라는 이름하에 패턴파악을 할 수 있습니다. 그리고 인간이라는 놈들은 말도 안되는 다 망가진 노이즈 덩어리를 가지고 복원하라고 던지는거고 컴퓨터는 불평없이 복원을 하는겁니다.
매번 그림을 뽑을때마다 결과가 달라지는 것도 던지는 노이즈그림이 달라지기 때문입니다.

그렇기에 학습되지 못 한 그림은 만들지 못 하는 것이고 단순히 기존 그림들을 조합하는것도 아니라는 이야기가 되는 겁니다. 그렇기에 단순히 기존 그림들의 조합이 아니라는 것일 겁니다.

여기까지가 가장 이미지 생성알고리즘, 그 중 Stable-diffusion의 기초적인 이론입니다.

,