AI News HubLIVE
サイト内リライト2 分で読了

Amazon SageMaker AI と vLLM を使用したリアルタイム音声アプリケーションの構築

音声エージェント、ライブキャプション、コンタクトセンター分析、アクセシビリティツールはすべて、アプリケーションがオーディオをストリーミングし、同時にトランスクリプトを受信するリアルタイム音声認識に依存しています。従来の要求応答推論では、音声全体が受信されるまで文字起こしを開始できず、レイテンシが発生してリアルタイム体験が損なわれます。

ソースAWS Machine Learning Blog著者: Christian Kamwangala

リアルタイム音声認識は、音声エージェント、ライブキャプション、コンタクトセンター分析、アクセシビリティツールなどの中核技術です。従来の要求応答型推論では、音声ファイル全体がアップロードされるまで文字起こしを開始できず、遅延が発生してリアルタイム性が損なわれます。

2025年11月より、Amazon SageMaker AI は双方向ストリーミング機能を提供し、クライアントとモデルコンテナ間で単一の永続的接続を介して連続的双方向データフローを可能にしました。同時に、vLLM の Realtime API は WebSocket を使用したリアルタイム音声文字起こしを実現します。本記事では、これらの機能を組み合わせ、Mistral AI の Voxtral-Mini-4B-Realtime-2602 モデルを SageMaker AI エンドポイントにデプロイし、フルマネージドなリアルタイム音声テキスト変換サービスを構築する方法を紹介します。

プロダクションレベルの音声 AI アプリケーションを構築するには、厳格なレイテンシ要件を満たす複数のインフラストラクチャコンポーネントが必要です。vLLM はオープンソースの高性能モデルサーバーとして、Realtime API によるネイティブ WebSocket ストリーミングと、分割型 CUDA グラフ実行による GPU カーネル起動オーバーヘッドの削減を提供します。SageMaker AI はマネージドインフラストラクチャとして、HTTP/2 と WebSocket 間のプロトコル変換を自動的に処理し、ヘルスモニタリングや運用ツールを提供します。

ソリューションは3層で構成されます。クライアントは HTTP/2 を使用して SageMaker AI ランタイムエンドポイントに接続し、vLLM Realtime プロトコルの JSON メッセージを送信します。SageMaker AI はこれらのメッセージを自動的に WebSocket テキストフレームに変換し、コンテナに転送します。コンテナ内では軽量な FastAPI アプリケーションがポート8080で待機し、SageMaker AI からの WebSocket 接続を受け付け、vLLM の Realtime API(ポート8081)にメッセージを中継します。

Realtime API のプロトコルフローは次のとおりです。クライアントが WebSocket エンドポイントに接続すると、サーバーから session.created イベントが送信されます。その後、クライアントは base64 エンコードされた PCM16 オーディオチャンクを含む input_audio_buffer.append イベントを送信し、サーバーは transcription.delta イベントでインクリメンタルな文字起こしテキストを返します。モデルは十分なオーディオコンテキストを受け取るとすぐに文字起こしを開始し、音声の完全なアップロードを待つ必要はありません。

デプロイ手順には、カスタム Docker コンテナの構築(SageMaker AI vLLM Deep Learning Container をベースに双方向ストリーミングラベルと WebSocket ブリッジを追加)、モデル環境変数の設定(最大コンテキスト長や CUDA グラフモードなど)、そして SageMaker AI エンドポイントの作成が含まれます。提供される Python クライアントと Gradio デモを使用して、リアルタイムの音声ストリーミングと文字起こしをテストできます。