SDK del servidor de conectores de audio
Visión general
Esta guía explica cómo instalar y configurar el SDK de Vonage Audio Connector Server para construir un punto final WebSocket del lado del servidor que envíe y reciba audio PCM en tiempo real desde una sesión de sesión de Vonage Video.
Utilice este SDK para conectar el audio de sesiones en directo a servicios de IA de terceros, por ejemplo, para crear un asistente conversacional de IA. conversacional, ejecutar transcripciones en directo o realizar análisis de audio en tiempo real.
Antes de empezar
Antes de instalar el SDK, asegúrese de tener:
- Python instalado en su servidor
- Una Account de Vonage con Acceso a la Video API
- Un ID de sesión de Vonage Video y un token de sesión válido
- (Opcional) Un certificado SSL para implementaciones WebSocket de producción
Instalar el SDK
Instale el paquete desde PyPI:
Configurar e iniciar el servidor
Crear un
AudioConnectorServerConfigcon su host, puerto, contexto SSL y ciclo de vida del ciclo de vida:video = Video() config = AudioConnectorServerConfig( host="localhost", port=8765, ssl=ssl_context, on_start=on_start, on_stop=on_stop, on_connect=on_connect )Inicie el servidor:
server_handle = await video.start_audio_connector_server(config)
Gestión de eventos de conexión
Dentro de tu on_connect callback, registro de mensajes, desconexión y controladores de errores para cada
conexión de cliente:
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}")
Enviar audio de vuelta a la sesión
Utilice el objeto cliente dentro de sus manejadores para devolver datos a la sesión de Video.
Para enviar un mensaje de control JSON:
await client.send_json_packet(string_json)
Para enviar audio PCM de vuelta a la sesión:
El SDK gestiona la temporización y el almacenamiento en búfer de los fotogramas basándose en bytes_per_sample y frames_ms.
Establecer flush_buffer=True para descartar cualquier audio almacenado antes de añadir nuevos datos.
await client.send_audio_buffer(
audio_data,
bytes_per_sample=640,
frames_ms=20,
pad_last_frame=True,
flush_buffer=False
)
Otros métodos de cliente disponibles:
client.info() # Retrieve connection metadata from request headers
client.flush_buffer() # Flush buffered packets to the WebSocket client
client.disconnect() # Close the WebSocket connection
Ver también
- SDK del servidor de conectores de audio - Qué es Qué es el SDK, cómo funciona y cuándo utilizarlo
- Conector de audio - Cómo el Conector de Audio transmite audio desde una sesión de vídeo a un WebSocket
- Serializador de audio de Vonage para Pipecat - Conectar Pipecat canaliza la IA de voz a las sesiones de Vonage
- Aplicaciones de ejemplo del SDK del servidor del conector de audio - Ejemplos completos en GitHub