2 ポイント 投稿者 GN⁺ 2024-05-14 | 1件のコメント | WhatsAppで共有
  • 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内で構成できるようにする
  • Voice UI Kitは、音声AIアプリケーションを素早く構築するためのコンポーネント、フック、テンプレートのコレクション
  • Pipecat CLIpipecat-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 inituv 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で設定する
    • localgstreamerのような一部extrasにはシステム依存関係が必要な場合がある
  • テストはリポジトリルートでuv run pytestを実行し、特定のテストはuv run pytest tests/test_name.pyで実行する

コントリビューションと支援

  • バグはGitHub issueで報告し、機能アイデアはDiscord discussionで議論を始める
  • コードへの貢献はCONTRIBUTING.mdガイドに従い、ドキュメント改善はDocsへのPRで受け付けている
  • 支援を受けられる窓口はDiscorddocsX

1件のコメント

 
GN⁺ 2024-05-14
Hacker News の意見
  • オープンソース実装が出てきたのはうれしいし、https://www.retellai.com/https://fixie.ai/ のようなスタートアップがこの領域に数多く参入しているのを見てきた
    結局はいつも 音声対音声モデルが必要になるが、現在のアプローチはたいてい、音声→テキスト→テキスト→音声で、複数のエージェントが「聞く」1つと「話す」1つを担当する形に見える
    最近発表された gpt-4o とどう噛み合うのか楽しみ

    • リストには https://vapi.ai も追加する価値がある。ツール群がかなり良い
      この分野のさまざまなレイヤーとプレイヤーを追い続けようとしているところ
    • fixie.ai では SLM、つまり音声言語モデルに取り組んでいて、近いうちに触れるものを公開する予定
    • 音声対音声モデルがどう動くのか気になる。話し方のニュアンスを捉えるために、はるかに多くのトークンを使う方式なのだろうか?
  • 素晴らしいが、オープンソース側にもデモで見たような オーディオ対オーディオモデルが本当に必要だ。似たものを知っている人がいるか気になる
    追記: 誰かが1つ見つけた: https://news.ycombinator.com/item?id=40346992

    • いま作業中の Pipecat サンプルの大半は 音声対音声 に焦点を当てている。サンプルはその実装方法を案内しており、ホストされたストーリーテリングのサンプルもすぐ試せる: https://storytelling-chatbot.fly.dev/
      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 を使っているが、Echo Frames も持っているので Alexa もかなり定期的に使っている。主な用途は ホームオートメーションで、このシナリオでは Alexa のほうが Google Home よりずっと反応が良い
      Google Home が多くの面で悪くなったように感じるという点には同意する。AnyList をよく使っている身として、その変更は特に不満だった
    • 一部の作業では Siri も悪くない。例えば「x にメッセージを送って」「家に着いたら x するようにリマインドして」のようなもの
      インターネット接続がなくてもかなりうまくやる。ただし音声入力は例外で、インターネットがあるときのほうがずっと良い
    • 音声アシスタントには越えなければならない 質的な飛躍があるが、18か月前まではそれが不可能だったように感じる。なので製品自体が停滞していたのも事実だと思う
      ただ Amazon の立場なら、この1年のどの時点の技術水準で線を引き、それを基盤に製品の反復開発を始めたのかは微妙なところ
    • Siri と Alexa の両方を使っているが、限られた機能だけを使う基準では、Alexa をより多く使っていても Alexa のほうが Siri より悪いと思う
      それでも Alexa は「X をオンにして Y をオフにして」「X を Y 秒間オンにして」のように、2つのことを同時に処理することはできる
      時間がたつにつれて悪くなったと感じていて、マイクにほこりがたまると音声キャプチャが悪くなる可能性があるという投稿を見て、ほこり取りも使ってみたが解決しなかった
      アプリで Alexa が実際にキャプチャした音声を聞いてみると、Echo と Echo Dot 第4世代のどちらも マイク品質が本当に悪い。先月、低品質音源で Whisper をかなりテストしたが、Amazon が使っているものより、そうしたモデルのほうが自分の声をはるかによく解釈しそうだ
    • Alexa、つまり Amazon Echo Show を使っていて、用途はニュースブリーフィング、天気確認、音楽再生、タイマー設定くらい
      Alexa はひどく、どんどん賢くなくなっている。設定を完全に無視して、オフにした設定をまたオンにすることもある
      質問に答えず、別の新機能を試すかと聞いてくることが多く、Flash Briefing の一覧から明示的に削除したニュースチャンネルを勝手に再追加することもある
      ここまでひどいものが続いているのが本当に理解できない
  • https://feycher.com もたった今作ったところで、似ているが リアルタイムのリップシンクにも対応している。興味があれば話せる

  • オープンソースの音声オーケストレーションである bolna も開発中: https://github.com/bolna-ai/bolna

  • OpenAI が音声モードで使っている LiveKit Agents もオープンソース:
    https://github.com/livekit/agents

  • 音声活動検出(VAD) 全般がとても興味深く、特に話者が複数いる場合にどう動作するのかをもっと学びたい

  • これを使って電話通話のリアルタイム翻訳をするには、どう始めればよいだろうか?

    • Daily がいまは発信と着信をサポートしている: https://docs.daily.co/guides/products/dial-in-dial-out#main
      つまり、ボットを通話に接続したうえで電話番号へ発信するよう指示でき、実際にそのように動作する
    • 電話通話をなぜリアルタイム翻訳したいのか気になる。そして Whisper がある
  • 先ほど発表された GPT-4o のリアルタイム音声が、このようなプロジェクトにどんな影響を与えるのか気になる
    リアルタイム多言語翻訳会話のデモは本当に驚くべきものだった

    • Pipecat には、今となっては古代の関節炎を患ったモデルになった GPT-4 Turbo を使った翻訳デモがある :-) https://github.com/pipecat-ai/pipecat/tree/main/examples/tra...
      GPT-4o の音声入力が API で提供され次第、Pipecat に 4o サポートを追加する予定。双方向のリアルタイム音声には、新しい WebSocket か WebRTC のエンドポイントが必要になりそう
    • 同じ疑問がある
      大規模言語モデルと音声合成・音声認識モデルを低遅延でつなぐパイプラインを作るのも悪くはないが、GPT-4o のようなネイティブマルチモーダルモデルと比べると明らかに見劣りするように見える
      未来は、音声や話し方のニュアンスを理解できる音声ネイティブモデルであり、その未来はそれほど遠くもない