Twilio Voiceで低遅延AI通話を実現するConversationRelayの利用

May 16, 2025
執筆者

はじめに

Twilio Voiceには、通話を中継しながら制御できるConversationRelayという機能があります。この機能を活用すると、ユーザー間の通話の録音や監視、AIによるリアルタイム処理が可能になります。

本記事では、

  • ConversationRelayの概要

  • 利用する理由

  • そのメリット

  • 実際のコードを使った構築手順

について解説します。

 

ConversationRelayとは?

ConversationRelayは、Twilio Voiceを利用して、特定の音声通話をTwilioのサーバーを介して中継する機能です。これにより、通話の制御が柔軟になり、以下のような用途で活用できます。

  • 音声のリアルタイム処理(例:通話の文字起こし、翻訳)

  • 通話録音の管理(録音のオン・オフ切り替え)

  • 会話の監視・分析(AIを活用した分析、センチメント解析)

  • 低遅延の音声処理(1秒未満のレイテンシで自然な対話を実現)

BYO-LLM(Bring Your Own Large Language Model) に対応し、任意のAIモデルを組み込める

 

 

AI Agent

 

Conversation Relayの主要コンポーネント

Conversation Relayは、以下の3つの主要コンポーネントで構成されています。

  1. Text to Speech (TTS): LLM(大規模言語モデル)の応答を自然な音声に変換する。

  2. Speech to Text (STT): ユーザーの発話をテキストに変換し、LLMに送信する。

Advanced Orchestration: WebSocket APIを利用し、低遅延で自然な応答を提供し、割り込み処理を可能にする。

 

 

実際のコードを使った構築手順

Conversation Relayのセットアップ手順の詳細については、GitHubに公開されているConversation Relay Demoを参照してください。

このプロジェクトでは、TwilioのConversation Relay機能を活用し、WebSocketサーバーを通じてOpenAI APIと連携することで、リアルタイムでAIと自然な会話ができるシステムを構築します。

セットアップ手順

必要条件

  • Node.js (推奨バージョン: 14.x以上)

  • npm (Node.jsに含まれています)

  • Ngrok (有料版を前提)

  • Twilioアカウント(購入済みの電話番号)

  • OpenAIアカウント(APIキー取得済み)

     

インストール

環境変数の設定

.env ファイルを作成し、以下の内容を記述します。

your_openai_api_key を実際のOpenAI APIキーに置き換えてください。

Twilioの設定

TwilioコンソールのTwiML Binsで以下のTwiMLを作成します。

 

<subdomain_name> をngrokで指定するサブドメイン名に置き換えてください。

電話番号の設定

Twilioコンソールの PhoneNumbers メニューで、電話番号の A call comes in の設定を上記のTwiML Binに指定して保存します。

 

使用方法

1. サーバーを起動

2. ngrokを利用してサーバーを公開

 

3. Twilioで購入済みの電話番号に自分の端末から発信

4. AIと自由に会話できれば成功

 

注意: 通話を終了するには、必ず自分の端末から電話を切断してください。

 

依存関係

  • ws: WebSocketサーバーの実装
  • openai: OpenAI APIクライアント
  • dotenv: 環境変数の管理

 

まとめ

Twilio VoiceのConversationRelayを使うことで、

  • 低遅延な会話体験(1秒未満のレイテンシ)

  • AIとのシームレスな統合(BYO-LLM対応)

  • リアルタイムな音声処理・監視

  • 柔軟な通話管理(録音、転送、監視)

といった高度な通話管理が実現できます。特に、AIを活用した通話の分析や監視に適した機能のため、カスタマーサポートやコンタクトセンターでの利用が期待されます。

本記事を参考に、ぜひConversation Relayを活用してみてください!