AI 音声/ビデオエージェントを作るための技術基盤について調べたので、ここにまとめておきます。
基盤となる技術
ざっくり概要としては以下の図のようになっています。

それぞれについて簡単に説明します。
WebRTC(Web Real-Time Communication)
エージェントの根幹をなす技術。エージェントはリアルタイムで処理する都合上、レイテンシを最小限(数十~数百ms)に抑える必要があります。WebRTC はブラウザ上で動作するP2Pの技術で、Web標準として実装されています。自前で実装することも可能ですが、ニッチな要件がないかぎり、WebRTCを提供するサービスを使うのが実装コストを鑑みても現実的です。有名どころだと Twilio や Agora などがあります。
STT/TTS
STT(Speech-to-Text)とTTS(Text-to-Speech)は、音声とテキストを相互変換する技術です。各社色々あります。レイテンシを重視するケースだと、Deepgram を使っているという話をよく聞きます。Deepgramは音声から感情分析(Sentiment Analysis)なども行えるらしいです(未確認)。
STT については、自分は柔軟な言語対応やコンテキストを与えたりもできる OpenAI APIの whisper をよく使っています。 TTS については、これも色々選択肢があるのですが、音声クローンを作ったりできる Cartesia や Play.htなど使ってます。いずれもノーコードで簡単に自前の音声を作れるので便利です。
LLM
言わずもがなですね。音声から起こしたテキストに応じて、返答を作ります。エージェントを作る場合はシステムプロンプトで役割、ゴール、終了条件などを定義します。
最近だとマルチモーダルで映像も認識するLLMや大量のトークンで長いやり取りを扱えるLLMもありますが、コンテキスト量はレイテンシにも影響するので、どのモデルを採用するかはトライ&エラーみたいなところもあります。
Pipeline
正確には技術ではなく、WebRTC、LLM、SST/TTS を組み合わせて、Agentを作るために必要なフレームワークやライブラリですね。それぞれの技術を統合してパイプラインを作るための仕組みです。
有名どころだとオープンソースの Pipecat があります。インタフェースがシンプルで、エージェントを作るのに必要な機能が揃っているので、自分はこれを使っています。 WebRTCやビデオ、音声クラウドプラットフォームを提供する [Daily.co]https://daily.co という会社がメンテナンスしていて、Daily.co との相性が一番良いのですが、多くのサービスとパートナーシップを結んでおり、STT/TTSやLLM、プロバイダーなど柔軟に選択できます。自分の知る限りだと基盤に Daily.co を使っている音声Agent系サービスは結構多いです。
Pipecatはクラウドプラットフォームも提供しており、ワンストップで AI エージェントをデプロイできます。
Pipecat はPythonなのですが、JSベースのフレームワークだと Livekit がああるようです(未確認)。
その他の技術
さらにこれらに加えて、音声クローンやアバタークローンを作ったり、それらを自在に動かすサービスなどもあります。例えばTavus は、ビデオエージェントをワンストップで提供してます。ベースとなるクローンが複数あって、性格やコンテキストを設定して、ノーコードでインタビューエージェントが作れました。(ちなみにTavusは基盤としてDaily.coを使っています)
Tavusで作ったAIアバターを使って疑似技術面接してみた(自分が受ける側)
— 今井智章/シリコンバレーでファウンダーCTO (@tomoaki_imai) June 20, 2025
必要な設定
- ペルソナ(人格設定)
- システムプロンプト(どういう面接をするか、何を確認するか)
- コンテキスト(会社情報など)
若干返答に遅延あるけど、回答内容を深堀りもしてきよる、よくできている pic.twitter.com/hnVQPSh6wx
実例
Agentフレームワークである Pipecat を使って、質問に答えたりする AI を作ってみました。ほぼサンプルプロジェクトのままですが、Voiceに Cartesiaで作った自分の声を使ってたり、レコーディングに対応してます。以下にリポジトリを置いておきます。

このプロジェクトは Daily.co をWebRTC基盤、Pipecat CloudをAgentのバックエンド、TTSに Cartesia, LLM は Open AI を使っています。

仕組みとしては、エージェントである bot.py をPipecat Cloudにデプロイし、Pipecat Cloud をDaily.co のプリビルドのビデオ会議環境(ルームと呼びます)に接続しています。
bot.py は Dockerでビルドして、Docker Hubにプッシュしたものを、Pipecat Cloud のコンテナとして起動しています。
音声については Cartesiaで自分の声を録音してクローンを作りました。生成されるvoice idをPipecat渡すことで、クローン音声が利用できます。

...
tts = CartesiaTTSService(
api_key=os.getenv(ENV_VARS["CARTESIA_API_KEY"]), voice_id=TTS_CONFIG["voice_id"]
)
ビデオ/音声 AI エージェントはひとつのサービスで実現されるわけではないため、どういうツールを選択するかのトレードオフの判断が必要となりそうです。