以下の内容はhttps://tomoima525.hatenablog.com/entry/2025/06/30/170250より取得しました。


AI 音声/ビデオエージェントを作るためのテックスタック

AI 音声/ビデオエージェントを作るための技術基盤について調べたので、ここにまとめておきます。

基盤となる技術

ざっくり概要としては以下の図のようになっています。

概要図

それぞれについて簡単に説明します。

WebRTC(Web Real-Time Communication)

エージェントの根幹をなす技術。エージェントはリアルタイムで処理する都合上、レイテンシを最小限(数十~数百ms)に抑える必要があります。WebRTC はブラウザ上で動作するP2Pの技術で、Web標準として実装されています。自前で実装することも可能ですが、ニッチな要件がないかぎり、WebRTCを提供するサービスを使うのが実装コストを鑑みても現実的です。有名どころだと Twilio や Agora などがあります。

webrtc.org

STT/TTS

STT(Speech-to-Text)とTTS(Text-to-Speech)は、音声とテキストを相互変換する技術です。各社色々あります。レイテンシを重視するケースだと、Deepgram を使っているという話をよく聞きます。Deepgramは音声から感情分析(Sentiment Analysis)なども行えるらしいです(未確認)。

STT については、自分は柔軟な言語対応やコンテキストを与えたりもできる OpenAI APIの whisper をよく使っています。 TTS については、これも色々選択肢があるのですが、音声クローンを作ったりできる CartesiaPlay.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を使っています)

実例

Agentフレームワークである Pipecat を使って、質問に答えたりする AI を作ってみました。ほぼサンプルプロジェクトのままですが、Voiceに Cartesiaで作った自分の声を使ってたり、レコーディングに対応してます。以下にリポジトリを置いておきます。

github.com

プリビルドのビデオ会議環境

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

pipecat cloudから拝借

仕組みとしては、エージェントである bot.py をPipecat Cloudにデプロイし、Pipecat Cloud をDaily.co のプリビルドのビデオ会議環境(ルームと呼びます)に接続しています。

bot.py は Dockerでビルドして、Docker Hubにプッシュしたものを、Pipecat Cloud のコンテナとして起動しています。

音声については Cartesiaで自分の声を録音してクローンを作りました。生成されるvoice idをPipecat渡すことで、クローン音声が利用できます。

cartesiaのコンソール

   ... 
    tts = CartesiaTTSService(
        api_key=os.getenv(ENV_VARS["CARTESIA_API_KEY"]), voice_id=TTS_CONFIG["voice_id"]
    )

ビデオ/音声 AI エージェントはひとつのサービスで実現されるわけではないため、どういうツールを選択するかのトレードオフの判断が必要となりそうです。




以上の内容はhttps://tomoima525.hatenablog.com/entry/2025/06/30/170250より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14