Transcribir el mensaje de voz de contestador automático de Asterisk con el motor de IA de Sakura
Servidor Programación
Published: 2025-09-26

Usé el ARI de Asterisk para grabar voces de contestador automático y transcribirlas con la API Whisper del motor de IA de Sakura.
El contenido transcrito se notifica a Slack.

Introducción

Ya tenía un entorno de Asterisk, así que lo utilicé.

Habilitando ARI

Edita el archivo de configuración de Asterisk ari.conf para habilitar ARI.

  • ari.conf
    [general]
    enabled = yes
    
    [asterisk]
    type = user
    read_only = no
    password = asterisk
    password_format = plain
    

También habilita el servidor HTTP de Asterisk.

  • http.conf
    [general]
    servername=Asterisk
    enabled=yes
    bindaddr=127.0.0.1
    bindport=8088
    

En esta ocasión, configuraremos el teléfono que llama al número 999 para que funcione como contestador automático.

  • extensions.conf
    [default]
    exten => 999,1,Wait(1)
      same => n,Stasis(rusudenkun)
      same => n,Hangup()
    

Flujo de trabajo

  1. Se recibe una llamada al número 999
  2. Se inicia la aplicación ARI rusudenkun
  3. Se reproduce un anuncio de voz
  4. Se inicia la grabación
  5. Al terminar la grabación, el archivo WAV grabado se transcribe utilizando la API Whisper del motor de IA de Sakura
  6. Se notifica el contenido transcrito a Slack

Así que implemente rápidamente una aplicación ARI en Go.

Haciendo una llamada real

Llamemos al número 999 y dejemos un mensaje en el contestador.

root@asterisk:~# tail -f /var/log/rusudenkun.log
{"time":"2025-09-26T15:25:45.529096517+09:00","level":"INFO","msg":"StasisStart","channel":"1758867943.63"}
{"time":"2025-09-26T15:25:45.529204145+09:00","level":"INFO","msg":"Running app","channel":"1758867943.63"}
{"time":"2025-09-26T15:25:45.680639184+09:00","level":"INFO","msg":"playing announce","media":"sound:custom/rusuden"}
{"time":"2025-09-26T15:25:54.607939088+09:00","level":"INFO","msg":"announce finished"}
{"time":"2025-09-26T15:26:04.981533804+09:00","level":"INFO","msg":"completed recording"}
{"time":"2025-09-26T15:26:05.982012514+09:00","level":"INFO","msg":"recorded","path":"rusudenkun-1758867943.63.wav"}
{"time":"2025-09-26T15:26:06.69882038+09:00","level":"INFO","msg":"transcribed text","text":"Este es un test de transcripción de audio de contestador automático."}

El archivo WAV grabado se guarda en /var/lib/asterisk/sounds/rusudenkun-<channel>.wav.
Este archivo de audio se transcribe utilizando la API Whisper del motor de IA de Sakura.

Notificación de Slack

Se completó la transcripción correctamente.

Resumen

  • Usamos el ARI de Asterisk para grabar mensajes de voz de contestador automático
  • Se pudo transcribir el archivo WAV grabado utilizando la API Whisper del motor de IA de Sakura
  • Se notificó el contenido transcrito a Slack

Honestamente, mi hogar no recibe muchas llamadas telefónicas, así que creo que el límite gratuito de 50 solicitudes es suficiente.