Detecta secretária eletrônica por cadência de fala, sem IA, sem modelo e sem treino — com o resultado medido em 80 chamadas reais.
O problema
Discador que não distingue pessoa de caixa postal desperdiça o tempo mais caro da operação: o do agente. A resposta usual hoje é transcrever a chamada e perguntar a um modelo de linguagem, o que custa segundos de GPU por ligação e não roda offline. O algoritmo clássico do Asterisk resolve isso em C, dentro do dialplan, mas fica preso lá: não dá para usar sobre gravação, em lote, ou dentro de um pipeline de análise.
A arquitetura
Porte fiel do app_amd.c para Python/NumPy, decidindo apenas por cadência: quanto tempo houve silêncio antes da fala, quanto durou o bloco contínuo de fala e quantos blocos existiram. A intuição é velha e sólida — quem atende diz alô e espera resposta, enquanto a secretária eletrônica emenda uma saudação longa sem pausa. Os nomes de status e causa são os mesmos do Asterisk (MACHINE/LONGGREETING, MAXWORDS, INITIALSILENCE, MAXWORDLENGTH; HUMAN; NOTSURE/TOOLONG), assim como os parâmetros do amd.conf, para que a configuração já ajustada em produção seja reaproveitada sem tradução. A detecção de bipe usa o algoritmo de Goertzel, mais barato que uma FFT completa quando se procura uma frequência conhecida. As dependências são NumPy e ffmpeg, e nada mais: sem rede, sem GPU, sem modelo em disco.
O resultado
Em 80 gravações reais de discador no pior cenário para o método — áudio pós-atendimento com as duas pernas misturadas — obteve 100% de recall em máquina (37 de 37) e 78% de acurácia global. O erro é conservador na direção certa: nenhuma máquina escapa, mas 37% dos humanos são marcados como máquina, e a análise mostra que isso vem de o áudio conter a URA de oferta, não de falha do algoritmo. Serve como pré-filtro: tudo classificado como HUMAN pode ser aceito sem segunda opinião, o que corta 34% do trabalho antes de qualquer etapa cara. São 428 linhas de teste para 584 de código, e a documentação registra a armadilha de VAD que quase produziu a conclusão falsa de que AMD sem IA não funciona.


🔒 Código-fonte
git clone https://git.programandosolucoes.com.br/git/repos/amd-dsp.git
Código-fonte privado. As credenciais de leitura são liberadas sob solicitação — me chame para conversar sobre o projeto.