Documentación

Freezetale es un servicio de API de conversión de voz a texto ultrarrápido, alojado en Noruega y respaldado por la red eléctrica de Islandia, que funciona con un 100 % de energía hidroeléctrica y geotérmica renovable.

Con la diarización automática de hablantes (etiquetas de hablante) compatible de forma nativa para todos los idiomas, Freezetale es la solución perfecta para todas tus necesidades de conversión de voz a texto.

Conexión y autorización

Para usar las API de Freezetale, primero crea un proyecto y un token de API. Después, busca el ID de tu 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 mediante HTTPS. Las llamadas realizadas mediante HTTP sin cifrado fallarán. Las solicitudes a la API sin autenticación también fallarán.

Para mayor comodidad, puedes introducir aquí el ID de tu proyecto y el token, y los utilizaremos 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

Inicia un nuevo trabajo de transcripción. Elimina automáticamente las solicitudes idénticas duplicadas.

Consulta los idiomas compatibles para ver los códigos que se deben 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

Recupera un trabajo de transcripción mediante su ID.

Cuando el trabajo de transcripción finaliza, su status cambia a completed. Además, resultUrl se establece en una URL que contiene el resultado de la transcripción y otros metadatos, que posteriormente se pueden descargar.

La respuesta contiene un encabezado Last-Modified que puedes usar al consultar la API para obtener actualizaciones mediante 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 tener uno de los siguientes valores: pending, errored, timeout, cancelled, completed.

Respuesta de ejemplo del resultado
{
	"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 expresados en milisegundos.

Obtener todas las transcripciones

Obtén una lista de todos los trabajos de transcripción de 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 te gustaría que se añadiera un idioma, ponte en contacto.

IdiomaCódigoAdmite la diarización de hablantes
EnglishenSí
DanishdaSí
GermandeSí
SpanishesSí
FinnishfiSí
FrenchfrSí
IcelandicisSí
DutchnlSí
Norwegian (Nynorsk)nnSí
Norwegian (Bokmål)noSí
SwedishsvSí

Límites

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

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

¿100 % renovable?

Aunque el centro de datos de Freezetale se encuentra en Noruega, nuestras GPU de ejecución de transcripciones están ubicadas en Islandia y funcionan con su red eléctrica hidroeléctrica y geotérmica 100 % renovable. Esto nos permite ofrecer transcripciones con una huella de carbono cercana a cero y cumplir plenamente con el Reglamento General de Protección de Datos (RGPD) de la UE.

Un producto de Nattskiftet
•
Hecho en Noruega
Contacto•Política de privacidad•Términos de uso•