Assistente de voz com IA com Python, PJSIP e VoIPstudio (Parte 1)
- Tim Meredith
Índice
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.
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:
- O script Python regista-se na VoIPstudio utilizando credenciais SIP.
- Inicia uma chamada SIP de saída.
- Ao atender, reproduz um ficheiro de alerta .wav pré-gravado.
- 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:
call = MyCall(account, pj.CallOpParam(True))
call.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:
- O SCADA aciona o alarme.
- O cliente Python inicia a chamada através da VoIPstudio.
- A IA gera um alerta falado dinâmico.
- O humano responde verbalmente.
- A IA processa a entrada de voz.
- 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:
+--------------------+ SIP +----------------------+
| Python App | <----------------> | VoIPstudio SIP |
| (voip-client) | | Infrastructure |
| | | - Authentication |
| - Alarm Logic | | - Call Routing |
| - Call Control | | - PSTN Termination |
| - AI Integration | | - Number Provision |
+---------+----------+ +----------+-----------+
| |
| RTP Media |
v v
+--------------------+ +----------------------+
| Local AI Engine | | Public Telephone |
| | | Network |
| - STT | | |
| - Conversational | | Engineer / Operator |
| - Response Gen | | Receives Call |
+--------------------+ +----------------------+
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.
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.
Mais do blog
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!