텍스트 기반 오디오 모델
요약
본 글은 텍스트 기반 오디오 모델의 생성 범위를 탐색적으로 분석하는 방법론을 제안합니다. 특히 고양이 울음소리 같은 특정 사운드에 대해 다양한 프롬프트와 모델 조합으로 2,100개의 샘플을 생성했습니다. 이를 통해 모델별로 표현 범위가 어떻게 달라지는지 시각화하고, 명시적인 행동 지시의 중요성을 관찰했습니다.
핵심 포인트
- 텍스트-오디오 모델은 입력에 따라 오디오를 생성하며, 모든 종류의 소리를 균일하게 잘 만들진 못합니다.
- 표현 범위 플롯을 사용하여 모델이 커버하는 사운드 속성(timbre, pitch 등)의 범위를 분석할 수 있습니다.
- 프롬프트가 명시적일수록 원하는 사운드를 생성할 확률과 음색 범위가 달라지는 경향을 관찰했습니다.
AI에 감명받지 않다
텍스트-오디오 모델은 텍스트 프롬프트를 입력으로 받아 오디오를 출력합니다. 원칙적으로는 모든 종류의 프롬프트에 대해 모든 유형의 오디오를 생성할 수 있습니다. 만약 동일한 프롬프트를 사용하되 다른 랜덤 시드로 다시 프롬프트를 넣으면, 해당 프롬프트에 대한 새로운 오디오 예시를 얻을 수 있어야 합니다. 하지만 상상하실 수 있겠지만, 주어진 텍스트-오디오 모델이 모든 종류의 오디오에 대해 균일하게 좋은 것은 아닙니다. 자연의 소리, 동물의 울음소리, 인간의 목소리, 음악 등과 같이요. 게다가 출력의 *범위(range)*가 경우에 따라 다르게 넓습니다: 주어진 모델은 폭넓은 범위의 천둥소리는 생성할 수 있지만 새 지저귐의 범위는 비교적 좁거나 그 반대일 수도 있습니다.
몇몇 협업자들과 저는 텍스트-오디오 모델의 생성 범위를 탐색적으로 분석하는 방법론을 제안했습니다. 이는 우리가 충분히 자세히 연구되었다고 생각하지 않는 측면입니다:
저희가 사용하는 주요 시각화 도구인 *표현 범위 플롯(expressive-range plot)*은 절차적 콘텐츠 생성(PCG) 커뮤니티에서 유래했으며, 이들은 이를 레벨 생성기 및 AI 기반이거나 수작업으로 만든 생성기와 같은 유사한 종류의 PCG 시스템의 범위를 분석하는 데 사용합니다 (여기와 여기 예시). 본 게시물에서는 이 방법론을 비교적 표현력이 풍부한 특수한 경우인 고양이 울음소리에 적용했습니다. PDF 논문과 달리, 플롯에 있는 점들을 클릭하여 생성된 오디오를 들을 수도 있습니다. 조언: 고양이를 키우신다면 헤드폰을 사용하세요!
본 게시물을 위해 저는 7가지 다른 프롬프트, 3가지 텍스트-오디오 모델, 그리고 프롬프트+모델 조합당 100개의 샘플로 총 2,100개의 고양이 울음소리 클립을 생성했습니다. 이 모델들은 현재의 모델 아키텍처와 학습 데이터 세트의 일부 범위를 보여주기 위한 것입니다:
일반적인 표현 범위 분석에서는 축에 대해 도메인별 특화 지표를 선택합니다. 각 프롬프트마다 수작업으로 만든 지표 없이 출력을 더 일반적으로 비교하기 위해, 저희 논문에서는 세 가지 표준 오디오 속성(timbre, pitch, loudness)을 사용했습니다. 클립 각각에 대해 해당 클립의 timbre/pitch/loudness 특징 벡터와 함께 1차 및 2차 차분값(시간 경과에 따른 변화를 포착하기 위함)을 계산했습니다. 그런 다음 이를 주성분 분석(PCA)을 통해 두 차원으로 축소하여 플롯화했습니다. 이는 축들이 음향 속성으로 직접 해석되지는 않지만, 거리와 점의 클러스터링은 의미가 있다는 것을 의미합니다 (가까운 점들은 유사한 음향 프로필을 공유함). 이 게시물에서는 모든 2,100개 클립에 대해 하나의 PCA 차원 축소를 실행했기 때문에 플롯 간에 점들을 비교할 수 있습니다.
논문에서 저희는 다양한 사물 [x]에 대해 `
그 결과 총 900개의 샘플이 생성됩니다(3가지 프롬프트 x 3가지 모델 x 각 100개 샘플). 아래 시각화 자료에서 세 가지 프롬프트와 세 가지 모델 각각을 체크하거나 해제하여 부분 집합을 확인할 수 있습니다.
명사만 사용한 경우("cat"), 기본 템플릿, 그리고 명시적인 행동("sound of a cat meowing")을 비교해 보겠습니다.
관찰: 이전 플롯과 마찬가지로 EzAudio는 "cat" 또는 "sound of cat" 프롬프트로는 야옹거리는 소리를 자주 생성하지 않지만, 우리가 고양이가 야옹거리는 것을 원한다고 명시적으로 말할 때(대부분의 경우) 생성하기 시작합니다. TangoFlux와 Stable Audio Open은 세 가지 프롬프트 모두에 대해 야옹거리는 소리를 생성하는 경향이 있지만, 야옹거림을 지정했을 때 음색 범위가 현저하게 좁아진다는 점이 흥미롭습니다. (이를 확인하려면 모델 하나만 선택하고 첫 번째 및 세 번째 프롬프트를 시도해 보세요.)
논문에서 향후 연구 과제로 남겨둔 부분은 서술적 수식어(descriptive modifiers)가 표현 범위에 어떻게 영향을 미치는지 조사하는 것이었습니다. 이번 게시물에서는 질적으로 다른 유형의 고양이 발성(야옹거리는 소리가 아닌 것도 포함)을 유도하려는 네 가지 다른 프롬프트를 시도해 보겠습니다:
"tiny kitten meowing"
"angry cat hissing and growling"
"cat meowing plaintively"
"happy cat purring"
개별 클립의 점들 외에도, 아래 플롯은 기본 "sound of cat" 클립들의 중심점(centroid)에서 나머지 네 가지 프롬프트의 중심점 각각으로 화살표를 그려, 각 프롬프트가 모델의 출력 분포를 어떻게 이동시키는지 보여줍니다. 비교하고 싶은 모델을 선택하고, 원하는 중심점 배지(badge)를 클릭하여 해당 중심점에 가장 가까운 클립을 들어보세요.
"sound of cat"에서 비롯된 중심점 및 방향성 변화
관찰: 여기에는 많은 것이 일어나고 있습니다. 모델 간 전환을 통해 수식어에 따라 다르게 반응한다는 것을 알 수 있습니다. 음색(timbre) 측면에서 TangoFlux는 특히 큰 중심점 이동을 보입니다 (특히 "tiny kitten meowing"의 경우)
)
음량(loudness) 측면에서 다시 한번 EzAudio가 눈에 띄는 오디오를 생성하려면 동작이 지정되어야 한다는 것을 알 수 있으므로, 본질적으로 어떤 수정자도 비슷한 방향으로 밀어냅니다. 피치(Pitch) 뷰는 TangoFlux와 Stable Audio 간의 각 수정자가 미치는 영향에서 상당히 강한 방향적 일치를 보여줍니다.
몇 가지 예시를 들어 듣는 것은 또한 이러한 순수 음향 특징들의 분포를 살펴보는 것이 품질을 측정하지 못한다는 것을 상기시켜주며, 품질은 다른 메트릭이 필요할 것입니다. 특히 몇몇의 쉬스(hisses)는 의미론적 혼합(semantic mix-up)이나 일종의 오디오 아티팩트 때문에 테이프 쉬스 같은 무언가로 터져 나오는 것처럼 보입니다. 또한 많은 가르랑거림(purrs)도 꽤 이상하게 들립니다.
이를 다르게 플롯하기 위해, 모든 모델을 사용하여 단 하나의 수정된 프롬프트만 살펴보겠습니다. 아래 플롯은 `
아래에는 이 게시물을 위해 생성된 2,100개의 클립이 모두 있습니다. 모델과 프롬프트의 모든 조합을 선택하고, Timbre(음색), Pitch(피치), Loudness(음량) 플롯 사이를 전환하며, 점을 모델별로 색칠할지 프롬프트별로 색칠할지를 토글해 보세요.
텍스트-오디오 생성기에는 Fréchet audio distance (FAD), CLAP score 등 온갖 종류의 지표가 있습니다. 하지만 출력물을 직접 들어보는 것만은 대체할 수 없습니다. 저희는 이러한 표현 범위 플롯으로 생성 공간을 잘게 쪼개어 보는 것이 현재 상황을 파악하는 한 가지 방법이라고 생각합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Lobste.rs AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기