AI는 내 코드 진행대로 노래할까? 직접 측정했습니다
AI가 부른 노래가 주어진 악보를 얼마나 따르는지 측정했습니다. 코드 일치도는 영어 가사 0.922, 베트남어 0.809, 악보 없음 0.546입니다.
작성: MuziAI 팀. 수치는 MuziAI를 만들면서 저희가 직접 진행한 측정에서 나왔습니다. 초안은 AI의 도움을 받아 썼고, 모든 수치는 측정 기록과 대조해 확인했습니다. 업데이트: 2026년 10월 13일.
작곡하는 분들이 자주 묻습니다. 코드 진행과 악보가 이미 있으면 AI가 정말 그 위에 노래할까, 아니면 느슨한 힌트 정도로 여기고 전혀 다른 노래로 흘러가 버릴까? 저희는 추측하는 대신 측정했습니다. 짧게 답하면, 네, 모델은 주어진 악보의 코드와 구조를 따릅니다. 영어 가사일 때 원곡과의 코드 일치도는 0.922, 베트남어 가사일 때 0.809, 악보가 전혀 없을 때 0.546입니다. 저희가 측정한 것은 화성이지 노래 멜로디가 아니며, 이 글은 그 빈틈을 분명히 밝혀 둡니다.

측정 방법: 12개 음이름, 2초 구간
MuziAI에서 노래를 만들면 시스템은 보통 두 단계로 작동합니다. 먼저 한 모델이 ABC 표기법으로 악보(멜로디, 코드, 박자)를 쓰고, 이어서 노래 모델이 그 악보를 오디오로 부릅니다. 4:14 길이의 곡이라면 악보 작성 단계에 기계 시간으로 약 40초, 노래에 179초가 걸립니다. 직접 악보를 넣으면 작성 단계는 건너뜁니다. 정답을 알고 비교하기 위해, 기존 곡의 악보를 가져와 새 가사로 다시 부르게 한 뒤 그 결과를 악보의 원곡과 대조했습니다.
측정 도구는 CPU에서 돌아가며 12음 크로마 프로파일을 씁니다. 곡을 2초 구간으로 자르고, 구간마다 음이 어느 옥타브에서 울리든 모든 에너지를 한 옥타브의 12개 음이름(C, C 샤프, D, … B)에 모읍니다. 그러면 2초마다 화성의 지문이 하나씩 생깁니다. 두 곡의 지문을 같은 시점끼리 비교하고 곡 전체에 걸쳐 평균을 냅니다. 점수 1은 완전히 같다는 뜻입니다.
0.8 같은 숫자는 “관계없음”이 어디쯤인지 알기 전에는 아무 의미가 없습니다. 그래서 기준선을 측정했습니다. 원곡을 8초 밀어서 밀지 않은 원곡과 비교하는 것입니다. 코드도, 악기도, 목소리도 같고 시간만 어긋났을 뿐인데 점수는 0.656까지 떨어집니다.
결과: 네 개의 숫자
| 경우 | 코드 일치도 | 0.8 초과 구간 | 곡 길이 |
|---|---|---|---|
| 악보 제공, 영어 가사 | 0.922 | 86% | 188.6초 (원곡 189.3초) |
| 악보 제공, 베트남어 가사 | 0.809 | 52% | 기록 안 함 |
| 악보 미제공 | 0.546 | 7% | 161초 |
| 기준선: 원곡을 8초 이동 | 0.656 | 해당 없음 | 해당 없음 |
영어 가사에서는 구간의 86%가 0.8을 넘고, 삼 분이 넘는 곡에서 원곡보다 0.7초 짧을 뿐입니다. 모델이 같은 구간을 같은 길이로 유지했다는 뜻입니다. 악보가 없으면 아예 다른 노래를 씁니다. 0.546으로 기준선 0.656보다 낮고, 길이도 189초가 아니라 161초입니다. 베트남어 가사는 그 중간입니다. 0.809는 기준선보다 확실히 높지만, 0.8을 넘는 구간은 52%뿐입니다.
악보가 있어도 어긋나는 이유
가장 좋은 결과에서도 구간의 14%는 0.8 아래입니다. 앞의 두 가지 이유는 측정으로 뒷받침되고, 뒤의 두 가지는 가설입니다.
- 타이밍 오차는 크게 감점됩니다. 측정 도구는 정확히 같은 초의 구간끼리 비교하고, 기준선 0.656은 똑같은 곡도 8초만 밀리면 점수를 많이 잃는다는 것을 보여 줍니다. 한 구간을 몇 박 길게 또는 짧게 부르면 그 뒤의 모든 구간 점수가 끌려 내려갑니다.
- 생성할 때마다 무작위 추첨입니다. 베트남어 실행은 영어 실행과 다른 시드를 썼기 때문에 0.809에는 두 가지 변화가 한꺼번에 담겨 있습니다. 언어 때문인 부분과 시드 때문인 부분을 아직 나누지 못했습니다.
- 측정 도구는 믹스 전체를 듣습니다. 크로마는 보컬과 악기를 함께 담기 때문에, 같은 코드 위에서도 다른 음으로 부른 가사 한 줄은 12개 음이름을 다르게 물들입니다(가설).
- 새 가사는 줄 길이가 다릅니다. 가수는 마디 안에서 줄을 늘이거나 줄여야 하고, 베트남어는 음절마다 성조도 실려 있습니다(가설, 따로 측정하지 않음).
한계와 아직 모르는 것
- 보컬 멜로디는 측정하지 않았습니다. 그러려면 목소리를 분리하고 음높이를 추적해야 하는데, GPU가 필요합니다. 그래서 노래 만들기 페이지는 보컬의 모든 음이 아니라 “코드, 키, 템포”만 유지한다고 약속합니다.
- 표본이 작습니다. 네 숫자 모두 악보 하나에서, 경우마다 한 번씩 생성한 결과입니다. 방향은 보여 주지만, 베트남어가 늘 영어보다 0.113 낮다고 말해 주지는 못합니다.
- 멜로디만 모드는 이 측정 도구로 채점하지 않았습니다. 아래쪽 기준이 되는 값은 악보가 전혀 없을 때의 0.546뿐입니다.
- 점수가 높다고 좋은 노래는 아닙니다. 이 측정은 편곡, 보컬 품질, 가사가 얼마나 또렷하게 들리는지에 대해서는 아무것도 말해 주지 않습니다.
시도했다가 끈 기능: “Am F C G” 같은 코드 입력란
코드 진행은 있는데 멜로디가 없는 분이 많습니다. 그래서 코드를 입력하면 코드만 있고 보컬 줄은 쉼표로만 채운 악보로 바꿔 주는 입력란을 만들었습니다. 결과: 코드는 맞았지만(0.858), 곡 길이가 189초가 아니라 86초였고 모델이 가사를 다 부르지 않았습니다. 이 입력란은 꺼 두었습니다. 다른 측정이 그 이유를 설명해 줍니다. 연주곡 모드를 만들 때, 구간 이름만 있는 악보는 이름이 4개든 8개든 대략 일 분짜리 곡이 나왔지만, 자리표시용 줄을 넣으면 모델이 실제 멜로디를 썼고 곡 길이도 줄 수에 따라 늘어났습니다. 즉 곡 길이를 정하는 것은 코드가 아니라 멜로디 줄입니다. 코드 입력란이 제대로 작동하려면 모델이 주어진 진행 안에서 멜로디를 작곡해야 하는데, 그 기능은 아직 만들지 않았습니다.
멜로디와 코드, 아니면 멜로디만?
“기존 악보” 카드에서 무엇을 유지할지 고를 수 있습니다. 멜로디와 코드는 악보를 손대지 않고 그대로 넘기며, 0.922와 0.809가 나온 경우가 바로 이것입니다. 멜로디만을 고르면 서비스가 노래하기 전에 코드 기호를 모두 지웁니다. 노래 모델이 스스로 코드를 무시하지 않기 때문입니다. 실제 사이트에서 처음부터 끝까지 시험해 보니, 제출한 악보에는 코드 기호가 68개 있었고 모델이 쓴 악보에는 0개였으며, 곡은 210초로 나왔습니다.
- 코드 진행이 중요할 때는 멜로디와 코드를 고르세요. 반주가 이미 완성됐거나 기존 곡에 새 가사를 붙이는 경우입니다.
- 코드보다 선율을 더 믿을 때는 멜로디만을 고르세요. 화성을 확인하지 않은 손 채보, 표준이 아닌 방식으로 적은 코드, 새 스타일로 반주를 다시 입히고 싶은 멜로디가 그런 경우입니다.
- 원곡 코드와 맞추는 것이 우선이라면 멜로디만은 피하세요. 이 모드의 코드 측정값은 아직 없습니다.
노래를 만들 때 활용하는 방법
- 악보를 구하세요. 모든 샘플 곡 페이지의 “코드와 악보” 블록에 “이 악보로 새 가사 부르기” 버튼이 있습니다. 또는 노래 만들기에서 “기존 악보” 카드를 열고 샘플 악보 58개(각각 재생 버튼 있음) 중 하나를 고르거나 직접 ABC를 붙여 넣으세요.
- 생성하기 전에 요약 카드를 읽으세요. 키, BPM, 박자, 코드 진행이 표시됩니다. 예: “F major · 100 BPM · 4/4 · F C/E Dm7 Bb…”. 모델이 따라갈 내용이 바로 이것이니, 틀린 곳이 있으면 여기서 고치세요.
- 베트남어 가사라면 두세 버전을 생성해 각 구간의 시작 부분을 원곡과 비교하세요. 베트남어는 영어보다 코드를 덜 정확하게 따랐고(0.809 대 0.922), 생성할 때마다 새로 추첨됩니다.
- 보컬이 원곡 멜로디를 한 음 한 음 그대로 따라 하리라고 기대하지 마세요. 그 부분은 측정하지 않았기 때문에 약속하지 않습니다.
- 코드만 있나요? 코드 입력란은 꺼져 있습니다. 가장 가까운 방법은 비슷한 코드 진행의 샘플 곡을 골라 그 위에 새 가사를 쓰는 것입니다.
MuziAI에서 바로 체험해 보세요
무료, 회원가입 불필요. 아이디어만 주시면 AI가 가사를 쓰고 완성된 곡으로 불러드립니다.
노래 만들기