SDK du serveur de connecteurs audio

Vue d'ensemble

Ce guide explique comment installer et configurer le SDK Vonage Audio Connector Server pour créer un point d'extrémité WebSocket côté serveur qui envoie et reçoit de l'audio PCM en temps réel d'une session vidéo session vidéo Vonage.

Utilisez ce SDK pour connecter des sessions audio en direct à des services d'IA tiers, par exemple pour créer un assistant d'IA conversationnel, exécuter une transcription en direct ou effectuer une analyse audio en temps réel. un assistant conversationnel d'IA, exécuter une transcription en direct ou effectuer une analyse audio en temps réel.

Avant de commencer

Avant d'installer le SDK, assurez-vous que vous avez :

  • Python installé sur votre serveur
  • Un Account Vonage avec Accès à la Video API
  • Un identifiant de session Vonage Video et un jeton de session valide
  • (Facultatif) Un certificat SSL pour les déploiements WebSocket de production

Installer le SDK

Installez le paquetage à partir de PyPI :

pip install vonage-audio-connector-server

Configuration et démarrage du serveur

  1. Créer un AudioConnectorServerConfig avec votre hôte, votre port, votre contexte SSL et vos callbacks de cycle de vie du cycle de vie :

    video = Video()
    
    config = AudioConnectorServerConfig(
        host="localhost",
        port=8765,
        ssl=ssl_context,
        on_start=on_start,
        on_stop=on_stop,
        on_connect=on_connect
    )
    
  2. Démarrer le serveur :

    server_handle = await video.start_audio_connector_server(config)
    

Gestion des événements de connexion

À l'intérieur de votre on_connect callback, enregistrer les messages, la déconnexion et les gestionnaires d'erreur pour chaque connexion client. connexion client :

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

Renvoi de l'audio vers la session

Utilisez l'objet client dans vos gestionnaires pour renvoyer des données à la session vidéo.

Pour envoyer un message de contrôle JSON :

await client.send_json_packet(string_json)

Pour renvoyer l'audio PCM dans la session :

Le SDK gère la synchronisation et la mise en mémoire tampon des trames en fonction des éléments suivants bytes_per_sample et frames_ms. Ensemble flush_buffer=True afin d'écarter les données audio mises en mémoire tampon avant d'ajouter de nouvelles données.

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

Autres méthodes disponibles pour les clients :

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

Voir aussi