統合
Amazon Nova 2 Sonic は、さまざまなフレームワークやプラットフォームと統合して、会話型 AI アプリケーションを構築できます。このような統合により、一般的なユースケース向けに構築済みのコンポーネントと簡略化 API がもたらされます。
Strands Agents
Strands Agents は、AI エージェントの構築と実行にモデル駆動型のアプローチを採用する、シンプルで強力な SDK です。シンプルな会話アシスタントから複雑な自律型ワークフロー、ローカル開発から本番デプロイまで、Strands Agents はニーズに合わせてスケールします。
Strands フレームワークに関する包括的なドキュメントについては、Strands の公式ドキュメント
Strands BidiAgent は、永続ストリーミング接続を通じてリアルタイムのオーディオおよびテキストインタラクションを提供します。従来のリクエスト/レスポンスパターンとは異なり、このエージェントは中断、同時処理、継続的なオーディオレスポンスをサポートして、長時間実行される会話を維持します。
前提条件:
-
Python 3.8 以降がインストールされていること。
-
Amazon Bedrock へのアクセスで設定された AWS の認証情報
-
Python async/await 構文に関する基本的な知識
コードサンプル:
インストール:
必要なパッケージをインストールします。
pip install strands-agents strands-agents-tools
次の例を実行します。
import asyncio from strands.experimental.bidi.agent import BidiAgent from strands.experimental.bidi.io.audio import BidiAudioIO from strands.experimental.bidi.io.text import BidiTextIO from strands.experimental.bidi.models.novasonic import BidiNovaSonicModel from strands_tools import calculator async def main(): """Test the BidirectionalAgent API.""" # Audio and Text input/output utility audio_io = BidiAudioIO(audio_config={}) text_io = BidiTextIO() # Nova Sonic model model = BidiNovaSonicModel(region="us-east-1") async with BidiAgent(model=model, tools=[calculator]) as agent: print("New BidiAgent Experience") print("Try asking: 'What is 25 times 8?' or 'Calculate the square root of 144'") await agent.run( inputs=[audio_io.input()], outputs=[audio_io.output(), text_io.output()] ) if __name__ == "__main__": try: asyncio.run(main()) except KeyboardInterrupt: print("\nConversation ended by user") except Exception as e: print(f"Error: {e}") import traceback traceback.print_exc()
from strands.experimental.bidi.agent import BidiAgent from strands.experimental.bidi.io.audio import BidiAudioIO from strands.experimental.bidi.io.text import BidiTextIO from strands.experimental.bidi.models.novasonic import BidiNovaSonicModel from strands_tools import calculator
-
BidiAgent: 双方向会話を調整するメインエージェントクラス
-
BidiAudioIO: 音声インタラクションの音声入出力を処理します
-
BidiTextIO: 文字起こしとレスポンスのテキスト出力を提供します
-
BidiNovaSonicModel Nova 2 Sonic モデルラッパー
-
計算ツール: 数学演算用の構築済みツール
audio_io = BidiAudioIO(audio_config={}) text_io = BidiTextIO()
BidiAudioIO はマイクの入力とスピーカーの出力を管理し、BidiTextIO はテキスト文字起こしとレスポンスをコンソールに表示します。
model = BidiNovaSonicModel(region="us-east-1")
Nova Sonic モデルインスタンスを作成します。region パラメータは、モデルがデプロイされる AWS リージョンを指定します。
async with BidiAgent(model=model, tools=[calculator]) as agent: await agent.run( inputs=[audio_io.input()], outputs=[audio_io.output(), text_io.output()] )
エージェントは以下を使用して作成されます。
-
モデル: 使用する Nova 2 Sonic モデル
-
ツール: エージェントが呼び出すことができるツールのリスト (計算ツールなど)
-
入力: マイクからの音声入力
-
出力: スピーカーへの音声出力とコンソールへのテキスト出力
フレームワークの統合
Amazon Nova 2 Sonic は、さまざまなフレームワークやプラットフォームと統合して、高度な音声アプリケーションを構築できます。次の例は、一般的なフレームワークとの統合パターンを示しています。
Amazon Bedrock AgentCore は、エンタープライズグレードのセキュリティとスケーラビリティを備えた Nova 2 Sonic アプリケーションをデプロイするためのマネージドランタイム環境を提供します。AgentCore は、インフラストラクチャ、認証、WebSocket 接続を処理することで、リアルタイムの音声 AI アプリケーションのデプロイを簡素化します。
主な特徴:
-
双方向ストリーミング – リアルタイムのイベント処理と低レイテンシー通信を行える Nova Sonic の全二重ストリーミングインターフェイスのネイティブサポート。
-
WebSocket インフラストラクチャ – 自動スケーリング、接続管理、エラー復旧を行える本番環境対応の WebSocket サーバー。
-
コンテナのデプロイ – 水平スケーリングと独立したバージョニングを使用して、Nova Sonic アプリケーションをコンテナとしてマネージドインフラストラクチャにデプロイします。
-
エンタープライズセキュリティ – IAM と SigV4 によるきめ細かな認証、VPC 分離、包括的な監査ログ記録。
このアーキテクチャは、クライアントアプリケーションが SigV4 認証を使用して WebSocket 経由で AgentCore Runtime に接続する方法を示しています。コンテナ化された環境には、WebSocket サーバー、アプリケーションロジック、Nova Sonic クライアントが含まれ、すべて双方向ストリーミング API を介して Nova Sonic と通信します。
利点:
-
オペレーションの簡素化: AgentCore がインフラストラクチャ、スケーリング、信頼性を管理している間、アプリケーションロジックに焦点を当てます。
-
エンタープライズセキュリティ: 本番デプロイ用の組み込み認証、認可、コンプライアンス機能。
-
コスト効率: 自動スケーリングとリソース最適化で使用した分のみ支払います。
-
デベロッパーの生産性: マネージド WebSocket インフラストラクチャとコンテナデプロイにより、本番稼働までの時間を短縮します。
ユースケース
-
安全な認証を使用したカスタマーサービス音声アシスタント
-
IAM 統合を必要とするエンタープライズ音声アプリケーション
-
分離されたデプロイによるマルチテナント音声プラットフォーム
-
コンプライアンスと監査証跡を必要とする音声対応アプリケーション
AgentCore を使用した Nova Sonic のデプロイに関する詳細なドキュメントについては、Amazon Bedrock AgentCore ドキュメント
LiveKit は、リアルタイムのオーディオおよび動画アプリケーションを構築するためのオープンソースプラットフォームです。Amazon Nova 2 Sonic との統合により、デベロッパーは複雑なオーディオパイプラインやシグナリングプロトコルを管理することなく、会話型音声インターフェイスを構築できます。
実装例とコード例の詳細については、LiveKit AWS 統合ドキュメント
仕組み:
-
クライアントレイヤー: ウェブ、モバイル、またはデスクトップアプリケーションは、音声キャプチャ、WebRTC ストリーミング、再生を処理する LiveKit のクライアント SDK を使用して接続します。
-
LiveKit サーバー: リアルタイム通信ハブとして機能し、WebRTC 接続の管理、オーディオストリームのルーティング、低レイテンシーの最適化によるセッション状態の処理を行います。
-
LiveKit エージェント: サーバーから音声を受信し、Nova Sonic プラグインを介して処理し、レスポンスをストリーミングバックする Python ベースのエージェント。音声アクティビティ検出やターン管理などの組み込み機能が含まれています。
-
Amazon Nova 2 Sonic: 双方向ストリーミング API を通じてオーディオストリームを処理し、音声認識、自然言語理解を実行し、合成された音声で会話レスポンスを生成します。
Pipecat は、音声およびマルチモーダル会話 AI アプリケーションを構築するためのフレームワークです。モジュール式のパイプラインベースのアーキテクチャを提供し、複数のコンポーネントをオーケストレーションして、Amazon Nova Sonic やその他の AWS サービスでインテリジェントな音声アプリケーションを作成します。
実装例とコードサンプルの詳細については、PipeCat AWS 統合ドキュメント
主な特徴:
-
パイプラインアーキテクチャ: ASR、NLU、TTS などの音声 AI コンポーネントを作成するためのモジュラー Python ベースのフレームワーク。
-
Pipecat フロー: 複雑な会話ロジックとツール実行を構築するための状態管理フレームワーク。
-
WebRTC サポート: リアルタイムオーディオストリーミング用の Daily およびその他の WebRTC プロバイダーとの統合が組み込まれています。
-
AWS 統合: Amazon Bedrock、Amazon Transcribe、Amazon Polly のネイティブサポート。
アーキテクチャには以下が含まれます。
-
WebRTC トランスポート: クライアントデバイスとアプリケーションサーバー間のリアルタイムのオーディオストリーミング。
-
音声アクティビティ検出 (VAD): 設定可能な音声検出とノイズ抑制を備えた Silero VAD。
-
音声認識: Amazon Transcribe は、正確でリアルタイムの音声テキスト変換を行います。
-
自然言語の理解: レイテンシー最適化推論を使用した Bedrock 上の Amazon Nova Pro。
-
ツールの実行: API 統合とバックエンドサービスコールの Pipecat フロー。
-
レスポンス生成: 一貫性のあるコンテキスト対応レスポンスのための Amazon Nova Pro。
-
テキスト読み上げ: リアルな音声出力の生成音声を備えた Amazon Polly。
AWS CDK (Cloud Development Kit) で Infrastructure as Code を使用して、Nova Sonic アプリケーションを AWS にデプロイします。このアプローチは、ベストプラクティスが組み込まれた、バージョン管理された反復可能なデプロイを実現します。
デプロイオプション
-
Amazon ECS (Elastic Container Service): Application Load Balancer 統合、自動スケーリング、サーバーレス Fargate 実行によるフルマネージドコンテナオーケストレーション。
-
Amazon EKS (Elastic Kubernetes Services): 複雑なオーケストレーション、高度なネットワーキング、マルチリージョンデプロイ、広範なツールエコシステムのためのマネージド Kubernetes。
-
AWS CDK: AWS CDK を使用すると、使い慣れたプログラミング言語を使用してクラウドインフラストラクチャを定義できます。
AWS CDK で Nova Sonic をデプロイする完全で本番環境に対応した例については、GitHub の「Speech-to-Speech CDK サンプル
-
TypeScript を使用して CDK インフラストラクチャのセットアップを完了する
-
リアルタイム通信のための WebSocket サーバーの実装
-
ECS と Fargate を使用したコンテナのデプロイ
-
WebSocket サポート用の Application Load Balancer 設定
-
VPC ネットワークとセキュリティグループのセットアップ
-
モニタリングおよびログ記録用の CloudWatch
-
本番デプロイのベストプラクティス
マルチエージェントアーキテクチャは、複雑なタスクを処理する AI アシスタントを設計するために広く使用されているパターンです。Nova 2 Sonic を搭載した音声アシスタントでは、このアーキテクチャは複数の特殊なエージェントを調整します。各エージェントは独立して動作し、並列処理、モジュラー設計、スケーラブルなソリューションを可能にします。
Nova Sonic は、マルチエージェントシステムのオーケストレーターとして機能し、次の 2 つの主要な機能を実行します。
会話フロー管理: 会話の次のステップに進む前に、必要な情報がすべて収集されていることを確認します。
インテント分類: ユーザーの問い合わせを分析し、適切な特殊サブエージェントにルーティングします。
上記の図は、マルチエージェントアーキテクチャを使用する銀行業務の音声アシスタントを示しています。会話フローは、挨拶とユーザー名の収集から始まり、専門のサブエージェントを通じて銀行や住宅ローンに関連する問い合わせを処理します。
会話フローの例:
-
ユーザーは音声アシスタントに接続します。
-
Nova 2 Sonic: 「こんにちは! お名前をお伺いできますか?」
-
ユーザー:「ジョンと申します」
-
Nova 2 Sonic:「こんにちは、ジョンさん。今日はどのようなご用件でしょうか」
-
ユーザー:「アカウント残高を確認したいと思います」
-
Nova 2 Sonic: [認証エージェントへのルーティング]
-
認証エージェント:「アカウント ID を教えてください」
-
ユーザー:「12345 です」
-
認証エージェント: [アイデンティティの検証]
-
Nova 2 Sonic: [銀行エージェントへのルーティング]
-
銀行エージェント: 「現在の残高は 5,431,10 USD です」
この例では、Amazon Bedrock AgentCore にデプロイされた Strands Agents フレームワークを使用するサブエージェントを示していますが、アーキテクチャは柔軟です。以下を選択することができます。
-
任意のエージェントフレームワーク
-
任意の LLM プロバイダー
-
カスタムホスティングオプション
-
さまざまなオーケストレーションパターン
利点:
-
モジュール性: 各エージェントは特定のドメインに焦点を当てているため、システムの保守と更新が容易になります。
-
スケーラビリティ: 既存のエージェントを変更せずに新しいエージェントを追加すると、システムのニーズに合わせて拡張できます。
-
並列処理: 複数のエージェントが同時に作業できるため、複雑なクエリのレスポンス時間が短縮されます。
-
専門分野: 各エージェントは、最も適切なツールとナレッジベースを使用して、特定のタスクに合わせて最適化できます。
-
障害分離: あるエージェントが失敗した場合、他のエージェントは引き続き機能し、システム全体の信頼性が向上します。
詳細とコード例については、このブログ
実践的なサンプルについては、「Nova Sonic ワークショップのマルチエージェントラボ
Amazon Nova 2 Sonic はテレフォニープロバイダーと統合され、通話を介してアクセス可能な AI を活用した音声アプリケーションを可能にします。このガイドでは、コンタクトセンターのソリューションや音声エージェントを構築するための Twilio、Vonage、その他の SIP ベースのシステムとの統合について説明します。
Twilio: プログラム可能な音声およびメディアストリーミング機能を備えたクラウド通信プラットフォーム。
Vonage: 音声、WebSocket オーディオストリーミング、SIP 接続を行えるグローバル通信 API。
AWS は、リアルタイム分析とテレフォニー統合を行うコンタクトセンター環境で Nova Sonic を実証する包括的なサンプル実装を提供します。