Pour les développeurs

Démarrage rapide de l'API

Envoie un enregistrement et le texte auquel il doit correspondre. Récupère six scores et le détail de chaque mot et de chaque son. C'est la même évaluation que celle des applications de Spelly.

  1. Ton application envoie

    L'enregistrement, le texte auquel il doit correspondre et sa langue.

  2. Spelly évalue

    Chaque son est comparé au son dont le mot a besoin.

  3. Tu récupères du JSON

    Six scores, chaque mot et chaque son, prêts à afficher.

Démarrage rapide

Chaque chemin de cette page s'ajoute à https://spelly.ch : /api/assess devient https://spelly.ch/api/assess. Envoie ta clé dans l'en-tête X-API-Key. Deux appels complets pour commencer :

Évaluer un enregistrement sauvegardé sous recording.wav

curl
curl https://spelly.ch/api/assess \
  -H 'X-API-Key: YOUR_KEY' \
  -F 'reference_text=The weather is lovely' \
  -F language=en-GB \
  -F audio=@recording.wav

Obtenir la voix du modèle avec le moment de chaque son et de chaque lettre

curl
curl https://spelly.ch/api/tts/aligned \
  -H 'X-API-Key: YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "text": "hello",
    "language": "en-GB",
    "audio_format": "mp3"
  }'

Ta clé API

Envoie ta clé dans un en-tête X-API-Key avec chaque requête. Tu la trouves dans la console opérateur. Garde-la sur ton serveur, jamais dans une page web.

Les navigateurs ne peuvent pas appeler l'API depuis tes pages : elle n'accepte les requêtes cross-origin que depuis les sites de Spelly, et une clé dans une page pourrait être copiée. Appelle-la depuis ton serveur ; pour faire pratiquer les apprenants dans une page web, utilise le widget.

Chaque enregistrement évalué utilise 1 unité et chaque voix du modèle (/api/tts, /api/tts/aligned, /api/assess/synthesize) 0,5 ; tous les autres appels sont gratuits. Seuls les appels réussis utilisent des unités : un appel refusé ou en échec n'utilise rien. Les enregistrements et les voix du widget utilisent les mêmes unités. Un essai gratuit compte 100 unités ; une fois épuisées, les appels répondent 402 avec operator.trialExhausted dans detail, et remaining et requested à côté.

Limites de débit

Chaque adresse peut envoyer à l'API 50 requêtes par seconde en moyenne, et jusqu'à 300 de plus d'un coup. Au-delà, les appels répondent 429 request.tooManyRequests. Une clé d'essai gratuite peut envoyer 60 requêtes par minute. Si ta clé a sa propre limite par minute, les appels au-delà répondent aussi 429.

Les réponses 429 et 503 portent un en-tête Retry-After : le nombre de secondes à attendre avant de renvoyer la même requête.

Ensuite