Audio Connector Server SDK

Übersicht

Diese Anleitung erklärt, wie Sie das Vonage Audio Connector Server SDK installieren und konfigurieren, um einen serverseitigen WebSocket-Endpunkt zu erstellen, der Echtzeit-PCM-Audio von einer Vonage Video-Sitzung sendet und empfängt. Vonage Video-Sitzung sendet und empfängt.

Verwenden Sie dieses SDK, um Live-Audiositzungen mit KI-Diensten von Drittanbietern zu verbinden - zum Beispiel, um einen KI-Assistenten aufzubauen, eine Live-Transkription durchzuführen oder eine Audioanalyse in Echtzeit vorzunehmen.

Bevor Sie beginnen

Bevor Sie das SDK installieren, vergewissern Sie sich, dass Sie Folgendes haben:

  • Python auf Ihrem Server installiert
  • Ein Vonage Account mit Video API-Zugang
  • Eine Vonage Video-Sitzungs-ID und ein gültiges Sitzungs-Token
  • (Optional) Ein SSL-Zertifikat für produktive WebSocket-Einsätze

Installieren Sie das SDK

Installieren Sie das Paket von PyPI:

pip install vonage-audio-connector-server

Konfigurieren und Starten des Servers

  1. Erstellen einer AudioConnectorServerConfig mit Ihrem Host, Port, SSL-Kontext und Lebenszyklus Rückrufe:

    video = Video()
    
    config = AudioConnectorServerConfig(
        host="localhost",
        port=8765,
        ssl=ssl_context,
        on_start=on_start,
        on_stop=on_stop,
        on_connect=on_connect
    )
    
  2. Starten Sie den Server:

    server_handle = await video.start_audio_connector_server(config)
    

Handhabung von Verbindungsereignissen

Im Inneren Ihres on_connect Callback, Register Message, Disconnect und Error Handler für jede Client-Verbindung:

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}")

Audio zurück in die Sitzung senden

Verwenden Sie das Client-Objekt in Ihren Handlern, um Daten an die Videositzung zurückzugeben.

So senden Sie eine JSON-Kontrollnachricht:

await client.send_json_packet(string_json)

So senden Sie PCM-Audio zurück in die Sitzung:

Das SDK verwaltet das Frame-Timing und die Pufferung basierend auf bytes_per_sample und frames_ms. Einstellung flush_buffer=True um alle gepufferten Audiodaten zu verwerfen, bevor neue Daten angehängt werden.

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

Andere verfügbare Client-Methoden:

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

Siehe auch