API de Detección de Audio Generado por IA
Documentación completa para integrar la API de detección de audio IA de TruthScan en sus aplicaciones.
Pruébala sin código visitando nuestro endpoint FastAPI: https://detect-audio.truthscan.com/docs
Autenticación
TruthScan usa claves de API para permitir el acceso a la API. Puede obtener su clave de API en la parte superior de la página en nuestro portal de desarrolladores.
TruthScan espera que la clave de API se incluya en todas las solicitudes de API al servidor en un cuerpo de solicitud que se ve así:
{
"key": "YOUR API KEY GOES HERE"
}Debe reemplazar YOUR API KEY GOES HERE con su clave de API personal.
Detector de Audio IA
Detectar
El flujo de trabajo de detección de audio IA consiste en los siguientes pasos:
- Obtener una URL de carga pre-firmada
- Cargar el audio
- Enviar el audio para detección
1. Obtener una URL de Carga Pre-firmada
Comience solicitando una URL pre-firmada de la API. Esta URL le permite cargar de forma segura su archivo de audio al servidor de almacenamiento.
Formatos de Archivo Soportados
MP3, WAV, M4A, FLAC, OGG, MP4
Nota Importante
Es necesario eliminar espacios del nombre del archivo de audio al solicitar una URL pre-firmada.
GET https://detect-audio.truthscan.com/get-presigned-url?file_name=example.mp3Ejemplo de Solicitud
curl -X GET 'https://detect-audio.truthscan.com/get-presigned-url?file_name=example.mp3' \
--header 'apikey: YOUR API KEY GOES HERE'Ejemplo de Respuesta
{
"status": "success",
"presigned_url": "https://audio-presigned-upload.ai-assets-cdn.com?file_name=581d47c7-3ef4-42af-88d9-6dab6bf69389_20250611-121955_example.mp3...",
"file_path": "/uploads/581d47c7-3ef4-42af-88d9-6dab6bf69389_20250901-090201_example.mp3"
}2. Cargar el Audio
Use la 'presigned_url' proporcionada para cargar su audio mediante una solicitud PUT. Asegúrese de que el tipo de contenido correcto esté configurado según el formato de su audio.
Nota Importante
Es necesario eliminar espacios del nombre del archivo de audio al cargar el audio.
Ejemplo de Solicitud
curl -X PUT 'https://audio-presigned-upload.ai-assets-cdn.com?file_name=581d47c7-3ef4-42af-88d9-6dab6bf69389_20250611-121955_example.mp3...' \
--header 'Content-Type: audio/<FILE_FORMAT - mp3, wav, m4a, flac, ogg, mp4>' \
--header 'x-amz-acl: private' \
--data-binary '@example.mp3' # AttachmentLímites de Tamaño de Archivo
- Tamaño mínimo de archivo: 1KB
- Tamaño máximo de archivo: 10MB
Asegúrese de que el formato del archivo permanezca consistente durante el proceso de carga. Una carga exitosa devolverá un código de estado de 200.
3. Enviar Audio para Detección de IA
Después de cargar, envíe el audio para detección de IA haciendo referencia al 'file_path' del paso anterior.
POST https://detect-audio.truthscan.com/detectEjemplo de Solicitud
curl -X 'POST' \
'https://detect-audio.truthscan.com/detect' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"key": "YOUR-API-KEY-GOES-HERE",
"url": "<FILE_PATH>",
"document_type": "Audio",
"analyzeUpToSeconds": 60
}'El 'FILE_PATH' se refiere a la ruta obtenida de la respuesta en el paso inicial, 'Obtener una URL de Carga Pre-firmada'.
Parámetros Opcionales
analyzeUpToSeconds: Analizar hasta N segundos desde el inicio (predeterminado: 60)document_type: Tipo de documento (predeterminado: 'Audio')email: Dirección de correo electrónico opcional para procesamiento
Ejemplo de Respuesta
{
"id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
"status": "pending"
}La respuesta incluye un ID único para rastrear el estado de la detección.
Consultar Estado y Resultados de la Detección
Para verificar el estado y recuperar los resultados, use el endpoint /query con el ID.
POST https://detect-audio.truthscan.com/queryEjemplo de Solicitud
curl -X 'POST' \
'https://detect-audio.truthscan.com/query' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"id": "ID-GOES-HERE"
}'Ejemplo de Respuesta
{
"id": "00fee5ff-a55b-42fb-b7c7-d14f05ae0769",
"status": "done",
"result": 0.873,
"result_details": {
"is_valid": true,
"message": "processed",
"original_duration": 123.45,
"is_truncated": true,
"truncated_duration": 60.0,
"mean_ai_prob": 0.873,
"individual_chunks_ai_prob": [0.81, 0.90, 0.91]
}
}Detalles de los Resultados
is_valid: Indica si el archivo de audio es válido (true/false)message: Mensaje de procesamientooriginal_duration: Duración en segundos del audio originalis_truncated: Si el audio fue truncado para análisistruncated_duration: Duración analizada si fue truncadomean_ai_prob: Puntuación general de probabilidad de IAindividual_chunks_ai_prob: Puntuaciones de probabilidad de IA por chunk
El campo "status" será uno de los siguientes: "pending" (procesamiento en cola), "analyzing" (detección de IA en progreso), "done" (resultados disponibles), o "failed" (procesamiento falló).
Verificar Créditos del Usuario
Este endpoint acepta el apikey del usuario a través del encabezado. Y devuelve los detalles de créditos del usuario.
GET https://detect-audio.truthscan.com/check-user-creditsEjemplo de Solicitud
curl -X 'GET' \
'https://detect-audio.truthscan.com/check-user-credits' \
-H 'apikey: YOUR API KEY GOES HERE' \
-H 'accept: application/json' \
-H 'Content-Type: application/json'Ejemplo de Respuesta
{
"baseCredits": 10000,
"boostCredits": 1000,
"credits": 11000
}Verificación de Salud
Verifique el estado de salud del servidor de la API.
GET https://detect-audio.truthscan.com/healthEjemplo de Solicitud
curl -X 'GET' \
'https://detect-audio.truthscan.com/health' \
-H 'accept: application/json'Ejemplo de Respuesta
{
"status": "healthy"
}Errores
La mayoría de los errores serán por parámetros incorrectos enviados a la API. Verifique nuevamente los parámetros de cada llamada de API para asegurarse de que esté formateado correctamente e intente ejecutar el código de ejemplo proporcionado.
Los códigos de error genéricos que usamos se ajustan al estándar REST:
| Código de Error | Significado |
|---|---|
| 400 | Bad Request -- Su solicitud es inválida. |
| 403 | Forbidden -- La clave de API es inválida o no hay créditos suficientes para procesamiento de audio. |
| 404 | Not Found -- El recurso especificado no existe. |
| 405 | Method Not Allowed -- Intentó acceder a un recurso con un método inválido. |
| 406 | Not Acceptable -- Solicitó un formato que no es JSON. |
| 410 | Gone -- El recurso en este endpoint ha sido eliminado. |
| 422 | Invalid Request Body -- El cuerpo de su solicitud está formateado incorrectamente o es inválido o tiene parámetros faltantes. |
| 429 | Too Many Requests -- ¡Está enviando demasiadas solicitudes! ¡Reduzca la velocidad! |
| 500 | Internal Server Error -- Tuvimos un problema con nuestro servidor. Intente nuevamente más tarde. |
| 503 | Service Unavailable -- Estamos temporalmente fuera de línea para mantenimiento. Intente nuevamente más tarde. |
Problemas Comunes y Soluciones
Problemas de Autenticación
"Verificación de usuario fallida" (403)
Causa: Clave de API inválida o expirada
Solución:
- Verifique que su clave de API sea correcta
- Verifique si su clave de API está activa en su cuenta
- Intente regenerar su clave de API
"No hay créditos suficientes" (403)
Causa: Créditos insuficientes para procesamiento de audio
Solución:
- Verifique sus créditos restantes usando /check-user-credits
- Compre créditos adicionales si es necesario
- Use analyzeUpToSeconds para analizar menos audio y consumir menos créditos
Problemas de Validación de Entrada
"Formato de archivo no soportado" (400)
Causa: Formato de audio no soportado o inválido enviado
Solución:
- Verifique que el formato de audio sea soportado (MP3, WAV, M4A, FLAC, OGG, MP4)
- Asegúrese de que el archivo no esté corrupto
- Verifique el encabezado Content-Type al cargar
"Archivo demasiado grande" (400)
Causa: El tamaño del archivo excede el límite de 10MB
Solución:
- Comprima o convierta el audio a menos de 10MB
- Verifique el tamaño del archivo antes de cargar
- Use formatos más eficientes como MP3 cuando sea posible
Problemas de Procesamiento
"El procesamiento de audio tardó demasiado tiempo"
Causa: El procesamiento del audio tardó demasiado tiempo o ocurrió un timeout
Solución:
- Intente con un archivo de audio más pequeño o menor duración
- Use analyzeUpToSeconds para analizar solo los primeros segundos
- Verifique si el servicio está experimentando alta carga
- Vuelva a intentar la solicitud después de unos minutos
Estado "fallido" en la respuesta de /query
Causa: El procesamiento falló por varias razones
Solución:
- Verifique si el audio cumple con los requisitos mínimos (1KB - 10MB)
- Verifique que el audio esté en un formato soportado
- Verifique que la carga se completó exitosamente antes de enviar para detección
- Contacte al soporte si el problema persiste
Problemas de Carga
"Fallo en la carga del audio" (403/400)
Causa: URL pre-firmada inválida o expirada, o problemas con el servidor de almacenamiento
Solución:
- Asegúrese de usar la URL pre-firmada inmediatamente después de recibirla (puede expirar)
- Verifique que el encabezado Content-Type sea correcto para el formato de audio
- Elimine espacios del nombre del archivo antes de cargar
- Intente generar una nueva URL pre-firmada si la actual expiró
"URL pre-firmada inválida" (400)
Causa: Nombre de archivo con espacios o URL pre-firmada expirada/corrupta
Solución:
- Elimine todos los espacios del nombre del archivo antes de solicitar la URL pre-firmada
- Use solo caracteres alfanuméricos, guiones y guiones bajos en el nombre del archivo
- Genere una nueva URL pre-firmada si es necesario
¿Necesita Ayuda?
Para obtener más información sobre cómo usar nuestra API o para soporte técnico, contáctenos.
Preguntas Frecuentes sobre la API
Encuentre respuestas a las preguntas más comunes sobre nuestra API de detección de audio IA.