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

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

ElevenLabs는 합성 음성 스트리밍을 위한 두 가지 WebSocket 제품을 제공합니다. 두 제품은 서로 다른 문제를 해결하며, 다른 메시지 형식을 받고, 다른 모델을 대상으로 합니다.

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

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

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

일괄 처리 또는 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는 하나의 등록 음성만 허용
비활성 상태구성 가능한 inactivity_timeout(TTS WebSocket 쿼리)클라이언트 메시지 간 20초로 고정, 단 **keep_alive**를 전송하는 경우 제외
동시성활성 생성 시간만 플랜의 동시성 한도에 포함되며, 유휴 상태의 열린 소켓은 포함되지 않음열린 연결마다 전체 수명 동안 별도 풀의 대화 세션 하나를 유지하며, 연결을 통한 생성은 표준 동시성을 소모하지 않음
정렬선택적 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 레퍼런스에 있습니다.

관련 가이드