オーディオコネクタサーバーSDK

概要

このガイドでは、Vonage Audio Connector Server SDK をインストールして構成する方法を説明します。 からリアルタイムの PCM オーディオを送受信するサーバ側の WebSocket エンドポイントを構築する方法を説明します。 Vonage Video セッションからリアルタイム PCM オーディオを送受信するサーバ側 WebSocket エンドポイントを構築する方法を説明します。

このSDKを使用して、ライブセッションの音声をサードパーティのAIサービスに接続します。 例えば、会話型AIアシスタントを構築したり、ライブ文字起こしを実行したり、リアルタイムの音声分析を実行したりできます。

始める前に

SDKをインストールする前に、以下を確認してください:

  • サーバーにインストールされているPython
  • のVonageアカウント。 Video APIアクセス
  • Vonage VideoセッションIDと有効なセッション・トークン
  • (オプション) 本番用WebSocketデプロイメント用のSSL証明書

SDKのインストール

PyPIからパッケージをインストールする:

pip install vonage-audio-connector-server

サーバーの設定と起動

  1. を作成する。 AudioConnectorServerConfig をホスト、ポート、SSL コンテキスト、ライフサイクル コールバックを使用します:

    video = Video()
    
    config = AudioConnectorServerConfig(
        host="localhost",
        port=8765,
        ssl=ssl_context,
        on_start=on_start,
        on_stop=on_stop,
        on_connect=on_connect
    )
    
  2. サーバーを起動します:

    server_handle = await video.start_audio_connector_server(config)
    

接続イベントの処理

内部 on_connect 各クライアント接続のコールバック、登録メッセージ、切断、エラーハンドラ クライアント接続の

async def on_connect(client):
    client.set_handler(
        on_message=on_message,
        on_disconnect=on_disconnect,
        on_error=on_error
    )

async def on_message(message):
    print(f"Received Message")

async def on_disconnect():
    print("Client Disconnected.")

async def on_error(error):
    print(f"Error Occurred: {error}")

オーディオをセッションに戻す

ハンドラ内でクライアント オブジェクトを使用して、Video セッションにデータを返します。

JSONコントロール・メッセージを送信する:

await client.send_json_packet(string_json)

PCMオーディオをセッションに送り返す:

SDKは、フレーム・タイミングとバッファリングを次のように管理します。 bytes_per_sample そして frames_ms. セット flush_buffer=True 新しいデータを追加する前に、バッファリングされたオーディオを破棄する。

await client.send_audio_buffer(
    audio_data,
    bytes_per_sample=640,
    frames_ms=20,
    pad_last_frame=True,
    flush_buffer=False
)

その他の利用可能なクライアント・メソッド:

client.info()         # Retrieve connection metadata from request headers
client.flush_buffer() # Flush buffered packets to the WebSocket client
client.disconnect()   # Close the WebSocket connection

こちらも参照