Documentation

Freezetale est un service API de transcription vocale en texte ultra-rapide, hébergé en Norvège et alimenté par le réseau électrique islandais, composé à 100 % d’énergie hydraulique et géothermique renouvelable.

Avec la diarisation automatique des locuteurs (identification des locuteurs) prise en charge nativement pour toutes les langues, Freezetale est la solution idéale pour tous vos besoins de conversion de la parole en texte.

Connexion et autorisation

Pour utiliser les API Freezetale, commencez par créer un projet et un jeton d’API. Ensuite, trouvez l’ID de votre projet au-dessus de la liste des transcriptions.

Remarque : l’ID du projet et le jeton d’API sont sensibles à la casse. Les requêtes adressées à l’API doivent être effectuées via HTTPS. Les appels effectués via HTTP simple échoueront. Les requêtes API sans authentification échoueront également.

Pour plus de commodité, vous pouvez saisir ici l’ID de votre projet et votre jeton : nous les utiliserons dans les exemples ci-dessous à la place des espaces réservés.

URL de base
https://freezetale.com/api
Requête authentifiée
curl -X GET \
-H "Authorization: Bearer API_TOKEN" \
"https://freezetale.com/api/v1/app/transcriptions?project-id=PROJECT_ID"

Créer une transcription

Lancer une nouvelle tâche de transcription. Déduplique automatiquement les requêtes identiques.

Consultez les langues prises en charge pour connaître les codes à utiliser dans 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"
Exemple de réponse
{
	"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"
	}
}

Obtenir une transcription

Récupérer une tâche de transcription par son identifiant.

Lorsque la tâche de transcription est terminée, son status passe à completed. De plus, resultUrl est défini sur une URL contenant le résultat de la transcription ainsi que d’autres métadonnées, qui peuvent ensuite être téléchargés.

La réponse contient un en-tête Last-Modified que vous pouvez utiliser lors de l’interrogation de l’API pour vérifier les mises à jour à l’aide de 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"
Exemple de réponse
{
	"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 peut prendre l’une des valeurs suivantes : pending, errored, timeout, cancelled, completed.

Exemple de réponse de résultat
{
	"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
		}
	}
}

Remarque : Toutes les valeurs de temps sont exprimées en millisecondes.

Obtenir toutes les transcriptions

Obtenez la liste de toutes les tâches de transcription d’un projet.

GET /v1/app/transcriptions
curl -X GET \
-H "Authorization: Bearer API_TOKEN" \
"https://freezetale.com/api/v1/app/transcriptions?project-id=PROJECT_ID"
Exemple de réponse
{
	"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"
		}
	]
}

Langues prises en charge

Freezetale prend en charge les langues suivantes. Si vous souhaitez qu’une langue soit ajoutée, veuillez nous contacter.

LangueCodePrend en charge la diarisation des locuteurs
EnglishenOui
DanishdaOui
GermandeOui
SpanishesOui
FinnishfiOui
FrenchfrOui
IcelandicisOui
DutchnlOui
Norwegian (Nynorsk)nnOui
Norwegian (Bokmål)noOui
SwedishsvOui

Limites

Vos requêtes API sont limitées en fonction des détails de votre abonnement. En dehors de cela, voici les limites générales :

  • Taille maximale du fichier : 1024 Mo
  • Durée audio maximale : 180 minutes

100 % renouvelable ?

Bien que le centre de données de Freezetale soit situé en Norvège, les GPU utilisés pour nos transcriptions sont situés en Islande et alimentés par son réseau électrique, composé à 100 % d’énergies hydroélectrique et géothermique renouvelables. Cela nous permet de fournir des transcriptions avec une empreinte carbone quasi nulle et d’être pleinement conformes au Règlement général sur la protection des données (RGPD) de l’Union européenne.

Un produit de Nattskiftet
•
Fabriqué en Norvège
Contact•Politique de confidentialité•Conditions d’utilisation•