生成したオーディオをTwilio経由で送信する
生成したオーディオをTwilio経由で送信する
Twilioを使って生成した音声を電話に組み込む方法を学びます。
ハウツーガイド · ElevenAPI クイックスタートを完了し、Twilioアカウントをお持ちであることを前提としています。
このガイドでは、TwilioとElevenLabsを使って、AI生成メッセージを電話で送信する方法を説明します。このプロセスにより、高品質な音声メッセージを発信者に直接届けられます。
Twilioとngrokのアカウントを作成する
このガイドではTwilioとngrokを使用するため、それぞれのアカウントを作成してください。
Expressでサーバーを作成する
プロジェクトを初期化する
プロジェクト用の新しいフォルダを作成します。
依存関係をインストールする
開発用依存関係をインストールする
ファイルを作成する
コードを理解する
着信を処理する
番号に電話がかかると、Twilioは/call/incomingのエンドポイントにPOSTリクエストを送信します。
その後、urlに/call/connectionエンドポイントを設定して、WebSocket経由で通話を処理することをtwiml.connectでTwilioに伝えます。
テキスト読み上げを作成する
ここでは、TwilioがWebSocketエンドポイントに送信するメッセージを監視します。startメッセージイベントを受信すると、ElevenLabsのTypeScript SDKを使用してオーディオを生成します。
メッセージを送信する
ElevenLabsからオーディオを受信したら、配列バッファに変換し、WebSocket経由でTwilioに送信します。
ngrokをアプリケーションに接続する
Twilioには公開アクセス可能なURLが必要です。ngrokを使ってアプリケーションのローカルポートを転送し、公開URLとして公開します。
ターミナルで次のコマンドを実行します。
ngrokドメイン(https://を除く)をコピーして、環境変数で使用します。
環境変数を更新する
.envファイルにngrokドメインとElevenLabs APIキーを設定します。
アプリケーションを起動する
次のコマンドを実行してアプリを起動します。
Twilioを設定する
Twilioのガイドに従って新しい番号を作成します。番号を作成したら、Phone Numbers -> Manage -> Active numbersの「Configure」タブに移動します。
「A call comes in」セクションで、アプリケーションの完全なURLを入力します(/call/incomingパスを必ず追加してください)。
例:https://***ngrok.app/call/incoming
電話をかける
作成した番号に電話をかけます。ElevenLabsの音声によるメッセージが聞こえるはずです。
本番環境へのデプロイのヒント
本番環境でアプリケーションを実行する場合は、SERVER_DOMAIN環境変数をサーバーのドメインに設定してください。TwilioのURLも本番サーバーを指すように更新してください。
まとめ
これで、TwilioとElevenLabs音声の統合について基本的な理解が得られました。さらに質問がある場合や、このブログ記事の改善案がある場合は、下の「Suggest edits」または「Raise issue」ボタンからお知らせください。