ナビゲーションにスキップ

レイテンシーの最適化

このガイドでは、アプリケーションにおけるテキスト読み上げのレイテンシーを短縮する方法を紹介します。

このガイドでは、テキスト読み上げのレイテンシーを改善するための基本原則を解説します。レイテンシーとは何か、また何がレイテンシーに影響するのかについては、レイテンシーを理解するをご覧ください。

個別の手法は数多くありますが、ここでは 4つの原則 に分けて説明します。

4つの原則

  1. Flashモデルを使用する
  2. ストリーミングを活用する
  3. 地理的な近接性を考慮する
  4. 適切な音声を選ぶ

エンタープライズのお客様は、同時実行数の上限拡大とレンダリングキューへの優先アクセスをご利用いただけます。エンタープライズ プランの詳細については、営業チームにお問い合わせください。

リアルタイムモデルを使用する

Eleven v4 TurboとFlash v2.5は、中央値約100msのレイテンシーでリアルタイム利用向けに設計されています。Flashモデルでは、Multilingual v2と比べて音声品質がわずかに低下します。

これらの数値にはネットワーク時間とアプリケーションの処理時間は含まれません。実際のエンドツーエンドのレイテンシーは、 場所や使用するエンドポイントの種類などの要因によって異なります。レイテンシーの 測定方法をご覧ください。

ストリーミングを活用する

APIリファレンスでは、次の3種類のテキスト読み上げエンドポイントを利用できます。

  • 通常のエンドポイント:完全なオーディオファイルを1つのレスポンスで返します。
  • ストリーミングエンドポイント:Server-sent eventsを使用して、オーディオチャンクを段階的に返します。
  • WebSocketエンドポイント:リアルタイムのオーディオ生成に対応した双方向ストリーミングを有効にします。

ストリーミング

ストリーミングエンドポイントは、リアルタイムで生成中のオーディオを段階的に返すため、最初のバイトを受信するまでの時間を短縮できます。入力テキストを事前に用意できるケースにおすすめです。

ストリーミングは、テキスト読み上げ API、 ボイスチェンジャー API、オーディオ 分離 APIでサポートされています。

WebSocket

テキスト読み上げWebSocketエンドポイントは双方向ストリーミングに対応しており、リアルタイムのテキスト入力(例:LLMの出力)を扱うアプリケーションに最適です。

auto_modeをtrueに設定すると、生成のトリガーを自動的に処理できるため、 チャンク戦略を手動で管理する必要がなくなります。

auto_modeが無効の場合、モデルはチャンクスケジュールに合う十分なテキストが届くまで、オーディオの生成を開始しません。

たとえば、チャンクスケジュールを125文字に設定していても、50文字しか届かなければ、モデルは追加の文字が届くまで待機します。その結果、レイテンシーが増加する可能性があります。

実装の詳細については、テキスト読み上げWebSocketガイドをご覧ください。

適切な音声を選ぶ

音声の選択がレイテンシーに影響する場合があることを確認しています。高速な順に並べると、以下のとおりです。

  1. デフォルト音声(旧Premade)、Synthetic音声、インスタントボイスクローン(IVC)
  2. プロフェッショナルボイスクローン(PVC)

高音質の出力フォーマットでは、レイテンシーが増加する場合があります。レイテンシー要件と音声忠実度のニーズのバランスを取ってください。

Flash v2.5におけるPVCのレイテンシー最適化に継続して取り組んでいます。

地理的な近接性を考慮する

地理的な場所に応じてレイテンシーを最適化するため、複数のリージョンからモデルを提供しています。

たとえば、WebSocketでFlashモデルを使用する場合、場所に応じて以下の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を使用するようにしてください。