Pipecat - オープンソースフレームワークベースの音声アシスタント
(github.com/pipecat-ai)- Pipecatは、リアルタイム音声およびマルチモーダル対話エージェントを構築するためのオープンソースPythonフレームワークで、単一の音声エージェントから、複数の専門エージェントがハンドオフ・並列実行・共有バスで協調するシステムまで対応する
- 中核設計は、音声認識、音声合成、対話処理、AIサービス、トランスポート層を組み合わせ可能なパイプラインとして束ね、開発者がエージェント固有のロジックに集中できるようにすることにある
- 構築できる対象には、Voice Assistants、マルチエージェントシステム、AIコンパニオン、音声・動画・画像ベースのマルチモーダルインターフェース、インタラクティブストーリーテリング、顧客受付・サポートボット、構造化対話システムまで含まれる
- 公式クライアントSDKはJavaScript、React、React Native、Swift、Kotlin、C++、ESP32をサポートし、サーバー側サービスはSTT、LLM、TTS、Speech-to-Speech、WebRTC/WebSocketトランスポート、動画、メモリ、ビジョン・画像、音声処理、分析ツールへと拡張される
- クイックスタートは
pipecat init quickstartまたはpipecat initで可能で、基本インストールは軽量に保たれており、サードパーティAIサービス対応は必要なextrasを追加する方式で構成されている
Pipecatの役割
- Pipecatは、リアルタイム音声およびマルチモーダル対話エージェントを構築するためのオープンソースPythonフレームワーク
- 単一の音声エージェントだけでなく、専門エージェント同士がハンドオフ、並列fan-out、sidecar実行、共有バスベースの協調を行うマルチエージェントシステムも構築できる
- 音声、動画、AIサービス、トランスポート層、対話パイプラインをまとめてオーケストレーションし、エージェント固有の動作実装に集中できるよう設計されている
- すぐに始めるには
pipecat init quickstartを実行するか、quickstart guideを参照すればよい
作れるもの
- Voice Assistants: AIと自然なストリーミング対話を行う音声アシスタント
- Multi-Agent Systems: 専門エージェントがハンドオフしたり、並列にfan-outしたり、共有バス上のsidecarとして動作する構成
- AI Companions: コーチ、会議アシスタント、キャラクター
- Multimodal Interfaces: 音声、動画、画像などを扱うインターフェース
- Interactive Storytelling: 生成メディアベースの創作ツール
- Business Agents: 顧客受付、サポートボット、案内フロー
- Complex Dialog Systems: 構造化された対話でロジックを設計するシステム
設計上の特徴
- Voice-first構造で音声認識、音声合成、対話処理を統合する
- 多様なAIサービスやツールを接続できるプラグイン型構造を提供する
- モジュール型コンポーネントで複雑な動作を構築する組み合わせ可能なパイプラインをサポートする
- 各パイプラインをエージェントとして扱い、ハンドオフ、並列fan-out、sidecarワーカー、分散デプロイで組み合わせられる
- WebSocketsやWebRTCのようなトランスポート層を通じて超低遅延のリアルタイム相互作用を目指す
エコシステムとツール
- 公式クライアントSDKは、複数プラットフォームからPipecatへ接続できるよう提供されている
- Pipecat Flowsは、状態管理を含む事前定義または動的な対話経路をPipecat内で構成できるようにする
- 動作例はflows examplesで確認できる
- Voice UI Kitは、音声AIアプリケーションを素早く構築するためのコンポーネント、フック、テンプレートのコレクション
- Pipecat CLIは
pipecat-aiとともに提供され、uv tool install "pipecat-ai[cli]"でインストールするpipecat initは新規プロジェクトを開始し、Claude CodeやCodexのようなAIコーディングアシスタントがプロジェクトを作成できるよう設定する- 1分以内に実行可能なボットをスキャフォールドでき、その後CLIでエージェントを監視し、本番環境へデプロイできる
- Whiskerは、Pipecatパイプラインとプロセッサ向けのリアルタイムデバッガ
- Tailは、Pipecat向けのターミナルダッシュボード
- Pipecat Skillsは、Claude Codeとともに、プロジェクトのスキャフォールディングやPipecat Cloudへのデプロイなどを支援する
- インストールコマンド:
claude plugin marketplace add pipecat-ai/skills
- インストールコマンド:
サポートサービスの範囲
- Speech-to-TextはAssemblyAI、AWS、Azure、Deepgram、Google、Groq Whisper、Mistral、NVIDIA、OpenAI Whisper、Whisper、xAIなど多数のサービスをサポートする
- LLMはAnthropic、AWS、Azure、Cerebras、DeepSeek、Gemini、Grok、Groq、Mistral、NVIDIA NIM、Ollama、OpenAI、OpenAI Responses、OpenRouter、Perplexity、Qwen、Together AIなどを含む
- Text-to-SpeechはAWS、Azure、Cartesia、Deepgram、ElevenLabs、Google、Groq、Hume、Kokoro、Mistral、NVIDIA、OpenAI、Piper、Resemble、Rime、Together、XTTSなどと接続できる
- Speech-to-SpeechはAWS Nova Sonic、Gemini Multimodal Live、Grok Voice Agent、OpenAI Realtime、Ultravoxをサポートする
- トランスポート層にはDaily WebRTC、FastAPI Websocket、LiveKit WebRTC、SmallWebRTCTransport、Vonage WebRTC、WebSocket Server、WhatsApp、Localが含まれる
- そのほか、Twilio・Telnyx・Vonageなどのserializer、HeyGen・Tavus・Simliなどの動画、mem0メモリ、fal・Google Imagen・Moondreamベースのビジョン・画像、Silero VAD・Krisp Viva・RNNoiseなどの音声処理、OpenTelemetry・Sentryの分析ツールをサポートする
- 全一覧はfull services documentationで確認できる
インストールと開始
- ローカルマシンでPipecatを実行し、準備ができたらエージェントプロセスをクラウドへ移行できる
- 開始前にuvのインストールが必要
curl -LsSf https://astral.sh/uv/install.sh | sh
- CLIベースのクイックスタートでは、Pipecat CLIをインストールした後、新しいphoneまたはweb/mobileボットを対話形式でスキャフォールドする
uv tool install "pipecat-ai[cli]"
pipecat init
- 手動インストールでは、新規プロジェクトで
uv initとuv add pipecat-aiを使うか、既存プロジェクトにuv add pipecat-aiを追加する
uv init my-pipecat-app
cd my-pipecat-app
uv add pipecat-ai
uv add pipecat-ai
- 環境ファイルは
cp env.example .envで設定する - 基本パッケージにはcore frameworkのみが含まれ、サードパーティAIサービスが必要な場合はextrasを追加する
uv add "pipecat-ai[option,...]"
- pip利用者は
pip install pipecat-aiおよびpip install "pipecat-ai[option,...]"でインストールできる
サンプルと開発
- Focused examplesは、特定のサービスや概念を1〜2個示す小規模なエージェントサンプル
- Example appsは、開発の出発点として使える完成度の高いアプリケーション
- Pipecatの開発には最低Python 3.11が必要で、推奨バージョンはPython 3.12以上
- リポジトリの開発環境は
uv sync --group dev --all-extras --no-extra gstreamer --no-extra localで設定するlocal、gstreamerのような一部extrasにはシステム依存関係が必要な場合がある
- テストはリポジトリルートで
uv run pytestを実行し、特定のテストはuv run pytest tests/test_name.pyで実行する
1件のコメント
Hacker News の意見
オープンソース実装が出てきたのはうれしいし、https://www.retellai.com/、https://fixie.ai/ のようなスタートアップがこの領域に数多く参入しているのを見てきた
結局はいつも 音声対音声モデルが必要になるが、現在のアプローチはたいてい、音声→テキスト→テキスト→音声で、複数のエージェントが「聞く」1つと「話す」1つを担当する形に見える
最近発表された gpt-4o とどう噛み合うのか楽しみ
この分野のさまざまなレイヤーとプレイヤーを追い続けようとしているところ
素晴らしいが、オープンソース側にもデモで見たような オーディオ対オーディオモデルが本当に必要だ。似たものを知っている人がいるか気になる
追記: 誰かが1つ見つけた: https://news.ycombinator.com/item?id=40346992
README のサンプルは、この点がもっとよく伝わるように更新するとよさそう
リアルタイム音声AIの文脈では、遅延が約 800ms以下まで下がると、ほとんどの人やユースケースで自然に反応している感じになる
GPT-4o の発表ページでは、音声プロンプトから最初のトークンまで平均約320msだとしていて、これは間違いなく次の段階なので非常に興味深い。いま GPT-4 Turbo を含むどんなパイプラインでも800msに到達するのは難しいので、大きな意味がある
現在最速の文字起こし、推論、音声合成モデルをパイプラインでつなぐと、最初のトークンまで約500msは可能。例えば Deepgram の文字起こし、Groq Llama-3、Deepgram Aura の音声の組み合わせ
Siri は2011年10月、Amazon Alexa は2014年11月、Google Assistant 搭載の音声スピーカーは2016年5月に登場した
見る限り Siri はいまだに誰も使いたがらないひどい状態で、Alexa は自分で使ったことがないので何とも言いにくいが、Google Home スピーカーと Android スマートフォンではここ数年、大きな改善を見ていない。むしろ悪くなっていて、以前のように AnyList[0] に項目を直接追加できず、Google Keep しか使えなくなった
ずっと前にはできるようになると思っていたごく単純な例でも、「今言ったことをもっと大きな声で繰り返して」や「キッチンとダイニングの照明を消して」のような 2段階のリクエストをまだ解釈できない
運転中、ベッドで横になっているとき、料理中、別の作業で手が離せないとき、音声アシスタントはかなり便利なのに、リリース初期以降ほとんど停滞している感じがする。おそらく誰も収益化できる方法を見つけられていないのだろう
消費者向けにより良い音声アシスタントを得るには何が必要なのだろうか? Willow[1] も大きくは広がらなかったようだ
[0] https://help.anylist.com/articles/google-assistant-overview/
[1] https://heywillow.io/
付け加えると、最近頭の中にあったことを吐き出してしまって、スレッドを乗っ取ったようになった気がする。Pipecat は本当に良さそうだし、うまくいってほしい。週末に試す時間が取れるといい
Google Home が多くの面で悪くなったように感じるという点には同意する。AnyList をよく使っている身として、その変更は特に不満だった
インターネット接続がなくてもかなりうまくやる。ただし音声入力は例外で、インターネットがあるときのほうがずっと良い
ただ Amazon の立場なら、この1年のどの時点の技術水準で線を引き、それを基盤に製品の反復開発を始めたのかは微妙なところ
それでも Alexa は「X をオンにして Y をオフにして」「X を Y 秒間オンにして」のように、2つのことを同時に処理することはできる
時間がたつにつれて悪くなったと感じていて、マイクにほこりがたまると音声キャプチャが悪くなる可能性があるという投稿を見て、ほこり取りも使ってみたが解決しなかった
アプリで Alexa が実際にキャプチャした音声を聞いてみると、Echo と Echo Dot 第4世代のどちらも マイク品質が本当に悪い。先月、低品質音源で Whisper をかなりテストしたが、Amazon が使っているものより、そうしたモデルのほうが自分の声をはるかによく解釈しそうだ
Alexa はひどく、どんどん賢くなくなっている。設定を完全に無視して、オフにした設定をまたオンにすることもある
質問に答えず、別の新機能を試すかと聞いてくることが多く、Flash Briefing の一覧から明示的に削除したニュースチャンネルを勝手に再追加することもある
ここまでひどいものが続いているのが本当に理解できない
https://feycher.com もたった今作ったところで、似ているが リアルタイムのリップシンクにも対応している。興味があれば話せる
オープンソースの音声オーケストレーションである bolna も開発中: https://github.com/bolna-ai/bolna
OpenAI が音声モードで使っている LiveKit Agents もオープンソース:
https://github.com/livekit/agents
音声活動検出(VAD) 全般がとても興味深く、特に話者が複数いる場合にどう動作するのかをもっと学びたい
これを使って電話通話のリアルタイム翻訳をするには、どう始めればよいだろうか?
つまり、ボットを通話に接続したうえで電話番号へ発信するよう指示でき、実際にそのように動作する
先ほど発表された GPT-4o のリアルタイム音声が、このようなプロジェクトにどんな影響を与えるのか気になる
リアルタイム多言語翻訳会話のデモは本当に驚くべきものだった
GPT-4o の音声入力が API で提供され次第、Pipecat に 4o サポートを追加する予定。双方向のリアルタイム音声には、新しい WebSocket か WebRTC のエンドポイントが必要になりそう
大規模言語モデルと音声合成・音声認識モデルを低遅延でつなぐパイプラインを作るのも悪くはないが、GPT-4o のようなネイティブマルチモーダルモデルと比べると明らかに見劣りするように見える
未来は、音声や話し方のニュアンスを理解できる音声ネイティブモデルであり、その未来はそれほど遠くもない