Skip to main content

음성은 이제 콘텐츠가 아니라 인터페이스다

지금까지 우리는 일레븐랩스를 콘텐츠 제작 도구로 다뤘다. 유튜브 내레이션을 만들고, 숏폼 광고의 보이스오버를 뽑고, 오디오북과 강의 콘텐츠를 제작했다. 그런데 마지막 장에서 시야를 한 단계 넓혀야 한다. 일레븐랩스의 진짜 확장성은 '좋은 음성 파일을 만드는 도구'에 머물지 않는다. 앞으로의 핵심은 사용자가 말하면 AI가 듣고, 이해하고, 답하고, 필요하면 실제 업무까지 처리하는 음성 인터페이스다.

텍스트 챗봇은 이미 익숙하다. 웹사이트 오른쪽 아래에 뜨는 상담창, 앱 안의 고객센터, 업무용 슬랙 봇이 모두 여기에 속한다. 하지만 텍스트 챗봇은 사용자가 직접 타이핑해야 한다. 운전 중이거나, 매장 안에서 손이 바쁘거나, 시력이 불편하거나, 단순히 귀찮은 순간에는 대화의 마찰이 커진다. 음성 에이전트는 이 마찰을 줄인다. 사용자는 그냥 말한다. AI는 듣고, 끼어들기를 감지하고, 적절한 타이밍에 답한다. 여기에 예약 확인, 상품 추천, 결제 안내, 강의 질의응답, 문서 검색 같은 도구 호출이 붙으면 단순한 음성 합성을 넘어 하나의 자동화 직원이 된다.

ElevenLabs 공식 문서는 ElevenAgents를 자연스러운 대화를 통해 작업을 수행하는 에이전트 플랫폼으로 설명한다. 이 구조는 음성을 인식하는 STT, 답변을 만드는 LLM, 다시 말로 출력하는 TTS, 그리고 사람이 언제 말을 끝냈는지 판단하는 턴테이킹 모델로 이루어진다.1 이 네 가지가 맞물릴 때 비로소 '말이 통하는 AI'가 된다.

Voice Agent와 API 통합, 그리고 AI 음성의 미래

ElevenAgents란 무엇인가

ElevenAgents는 일레븐랩스가 제공하는 대화형 음성 에이전트 플랫폼이다. 예전식 IVR, 즉 '상담을 원하시면 1번을 누르세요' 방식과 다르다. 사용자가 "지난주에 주문한 상품 배송이 왜 멈췄나요?"라고 말하면 에이전트는 이 말을 텍스트로 바꾸고, 주문 조회 도구를 호출하고, 배송 상태를 확인한 뒤, 자연스러운 음성으로 답한다.

여기서 중요한 것은 '실시간성'이다. 녹음 파일을 업로드하고 몇 분 뒤 결과를 받는 방식이라면 음성 에이전트가 아니다. 사람과 대화하려면 지연 시간이 짧아야 한다. 사용자가 말을 멈췄는데 4초 동안 아무 반응이 없으면, 아무리 목소리가 자연스러워도 답답하다. 반대로 사용자가 아직 말하는 중인데 AI가 계속 끼어들면 불쾌하다. 그래서 ElevenAgents에서 중요한 설정은 목소리만이 아니라 대화 흐름이다. 언제 듣고, 언제 멈추고, 언제 답할지를 조절해야 한다.

ElevenAgents가 특히 강력해지는 순간은 도구 호출이 붙을 때다. 도구 호출은 AI가 대화 중 외부 기능을 사용하는 방식이다. 예를 들어 상담 봇은 주문 조회 API를 호출하고, 리드 검증 봇은 CRM에 고객 정보를 저장하고, 튜터 봇은 학습 진도표를 불러오며, 병원 안내 봇은 예약 가능한 시간을 확인한다. 이때 AI는 단순히 그럴듯한 말을 하는 것이 아니라 실제 시스템과 연결된 작업자가 된다.

대표적인 사용 사례는 다음과 같이 나눌 수 있다.

  • 고객 지원 에이전트: 배송 조회, 환불 정책 안내, 계정 문제 해결, 상담원 연결 전 사전 정보 수집

  • 리드 검증 에이전트: 광고 랜딩 페이지 방문자와 통화하며 예산, 일정, 관심 상품을 확인하고 CRM에 기록

  • 튜터·코치 에이전트: 학생의 답변을 듣고 힌트를 주거나, 발음 교정과 회화 연습을 진행

  • 상담·예약 에이전트: 병원, 학원, 컨설팅, 미용실, 세미나 예약을 확인하고 캘린더에 등록

  • 내부 업무 에이전트: 직원이 음성으로 사내 규정, 제품 매뉴얼, 회의록을 검색하도록 지원

기획자가 여기서 기억해야 할 것은 하나다. 좋은 음성 에이전트는 '사람처럼 말하는 봇'이 아니라 '제한된 업무를 확실하게 끝내는 봇'이다. 처음부터 모든 질문에 답하는 만능 비서를 만들려고 하면 실패한다. "반품 가능 여부를 확인하고 접수한다", "강의 수강생의 질문에 교재 범위 안에서 답한다", "B2B 상담 신청자의 정보를 받아 미팅을 예약한다"처럼 좁고 명확한 임무를 주어야 한다.

음성 에이전트의 내부 구조

음성 에이전트는 겉으로 보면 한 명의 상담원처럼 보이지만, 안쪽에서는 여러 부품이 빠르게 이어 달린다. 사용자가 말하면 먼저 STT, 즉 Speech to Text가 음성을 텍스트로 바꾼다. 이 텍스트를 LLM이 읽고 답변을 만든다. 필요한 경우 LLM은 도구를 호출해 외부 데이터를 가져온다. 마지막으로 TTS가 답변 텍스트를 음성으로 변환해 사용자에게 들려준다.

이 흐름을 단순화하면 다음과 같다.

사용자 음성
→ STT 전사
→ LLM 추론
→ 도구 호출 또는 지식 검색
→ 답변 텍스트 생성
→ TTS 음성 출력
→ 대화 로그·분석 저장

이 구조에서 병목은 하나가 아니다. STT가 잘못 들으면 LLM은 엉뚱한 답을 한다. LLM이 너무 길게 말하면 사용자는 지친다. TTS가 느리면 대화가 끊긴다. 턴테이킹이 서툴면 서로 말을 덮는다. 그러므로 음성 에이전트를 설계할 때는 "어떤 LLM을 쓸까?"보다 "전체 대화 왕복 시간을 어떻게 줄일까?"를 먼저 생각해야 한다.

일레븐랩스의 TTS 모델 중 Flash v2.5는 초저지연 응답이 필요한 실시간 애플리케이션에 맞춰 설계되었다. 일레븐랩스의 TTS API 페이지는 Flash 계열을 약 75ms 수준의 초저지연 모델로 소개하며, 실시간 에이전트에는 이런 모델 선택이 중요하다.2 반면 오디오북, 광고, 감정 연기가 중요한 콘텐츠라면 Eleven v3나 Multilingual v2가 더 어울린다. 에이전트에서는 '최고 품질'보다 '대화 리듬'이 더 중요할 때가 많다.

끼어들기와 턴테이킹: 사람 같은 대화의 핵심

사람의 대화는 생각보다 지저분하다. 우리는 문장을 끝까지 말하지 않는다. 중간에 "아니, 그게 아니라" 하고 고치기도 하고, 상대가 말하는 도중에 "잠깐만요"라고 끼어들기도 한다. 텍스트 챗봇은 이런 문제가 적다. 사용자가 메시지를 보내면 그때 답하면 된다. 하지만 음성에서는 사용자가 말하는 중인지, 잠깐 숨을 쉬는지, 진짜로 끝냈는지 구분해야 한다.

음성 에이전트의 품질을 좌우하는 세 가지 감각이 있다. 첫째, 끝점 감지다. 사용자가 말을 끝냈다고 판단하는 순간을 잡는 기능이다. 둘째, 끼어들기 처리다. AI가 말하는 중 사용자가 다시 말하면 AI가 말을 멈추고 들어야 한다. 셋째, 응답 길이 조절이다. 전화 상담에서 40초짜리 답변은 너무 길다. 사용자는 "그래서 제가 뭘 하면 되죠?"를 듣고 싶어 한다.

한국어 에이전트에서는 이 감각이 더 중요하다. 한국어 사용자는 "음…", "그…", "아니 그러니까요" 같은 완충 표현을 많이 쓴다. 이를 전부 발화 종료로 판단하면 대화가 계속 끊긴다. 반대로 너무 오래 기다리면 반응이 느리다. 그래서 초기 설정에서는 에이전트의 응답을 짧게 만들고, 사용자가 다시 끼어들 수 있다는 전제로 설계하는 편이 안전하다.

실무에서는 첫 답변을 1~2문장으로 제한하는 것이 좋다. 예를 들어 배송 문의 봇이라면 "주문번호를 알려주시면 바로 확인해드릴게요" 정도면 충분하다. "안녕하세요, 고객님의 소중한 문의에 감사드리며…"로 시작하는 순간 사용자는 이미 전화를 끊고 싶어진다.

Bring Your Own LLM: Claude와 GPT를 연결하는 방식

ElevenAgents를 쓸 때 모든 지능을 일레븐랩스 내부 모델에 맡길 필요는 없다. 많은 팀은 이미 Claude, GPT 계열 모델, Gemini, 사내 LLM을 사용하고 있다. 이때 필요한 개념이 Bring Your Own LLM, 줄여서 BYO LLM이다. 말 그대로 '내가 쓰고 싶은 언어 모델을 가져와 연결한다'는 뜻이다.

구조는 간단하다. ElevenAgents는 음성 입력, 음성 출력, 대화 연결, 턴테이킹을 담당한다. LLM은 사용자의 의도를 해석하고 답변을 생성한다. 개발팀은 중간에 프록시 서버를 둔다. ElevenAgents가 사용자 발화를 프록시 서버로 보내면, 프록시 서버는 Claude나 GPT API에 요청하고, 돌아온 답변을 다시 ElevenAgents에 넘긴다.

사용자 말하기
→ ElevenAgents가 음성 인식
→ Custom LLM 엔드포인트로 텍스트 전달
→ Claude 또는 GPT가 답변 생성
→ ElevenAgents가 답변을 음성으로 출력

이 방식의 장점은 통제력이다. 이미 운영 중인 프롬프트, 보안 정책, RAG 검색, 사내 DB 접근 규칙을 그대로 가져올 수 있다. 특히 기업 환경에서는 "고객 개인정보를 어떤 서버로 보내는가", "응답 로그를 얼마나 보관하는가", "민감한 질문에 어떻게 거절하는가"가 중요하다. BYO LLM은 이런 정책을 직접 설계할 수 있게 해준다.

다만 연결이 늘어나면 지연 시간도 늘어난다. STT, LLM, 검색, 도구 호출, TTS가 모두 순차적으로 실행되면 사용자는 기다린다. 따라서 실시간 음성 에이전트에서는 모델을 무조건 가장 큰 것으로 고르는 습관을 버려야 한다. 고객 지원 1차 응답처럼 짧고 반복적인 업무는 빠른 모델이 유리하다. 복잡한 계약 검토나 전문 상담처럼 정확도가 중요한 업무는 더 강한 모델을 쓰되, "확인해보겠습니다" 같은 짧은 중간 응답을 먼저 내보내 체감 지연을 줄일 수 있다.

한국어 음성 에이전트의 페르소나 설계

한국어 에이전트는 목소리만 한국어면 끝나지 않는다. 말투, 높임말, 답변 길이, 거절 방식이 모두 중요하다. 한국 사용자는 기계적인 친절함에 민감하다. "고객님께 불편을 드려 대단히 죄송합니다"를 매번 반복하면 상담원보다 더 상담원 같아서 오히려 피로하다. 자연스러운 한국어 에이전트는 짧고, 분명하고, 과장하지 않는다.

페르소나 설계는 다음 네 가지를 먼저 정한다.

  • 역할: 이 에이전트가 고객지원 담당자인지, 강의 조교인지, 브랜드 쇼호스트인지 명확히 정한다.

  • 말투: 존댓말을 기본으로 하되 "~해드릴게요", "확인해볼게요"처럼 구어체를 섞을지 결정한다.

  • 범위: 답할 수 있는 질문과 답하지 말아야 할 질문을 구분한다.

  • 행동: 정보를 모을지, 예약할지, 결제를 안내할지, 상담원에게 넘길지 정한다.

예를 들어 온라인 강의 플랫폼의 한국어 튜터 에이전트라면 시스템 프롬프트를 이렇게 설계할 수 있다.

당신은 온라인 강의 수강생을 돕는 한국어 AI 튜터입니다.
말투는 친절하지만 과장하지 않습니다.
답변은 기본적으로 3문장 이하로 합니다.
수강생이 개념을 물으면 먼저 쉬운 비유로 설명하고, 필요하면 예시를 듭니다.
교재와 강의 범위 밖의 내용은 추측하지 말고 '강의 자료에는 없는 내용'이라고 말합니다.
개인정보, 결제 정보, 건강·법률·투자 조언은 제공하지 않습니다.
사용자가 이해했는지 마지막에 짧게 확인합니다.

고객센터 에이전트라면 더 짧아야 한다.

당신은 쇼핑몰 1차 고객지원 음성 상담원입니다.
고객의 말을 끊지 않고, 답변은 한 번에 2문장 이하로 합니다.
주문번호, 전화번호, 이메일 등 필요한 정보는 한 번에 하나씩만 요청합니다.
정책에 없는 보상은 약속하지 않습니다.
불만이 강한 고객에게는 먼저 상황을 인정하고, 바로 확인 절차로 넘어갑니다.

한국어 음성 에이전트의 실패는 대부분 기술이 아니라 말투에서 온다. 사용자는 AI가 사람인지 아닌지보다 "내 말을 알아듣고 있는지"에 더 민감하다. 답을 길게 늘어놓지 말고, 하나씩 확인하고, 필요한 순간에는 사람에게 넘기는 설계를 해야 한다.

ElevenAPI의 기본: API 키, Voice ID, Model ID

이제 개발자 관점으로 내려가 보자. 일레븐랩스 API를 쓰기 위해 가장 먼저 필요한 것은 API 키다. API 키는 요청을 보낸 사람이 누구인지 확인하고 사용량을 계산하는 비밀 열쇠다. 요청 헤더에는 일반적으로 xi-api-key를 넣는다. 이 키를 프론트엔드 코드에 직접 넣으면 안 된다. 브라우저 자바스크립트나 모바일 앱 안에 키가 들어가면 사용자가 추출할 수 있다. 운영 환경에서는 서버의 환경 변수나 시크릿 매니저에 보관해야 한다.

그다음 필요한 것이 Voice ID다. 일레븐랩스의 모든 음성에는 고유한 ID가 있다. 웹 인터페이스의 Voice Library에서 선택한 음성의 ID를 복사하거나, API로 사용 가능한 음성 목록을 조회할 수 있다. 마지막으로 Model ID를 정한다. 예를 들어 eleven_v3, eleven_multilingual_v2, eleven_flash_v2_5, eleven_turbo_v2_5처럼 모델 ID를 지정한다. 공식 Python SDK 문서는 Eleven v3, Multilingual v2, Flash v2.5, Turbo v2.5의 용도를 구분해 설명한다.3

가장 단순한 REST 요청은 다음과 같은 구조다.

curl -X POST https://api.elevenlabs.io/v1/text-to-speech/VOICE_ID \
  -H 'xi-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    'text': '안녕하세요. 일레븐랩스 API로 생성한 첫 음성입니다.',
    'model_id': 'eleven_multilingual_v2',
    'voice_settings': {
      'stability': 0.6,
      'similarity_boost': 0.8
    }
  }' \
  --output output.mp3

실제 셸에서는 JSON 내부 따옴표 규칙을 환경에 맞게 조정해야 한다. 여기서 중요한 것은 세 가지다. 엔드포인트에는 Voice ID가 들어가고, 본문에는 텍스트와 모델 ID가 들어가며, 헤더에는 API 키가 들어간다.

Python SDK로 TTS 만들기

Python은 자동화와 프로토타입에 가장 편하다. 쇼츠 대본을 대량으로 음성화하거나, 강의 자료를 챕터별 MP3로 변환하거나, RAG 챗봇의 음성 응답을 실험할 때 좋다. 공식 Python SDK는 pip install elevenlabs로 설치할 수 있으며, 클라이언트를 만든 뒤 text_to_speech.convert를 호출하는 방식으로 사용할 수 있다.3

from elevenlabs.client import ElevenLabs

client = ElevenLabs(api_key='YOUR_API_KEY')

response = client.text_to_speech.convert(
    voice_id='YOUR_VOICE_ID',
    model_id='eleven_multilingual_v2',
    text='안녕하세요. 문서를 읽고 답하는 한국어 음성 챗봇입니다.',
    output_format='mp3_44100_128',
)

with open('answer.mp3', 'wb') as f:
    for chunk in response:
        if chunk:
            f.write(chunk)

실무에서는 API 키를 코드에 직접 쓰지 않는다.

import os
from elevenlabs.client import ElevenLabs

client = ElevenLabs(api_key=os.environ['ELEVENLABS_API_KEY'])

그리고 파일명을 사용자 입력값 그대로 쓰지 않는다. "제목을 입력하세요.mp3" 정도는 괜찮아 보이지만, 실제 서비스에서는 특수문자, 중복 파일명, 경로 조작 문제가 생길 수 있다. 해시값이나 UUID로 저장하고, DB에 원래 제목을 따로 보관하는 편이 안전하다.

TypeScript SDK와 웹 서비스 통합

웹 서비스나 SaaS 제품에 붙일 때는 TypeScript가 자연스럽다. 일레븐랩스는 JavaScript/TypeScript SDK도 제공한다. 공식 API 페이지의 예시는 @elevenlabs/elevenlabs-js 패키지로 클라이언트를 만들고 textToSpeech.convert를 호출하는 구조를 보여준다.4

import { ElevenLabsClient } from '@elevenlabs/elevenlabs-js';
import fs from 'node:fs';

const elevenlabs = new ElevenLabsClient({
  apiKey: process.env.ELEVENLABS_API_KEY,
});

const audio = await elevenlabs.textToSpeech.convert('YOUR_VOICE_ID', {
  text: '안녕하세요. TypeScript에서 생성한 음성입니다.',
  modelId: 'eleven_flash_v2_5',
});

const chunks: Buffer[] = [];
for await (const chunk of audio) {
  chunks.push(Buffer.from(chunk));
}
fs.writeFileSync('output.mp3', Buffer.concat(chunks));

웹 앱에서 가장 흔한 실수는 브라우저에서 직접 일레븐랩스 API를 호출하는 것이다. 테스트 중에는 편해 보이지만, 공개 서비스에서는 API 키가 노출된다. 구조는 반드시 이렇게 잡아야 한다.

브라우저
→ 내 백엔드 서버
→ ElevenLabs API
→ 내 백엔드 서버
→ 브라우저

프론트엔드는 '이 텍스트를 읽어줘'라고 백엔드에 요청한다. 백엔드는 인증, 권한, 사용량 제한, 금칙어 검사, 캐싱을 처리한 뒤 일레븐랩스에 요청한다. 생성된 음성 파일은 스토리지에 저장하거나 스트리밍으로 전달한다. 이렇게 해야 비용 폭탄과 키 유출을 막을 수 있다.

WebSocket 스트리밍과 저지연 TTS

일반 REST TTS는 전체 텍스트를 보내고, 결과 음성이 완성되면 받는다. 내레이션 파일을 만들 때는 이 방식이 충분하다. 하지만 음성 에이전트에서는 사용자가 답을 기다리고 있다. 이때는 스트리밍이 필요하다. 스트리밍은 음성이 완성되는 대로 작은 조각을 받아 재생하는 방식이다.

WebSocket은 양방향 통신을 유지하는 연결이다. 일반 HTTP 요청처럼 한 번 보내고 끝나는 것이 아니라, 연결을 열어둔 채 텍스트 조각을 보내고 오디오 조각을 받는다. LLM이 답변을 한 문장씩 생성하면 그 문장을 바로 TTS로 보내고, TTS가 오디오 조각을 반환하면 즉시 재생한다. 사용자는 전체 답변이 완성될 때까지 기다리지 않아도 된다.

LLM: '주문 상태를 확인했습니다.' 생성
→ TTS 스트리밍 시작
→ 사용자는 첫 문장을 바로 들음
→ LLM: '현재 택배사 인계 단계입니다.' 생성
→ 다음 오디오 조각 재생

실시간 에이전트에서는 청크 크기가 중요하다. 너무 작은 단위로 보내면 발음과 억양이 불안정해질 수 있다. 너무 큰 단위로 보내면 지연이 길어진다. 보통은 문장 단위, 또는 의미가 끊기는 짧은 구 단위가 적당하다. "네, 확인해보겠습니다." 같은 짧은 응답은 바로 보내고, 긴 설명은 두세 문장으로 나누면 좋다.

라이브 음성 에이전트 프레임워크와 결합할 수도 있다. 예를 들어 LiveKit 문서는 ElevenLabs TTS를 에이전트 세션에 연결하는 방식을 제공하며, 모델, voice_id, stability, similarity_boost, speed, SSML 파싱, 청크 길이 스케줄 같은 파라미터를 설정할 수 있다고 설명한다.5 개발팀은 일레븐랩스만 단독으로 쓸 수도 있고, LiveKit 같은 실시간 미디어 인프라와 조합해 웹RTC 기반 음성 서비스를 만들 수도 있다.

도구 호출: 음성 에이전트가 실제 일을 하게 만들기

음성 에이전트의 가치가 폭발하는 순간은 도구 호출이다. "영업시간은 오전 10시부터 오후 7시입니다"라고 말하는 것은 FAQ다. "내일 오후 3시에 상담 예약해드렸습니다"라고 말하려면 캘린더 API를 호출해야 한다. 이 차이가 챗봇과 업무 자동화의 차이다.

도구 호출을 설계할 때는 먼저 에이전트가 할 수 있는 행동을 함수처럼 정의한다.

{
  'name': 'book_consulting_call',
  'description': '상담 예약을 생성한다',
  'parameters': {
    'name': '고객 이름',
    'phone': '연락처',
    'date': '예약 날짜',
    'time': '예약 시간'
  }
}

대화 중 사용자가 "다음 주 화요일 오후에 상담 가능할까요?"라고 말하면 LLM은 먼저 가능한 시간을 조회하는 도구를 호출한다. 사용자가 "3시 좋아요"라고 하면 예약 생성 도구를 호출한다. 도구 호출 결과가 성공이면 에이전트가 "다음 주 화요일 오후 3시로 예약해드렸습니다"라고 답한다. 실패하면 "죄송하지만 그 시간은 방금 마감됐어요. 오후 4시는 가능해요"라고 대안을 제시한다.

여기서 중요한 운영 원칙이 있다. 에이전트가 실행하는 도구는 되돌릴 수 있는 것부터 시작해야 한다. FAQ 검색, 재고 조회, 예약 가능 시간 확인처럼 읽기 중심 도구가 안전하다. 결제, 환불, 계정 삭제, 의료 판단처럼 위험한 행동은 추가 확인 절차가 필요하다. 음성에서는 사용자의 의도가 잘못 인식될 수 있으므로, 중요한 작업 전에는 반드시 요약 확인을 넣어야 한다.

에이전트: 확인할게요. 5월 12일 오후 3시에 30분 상담을 예약하는 것이 맞나요?
사용자: 네.
에이전트: 좋습니다. 예약을 완료했습니다.

이 한 번의 확인이 사고를 줄인다.

Scribe v2, TTS, RAG를 연결한 한국어 음성 챗봇 설계

이제 이 장의 실전 예제를 설계해보자. 목표는 '문서를 읽고 답하는 한국어 음성 챗봇'이다. 예를 들어 온라인 강사의 강의안, 회사의 제품 매뉴얼, 학원의 상담 FAQ, 병원의 비급여 안내문을 업로드해두고, 사용자가 음성으로 질문하면 AI가 문서를 근거로 답하는 서비스다.

핵심 구성요소는 네 가지다.

  • Scribe v2 또는 실시간 STT: 사용자의 음성을 텍스트로 변환한다.

  • RAG 검색: 질문과 관련 있는 문서 조각을 찾는다.

  • LLM: 검색된 근거를 바탕으로 답변을 만든다.

  • ElevenLabs TTS: 답변을 한국어 음성으로 출력한다.

RAG는 Retrieval-Augmented Generation의 약자다. 한국어로 풀면 '검색으로 보강한 생성'이다. LLM이 기억에만 의존해 답하지 않고, 먼저 문서에서 관련 내용을 찾아 그 근거를 바탕으로 답하게 만드는 방식이다. 회사 내부 규정, 강의 교재, 제품 매뉴얼처럼 정답이 문서 안에 있는 서비스에 특히 유용하다.

전체 흐름은 다음과 같다.

1. 관리자 문서 업로드
2. 문서를 작은 조각으로 나누기
3. 각 조각을 임베딩으로 변환해 벡터 DB에 저장
4. 사용자가 음성으로 질문
5. STT가 질문을 텍스트로 변환
6. 질문과 가까운 문서 조각 검색
7. LLM이 검색 결과를 근거로 짧은 답변 생성
8. TTS가 답변을 음성으로 출력
9. 대화 로그와 검색 근거 저장

예를 들어 사용자가 "환불은 언제까지 돼요?"라고 묻는다. STT가 이를 텍스트로 바꾼다. RAG 검색은 '환불 정책' 문서에서 "수강 시작 후 7일 이내, 진도율 20% 미만일 때 전액 환불 가능"이라는 조각을 찾는다. LLM은 이 근거를 바탕으로 "수강 시작 후 7일 이내이고 진도율이 20% 미만이면 전액 환불이 가능합니다. 지금 확인하려면 결제 이메일을 알려주세요"라고 답한다. TTS는 이를 자연스러운 한국어 음성으로 읽는다.

이 예제에서 절대 하면 안 되는 것은 검색 결과 없이 자신 있게 답하는 것이다. RAG 챗봇의 시스템 프롬프트에는 반드시 다음 규칙을 넣는다.

제공된 문서 근거에 있는 내용만 답하세요.
문서에 없는 내용은 추측하지 말고 '현재 자료에서는 확인되지 않습니다'라고 말하세요.
금액, 날짜, 환불, 법적 책임과 관련된 내용은 반드시 근거 문장을 확인한 뒤 답하세요.
답변은 음성으로 들었을 때 이해하기 쉽게 2~4문장으로 제한하세요.

음성 챗봇의 답변은 글보다 짧아야 한다. 화면에서는 표와 긴 문단을 볼 수 있지만, 귀로는 한 번에 처리하기 어렵다. 긴 답변이 필요하면 "자세한 내용을 문자로 보내드릴까요?"처럼 채널을 전환하는 편이 좋다.

운영 품질: 로그, 평가, 실패 처리

프로토타입은 음성이 나오면 성공처럼 보인다. 하지만 운영 서비스는 다르다. 실제 사용자는 잡음이 있는 환경에서 말한다. 중간에 말을 바꾼다. 화를 낸다. 농담을 한다. 정책 밖의 요구를 한다. 그래서 음성 에이전트에는 평가와 실패 처리가 필요하다.

먼저 대화 로그를 남겨야 한다. 단, 개인정보 보호 원칙에 맞게 보관 기간과 접근 권한을 제한해야 한다. 음성 원본, 전사 텍스트, LLM 응답, 도구 호출 결과, 최종 음성 출력, 사용자 피드백을 분리해 저장하면 문제를 분석하기 쉽다. 예를 들어 사용자가 "AI가 엉뚱한 예약을 했다"고 신고했을 때, STT가 잘못 들었는지, LLM이 잘못 판단했는지, 캘린더 API가 실패했는지 확인할 수 있다.

둘째, 실패 시나리오를 미리 써야 한다. API가 응답하지 않을 때, 음성 인식 신뢰도가 낮을 때, 사용자가 욕설을 할 때, 개인정보를 과도하게 말할 때, 결제나 환불 같은 민감한 행동을 요구할 때의 답변이 필요하다.

셋째, 사람에게 넘기는 기준을 정해야 한다. 좋은 AI 에이전트는 끝까지 버티는 봇이 아니다. 모르는 것은 모른다고 말하고, 위험한 것은 사람에게 넘긴다. 예를 들어 의료, 법률, 세무, 투자 영역에서는 정보 제공과 전문 판단의 경계를 분명히 해야 한다.

운영 지표도 텍스트 챗봇과 조금 다르다. 음성에서는 응답 정확도뿐 아니라 첫 응답 시간, 평균 침묵 시간, 끼어들기 성공률, 사용자가 반복해서 말한 횟수, 상담원 전환률, 통화 종료 감정 같은 지표가 중요하다. 사용자가 같은 말을 세 번 반복했다면, 그것은 AI가 못 알아들었다는 신호다.

보안과 개인정보: 목소리는 비밀번호보다 민감할 수 있다

음성 데이터는 단순한 오디오 파일이 아니다. 목소리에는 개인의 정체성이 담긴다. 말투, 억양, 건강 상태, 감정, 주변 환경까지 드러날 수 있다. 따라서 음성 서비스를 만들 때는 개인정보 보호를 제품 설계의 맨 앞에 두어야 한다.

API 키는 서버에만 둔다. 사용자 음성 원본은 꼭 필요한 경우에만 저장한다. 저장한다면 목적, 기간, 삭제 방법을 명확히 고지한다. 고객 상담 녹취를 AI 학습에 쓰려면 별도 동의가 필요할 수 있다. 특히 한국에서 서비스를 운영한다면 개인정보보호법, 정보통신망 관련 규제, 통신비밀 보호 이슈, 산업별 규제를 함께 검토해야 한다.

보이스 클로닝은 더 민감하다. 6장에서 다룬 것처럼, 타인의 목소리를 동의 없이 복제해서는 안 된다. 내부 테스트라고 해도 유명인, 정치인, 동료, 고객의 목소리를 무단으로 클로닝하면 법적·윤리적 문제가 생긴다. 음성권은 아직 법률 체계에서 명확히 정리되는 중이지만, 인격권, 퍼블리시티권, 개인정보, 부정경쟁, 저작권 이슈와 얽힐 수 있다. '기술적으로 가능하다'는 말은 '사용해도 된다'는 뜻이 아니다.

AI 생성 음성이라는 사실을 공개하는 것도 중요하다. 고객센터나 교육 서비스에서 사용자가 AI와 대화한다는 사실을 모르게 만들면 신뢰가 무너질 수 있다. "안녕하세요, AI 상담 도우미입니다. 간단한 문의를 먼저 도와드릴게요"처럼 시작부터 알리는 편이 장기적으로 안전하다.

딥페이크 위험과 AI Speech Classifier

AI 음성 기술의 어두운 면은 딥페이크다. 누군가의 목소리를 흉내 내 가족에게 송금을 요구하거나, 기업 임원의 음성처럼 꾸며 내부 직원을 속이거나, 정치적 발언을 조작할 수 있다. 음성이 자연스러워질수록 탐지와 검증의 중요성도 커진다.

일레븐랩스는 AI Speech Classifier라는 탐지 도구를 제공한다. 공식 문서에 따르면 이 도구는 업로드한 오디오가 ElevenLabs로 생성되었는지 탐지하기 위한 기능이며, 변형되지 않은 ElevenLabs 생성 오디오에 대해 높은 정밀도와 일정 수준의 재현율을 제공한다고 설명한다.6 다만 이것을 만능 탐지기로 이해하면 안 된다. 오디오가 편집되거나, 배경음이 섞이거나, 다른 생성 도구를 사용했거나, 압축이 강하게 걸리면 탐지는 어려워질 수 있다.

그래서 실무에서는 탐지 도구 하나에 의존하지 않는다. 중요한 음성 지시가 들어오면 별도 채널로 재확인한다. 예를 들어 대표가 음성 메시지로 "지금 바로 3천만 원 송금해"라고 했다면, 슬랙이나 전화번호부에 등록된 번호로 다시 확인해야 한다. 기업 내부에는 '음성만으로 결제·송금·계정 변경을 승인하지 않는다'는 정책이 필요하다.

콘텐츠 제작자도 조심해야 한다. 유명인의 목소리를 흉내 낸 풍자 콘텐츠, 정치인처럼 들리는 내레이션, 실제 인물의 사망 소식을 조작한 음성은 플랫폼 정책 위반과 법적 분쟁으로 이어질 수 있다. 특히 숏폼에서는 짧고 자극적인 음성이 빠르게 퍼지므로, 출처와 AI 생성 여부를 명확히 표시해야 한다.

Iconic Voice Marketplace와 동의 기반 음성 라이선스

AI 음성 시장이 성숙할수록 중요한 방향은 '무단 복제'가 아니라 '동의 기반 라이선스'다. 일레븐랩스의 Iconic Voice Marketplace는 유명 인물과 권리자의 승인을 받아 상업 프로젝트에 사용할 수 있는 음성 라이선스를 요청하는 구조를 제시한다. 공식 페이지는 역사적·문화적 아이콘의 목소리를 프로젝트에 활용하기 위해 승인 요청과 권리자 연결, 상업적 사용 권한을 포함한 절차를 안내한다.7

이 흐름은 AI 음성 산업에서 매우 중요하다. 앞으로 브랜드는 아무 목소리나 흉내 내는 방식보다, 정식으로 허락받은 목소리를 쓰는 쪽으로 이동할 가능성이 높다. 배우, 성우, 방송인, 인플루언서는 자신의 목소리를 디지털 자산으로 라이선스할 수 있다. 기업은 법적 리스크를 줄이면서 강력한 음성 브랜딩을 얻는다. 창작자는 특정 시대나 인물의 분위기를 합법적으로 빌릴 수 있다.

물론 라이선스가 있다고 해서 모든 문제가 사라지는 것은 아니다. 목소리의 사용 맥락이 중요하다. 고인의 목소리를 어떤 메시지에 사용할 것인지, 정치적·상업적 오해가 생기지 않는지, 가족과 팬 커뮤니티가 받아들일 수 있는지까지 고려해야 한다. 기술 계약서보다 더 중요한 것은 존중이다.

경쟁 도구와 포지션: OpenAI Voice, Suno, Hume

일레븐랩스가 강력한 플랫폼인 것은 맞지만, AI 음성 시장은 빠르게 변하고 있다. 독자는 특정 도구 하나에만 의존하기보다 각 도구의 포지션을 이해해야 한다.

OpenAI Voice 계열은 대화형 AI 경험과 강하게 결합된다. GPT 기반 앱이나 실시간 대화형 인터페이스를 만들 때 자연스럽다. 장점은 LLM과 음성 경험이 한 생태계 안에서 매끄럽게 이어진다는 점이다. 단점은 목소리 커스터마이징, 콘텐츠 제작용 세밀한 연출, 독립적인 음성 라이선스 측면에서는 사용 목적에 따라 제약이 있을 수 있다는 점이다.

Suno는 음악 생성 쪽에서 강하다. 노래, 배경음악, 짧은 캠페인 송, 창작 실험에 적합하다. 일레븐랩스도 ElevenMusic으로 음악 영역을 넓히고 있지만, 독자가 음악 자체를 중심으로 작업한다면 Suno 같은 도구도 함께 비교해야 한다.

Hume은 감정 인식과 감성적 대화 경험에 초점을 둔다. 사용자의 음성 톤, 감정 신호, 대화 분위기를 읽는 인터페이스가 중요하다면 검토할 만하다. 상담, 웰니스, 코칭처럼 감정 맥락이 중요한 서비스에서는 음성 합성 품질만큼 감정 해석이 중요해질 수 있다.

Google, Amazon, Microsoft, 네이버 클로바 같은 대형 클라우드 TTS도 여전히 강하다. 안정적인 인프라, 기업 계약, 특정 언어와 산업 환경, 기존 클라우드 연동에서는 대형 플랫폼이 유리할 수 있다. 반면 크리에이터 친화적인 음성 품질, 빠른 실험, 보이스 클로닝, 더빙, 에이전트까지 한 플랫폼에서 묶는 경험은 일레븐랩스의 강점이다.

도구 선택 기준은 간단하다. 콘텐츠 제작과 자연스러운 보이스오버가 핵심이면 ElevenLabs를 우선 검토한다. LLM 앱 안의 실시간 대화가 핵심이면 OpenAI Voice와 ElevenLabs를 함께 비교한다. 음악 창작이 핵심이면 Suno와 ElevenMusic을 비교한다. 감정 분석이 핵심이면 Hume 계열을 살핀다. 한국어 고객센터처럼 운영 안정성과 규제가 중요하면 국내 솔루션과 클라우드 TTS도 함께 검토한다.

시장 전망: AI 음성은 어디로 가는가

2026년의 AI 음성 시장은 단순한 유행을 넘어 인프라 경쟁으로 이동하고 있다. TechCrunch는 ElevenLabs CEO의 발언을 인용해 음성이 AI의 다음 주요 인터페이스가 되고 있으며, 스마트폰 화면을 덜 보고 말로 기술을 제어하는 방향이 커지고 있다고 보도했다.8 또한 2026년에는 ElevenLabs의 ARR이 5억 달러를 넘어섰고, 기업용 음성 에이전트 수요가 성장을 이끌고 있다는 보도도 나왔다.9

이 변화는 크리에이터에게도 중요하다. 지금까지 크리에이터의 경쟁력은 영상 편집, 대본, 썸네일, 업로드 속도였다. 앞으로는 음성 IP와 자동화 워크플로우가 경쟁력이 된다. 내 채널만의 목소리, 여러 언어로 확장되는 더빙 파이프라인, 댓글과 커뮤니티를 응대하는 음성 에이전트, 강의 수강생을 돕는 AI 튜터가 모두 콘텐츠 비즈니스의 일부가 될 수 있다.

1인 사업자에게는 더 직접적이다. 예전에는 고객 응대, 상품 설명, 교육 자료, 광고 녹음, 상담 예약을 모두 사람이 처리해야 했다. 이제는 작은 팀도 음성 자동화 레이어를 만들 수 있다. 중요한 것은 "AI로 사람을 완전히 대체하겠다"가 아니다. 반복 업무를 AI가 맡고, 사람은 신뢰와 판단이 필요한 일에 집중하는 구조를 만드는 것이다.

개발자와 기획자에게는 새로운 제품 표면이 열린다. 앱에 버튼을 하나 더 추가하는 시대에서, 사용자가 말로 원하는 일을 처리하는 시대로 이동한다. 이때 음성은 단순 입력 수단이 아니라 제품의 성격이 된다. 차분한 금융 상담 목소리, 활기찬 쇼핑 도우미, 엄격한 시험 튜터, 따뜻한 병원 안내 음성은 모두 브랜드 경험이다.

독자가 잡아야 할 포지션

이 책의 마지막 질문은 "이제 무엇을 해야 하는가?"다. 답은 독자의 위치에 따라 다르다.

유튜버와 숏폼 크리에이터라면 음성을 단순 외주 대체 수단으로만 보지 말자. 내 채널의 고정 내레이터를 만들고, 영상 포맷별 목소리 규칙을 정하고, 한국어 원본을 다국어로 확장하는 파이프라인을 만들어야 한다. 얼굴 없는 채널의 핵심 자산은 영상 소스보다 목소리의 일관성일 수 있다.

1인 사업자와 강사라면 고객 접점부터 자동화하자. 자주 묻는 질문에 답하는 음성 FAQ, 강의 자료를 읽고 답하는 튜터, 예약 전 상담을 받는 리드 검증 봇이 좋은 시작점이다. 처음부터 복잡한 에이전트를 만들 필요는 없다. 가장 많이 반복되는 질문 20개를 음성으로 처리하는 것만으로도 시간이 절약된다.

개발자와 기획자라면 음성 에이전트를 하나의 풀스택 제품으로 보아야 한다. STT, LLM, RAG, TTS, WebSocket, 도구 호출, 인증, 로그, 개인정보 보호, 비용 최적화가 모두 연결된다. 음성이 자연스럽다고 제품이 성공하는 것이 아니다. 문제를 정확히 해결하고, 실패할 때 안전하게 멈추며, 사용자가 신뢰할 수 있어야 한다.

마지막으로 모두에게 필요한 태도는 투명성이다. AI 음성을 쓴다면 AI라고 말하자. 타인의 목소리를 쓰려면 허락을 받자. 사용자의 음성을 저장한다면 왜 저장하는지 설명하자. 이 원칙을 지키는 팀만이 AI 음성 시대에 오래간다.

마무리: 말하는 AI를 넘어 일하는 AI로

일레븐랩스는 TTS 도구로 시작했지만, 이제는 음성 콘텐츠 제작, 더빙, 음악, 전사, 에이전트, API 인프라를 아우르는 플랫폼으로 확장하고 있다. 이 변화의 의미는 분명하다. AI 음성은 더 이상 완성된 파일 하나를 내려받는 기능이 아니다. 사용자의 말과 비즈니스 시스템 사이를 연결하는 인터페이스다.

좋은 음성은 사람을 끌어당긴다. 좋은 에이전트는 일을 끝낸다. 앞으로의 승자는 둘을 함께 설계하는 사람이다. 자연스럽게 말하되, 과장하지 않고, 빠르게 반응하되, 위험할 때 멈추고, 자동화하되, 인간의 동의와 권리를 존중하는 시스템. 그것이 이 책이 마지막으로 제안하는 AI 음성 비즈니스의 기준이다.

이제 독자는 단순히 "음성을 생성하는 법"을 아는 사람이 아니다. 콘텐츠를 만들고, 워크플로우를 자동화하고, 음성 인터페이스를 설계하고, 시장의 다음 변화를 읽을 수 있는 출발선에 서 있다. 일레븐랩스는 도구다. 진짜 제품은 독자가 만든다.

참고

1ElevenLabs ElevenAgents Overview

2ElevenLabs Text to Speech API

3ElevenLabs Python SDK

4ElevenLabs API

5LiveKit ElevenLabs TTS Integration

6ElevenLabs AI Speech Classifier Documentation

7ElevenLabs Iconic Voice Marketplace

8TechCrunch: ElevenLabs CEO says voice is the next interface for AI

9The Economic Times: ElevenLabs tops $500 million ARR

책 목록

일레븐랩스 실전 가이드: AI 보이스로 콘텐츠를 만들고 비즈니스를 키우는 법

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기