🎧 ACUSTIC DOCS

Esta API permite generar y comparar huellas acústicas (fingerprints) de archivos o streams de audio en tiempo real, y ahora también transcribir audio a texto. Pensada para aplicaciones de monitoreo radial, detección de jingles, análisis acústico y transcripción en tiempo real.

📌 Base URL

Producción: https://acustic.com.uy

🔐 Autenticación

Todos los endpoints requieren un token válido que debe enviarse en el header HTTP Authorization así:

Authorization: Bearer <tu_token>

Puedes gestionar tus tokens en el panel de control: https://acustic.uy

📥 Endpoints disponibles

Método Ruta Descripción Ejemplo
POST /fingerprint Genera la huella digital (fingerprint) de un archivo de audio. curl -H "Authorization: Bearer <token>" -F "file=@jingle.mp3" https://acustic.com.uy/fingerprint
POST /compare Compara un audio nuevo contra uno o varios ya fingerprintados. curl -X POST -H "Authorization: Bearer <token>" https://acustic.com.uy/compare
GET /status Devuelve el estado actual del servicio. curl https://acustic.com.uy/status
POST /transcribir Genera la transcripción de un archivo de audio. curl -H "Authorization: Bearer <token>" -F "audio=@audio.mp3" https://acustic.com.uy/transcribir

🎶 Fingerprints

Un "fingerprint" o huella acústica es una representación única de un fragmento de audio. Nuestra API permite generar y comparar estas huellas para identificar rápidamente segmentos de audio, incluso si el audio ha sido modificado con ruido, compresión o cambios de velocidad.

POST /fingerprint

Descripción: Crea un fingerprint a partir de un archivo de audio. Este endpoint es útil para construir una base de datos de audio de referencia (por ejemplo, jingles o canciones).

Headers

Body

Respuesta

Respuesta exitosa:

{
  "status": "success",
  "message": "Fingerprint generado exitosamente",
  "fingerprint_id": "8a7c1b5e-9f0a-4d2c-8f1d-7a6b0c5e9f8a"
}

Respuesta de error (token inválido):

{
  "error": "Token inválido o expirado"
}

POST /compare

Descripción: Compara un nuevo archivo de audio con un conjunto de fingerprints previamente guardados en tu base de datos.

Headers

Body

Respuesta

Respuesta exitosa (coincidencia encontrada):

{
  "status": "match",
  "message": "Coincidencia encontrada",
  "match_id": "8a7c1b5e-9f0a-4d2c-8f1d-7a6b0c5e9f8a",
  "confidence": 0.98,
  "match_time": 12.5
}

Respuesta exitosa (sin coincidencia):

{
  "status": "no_match",
  "message": "No se encontraron coincidencias"
}

🎙️ Endpoint Transcripciones

Permite subir un archivo de audio y obtener la transcripción de su contenido en texto. Basado en modelos locales de IA, devuelve texto segmentado ordenado y legible.

POST /transcribir

Descripción: Recibe un archivo de audio y devuelve la transcripción en JSON.

Headers

Body

Respuesta

{
  "idioma": "es",
  "transcripcion": "🔊 Transcripción detectada\n\n• Primera línea de texto...\n• Segunda línea de texto...\n• ..."
}

Si el token no es válido, la respuesta será:

{
  "error": "Token inválido o expirado"
}

Ejemplo con curl

curl -H "Authorization: Bearer <tu_token>" -F "audio=@audio.mp3" https://acustic.com.uy/transcribir

🛠️ Casos de uso

▶️ Ejemplos de uso

# Ejemplo para transcribir un audio
import requests

headers = {
    "Authorization": "Bearer <tu_token>"
}

# Ejemplo para generar un fingerprint
with open("jingle.mp3", "rb") as f:
    response = requests.post("https://acustic.com.uy/fingerprint", headers=headers, files={"file": f})
    print(response.json())

# Ejemplo para comparar un audio
# Asegúrate de tener al menos un fingerprint en tu cuenta
with open("audio_a_comparar.mp3", "rb") as f:
    response = requests.post("https://acustic.com.uy/compare", headers=headers, files={"file": f})
    print(response.json())

📞 Contacto

LinkToIT - Montevideo, Uruguay
hola@linktoit.uy