bolna-ai/bolna
Conversational voice AI agents
解決する課題
音声アシスタントをゼロから構築するには、電話の受信、音声の文字起こし、何を言うかを決定する LLM の実行、音声の合成、そしてリアルタイムでのストリーミングなど、多くの要素を組み合わせる必要があります。Bolna はそのオーケストレーションを処理するため、シンプルな JSON 設定または数行の Python で完全な音声エージェントを定義し、既に使用している音声、言語、テレフォニープロバイダーをプラグインできます。
仕組み
Bolna は、WebSocket 上のデータストリームとして会話パイプラインを実行します。オーディオはテレフォニープロバイダー(Twilio、Plivo など)から入り、ASR プロバイダー(Deepgram、Azure、またはセルフホストサービス)によって文字起こしされ、文字起こしテキストは LLM(OpenAI、DeepSeek、Llama、Mistral など、LiteLLM 経由)に送信され、モデルの応答は TTS プロバイダー(ElevenLabs、AWS Polly、OpenAI など)によって音声に変換され、発信者にストリーミングで返されます。各段階でプロバイダーとモデルを選択してエージェントを定義すると、Bolna がそれらを接続します。README には、Assistant を作成し、トランスクライバー、LLM エージェント、シンセサイザーを含む会話タスクを追加し、それをチャンクの非同期ストリームとして実行する最小限の Python 例が示されています。電話発信の場合、ローカル Docker セットアップにより、テレフォニーサーバー、Bolna サーバー、トンネリング用の ngrok、エージェントデータを永続化するための Redis が提供されます。
対象者
音声ベースの会話アシスタント(電話サポートボット、音声インターフェース、または電話で人と話す自動化)を迅速に構築したい開発者とチーム向けです。自分で実行できるオープンソースのオーケストレーションレイヤーを求め、新しいプロバイダーで拡張したり、独自のホスト型またはエンタープライズソリューションのバックボーンとして使用したい人に適しています。
ハイライト
- プロバイダー非依存:エージェントロジックを変更せずに ASR、LLM、TTS プロバイダーを組み合わせて使用できます。
- ストリーミングファースト:オーディオとテキストが非同期に流れ、リアルタイムのインタラクションを可能にします。
- シンプルな API:数行の Python でエージェントを定義するか、JSON で設定します。
- 完全なテレフォニーテスト環境のためのローカル Docker セットアップ。
- 拡張可能:基本クラスを拡張して新しいテレフォニーまたは音声プロバイダーを追加できます。
- 活発なコミュニティ:MIT ライセンス、PR 歓迎、Discord チャンネルあり。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト