Documentación

Freezetale es un servicio de API de reconocimiento de voz (speech-to-text) rapidísimo, alojado en Noruega y alimentado por la red energética 100% renovable de Islandia, basada en la energía hidroeléctrica y geotérmica.

Con diarización automática de locutores (etiquetas de locutor) incluida por defecto para todos los idiomas, Freezetale es la solución perfecta para todas sus necesidades de transcripción de voz a texto.

Conexión y autorización

Para usar las APIs de Freezetale, primero cree un proyecto y un token de API. Luego, encuentre el ID de su proyecto encima de la lista de transcripciones.

Nota: Tanto el ID del proyecto como el token de API distinguen entre mayúsculas y minúsculas. Las solicitudes a la API deben realizarse a través de HTTPS. Las llamadas realizadas mediante HTTP sin cifrar fallarán. Las solicitudes a la API sin autenticación también fallarán.

Convenientemente, puede rellenar aquí su ID de proyecto y token, y los usaremos en los ejemplos siguientes en lugar de marcadores de posición.

URL base
https://freezetale.com/api
Solicitud autenticada
curl -X GET \
-H "Authorization: Bearer API_TOKEN" \
"https://freezetale.com/api/v1/app/transcriptions?project-id=PROJECT_ID"

Crear una transcripción

Inicie un nuevo trabajo de transcripción. El sistema elimina automáticamente las solicitudes idénticas.

Consulte idiomas compatibles para ver los códigos que debe usar en language.

POST /v1/app/transcriptions
curl -X POST \
-H "Authorization: Bearer API_TOKEN" \
--json '{"audioUrl": "https://example.com/audio.mp3", "language": "en"}' \
"https://freezetale.com/api/v1/app/transcriptions?project-id=PROJECT_ID"
Respuesta de ejemplo
{
	"success": true,
	"transcription": {
		"id": "o3V8FEvUHG21BcuQBCwSZXqO7BV3",
		"status": "pending",
		"audio": {
			"url": "https://example.com/audio.mp3",
			"language": "en"
		},
		"creationDate": "2025-06-07T12:00:00.000Z",
		"modificationDate": "2025-06-07T12:00:00.000Z"
	}
}

Obtener una transcripción

Recuperar un trabajo de transcripción por su ID.

Cuando el trabajo de transcripción haya terminado, su status cambia a completed. Además, resultUrl se establece en una URL que contiene el resultado de la transcripción y otros metadatos, los cuales pueden descargarse.

La respuesta contiene un encabezado Last-Modified que puede usar al consultar la API para obtener actualizaciones usando If-Modified-Since.

GET /v1/app/transcriptions
curl -X GET \
-H "Authorization: Bearer API_TOKEN" \
"https://freezetale.com/api/v1/app/transcriptions?id=TRANSCRIPTION_ID&project-id=PROJECT_ID"
Respuesta de ejemplo
{
	"success": true,
	"transcription": {
		"id": "pkbvMEdhVavGa80K4zBU53N3XiCR",
		"status": "completed",
		"audio": {
			"url": "https://example.com/audio.mp3",
			"language": "en",
			"length": 1034947.4375
		},
		"resultUrl": "https://example.com/36c16505-0fb5-4b8c-8e22-0240d95e1eb5-pkbvMEdhVavGa80K4zBU53N3XiCR.json",
		"creationDate": "2025-06-07T12:00:00.000Z",
		"modificationDate": "2025-06-07T12:00:00.000Z",
		"completionDate": "2025-06-07T12:00:00.000Z"
	}
}

status puede ser uno de los siguientes valores: pending, errored, timeout, cancelled, completed.

Ejemplo de respuesta
{
	"id": "b25129c7-6354-4676-923f-c997ba8fb3db",
	"reference": "pkbvMEdhVavGa80K4zBU53N3XiCR",
	"words": [
		{
			"start": 1448,
			"end": 2108,
			"word": "Hello!",
			"speaker": 1
		}
	],
	"metadata": {
		"speakers": 1,
		"confidence": 0.988733,
		"language": {
			"input": "en",
			"detected": "en"
		},
		"audio": {
			"type": "audio/mpeg",
			"size": 788013,
			"length": 1034947.4375
		}
	}
}

Nota: Todos los valores de tiempo están en milisegundos.

Obtener todas las transcripciones

Obtenga una lista de todos los trabajos de transcripción en un proyecto.

GET /v1/app/transcriptions
curl -X GET \
-H "Authorization: Bearer API_TOKEN" \
"https://freezetale.com/api/v1/app/transcriptions?project-id=PROJECT_ID"
Respuesta de ejemplo
{
	"success": true,
	"transcriptions": [
		{
			"id": "o3V8FEvUHG21BcuQBCwSZXqO7BV3",
			"status": "pending",
			"audio": {
				"url": "https://example.com/audio.mp3",
				"language": "en"
			},
			"creationDate": "2025-06-07T12:00:00.000Z",
			"modificationDate": "2025-06-07T12:00:00.000Z",
			"estimatedCompletionDate": "2025-06-07T12:00:00.000Z"
		},
		{
			"id": "pkbvMEdhVavGa80K4zBU53N3XiCR",
			"status": "completed",
			"audio": {
				"url": "https://example.com/audio.mp3",
				"language": "en",
				"length": 1034947.4375
			},
			"resultUrl": "https://example.com/36c16505-0fb5-4b8c-8e22-0240d95e1eb5-pkbvMEdhVavGa80K4zBU53N3XiCR.json",
			"creationDate": "2025-06-07T12:00:00.000Z",
			"modificationDate": "2025-06-07T12:00:00.000Z",
			"completionDate": "2025-06-07T12:00:00.000Z"
		}
	]
}

Idiomas compatibles

Freezetale admite los siguientes idiomas. Si desea que se añada algún idioma, por favor contáctenos.

IdiomaCódigoAdmite la diarización de hablantes
Englishen
Danishda
Germande
Spanishes
Finnishfi
Frenchfr
Icelandicis
Dutchnl
Norwegian (Nynorsk)nn
Norwegian (Bokmål)no
Swedishsv

Límites

Sus solicitudes a la API están limitadas según los detalles de su plan de suscripción. Por lo demás, estos son los límites generales:

  • Tamaño máximo de archivo: 1024 MB
  • Duración máxima de audio: 180 minutos

¿100% renovable?

Si bien el centro de datos de Freezetale está en Noruega, nuestras GPUs de ejecución de transcripción están ubicadas en Islandia y se alimentan de la red energética 100% renovable de Islandia, basada en energía hidroeléctrica y geotérmica. Esto nos permite ofrecer transcripciones con una huella de carbono casi nula y, además, cumplir plenamente con el Reglamento General de Protección de Datos (RGPD) de la UE.

Un producto de Nattskiftet
Hecho en Noruega
ContactoPolítica de privacidadTérminos de uso