English 한국어 中文 हिन्दी 日本語

← ZenFlow Lab

연구 노트 1 · 주제 1: 소리와 마음 · 2026년 11월 2일 · 상태: 예비, 기계 분석

AI 가수의 성별이 바뀔 때: AI가 만든 한국어 노래의 가수 성별 이탈 검출과 줄이는 방법

요약. 공개 음악 모델에 남성 한 명이 부르는 노래를 요청했습니다. 일부 곡에서, 특히 후렴부터 여성처럼 들리는 목소리가 나타났습니다. 분리한 보컬의 음높이를 검사하는 간단한 방법이 사람의 청취 판단과 같은 곡을 찾아냈습니다. 프롬프트에 "솔로 남성, 듀엣 금지"를 넣는 것만으로는 고쳐지지 않았습니다. 강한 후렴 태그를 빼고, 조성을 낮추고, 가수 설명을 맨 앞에 두는 것이 가장 효과가 컸습니다.

왜 중요한가

마음을 편안하게 하려고 음악을 듣는 사람은 목소리가 갑자기 바뀌는 데 민감합니다. 한 사람의 차분한 목소리로 불려야 할 노래가 도중에 다른 가수로 바뀌면 불안하게 느껴질 수 있습니다. 노래를 자동으로 만드는 곳이라면, 사람이 듣기 전에 잡아내야 할 품질 문제입니다.

실험 조건

이탈을 찾아낸 방법

  1. 보컬과 반주를 분리합니다(htdemucs).
  2. 보컬의 음높이(F0)를 pYIN으로 3초 구간마다 잽니다. 목소리가 충분히 있고 소리가 큰 구간만 셉니다.
  3. 남성 요청 곡은 구간 중앙값이 320Hz를 넘는 구간이 25% 이상이면 표시합니다. 여성·어린이 요청 곡은 210Hz 미만 구간이 25% 이상이면 표시합니다.
  4. 보조 판단으로 오디오 분류기(AST, AudioSet)가 10초 구간마다 "남성 노래"와 "여성 노래" 점수를 냅니다. 이것은 사람이 들어 보라고 알리는 데만 쓰고 판정에는 쓰지 않습니다.

기준값은 사람이 이미 판단한 곡으로 정했습니다. 정상 남성 팝 멜로디는 약 195–350Hz, 여성 목소리는 약 260–510Hz였습니다. 이 기준으로 청취자가 지적한 곡은 걸리고, 정상으로 판단한 곡은 통과했습니다.

무엇이 이탈을 줄였나

남성 발라드와 남성 댄스 곡, 각 seed 3개. "실패"는 음높이 검사가 이탈로 표시했다는 뜻입니다.

단계바꾼 것발라드(남)댄스(남)
원본장르 문장 안의 "male lead vocal"실패 1/1실패 1/1
b+ "Solo male vocal only, no female vocal, no duet, no backing vocals"실패 3/3실패 3/3
c가수 설명을 맨 앞에("A single adult male … baritone"), 성별 없는 장르 문장, + 솔로 문구실패 3/3(벌스는 남성 음역으로 이동)실패 3/3
dc + 조성 낮춤 + "low chest-voice register, no falsetto"청취 확인 1, 실패 2실패 3/3
ed + 모든 구간을 [Verse] 태그로(강한 후렴 태그 없음)통과 2, 청취 확인 1통과 1, 실패 2

실패한 모든 경우에서 벌스는 낮게 머물고 후렴에서 음이 높게 뛰었습니다. "[Chorus - emotional]"이나 "[Chorus - powerful]" 같은 강한 후렴 태그가 모델을 더 높고, 흔히 여성처럼 들리는 목소리로 미는 것으로 보입니다. 부드럽고 숨결 섞인 "섬세한" 설명도 남성 곡 6개 중 1개를 여성처럼 들리는 목소리로 밀었습니다.

실무 지침

한계

이 기계 분석 결과를 사람과 함께 확인하는 열린 익명 청취 실험을 준비하고 있습니다.