지연 시간 최적화

이 가이드에서는 애플리케이션에서 텍스트 음성 변환 지연 시간을 줄이는 방법을 안내합니다.

이 가이드에서는 텍스트 음성 변환 지연 시간을 개선하기 위한 핵심 원칙을 다룹니다. 지연 시간이 무엇이고 어떤 요소가 영향을 미치는지 개념적으로 알아보려면 지연 시간 이해하기를 참조하세요.

개별적인 기법은 다양하지만, 이를 4가지 원칙으로 분류하겠습니다.

4가지 원칙

  1. Flash 모델 사용
  2. 스트리밍 활용
  3. 지리적 근접성 고려
  4. 적절한 음성 선택

엔터프라이즈 고객은 늘어난 동시성 한도와 렌더링 큐에 대한 우선 액세스 혜택을 누릴 수 있습니다. 엔터프라이즈 요금제에 대해 자세히 알아보려면 영업팀에 문의하세요.

Flash 모델 사용

Flash 모델은 약 75ms의 추론 속도를 제공하므로 실시간 애플리케이션에 이상적입니다. 단, Multilingual v2와 비교하면 오디오 품질이 약간 낮아집니다.

75ms는 모델 추론 시간만을 의미합니다. 실제 엔드 투 엔드 지연 시간은 위치, 사용한 엔드포인트 유형 등의 요인에 따라 달라집니다.

스트리밍 활용

API 레퍼런스에서 사용할 수 있는 텍스트 음성 변환 엔드포인트는 3가지 유형입니다.

  • 일반 엔드포인트: 단일 응답으로 완전한 오디오 파일을 반환합니다.
  • 스트리밍 엔드포인트: 서버 전송 이벤트를 사용해 오디오 청크를 점진적으로 반환합니다.
  • WebSocket 엔드포인트: 실시간 오디오 생성을 위한 양방향 스트리밍을 지원합니다.

스트리밍

스트리밍 엔드포인트는 생성되는 오디오를 실시간으로 점진적으로 반환하여 첫 바이트까지의 시간을 줄입니다. 입력 텍스트가 미리 준비되어 있는 경우에 이 엔드포인트를 권장합니다.

텍스트 음성 변환 API, 보이스 체인저 API 및 오디오 아이솔레이션 API에서 스트리밍을 지원합니다.

WebSocket

텍스트 음성 변환 WebSocket 엔드포인트는 양방향 스트리밍을 지원하므로 실시간 텍스트 입력(예: LLM 출력)이 있는 애플리케이션에 적합합니다.

auto_mode를 true로 설정하면 생성 트리거를 자동으로 처리하므로 청크 전략을 수동으로 관리할 필요가 없습니다.

auto_mode가 비활성화된 경우, 모델은 오디오 생성을 시작하기 전에 청크 일정에 맞는 충분한 텍스트가 들어올 때까지 기다립니다.

예를 들어 청크 일정을 125자로 설정했지만 50자만 도착한 경우, 모델은 추가 문자가 들어올 때까지 대기하므로 지연 시간이 늘어날 수 있습니다.

구현 세부 정보는 텍스트 음성 변환 WebSocket 가이드를 참조하세요.

적절한 음성 선택

일부 경우 음성 선택이 지연 시간에 영향을 미칠 수 있음을 확인했습니다. 가장 빠른 순서부터 가장 느린 순서는 다음과 같습니다.

  1. 기본 음성(이전의 사전 제작 음성), 합성 음성 및 즉석 음성 복제(IVC)
  2. 프로페셔널 음성 복제(PVC)

더 높은 오디오 품질의 출력 형식은 지연 시간을 늘릴 수 있습니다. 지연 시간 요구 사항과 오디오 충실도 요구 사항의 균형을 맞추세요.

Flash v2.5의 PVC 지연 시간을 최적화하기 위해 적극적으로 노력하고 있습니다.

지리적 근접성 고려

지리적 위치에 따라 지연 시간을 최적화하기 위해 여러 리전에서 모델을 제공합니다.

예를 들어 Flash 모델을 WebSocket과 함께 사용하면 위치에 따라 다음과 같은 TTFB 지연 시간을 예상할 수 있습니다.

리전TTFB
북미100-150ms
유럽100-150ms
동남아시아100-150ms
남아시아150-200ms
동북아시아150-200ms

API 응답의 x-region 헤더를 검사하여 어떤 백엔드 리전이 요청을 처리하는지 확인할 수 있습니다. 현재 사용되는 리전에는 미국, 네덜란드, 싱가포르가 포함됩니다.

엔터프라이즈 고객은 서버 위치 보장 및 낮은 지연 시간을 위해 전용 EU 및 인도 데이터 레지던시 환경을 사용할 수 있습니다. 데이터 레지던시 인프라 사용을 시작하려면 영업 담당자에게 문의하세요.

글로벌 라우팅을 사용하지 않고 항상 미국 서버를 사용하려면 API 요청에 api.us.elevenlabs.io 기본 URL을 사용하세요.

import os
from elevenlabs.client import ElevenLabs
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
base_url="https://api.us.elevenlabs.io"
)

이전에는 api-global-preview.elevenlabs.io 기본 URL을 사용하여 글로벌 서버를 옵트인할 수 있었습니다. 이제 이것이 기본 동작이므로 더 이상 필요하지 않습니다. 애플리케이션을 업데이트하여 대신 api.elevenlabs.io만 사용하세요.