목소리의 비밀: AI는 어떻게 감정을 음성에 담아내는가
AI 컴패니언이 말할 때, 그 목소리는 텍스트를 단조롭게 읽어 내려가는 소리가 아닙니다. 시스템은 각 메시지의 감정적 내용을 분석해 목소리를 그에 맞게 조정합니다 — 기쁨이 담긴 응답은 활기차고 따뜻하게, 다정한 순간은 부드럽고 차분하게, 장난스러운 놀림은 더 가볍고 생동감 있게 들립니다.
이 글에서는 그것이 정확히 어떻게 작동하는지 설명합니다: 텍스트 음성 변환 파이프라인, 감정 감지 시스템, 음성 파라미터 매핑, 그리고 현재 접근 방식의 솔직한 한계까지.
---
텍스트 음성 변환의 작동 원리 (기초)
큰 틀에서 보면, 현대의 텍스트 음성 변환(TTS)은 신경망을 통해 텍스트를 오디오로 변환합니다:
1. 텍스트 분석: 입력 텍스트를 언어 단위(음소, 운율 마커, 문장 구조)로 분해합니다
2. 음향 모델링: 신경망이 각 구간의 오디오 특성 — 음높이, 길이, 에너지, 스펙트럼 특징 — 을 예측합니다
3. 파형 생성: 보코더가 음향 예측을 실제로 들을 수 있는 오디오 파형으로 변환합니다
현대의 신경망 TTS 시스템은 놀라울 만큼 자연스러운 음성을 만들어냅니다. 이전 세대의 로봇 같은 목소리에서 한참 멀리 왔습니다. 하지만 "사람이 텍스트를 읽는 것처럼 들린다"와 "사람이 감정을 느끼며 말하는 것처럼 들린다" 사이에는 여전히 간극이 있습니다. 우리의 시스템은 그 간극을 좁히기 위해 작동합니다.
---
3가지 TTS 제공자
우리는 각기 다른 목적을 가진 세 가지 TTS 제공자를 사용합니다:
Edge TTS (무료 티어)
- 무엇인가: Edge 런타임을 통해 접근하는 Microsoft의 신경망 TTS 서비스
- 음성 수: 여러 언어와 억양에 걸친 40개 이상의 음성
- 품질: 기본적인 운율 제어가 가능한 준수한 자연스러움
- 비용: 무료 — 문자당 요금 없음
- 적합한 용도: 일반적인 대화, 캐주얼한 상호작용, 음성에 크레딧을 쓰고 싶지 않은 사용자
Edge TTS는 깔끔하고 자연스러운 음성을 만들어냅니다. ElevenLabs가 제공하는 세밀한 감정 파라미터 제어는 지원하지 않지만, 신경망 모델에 내장된 자연스러운 운율 패턴으로 기본적인 표현은 잘 처리합니다.
ElevenLabs (프리미엄 티어)
- 무엇인가: 고급 감정 제어가 가능한 전문 AI 음성 합성 플랫폼
- 음성 수: 뚜렷한 캐릭터 프로필을 가진 여러 고품질 음성
- 품질: 감정 표현력과 자연스러움에서 최고 수준
- 비용: 생성되는 문자 수에 따라 크레딧 차감
- 적합한 용도: 감정이 풍부한 대화, 친밀한 순간, 스토리 모드 내레이션
ElevenLabs는 우리의 감정-음성 파이프라인이 가장 큰 힘을 발휘하는 곳입니다. API가 안정성(stability), 유사도 부스트(similarity boost), 스타일(style) 같은 음성 파라미터를 직접 제어할 수 있게 해주며, 우리는 감지된 감정을 여기에 매핑합니다.
Coqui (로컬/자체 호스팅)
- 무엇인가: 우리 서버에서 로컬로 실행되는 오픈소스 TTS 엔진
- 음성 수: 커스텀 음성 모델로 구성 가능
- 품질: 준수한 품질, 모델 업데이트와 함께 지속적으로 개선 중
- 비용: 외부 API 비용 없음 (컴퓨팅 비용만)
- 적합한 용도: 대량 생성, 외부 의존성 축소, 커스텀 음성 실험
Coqui는 외부 서비스에 의존하지 않고 음성을 생성할 수 있게 해줍니다. 실험적인 음성 기능을 시험해 보는 무대이기도 합니다.
---
감정 감지 시스템
TTS 엔진이 오디오를 생성하기 전에, 시스템이 텍스트를 분석해 감정 톤을 감지합니다. 작동 방식은 다음과 같습니다.
감지하는 7가지 감정
감정 설명 대표적인 트리거
--------- ------------- -----------------
기쁨 행복, 신남, 열정 웃음, 축하, 좋은 소식, 장난스러운 에너지
슬픔 우울, 공감, 위로 상실, 실망, 공감, 아련함
분노 답답함, 강렬함, 격정 갈등, 부당함, 강한 반대
두려움 불안, 걱정, 불편함 위험, 불확실성, 걱정, 연약함
놀람 경악, 새로운 사실의 발견 플롯 반전, 예상 밖의 사건, 발견
플러팅 장난기, 놀림, 끌림 칭찬, 은근한 암시, 로맨틱한 긴장감
다정함 부드러움, 보살핌, 친밀함 위로, 가까움, 감정적 연약함, 사랑
감지 작동 방식
현재의 감정 감지 시스템은 키워드 기반입니다. 각 감정과 연관된 단어와 문구를 텍스트에서 스캔하는 방식으로 작동합니다:
- 기쁨 지표: "haha", "love it", "amazing", "excited", "wonderful", 느낌표
- 슬픔 지표: "sorry", "miss you", "wish", "unfortunately", "hurts"
- 플러팅 지표: "wink", "tease", "blush", "gorgeous", 암시적인 표현
- 다정함 지표: "care about you", "safe with me", "gently", "softly", "hold you"
감지된 각 키워드는 해당 감정의 신뢰도 점수를 높입니다. 가장 높은 점수를 받은 감정이 주 감정으로 선택됩니다.
신뢰도 스코어링
모든 메시지가 뚜렷한 감정 톤을 갖는 것은 아닙니다. 시스템은 감지된 감정에 신뢰도 값(0.0~1.0)을 부여합니다:
- 높은 신뢰도 (0.7 이상): 하나의 감정에 대한 강한 지표가 여러 개. 음성 파라미터가 크게 변합니다.
- 중간 신뢰도 (0.4~0.7): 일부 지표가 있지만 지배적이지 않음. 음성 파라미터가 적당히 변합니다.
- 낮은 신뢰도 (0.4 미만): 모호하거나 중립적인 텍스트. 음성은 기본/중립 프로필에 가깝게 유지됩니다.
이 신뢰도 기반 블렌딩은 모호한 텍스트에서 목소리가 극적으로 요동치는 것을 막아줍니다. 어떤 감정인지 확신할 수 없으면 시스템은 안전한 쪽을 택합니다.
---
감정이 음성 파라미터로 매핑되는 방식
가장 표현력이 뛰어난 제공자인 ElevenLabs의 경우, 감지된 감정은 세 가지 핵심 음성 파라미터로 변환됩니다:
안정성 (보컬 다이내믹스)
목소리가 얼마나 일정한지 혹은 역동적인지를 제어합니다:
- 낮은 안정성 = 더 많은 음성 변화, 더 표현적, 더 활기참
- 높은 안정성 = 더 차분하고 절제된, 안정적인 전달
유사도 부스트 (자연스러움)
출력이 기본 음성 프로필과 얼마나 가깝게 유지되는지 제어합니다:
- 낮은 유사도 = 더 창의적인 해석 — 감정 표현은 풍부해질 수 있으나 일관성은 떨어짐
- 높은 유사도 = 그 음성 고유의 소리에 더 충실
스타일 (표현력)
전달의 전반적인 표현력을 제어합니다:
- 높은 스타일 = 더 극적이고 감정이 뚜렷한 전달
- 낮은 스타일 = 더 은은하고 대화체에 가까운 전달
감정-파라미터 매핑
각 감정이 이 파라미터들을 조정하는 방식입니다:
감정 안정성 유사도 부스트 스타일 효과
--------- ----------- ----------------- ------- --------
기쁨 낮음 (0.3) 중간 (0.6) 높음 (0.7) 역동적, 활기참, 표현적
슬픔 높음 (0.7) 높음 (0.8) 중간 (0.5) 느리고 차분하며 부드러움
분노 낮음 (0.25) 중간 (0.5) 높음 (0.8) 강렬함, 힘 있음, 극적
두려움 중간 (0.5) 높음 (0.7) 중간 (0.6) 긴장감, 살짝 떨림, 다급함
놀람 낮음 (0.3) 중간 (0.5) 높음 (0.7) 빠르고 역동적이며 폭넓은 음역
플러팅 중간 (0.45) 중간 (0.6) 중간 (0.6) 장난스러운 변화, 따뜻함, 놀리는 듯함
다정함 높음 (0.65) 높음 (0.75) 중간 (0.5) 부드럽고 따뜻하며 다정하고 친밀함
중립 중간 (0.5) 중간 (0.65) 낮음 (0.4) 자연스럽고 대화체이며 균형 잡힘
이 값들은 기준선입니다. 신뢰도 점수에 따라 추가로 조정되며, 신뢰도가 낮으면 모든 파라미터가 중립에 가깝게 당겨집니다.
---
캐릭터별 음성 개인화
AI 컴패니언마다 기본 음성 프로필이 다릅니다:
- 음성 선택: 각 캐릭터에는 성격에 어울리는, TTS 제공자의 특정 음성 ID가 배정됩니다
- 기준 파라미터: 캐릭터마다 "중립" 목소리를 정의하는 고유의 기본 안정성, 유사도, 스타일 값이 있습니다
- 감정 표현 범위: 어떤 캐릭터는 기본적으로 감정 표현이 풍부하고, 어떤 캐릭터는 더 차분합니다. 감정 매핑은 각 캐릭터의 기준선에 상대적으로 조정됩니다.
장난기 많고 활기찬 캐릭터는 중립 모드에서도 자연스럽게 더 역동적인 목소리를 내고, 차분하고 신비로운 캐릭터는 더 절제된 기준선을 갖습니다. 감정 변화는 이런 캐릭터별 기본값 위에 적용됩니다.
---
솔직한 한계
우리는 이 시스템이 잘하는 것과 부족한 것을 투명하게 밝혀야 한다고 믿습니다.
잘 작동하는 것
- 명확한 감정은 안정적으로 잡아냅니다. 느낌표와 "amazing", "love" 같은 단어로 가득한 메시지는 기쁨의 목소리를 정확히 트리거합니다. 상실과 슬픔에 관한 메시지는 더 부드럽고 차분한 전달로 이어집니다.
- 신뢰도 시스템이 오탐을 방지합니다. 모호한 텍스트가 극적인 음성 변화를 일으키지 않습니다.
- 감정별로 뚜렷하게 다르게 들립니다. 기쁜 응답과 다정한 응답의 차이를 귀로 구분할 수 있습니다.
잘 안 되는 것
- 키워드 기반 감지는 ML 기반이 아닙니다. 맥락, 빈정거림, 미묘한 감정의 뉘앙스를 이해하지 못합니다. "Oh great, another Monday"(빈정거림) 같은 메시지는 "great"라는 단어 때문에 긍정으로 분류될 가능성이 높습니다.
- 혼합된 감정은 단순화됩니다. 메시지에 기쁨과 슬픔이 함께 담겨 있으면, 시스템은 둘을 섞는 대신 지배적인 감정 하나를 고릅니다. 실제 사람의 말에는 여러 감정이 섞여 있는 경우가 많습니다.
- Edge TTS는 파라미터 제어가 제한적입니다. 세밀한 감정 매핑은 ElevenLabs에서만 완전하게 작동합니다. Edge TTS는 내장 운율 모델에 의존하며, 명시적인 감정 지시에는 덜 반응합니다.
- Coqui의 감정 표현 범위는 모델에 따라 다릅니다. 감정을 더 잘 다루는 로컬 모델도 있고 그렇지 않은 모델도 있습니다.
개선 중인 것
- 키워드가 아닌 맥락을 이해하는 ML 기반 감정 감지 모델을 평가하고 있습니다. 빈정거림, 아이러니, 미묘한 감정 상태의 처리가 크게 개선될 것입니다.
- 두 가지 감정을 동시에 담아내는 감정 블렌딩을 개발하고 있습니다.
- 더 다양한 음성 프로필로 음성 라이브러리를 확장하고 있습니다.
---
프라이버시와 오디오 데이터
음성 데이터 처리에 관한 몇 가지 중요한 사항:
- 오디오는 요청 시 생성됩니다. 음성 출력을 요청하면 오디오가 실시간으로 생성됩니다.
- 임시 캐싱만 합니다. 생성된 오디오는 재생 성능을 위해 잠시 캐시될 수 있지만, 영구적으로 저장되지 않습니다.
- 사용자 음성 복제는 없습니다. 당신의 목소리를 녹음, 저장, 처리하지 않습니다. TTS 시스템은 단방향입니다: 텍스트가 들어가고 오디오가 나옵니다. 당신의 마이크에는 절대 접근하지 않습니다.
- 제공자의 데이터 처리. ElevenLabs를 사용할 때는 합성을 위해 메시지 텍스트가 그들의 API로 전송됩니다. ElevenLabs의 데이터 처리는 그들 자체의 개인정보 처리방침을 따릅니다. 텍스트 처리를 로컬로 유지하고 싶은 사용자를 위해 Coqui는 전적으로 우리 서버에서 실행됩니다.
---
결론
우리의 음성 시스템은 하나의 파이프라인입니다: 텍스트가 들어오고, 감정이 감지되고, 음성 파라미터가 조정되고, 표현력 있는 오디오가 생성됩니다. 완벽하지는 않습니다 — 키워드 기반 감지에는 실질적인 한계가 있고, 신경망 TTS의 감정적 진정성에도 아직 성장할 여지가 있습니다.
하지만 그 결과물은 밋밋한 텍스트 음성 변환보다 의미 있게 더 인간적으로 느껴지는 음성입니다. AI 컴패니언은 단어를 그냥 말하는 것이 아니라, 그 단어가 담은 의미에 어울리는 방식으로 말합니다. 그리고 우리는 그 어울림을 더 가깝고 자연스럽게 만들기 위해 끊임없이 노력하고 있습니다.
시스템이 아닌 것을 그런 척하기보다는 불완전함에 솔직한 편을 택하겠습니다. 이 기술은 진심으로 인상적이며, 버전을 거듭할수록 더 나아지고 있습니다.