Inovação e Tecnologia

Assistente de voz com IA com Python, PJSIP e VoIPstudio (Parte 1)

Tim Meredith
An illustration with a Python, PJSIP and VoIPstudio logos and an AI voice assistant illustration

Um cliente da VoIPstudio precisava que o seu sistema SCADA ligasse automaticamente para os engenheiros quando eram acionados alarmes críticos.

Utilizando um cliente SIP Python de código aberto baseado em PJSIP (PJSUA2), ligaram a sua infraestrutura diretamente a um SIP trunk da VoIPstudio e começaram a efetuar chamadas de voz automáticas acionadas por eventos do sistema.

Posteriormente, expandiram a solução integrando um motor de conversação de IA local, transformando as chamadas de alarme unidirecionais em interações de voz dinâmicas e bidirecionais.

A implementação completa do cliente é de código aberto.

voip-client-python

Este caso demonstra como a VoIPstudio fornece uma base SIP baseada em normas e favorável aos programadores para aplicações de voz programáveis e baseadas em IA.

A evolução da voz: Das pessoas para os sistemas

A voz já não é apenas uma comunicação de humano para humano.

Os ambientes operacionais modernos exigem cada vez mais o escalonamento de sistema para humano:

  • Alarmes de controlo industrial
  • Falhas na infraestrutura de TI
  • Eventos acionados por IoT
  • Limiares de monitorização
  • Alertas de segurança

O e-mail e o SMS são frequentemente insuficientes para incidentes de alta prioridade. A voz continua a ser o canal de escalonamento em tempo real mais fiável.

O caso de utilização inicial: Escalonamento de alarmes SCADA

O cliente opera um sistema SCADA (Supervisory Control and Data Acquisition) que monitoriza infraestruturas críticas.

Requisito:

Quando um alarme prioritário é acionado, o sistema deve ligar imediatamente para o engenheiro responsável e emitir um aviso claro, com os seguintes requisitos de negócio:

  • Sem intervenção humana.
  • Sem marcação manual.
  • Sem PBX de hardware.

Visão Geral da Arquitetura

A solução foi intencionalmente minimalista e baseada em normas:

  • Aplicação Python
  • PJSIP (bindings PJSUA2)
  • SIP trunk da VoIPstudio
  • Implementação em máquina local

Quando uma condição de alarme é cumprida:

  1. O script Python regista-se na VoIPstudio utilizando credenciais SIP.
  2. Inicia uma chamada SIP de saída.
  3. Ao atender, reproduz um ficheiro de alerta .wav pré-gravado.
  4. A chamada termina assim que a reprodução é concluída.

Isto não exigiu SDKs proprietários nem middleware de telefonia, apenas SIP.

A base de código aberto: voip-client-python

No centro desta implementação está um projeto de código aberto desenvolvido por Luis Miguel.

Repositório:
https://github.com/luismiguelbp/voip-client-python
Projeto: voip-client-python

Este é um cliente SIP Python funcional construído com PJSIP / PJSUA2, demonstrando:

  • Registo SIP
  • Início e encerramento de chamadas
  • Manuseamento de media RTP
  • Injeção de reprodução de áudio
  • Gestão do ciclo de vida da chamada baseada em eventos

Em vez de ser um exemplo teórico, este é um código funcional e inspecionável que os programadores podem bifurcar (fork) e adaptar.

Exemplo (Lógica Simplificada de Colocação de Chamadas)

Abaixo está um exemplo conceptual simplificado baseado na forma como o PJSUA2 é utilizado em Python:

1call = MyCall(account, pj.CallOpParam(True))
2call.makeCall("sip:+441234567890@sip.voipstudio.com", pj.CallOpParam(True))

A partir daí, os callbacks de media permitem a injeção de ficheiros de áudio ou de fluxos de áudio gerados em tempo real.

De alertas estáticos a conversas com IA

O cliente não se limitou a reproduzir um ficheiro .wav estático.

Expandiram a arquitetura integrando um motor de conversação de IA local a correr na mesma máquina que o cliente SIP.

O fluxo atualizado:

  1. O SCADA aciona o alarme.
  2. O cliente Python inicia a chamada através da VoIPstudio.
  3. A IA gera um alerta falado dinâmico.
  4. O humano responde verbalmente.
  5. A IA processa a entrada de voz.
  6. O sistema prossegue com a lógica de conversação.

O resultado é uma interação de voz bidirecional através de um SIP trunk padrão.

Em vez de:

“Alarme de temperatura crítica.”

O sistema pode agora dizer:

“Foi acionado um alarme de temperatura no Local B. Confirma a responsabilidade? Por favor, diga ‘confirmado’ para aceitar.”

E depois processar a resposta em tempo real.

Não há dependência de telefonia de IA na nuvem, nem plataformas proprietárias de bots de voz. Apenas SIP + Python + IA. A VoIPstudio fornece apenas a camada de transporte de telefonia.

Visão Geral da Arquitetura

Abaixo está uma representação simplificada da arquitetura de produção utilizada nesta implementação:

1+--------------------+ SIP +----------------------+
2| Python App | <----------------> | VoIPstudio SIP |
3| (voip-client) | | Infrastructure |
4| | | - Authentication |
5| - Alarm Logic | | - Call Routing |
6| - Call Control | | - PSTN Termination |
7| - AI Integration | | - Number Provision |
8+---------+----------+ +----------+-----------+
9| |
10| RTP Media |
11v v
12+--------------------+ +----------------------+
13| Local AI Engine | | Public Telephone |
14| | | Network |
15| - STT | | |
16| - Conversational | | Engineer / Operator |
17| - Response Gen | | Receives Call |
18+--------------------+ +----------------------+

Fluxo de Chamada

  • O sistema SCADA aciona o alarme.
  • A aplicação Python inicia o SIP INVITE através da VoIPstudio.
  • A chamada é encaminhada para o número de destino.
  • O motor de IA gera o alerta falado.
  • O áudio RTP é transmitido em tempo real.
  • A resposta humana é captada e processada.
  • A lógica da chamada continua com base na árvore de decisão da IA.

Uma vez que a solução se baseia em SIP padrão:

  • Pode ser implementada localmente (on-premise) ou na nuvem.
  • Os motores de IA podem ser trocados sem alterar a infraestrutura de telefonia.
  • A lógica da chamada permanece totalmente programável.

Esta separação entre a inteligência e o transporte de telefonia é o que torna a arquitetura escalável.

Para além do SCADA: Onde esta arquitetura se aplica

O mesmo padrão VoIPstudio + Python + IA suporta:

  • Monitorização de Infraestrutura de TI: Chamadas de escalonamento que reportam códigos de erro precisos aos engenheiros de prevenção.
  • Sistemas de Segurança Inteligentes: Chamadas de saída automáticas para contactos de emergência quando as atividades monitorizadas não efetuam o check-in.
  • Sistemas de Confirmação de Consultas: Confirmação de voz bidirecional e reagendamento sem operadores humanos.
  • Sistemas IVR Baseados em IA: Substituição de árvores DTMF pré-definidas por agentes de conversação.
  • Escalonamento de Eventos IoT: Alertas de voz acionados por sensores ambientais ou violações de limiares.

NOTA: Aqui, em cada caso, a VoIPstudio pode atuar como a espinha dorsal SIP fiável.

Explore o código

Se está a construir sistemas de automação, assistentes de IA, plataformas de monitorização ou fluxos de trabalho de escalonamento inteligentes, comece aqui:

Repositório:
https://github.com/luismiguelbp/voip-client-python
Projeto: voip-client-python

Reveja, bifurque (fork), estenda e, em seguida, ligue-o a um SIP trunk da VoIPstudio e comece a experimentar.

GUIA DE INÍCIO RÁPIDO

Pronto para dotar as suas aplicações de voz?

A VoIPstudio fornece:

  • Conetividade SIP global
  • Trunking flexível
  • Configuração favorável ao programador
  • Terminação PSTN fiável

Inicie um teste gratuito e comece a criar as suas próprias soluções de voz programáveis.

A inteligência é sua. Nós fornecemos a camada de voz.

Ler este artigo em: Deutsch, English, Español, Polski

Tim Meredith

Tim Meredith é um líder de negócios de telecomunicações e tecnologia com vasta experiência em VoIP, SaaS e UCaaS. Como fundador e diretor de várias empresas de marketing e tecnologia, escreve sobre comunicações empresariais, telefonia na nuvem, experiência do cliente e tendências do setor das telecomunicações.

Quer melhorar a sua comunicação empresarial?

Desbloqueie o poder de um call center de classe empresarial a preços acessíveis – sem hardware, sem atrasos, sem surpresas!