SDK do Servidor de Conectores de Áudio
Visão geral
Este guia explica como instalar e configurar o SDK do Vonage Audio Connector Server para criar um endpoint WebSocket do lado do servidor que envie e receba áudio PCM em tempo real de uma sessão do Vonage Video.
Use este SDK para conectar o áudio de sessões ao vivo a serviços de IA de terceiros — por exemplo, para criar um assistente de IA conversacional, executar transcrição ao vivo ou realizar análises de áudio em tempo real.
Antes de começar
Antes de instalar o SDK, certifique-se de que você tenha:
- Python instalado no seu servidor
- Um account da Vonage com Acesso à Video API
- Um ID de sessão do Vonage Video e um token de sessão válido
- (Opcional) Um certificado SSL para implantações de WebSocket em ambiente de produção
Instale o SDK
Instale o pacote a partir do PyPI:
Configurar e iniciar o servidor
-
Criar um
AudioConnectorServerConfigcom seu host, porta, contexto SSL e callbacks de ciclo de vida:Copiarvideo = Video() config = AudioConnectorServerConfig( host="localhost", port=8765, ssl=ssl_context, on_start=on_start, on_stop=on_stop, on_connect=on_connect ) -
Inicie o servidor:
Copiarserver_handle = await video.start_audio_connector_server(config)
Tratar eventos de conexão
Dentro do seu on_connect manipuladores de retorno de chamada, de registro de mensagem, de desconexão e de erro para cada
conexão 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 o áudio de volta para a sessão
Use o objeto cliente dentro de seus manipuladores para retornar dados à sessão de vídeo.
Para enviar uma mensagem de controle em JSON:
await client.send_json_packet(string_json)
Para enviar o áudio PCM de volta para a sessão:
O SDK gerencia a sincronização dos quadros e o armazenamento em buffer com base em bytes_per_sample e frames_ms.
Conjunto flush_buffer=True para descartar qualquer áudio armazenado no buffer antes de acrescentar novos dados.
await client.send_audio_buffer(
audio_data,
bytes_per_sample=640,
frames_ms=20,
pad_last_frame=True,
flush_buffer=False
)
Outros métodos disponíveis no cliente:
client.info() # Retrieve connection metadata from request headers
client.flush_buffer() # Flush buffered packets to the WebSocket client
client.disconnect() # Close the WebSocket connection
Veja também
- SDK do Servidor de Conectores de Áudio — O que é o SDK, como ele funciona e quando usá-lo
- Conector de áudio — Como o Audio Connector transmite áudio de uma sessão de vídeo para um WebSocket
- Serializador de Áudio da Vonage para o Pipecat — Conecte os pipelines de IA de voz do Pipecat às sessões da Vonage
- Applications de exemplo do SDK do Audio Connector Server — Exemplos completos e funcionais no GitHub