앱은 누가 말하는지 어떻게 알까: 자동 캐릭터 음성 내레이션의 내부
책 속 등장인물마다 각자의 목소리를 주려면, 먼저 쉬워 보이지만 그렇지 않은 질문에 답해야 합니다. 이 대사를 누가 말하는 건가? 사람은 아무 생각 없이 답해요. 소프트웨어는 배워야 하고, 그 과정이 흥미로운 부분입니다. 자동 풀 캐스트 내레이션이 가능한 이유이기도 해서, 자세히 살펴볼 만해요.
쉬운 경우, 그리고 방심하게 되는 이유
어떤 대사는 화자를 바로 알려 줍니다.
“You have been in Afghanistan, I perceive,” said Holmes.
태그가 바로 옆에 있어요. 발화 동사와 이름이 인용문 옆에 있죠. 간단한 프로그램도 따옴표를 찾고 근처의 “said” 뒤 고유명사를 보면 대부분 맞출 수 있어요. 모든 대사가 이런 모양이라면 하루 만에 문제가 해결될 겁니다.
그런데 그렇지 않아요.
어려워지는 곳
실제 소설에는 화자가 드러나지 않는 대사가 가득하고, 그 방식도 제각각이에요.
태그가 없는 대사. 대화가 진행되면 작가는 태그를 생략해요. 독자가 알아서 따라올 거라고 보는 거죠.
“You have been in Afghanistan.” “How on earth did you know that?” “Never mind. The question is one of the utmost importance.”
세 줄, 이름 없음. 누구의 말인지 알려면 두 사람이 대화 중이고 번갈아 말한다는 걸 추적하면서 흐름이 끊길 때까지 그 실을 이어 가야 합니다. 한 번 어긋나면 그 뒤에 나오는 모든 대사가 반대 사람의 것이 되어 버려요.
대명사 태그. “He said”, “she asked”처럼 대명사가 화자를 지칭하는 경우예요. 문장에 이름이 없으니 “he”가 지금 누구인지를 알아야 합니다. 마지막으로 언급된 인물이 누구인지, 지금 장면에 누가 있는지를 추적해야 해요.
태그 대신 행동. 발화 동사 자체가 없고 인용문 옆에 행동만 있는 경우도 많아요.
Holmes leaned back and steepled his fingers. “This is a three-pipe problem.”
아무것도 ‘말’하지 않았어요. 행동하는 사람이 홈즈이니 그가 말하는 거라고 인간은 추론합니다. 소프트웨어도 같은 도약을 해야 해요.
등장인물 목록 자체를 만들기. 어떤 대사를 홈즈의 것으로 배정하려면 먼저 홈즈가 존재한다는 걸 알아야 합니다. 그리고 “Sherlock”, “Mr. Holmes”, “Holmes”, 친구의 서술 속 “he”가 모두 같은 인물일 수 있다는 걸 파악해야 해요. 별도의 캐릭터 목록 없이 텍스트에서 이 인물과 별칭 목록을 만드는 것 자체가 하나의 단계예요.
그리고 진짜 모호한 경우가 있어요. 1인칭 내레이션, 이야기 속에 인용된 편지, 다섯 명이 한꺼번에 말하는 군중 장면, 작가가 의도적으로 불분명하게 남긴 대사. 때로는 주의 깊게 읽는 인간 독자도 멈추게 되는 상황이 있어요.
접근 방식이 어떻게 진화했나
초기 방법들은 규칙 기반이었어요. 따옴표를 찾고, 근처의 “said X” 패턴을 찾고, 없으면 번갈아 말하는 걸로 처리하는 방식입니다. 빠르지만, 소설이 흥미로워지는 바로 그 지점에서 취약해요. 그 다음에는 주석이 달린 책 데이터로 학습한 통계 모델이 나왔어요. 문맥을 더 잘 다뤘지만 표면 패턴에 여전히 많이 의존했습니다.
최근에 달라진 건 거대 언어 모델이 텍스트를 사람처럼 읽는다는 점이에요. 책의 한 단락을 주면, 능력 있는 모델은 장면을 머릿속에 담습니다. 누가 있는지, 마지막으로 누가 말했는지, 인용문 옆에 누가 행동하는지. 태그가 없는 대사도 포함해서 이 모든 것을 종합해 화자를 판단합니다. 완벽하지는 않지만 가장 가까운 이름 뒤에서 “said”를 찾는 것보다는 크게 앞서 있어요.
BookNPC가 이걸 어떻게 활용하나
BookNPC는 이 분석을 책 전체에 페이지 단위로 실행합니다. 등장인물 목록을 만들고, 별칭을 해석하고, 태그 없는 대사까지 포함해 각 대사를 배정해요. 그런 다음 내레이터와 등장인물 각각에 고유한 목소리를 붙입니다. 이것이 캐릭터 음성 입히기 뒤에 있는 한 번짜리 과정이에요. 비용이 드는 건 분석이지, 재생이 아니에요.
어떤 화자 판별 시스템도 까다로운 산문에서는 완벽하지 않기 때문에, 앱은 사용자가 통제할 수 있게 해 줍니다. 재생 중에 현재 대사는 화자의 색으로 표시되고, 페이지 아래에 말하는 사람 이름이 나타나요. 전체 캐릭터 목록이 바로 거기 있고, 목소리를 바꿀 수 있어요. 어려운 장면에서 판별이 틀렸다면, 그게 눈에 보이고 고칠 수 있습니다. 조용히 굳어진 채로 남아 있지 않아요.
왜 이 부분이 어렵고 또 가치 있는가
풀 캐스트 오디오북에서 목소리 녹음 자체는 어려운 부분이 아니에요. 비용과 기술이 집중되는 곳은 언제나 연출이었어요. 누가 어떤 대사를 말하는지 결정하고 그것을 다루는 일이죠. 자동 화자 판별은 소프트웨어가 그 연출을 대신하는 겁니다. 이제 스튜디오가 선택한 몇 안 되는 작품뿐 아니라, 직접 가져오는 어떤 책이든 풀 캐스트로 만들 수 있을 만큼 충분히 발전했어요.
이것이 겉으로 보면 그냥 “등장인물마다 목소리가 있다”처럼 보이는 기능 뒤에 있는 기계입니다. 실제로 어떻게 작동하는지 보고 싶다면, 대화가 많은 책을 BookNPC에서 캐스트해서 읽는 동안 화자 이름이 나타나는 걸 지켜보세요. 그것이 어떤 청취 경험을 만들어 내는지는 풀 캐스트 vs 단일 내레이터 가이드에서 다룹니다.