音声で対話するAIを作ろうとすると、候補のOSSが一気に増えて選べなくなります。Pipecat、LiveKit Agents、TEN Framework、OpenAvatarChat、MuseTalk——名前が並列に見えるのに、実際に触ると担当している範囲がまったく違う。整理の鍵は、「会話オーケストレーション層」「アバター描画層」「ドメインロジック層」の3層に分けることです。既存OSSはたいていどれか1層に特化しているので、丸ごと1本で済ませようとすると必ずどこかで詰みます。この記事では各層の代表的なOSSをGitHub APIで実測しながら整理し、表記がApache-2.0でも追加条件が付くというライセンスの実態まで確認します。エージェント全般の枠組みの選び方はAIエージェントフレームワーク比較2026|LangGraph・CrewAI・Dify等9種をStar数・実コードで検証を参照してください。
この記事のポイント(30秒でわかる音声AIエージェントOSSの選び方)
・3層に分けて選ぶ:①会話オーケストレーション(STT→LLM→TTS・VAD・ターン検知・バージイン・transport)②アバター描画 ③ドメインロジック。1本のOSSが全部を担当することはない
・①の主役は3つ:Pipecat(★14,818・BSD-2・v1.0は2026-04-14)/LiveKit Agents(★13,193・Apache-2.0)/TEN Framework(★11,088・Apache-2.0+追加条件)
・ライセンスが3者3様:Pipecatは追加条件なし。LiveKitはフレームワークがApache-2.0でもターン検知モデルは別ライセンス(他フレームワークでの利用不可)。TENはエンドユーザー端末でのホスティングを禁止
・PipecatとLiveKitは排他ではない:PipecatのtransportにLiveKitが含まれており、LiveKitの上でPipecatを動かせる
・②のアバターは実写系と3Dキャラ系で完全に別物。日本語音声を重視するなら3Dキャラ系が有利
・品質を決めるのは見た目ではなく会話制御。アバターは差し替え可能なプラグインとして外に置く
音声AIエージェントは3層に分けて選ぶ——1本のOSSで全部は賄えない
「AIと声で会話する」を実現するために必要な仕事を分解すると、性質のまったく違う3種類が出てきます。
| 層 | 担当する仕事 | 難しさの正体 |
|---|---|---|
| ① 会話オーケストレーション層 | STT→LLM→TTSのループ、VAD(発話区間検出)、ターン終了検知、バージイン(割り込み)、transport(WebRTC・WebSocket・電話) | リアルタイム制御。遅延・割り込み・沈黙の扱いを外すと、どれだけ賢いLLMでも会話が成立しない |
| ② アバター描画層 | 口の動きの同期(リップシンク)、表情・ポーズ、3Dモデル/実写映像の生成 | 描画コストとGPU設計。人物を生成するのか、既にある人物を動かすだけかで必要リソースが激変する |
| ③ ドメインロジック層 | 何を聞くか、どう評価するか、記録をどう残すか | 業務要件そのもの。OSSで汎用化しにくく、自作になりやすい |
この3つを1本のOSSで賄おうとすると何が起きるか。改善サイクルが止まります。 たとえばアバターの描画を会話ループに密結合させると、ターン終了検知のアルゴリズムを差し替えるだけで描画側の修正が必要になる。逆にアバターを差し替えたいだけなのに会話ループを触ることになる。
実際、この分離は業界側でも起きています。後述する OpenAvatarChat がバージョン0.6.0(2026-04-17)でフロントエンドとバックエンドを分離するアーキテクチャ刷新を行ったのは、同じ動機と読めます。
この記事の数値の扱い
★数・最終push日・リリース日・ライセンス表記は、2026-08-28にGitHub REST APIおよび各リポジトリの LICENSE / README を直接取得した実測値です。一方、応答時間・fps・レイテンシなどの性能値はすべて各リポジトリの公称値であり、筆者が実機で測ったものではありません。本文では公称値には必ず「公称」と明記しています。
会話オーケストレーション層——Pipecat・LiveKit Agents・TEN Frameworkの違い
①の層が本体です。ここを間違えると後から取り返しがつきません。実測した3つの主要OSSを並べます。
| Pipecat | LiveKit Agents | TEN Framework | |
|---|---|---|---|
| リポジトリ | pipecat-ai/pipecat |
livekit/agents |
TEN-framework/ten-framework |
| ★(2026-08-28実測) | 14,818 | 13,193 | 11,088 |
| 最終push | 2026-08-27 | 2026-08-27 | 2026-08-27 |
| 最新リリース | v1.8.1(2026-08-27) | [email protected](2026-08-27) | 0.11.71(2026-07-31) |
| ライセンス表記 | BSD-2-Clause | Apache-2.0(モデルは別ライセンス) | Apache-2.0+追加条件 |
| 中心概念 | フレームプロセッサのパイプライン | ルームに入る「プログラマブルな参加者」 | 拡張(extension)で組む対話グラフ |
| 開発元 | Daily とコミュニティ | LiveKit | Agora |
3つとも最終pushが同じ日(2026-08-27)で、いずれも活発に開発されています。規模でも更新頻度でも決定的な差は付きません。 選定軸は別のところにあります。
Pipecat——transportを差し替えられるパイプライン抽象
Pipecatは、READMEの表現で「リアルタイム音声・マルチモーダル対話エージェントを構築するオープンソースのPythonフレームワーク」です。特徴はフレームプロセッサをつないでパイプラインを組むモデルで、音声・映像・AIサービス・transportを同じ抽象の上で扱います。
実務上効くのは transport非依存であることです。READMEに挙がっているtransportは Daily(WebRTC)、FastAPI WebSocket、LiveKit(WebRTC)、SmallWebRTCTransport、Vonage(WebRTC)、WebSocket Server、WhatsApp、Local。つまり同じエージェント実装のまま、ブラウザ越しの会話も電話回線もWhatsAppも通せる設計です。
ここで気づいてほしいのは、「PipecatかLiveKitか」という二者択一が実は成立しないことです。PipecatのtransportにLiveKitが含まれている以上、LiveKitのインフラの上でPipecatのパイプラインを動かす構成が普通に取れます。層が違うものを並べて比較していた、という整理になります。
v1.0.0のリリースは 2026-04-14 で、実測時点の最新は v1.8.1(2026-08-27)。約4か月半で1.0→1.8と、メジャー安定版到達後も速いペースで進んでいます。
LiveKit Agents——エージェントが「参加者」としてルームに入る
LiveKit Agentsの設計思想はREADMEの一文に集約されています——「realtime, programmable participants(リアルタイムでプログラマブルな参加者)」を作るためのフレームワーク。エージェントがWebRTCのルームに参加者として入るモデルです。
この設計が効くのは、会話が2者で閉じない場面です。候補者とAI、そこに人事担当者が同席する。画面共有をしながら話す。録画を残す。こうした要件は「参加者」モデルなら追加の参加者を増やすだけで済みますが、1対1の音声ストリームを前提に組んだ実装では後付けが重くなります。セッション状態・再接続・低遅延といった面倒もRTC層から降ってきます。
READMEに明記されている機能のうち実務で効くのは2つです。セマンティックなターン終了検知(transformerモデルでユーザーの発話が終わったかを判定し、割り込みを減らす)と、テレフォニー統合(LiveKitのSIPスタック経由で電話の発着信ができる)。
TEN Framework——VAD・ターン検知を独立コンポーネントとして持つ
TEN Framework(開発元はAgora)は、リアルタイムマルチモーダル対話のためのフレームワークです。特徴はエコシステムを構成要素ごとに切り出していること。README上では TEN Framework 本体のほかに、TEN VAD(低遅延・軽量なストリーミング音声区間検出)と TEN Turn Detection(全二重の対話を可能にするターン検知)が独立したリポジトリとして並んでいます。
アバター連携の設計サンプルとしても読む価値があります。READMEの「Lip Sync Avatars」の項には、MotionSyncによるリップシンクを持つアニメキャラクター(Kei)に加えて、Trulience・HeyGen・Tavus といった実写系ベンダーに対応すると書かれています。①の層のフレームワークが②の層をどう抽象化しているかの実例です。
ただし、TEN Frameworkにはライセンス上の重い制約があります。次節で扱います。
ライセンスの実態は3者3様——PipecatのBSD-2とApache-2.0の追加条件
GitHubのライセンスバッジだけを見て選ぶと事故ります。3つの LICENSE ファイルを実際に読み比べると、制約の強さがまったく違いました。
| 表記 | 実際の制約 | |
|---|---|---|
| Pipecat | BSD-2-Clause | 追加条件なし。著作権表示と免責条項の保持のみ。最も素直 |
| LiveKit Agents | Apache-2.0 | フレームワーク本体はApache-2.0。ただしターン検知モデルは MODEL_LICENSE(LiveKit Model License)で、「LiveKit Agents フレームワークと一緒にのみ使用可能。単体または他のフレームワークでの利用は不可」と明記 |
| TEN Framework | Apache-2.0+追加条件 | ①エンドユーザー端末上でのホスティング禁止(モバイル端末を含む)②Agoraの提供物と競合する形でのデプロイ禁止(第三者にアプリを開発・デプロイさせることを含む)③派生物も同ライセンスに従う |
TEN Frameworkの条件①は、用途によっては致命的です。 「エンドユーザーの端末上でホストしない」という条件は、後述する Duix-Mobile のような端末内デプロイの発想と真っ向から衝突します。会場に設置した端末の中だけで完結させたい、ネットワーク非依存で動かしたい——そうした要件がある場合、TEN Frameworkは検討対象から外れます。GitHubのライセンス欄が NOASSERTION と表示されるのはこの追加条件のためで、「ライセンス情報が無い」のではなく「標準ライセンスに当てはまらない」という意味です。
LiveKitのモデル分離も見落としやすい点です。 セマンティックなターン検知はLiveKit Agentsの売りの一つですが、そのモデルはApache-2.0ではありません。「LiveKit Agentsから離れられなくなる部品」として扱う必要があります。Pipecat側にも pipecat-ai/smart-turn という独自のターン検知モデルの系譜があり、この領域は各社が囲い込みにかかっている、と読むのが妥当です。
なお本記事はライセンス文書の記載内容を整理したものであり、法的な解釈や助言ではありません。商用導入にあたっては最終判断を法務担当者・専門家に確認してください。
アバター描画層——実写系と3Dキャラ系はまったく別物
②の層は、実写系と3Dキャラ系で技術も適性も分かれます。
| プロジェクト | ★(実測) | 最終push | リリース状況 | 種別 | 公称する強み |
|---|---|---|---|---|---|
| Duix-Mobile | 8,200 | 2026-08-05 | v2.0.1(2025-10-13) | 実写系・端末内SDK | 「Snapdragon 8 Gen 2 で応答レイテンシ120ms以下」 |
| MuseTalk | 6,464 | 2025-09-26 | リリース0本 | 実写系・リップシンク単体 | 「NVIDIA Tesla V100 で30fps以上」 |
| OpenAvatarChat | 3,724 | 2026-07-31 | 0.6.0(2026-04-17) | 実写系・一式 | 「平均応答時間 2.2秒」 |
| AITuberKit | 1,054 | 2026-08-17 | v2.74.0(2026-08-12) | 3Dキャラ系 | 日本語TTS 11種に対応 |
OpenAvatarChat は、VAD・ASR・LLM・TTS・アバターアニメーションを1台のPCで完結させるモジュラー構成です。READMEの記載では、LiteAvatar / LAM / MuseTalk / FlashHead といったアバター実装を差し替えられ、「低遅延最適化により平均応答時間はわずか2.2秒」(公称)とされています。0.6.0ではアーキテクチャを刷新してフロントエンドとバックエンドを分離し、フロントエンドは別リポジトリ(OpenAvatarChat-WebUI)に切り出されました。あわせてすべてのデジタルヒューマンで手動割り込みと双工(双方向)割り込みモードに対応したことも記載されています。ライセンスはApache-2.0で、追加条件はありません。アーキテクチャの教科書として読む価値が最も高いのはこれです。
ただし注意点があります。0.5.1(2025-08-21)から0.6.0(2026-04-17)まで8か月の間隔が空いており、実測時点でも最新リリースは0.6.0のままです(最終pushは2026-07-31)。
MuseTalk は口の動きを音声に合わせるモデル単体で、会話ループもUIも持ちません。「V100で30fps以上」(公称)という数字が有名ですが、リポジトリの最終pushは2025-09-26、GitHub Releasesは1本もありません。 実測時点で約11か月更新が止まっており、★6,464という規模に反して新規採用の第一候補にはしにくい状態です。star数はメンテナンス状況を示しません。
Duix-Mobile は端末内デプロイを前提としたアバターSDKで、LLM/ASR/TTSは自前のものを差す設計です。ここで数値の読み方に注意が要ります。リポジトリの説明文は「<1.5 s latency」、README本文は「120ms以下(Snapdragon 8 Gen 2 で測定)」と、同じプロジェクト内で1桁違う数字が並んでいます。測定している区間が違う(アバター描画の応答か、発話までのエンドツーエンドか)と考えるのが自然です。本記事はこれを実機で検証していません。 比較検討では数字そのものより「何から何までの時間か」を各ドキュメントで確認してください。
AITuberKit は3Dキャラ系(VRM / Live2D)で、日本語音声合成の選択肢の広さが強みです。ただしv2.0.0以降は商用利用に別途ライセンス購入が必要な独自ライセンスで、他の3つとは前提が異なります。詳細はAITuberKitとは?MITではない商用ライセンス料金と開発停止・再開の実測、対応LLM15種を解説にまとめました。
GPU設計の落とし穴として押さえておきたいのは、「人物を新たに生成するのか、既にある人物の映像を動かすだけか」で必要なGPUが激変するという点です。リップシンクだけならH100級は不要で、MuseTalkが公称の基準に置いているのも1世代前のV100です。逆に人物そのものを生成する構成にすると要求が跳ね上がります。ここは選定の早い段階で決めておくべき分岐点です。
ドメインロジック層——DeepInterviewとflo-interviewerの実態
③の層は、業務要件そのものなので汎用OSSが育ちにくい領域です。参考実装として名前が挙がる2つを実測しました。
| DeepInterview | flo-interviewer | |
|---|---|---|
| リポジトリ | ngoanpv/DeepInterview |
buildfastwithai/flo-interviewer |
| ★(2026-08-28実測) | 26 | 4 |
| 最終push | 2026-08-26 | 2025-09-23 |
| ライセンス | Apache-2.0 | — |
| 最新リリース | v0.3.0(2026-08-02) | なし |
まず率直に書くと、どちらも「実績あるプロダクト」として推せる規模ではありません。 DeepInterviewは★26、flo-interviewerは★4で最終pushから約11か月経過しています。参考にするなら「設計の読み物」としてであって、そのまま業務に載せる想定では見ないほうがよいです。
そのうえでDeepInterviewは設計の参考としては有用です。ただし用途を取り違えないこと——リポジトリ説明文にある通り、これは候補者が自分で模擬面接を練習するツール(CVと求人票をアップロードし、声に出して練習し、弱点を採点・コーチングしてもらう)であって、採用側が候補者を評価するための業務システムではありません。
構成はLiveKit+LangGraph+Next.jsで、READMEに書かれている要素は次の通りです。
・カスケード型の STT→LLM→TTS ループをLiveKit上で回し、バージイン・セマンティックなターン終了検知・適応的な追加質問に対応
・LangGraphのパイプラインがCVと求人票を読み、対象企業を調べ、ギャップを差分化。Question Plannerが質問計画・難易度カーブ・評価基準・追加質問を事前計算する
・各段が環境変数1つで差し替え可能(STT_PROVIDER / TTS_PROVIDER / LLM_PROVIDER)。キー未設定時はオフラインのモックアダプタに落ちる
v0.3.0(2026-08-02)で完全ローカル経路が入りました。LLM_PROVIDER=ollama / STT_PROVIDER=whisper / TTS_PROVIDER=kokoro を設定すればモデル用のAPIキーは一切不要になります。ただしREADME自身が2つの正直な但し書きを置いています——LiveKitは依然としてリアルタイムtransportとして必要(完全オフラインにするなら livekit-server --dev を併用する)、そしてローカルモデルでのターンレイテンシはベンチマークを取っていない、音声は当面英語のみ。README冒頭でも自らを「early open build」と位置づけています。
質問の分岐や深掘りを状態遷移として設計する部分は、LangGraph入門|とは?状態遷移でマルチエージェントを作る基本とLangChainとの違い・比較で扱っているような枠組みがそのまま使えます。DeepInterviewがLangGraphを採用しているのも同じ発想です。
採用・評価に使うなら、記録のスキーマを先に切る
面接や評価に関わるシステムを日本国内で運用する場合、参照すべき条文の一つが職業安定法 第五条の五(求職者等の個人情報の取扱い)です。e-Gov法令検索で取得した条文(昭和二十二年法律第百四十一号、2026年4月1日施行の版)には、次のように書かれています。
第1項:公共職業安定所、特定地方公共団体、職業紹介事業者及び求人者(中略)は、それぞれ、その業務に関し、求職者(中略)の個人情報(中略)を収集し、保管し、又は使用するに当たつては、その業務の目的の達成に必要な範囲内で、厚生労働省令で定めるところにより、当該目的を明らかにして求職者等の個人情報を収集し、並びに当該収集の目的の範囲内でこれを保管し、及び使用しなければならない。ただし、本人の同意がある場合その他正当な事由がある場合は、この限りでない。
第2項:公共職業安定所等は、求職者等の個人情報を適正に管理するために必要な措置を講じなければならない。
条文の名宛人に「求人者」——つまり採用する企業自身が含まれている点、そして義務が「①目的を明らかにして収集する ②収集目的の範囲内で保管・使用する ③適正管理の措置を講じる」という形で書かれている点が、システム設計に直接効きます。
技術的に読み替えると、何を目的に収集したのかと、その目的に紐づく記録を後から示せる形にしておく必要があるということです。会話エンジンを選んだあとにこれを後付けするのは難しいので、トランスクリプト・評価根拠・収集目的を紐づけて永続化する前提でスキーマを先に切っておくのが安全です。層で言えば③のドメインロジック層の仕事であって、Pipecat も LiveKit Agents もここは提供しません。
法的判断についての注記
上記は条文の記載内容をそのまま示したものです。どの事業者にどの義務がどう適用されるか、他にどの法令(個人情報保護法など)が関係するかの判断には、本記事は踏み込みません。 適用範囲は事業の形態・扱う情報の性質・運用方法によって変わります。実際の導入にあたっては、法務担当者・専門家に確認してください。
現実的な組み合わせと、着手前に確認すること
3層の整理を踏まえた現実解はシンプルです。
①の層(LiveKit Agents または Pipecat)を軸に据え、②のアバターは差し替え可能なプラグインとして扱う。③のドメインロジックは LangGraph 等で外に出す。
理由は、品質を決めるのがアバターの見た目ではなく、割り込み・沈黙の扱い・ターン終了検知・トランスクリプトと評価の紐付けだからです。アバターを会話ループに密結合させると、この一番効く部分の改善サイクルが止まります。OpenAvatarChatが0.6.0でフロントとバックを分離したのも、同じ問題に対する回答と読めます。
必要があるか?"} B -->|"はい"| C["TEN Framework は不可
(ライセンスで端末内
ホスティング禁止)"] B -->|"いいえ"| D{"複数人・映像・
画面共有が要るか?"} C --> E["Pipecat + Duix-Mobile 等
を検討"] D -->|"要る"| F["LiveKit Agents
(参加者モデル)"] D -->|"要らない"| G{"transport を後から
変える可能性は?"} G -->|"ある(電話・WhatsApp等)"| H["Pipecat
(transport 非依存)"] G -->|"ない"| I["どちらでも可
ライセンスの素直さなら Pipecat"] F --> J["アバターは
プラグインとして外付け"] H --> J I --> J J --> K["ドメインロジックは
LangGraph 等で外出し"]
判断フローを言葉にすると次の順です。
1. 端末内で完結させる必要があるか。 あるならTEN Frameworkは選べません(ライセンスの追加条件)。この制約は技術的な向き不向きではなく契約の問題なので、最初に潰しておきます。
2. 会話が2者で閉じるか。 候補者+AI+人事担当のような3者以上、あるいは映像・画面共有が絡むならLiveKit Agentsの参加者モデルが素直です。
3. transportを後から変える可能性があるか。 ブラウザから始めて後で電話やWhatsAppに広げるなら、Pipecatのtransport非依存が効きます。
4. ライセンスの素直さを重視するか。 BSD-2で追加条件のないPipecatが最も制約が軽く、次点がApache-2.0のLiveKit Agents(ただしターン検知モデルは別ライセンス)です。
着手前に確認しておくこと
・公称値の測定区間を確認する。 「120ms」「2.2秒」「30fps」はいずれも各リポジトリの公称値で、測っている区間の定義が揃っていません。自分の要件に照らして意味のある数字かを、各ドキュメントで確認してから比較する
・star数を現役の指標にしない。 MuseTalkは★6,464でありながら約11か月更新なし・リリース0本。最終pushとリリース履歴を個別に見る
・GitHubのライセンスバッジで判断しない。 NOASSERTION は「情報が無い」ではなく「標準ライセンスに当てはまらない」。LICENSE ファイルの現物を読む
・GPU要件を早く決める。 人物を生成するのか既存映像を動かすだけかで必要なリソースが激変する
・記録のスキーマを先に切る。 トランスクリプトと評価根拠の紐付けは後付けが難しい。会話エンジンを選ぶ前に、何を残すかを決めておく
まとめ
音声AIエージェントのOSSは、3層に分けて初めて比較可能になります。①の会話オーケストレーション層では Pipecat・LiveKit Agents・TEN Framework の3つが規模・更新頻度ともに拮抗しており、差が付くのは機能ではなくライセンスと設計思想でした。Pipecatは追加条件のないBSD-2でtransport非依存、LiveKit Agentsは参加者モデルが多人数・映像に強い一方でターン検知モデルが別ライセンス、TEN Frameworkは端末内ホスティングを禁じる追加条件を持ちます。②のアバター層は実写系と3Dキャラ系で別物、③のドメイン層は参考実装の規模がまだ小さく自作前提。アバターを会話ループに密結合させないことが、この構成で唯一かつ最重要の設計原則です。
参照ソース
・pipecat-ai/pipecat — GitHubリポジトリ(README・Releases・ライセンス。★数/最終push/リリース日は2026-08-28にGitHub REST APIで取得)
・livekit/agents — GitHubリポジトリ(README・LICENSE)/MODEL_LICENSE の原文
・TEN-framework/ten-framework — GitHubリポジトリ/LICENSE の原文(追加条件1〜5)
・HumanAIGC-Engineering/OpenAvatarChat・TMElyralab/MuseTalk・duixcom/Duix-Mobile(アバター層の★数・最終push・公称性能値の出典)
・ngoanpv/DeepInterview(README・Releases。v0.3.0のローカル経路構成と但し書きの出典)
・職業安定法(昭和二十二年法律第百四十一号)— e-Gov法令検索(第五条の五の条文。2026年4月1日施行の版をe-Gov法令APIで取得)