탐색으로 건너뛰기

텍스트 음성 변환과 텍스트 대화 WebSocket 비교

이 가이드에서는 스트리밍 음성에 적합한 WebSocket을 선택하는 방법과 두 프로토콜의 차이점을 설명합니다.

ElevenLabs는 합성 음성 스트리밍을 위한 두 가지 WebSocket 제품군을 제공합니다. 각 제품군에는 단일 스트림 버전과 하나의 연결에서 여러 독립 스트림을 멀티플렉싱하는 멀티 컨텍스트 버전이 있습니다. 두 제품군은 서로 다른 문제를 해결하며, 서로 다른 메시지 형식을 받고, 서로 다른 모델을 대상으로 합니다.

어떤 WebSocket을 사용해야 하나요?

연결당 하나의 음성으로 일반 텍스트를 스트리밍하고(음성은 URL에 고정됨), Flash 또는 Multilingual v2 같은 v3 이외의 모델, 선택적 SSML, 청크 스케줄 또는 에이전트형 인터럽션 처리를 위한 멀티 컨텍스트 버전을 사용하려면 텍스트 음성 변환(TTS) WebSocket을 사용하세요.

Eleven v3 대화 동작, 즉 표현력 있는 전달, 청크별 voice_id, 턴 경계(new_turn), 서버에서 v3에 사용하는 것과 동일한 대화 지향 버퍼링이 필요하다면 텍스트 대화(TTD) WebSocket을 사용하세요.

동일한 Eleven v3 대화 동작과 하나의 연결에서 여러 동시 또는 인터리브 스트림이 모두 필요하다면 TTD 멀티 컨텍스트 WebSocket을 사용하세요. 예를 들어, 매번 새 소켓을 열지 않고 대화를 중단하고 다시 시작해야 하는 대화형 에이전트에 적합합니다.

배치 또는 HTTP 스트리밍 대화(한 번의 호출에 전체 요청)를 사용하려면 WebSocket 대신 대화 생성 또는 대화 스트리밍을 사용하세요.

비교

텍스트 음성 변환 WebSocket텍스트 대화 WebSocket
API 레퍼런스TTS stream-inputTTD WebSocket
URLwss://api.elevenlabs.io/v1/text-to-speech/{voice_id}/stream-inputwss://api.elevenlabs.io/v1/text-to-dialogue/stream-input
음성 선택경로의 voice_id 하나이며, 스트리밍되는 모든 텍스트에 해당 음성을 사용합니다첫 번째 메시지에서 ID로 하나 이상의 voices를 등록하며, 각 inputs[] 항목은 voice_id를 지정합니다
모델Flash, Multilingual v2 및 기타 지원되는 TTS 모델입니다. 이 엔드포인트에서는 eleven_v3 또는 eleven_v4를 지원하지 않습니다.**model_id는 eleven_v3 또는 eleven_v4로 시작해야 합니다 **(예: eleven_v4 또는 eleven_v4_turbo)
첫 번째 클라이언트 메시지공백과 선택적 voice_settings / generation_config로 초기화합니다(실시간 TTS 가이드 참조)**voices**를 포함해야 합니다(이미 헤더 또는 쿼리로 전송하지 않았다면 자격 증명도 포함)
이후 텍스트text 문자열을 전송합니다(일반적으로 후행 공백 포함). 선택적으로 flush, try_trigger_generation 등을 사용할 수 있습니다.**inputs**를 전송합니다: { text, voice_id, new_turn? } 객체. 선택적으로 flush, close_socket, **keep_alive**를 사용할 수 있습니다
버퍼링 / 스케줄링청크 길이 스케줄 및 관련 TTS WebSocket 제어 기능충분한 텍스트가 쌓일 때까지 서버가 버퍼링한 후 오디오를 출력합니다(대략 40자 및 8단어). 단, **flush**를 사용하면 즉시 출력합니다
하나의 소켓에서 여러 화자다중 화자 대화 의미 체계가 아닌 여러 병렬 TTS 컨텍스트에는 멀티 컨텍스트 WebSocket을 사용하세요eleven_v4에는 최대 10개의 음성을 등록할 수 있으며, **eleven_v4_turbo는 등록된 음성을 하나만 허용합니다 **. 병렬 대화 스트림에는 TTD 멀티 컨텍스트 WebSocket을 사용하세요
비활성 상태구성 가능한 inactivity_timeout(TTS WebSocket 쿼리)**keep_alive**를 전송하지 않으면 클라이언트 메시지 사이의 시간이 고정 20초입니다
동시성활성 생성 시간만 플랜의 동시성 한도에 포함되며, 유휴 상태의 열린 소켓은 포함되지 않습니다열린 연결 하나는 전체 수명 동안 별도 풀의 대화 세션 하나를 점유하며, 연결을 통한 생성은 표준 동시성을 소비하지 않습니다
정렬선택적 sync_alignment(API 레퍼런스의 TTS 필드 명명)선택적 sync_alignment; JSON 응답은 snake_case 필드를 사용합니다(예: is_final, char_start_times_ms)

TTS WebSocket이 더 적합한 경우

  • 지연 시간이나 언어 지원 범위를 위해 이미 Flash 또는 Multilingual v2를 통합했습니다.
  • 연결당 하나의 내레이터 음성과 간단한 프레임당 텍스트 프로토콜이 필요합니다.
  • 끼어들기 및 병렬 발화에 멀티 컨텍스트 오케스트레이션이 필요합니다(멀티 컨텍스트 가이드).

TTS WebSocket 전체 안내는 실시간 오디오 생성을 참조하세요.

TTD WebSocket이 더 적합한 경우

  • Eleven v4 대화(표현 태그, 대화형 페이싱, 다중 화자 대사)를 대상으로 합니다.
  • 새 연결을 열지 않고 대사별로 화자의 음성을 변경할 수 있는 스크립트 기반 또는 LLM 생성 대화를 스트리밍합니다.
  • 서버에서 v4 전용 대화 생성을 위한 WebSocket 형태의 증분 입력이 필요합니다.

실습 안내는 실시간 텍스트 대화를 사용하세요. 프로토콜 세부 정보는 API 레퍼런스에서 확인할 수 있습니다.

멀티 컨텍스트 WebSocket

두 제품 모두 하나의 WebSocket 연결에서 여러 독립 스트림을 멀티플렉싱하는 멀티 컨텍스트 버전을 제공합니다. 각 컨텍스트는 클라이언트가 선택한 context_id로 식별되고, 자체 텍스트를 버퍼링하며, 해당 context_id로 태그된 오디오 청크를 출력합니다. TTS 컨텍스트는 연결 URL의 voice_id를 공유하는 반면, TTD 컨텍스트는 자체 음성 및 설정을 등록합니다. 연결을 종료하지 않고 진행 중인 발화를 취소하고 새 발화를 시작해야 하는 음성 에이전트처럼, 인터럽션 처리가 포함된 동시 또는 인터리브 생성이 필요할 때 이 형식을 사용하세요.

TTS 멀티 컨텍스트 WebSocketTTD 멀티 컨텍스트 WebSocket
API 레퍼런스TTS multi-stream-inputTTD multi-stream-input
URLwss://api.elevenlabs.io/v1/text-to-speech/{voice_id}/multi-stream-inputwss://api.elevenlabs.io/v1/text-to-dialogue/multi-stream-input
모델Flash, Multilingual v2 및 기타 지원되는 TTS 모델입니다. eleven_v3 또는 eleven_v4는 지원하지 않습니다.**model_id는 eleven_v3로 시작해야 합니다 **(예: eleven_v3 또는 eleven_v3_conversational). 이 엔드포인트에서는 eleven_v4를 지원하지 않습니다.
컨텍스트하나의 연결에서 여러 병렬 TTS 컨텍스트연결당 최대 5개의 동시 컨텍스트
컨텍스트당 음성모든 컨텍스트에 대해 URL에 고정된 voice_id 하나context_id의 첫 번째 메시지에서 등록: eleven_v3_conversational은 1개, eleven_v3는 최대 10개
메시지별 라우팅모든 메시지에 context_id가 포함됩니다모든 메시지에 context_id가 포함됩니다(close_socket만 포함하는 메시지는 예외)
제어 메시지컨텍스트별 flush, close_context, close_socket, keep_alive컨텍스트별 flush, close_context, close_socket, keep_alive
비활성 상태컨텍스트별로 구성 가능한 inactivity_timeout해당 컨텍스트에 keep_alive를 전송하지 않으면 컨텍스트별로 고정 20초
인증연결 수준(헤더, 쿼리 또는 첫 번째 메시지)연결 수준(헤더, 쿼리 또는 첫 번째 메시지) — 컨텍스트별이 아님

TTD 멀티 컨텍스트 WebSocket이 더 적합한 경우

  • Eleven v3 대화 동작(표현력 있는 전달, 청크별 voice_id, 턴 경계)과 하나의 연결에서 동시 또는 인터리브 스트림이 모두 필요합니다.
  • 매번 새 소켓을 열지 않고 대화를 중단하고 다시 시작해야 하는 대화형 에이전트를 구축하고 있습니다.
  • 하나의 인증된 연결에서 병렬 장면이나 화자처럼 여러 독립적인 v3 대화 세션으로 팬아웃하려고 합니다.

단일 스트림 TTD WebSocket은 실시간 텍스트 대화를 참조하세요. TTS 멀티 컨텍스트 WebSocket은 멀티 컨텍스트 WebSocket 가이드를 참조하세요. TTD 멀티 컨텍스트 엔드포인트의 프로토콜 세부 정보는 API 레퍼런스에서 확인할 수 있습니다.

관련 가이드