Aller au contenu

API code Morse

Quatre points d'accès en lecture seule via HTTPS. Pas de compte, pas de clé, pas de formulaire : juste une adresse qui renvoie du JSON.

Sans clé, mais pas sans limite. Les requêtes sont comptées par adresse et par point d'accès. Les réponses portent un en-tête Cache-Control : en le respectant, tu n'approcheras jamais la limite, car la même question a toujours la même réponse.

Encoder

Du texte vers le Morse. Les mots sont séparés par une barre oblique.

GET https://www.morse-code.info/api/encode?text=SALUT
{
  "ok": true,
  "text": "SALUT",
  "morse": "... .- .-.. ..- -",
  "unbekannt": []
}

unbekannt énumère les caractères sans code Morse. Ils sont absents du résultat, mais tu en es averti : un emoji disparaissant en silence transformerait une entrée fausse en une réponse apparemment juste.

Décoder

Du Morse vers le texte. La barre oblique ou trois espaces valent comme séparateur de mots.

GET /api/decode?morse=...%20.-%20.-..%20..-%20-
{
  "ok": true,
  "morse": "... .- .-.. ..- -",
  "text": "SALUT",
  "unbekannt": []
}

Une séquence sans signification devient un point d'interrogation dans text et figure aussi dans unbekannt. La position est ainsi conservée et tu sais malgré tout ce qui n'allait pas. Tout ce qui n'est ni point, ni trait, ni barre, ni espace est rejeté avec 400 plutôt qu'interprété avec bienveillance.

Durées

Combien de temps dure un texte, et combien durent ses éléments. La vitesse suit PARIS : 50 unités par mot de référence, une unité vaut 1,2/MPM secondes.

GET /api/timing?text=PARIS&wpm=20
{
  "dit_ms": 60,
  "dah_ms": 180,
  "pause_zeichen_ms": 180,
  "pause_wort_ms": 420,
  "dauer_s": 2.58,
  "einheiten": { "punkte": 10, "striche": 4, "zeichen": 5, "woerter": 1 }
}

Avec &effektiv= vient le Farnsworth : les caractères gardent leur vitesse, les pauses entre eux s'allongent. effektiv est plafonné à wpm, car le Farnsworth étire les pauses et ne raccourcit jamais les caractères.

dauer_s mesure du premier son au dernier. Une pause de mot finale n'est pas comptée, c'est pourquoi PARIS à 20 MPM donne 43 unités et non 50.

Alphabet

Une table de code complète. Six jeux sont disponibles : international (par défaut), american, wabun (japonais), thai, hangul (coréen) et russisch (cyrillique).

GET /api/alphabet?set=international

La réponse sépare trois choses : zeichen contient les groupes de caractères, zeit les rapports de durée lorsque le jeu définit les siens, et hinweise la source et les remarques. Chaque table de ce site est extraite d'une source citée, et cette citation voyage avec les données.

Limites, CORS et erreurs

  • Fréquence : 120 requêtes par minute et par adresse pour encoder, décoder et les durées ; 30 pour l'alphabet, car une réponse pèse plusieurs kilo-octets et ne change quasiment jamais. Au-delà, un 429 arrive avec un en-tête Retry-After.
  • CORS : ouvert. Access-Control-Allow-Origin: *, tu peux donc appeler directement depuis le navigateur. Il n'y a ici que des données publiques de référence et aucune donnée d'utilisateur : rien qu'une page étrangère pourrait obtenir au nom d'un visiteur.
  • Méthodes : GET et OPTIONS. Un POST reçoit 405 au lieu d'être accepté en silence.
  • Les erreurs sont aussi du JSON, jamais une page HTML : {"ok": false, "fehler": "text-fehlt"}.
  • Longueur : 1000 caractères par requête, 200 pour les durées.

S'il t'en faut hors ligne ou en plus grand volume, la bibliothèque JavaScript fait le même travail dans le navigateur sans aucune requête - et c'est le même code qui tourne ici.

Questions fréquentes

  • Ai-je besoin d'une clé d'API ?

    Non. Il n'y a ni inscription ni clé. La limite fonctionne par adresse, ce qui suffit pour un service qui ne fait que calculer et ne stocke rien.

  • Puis-je l'utiliser dans un produit commercial ?

    Oui, dans la limite et sans laisser entendre que ce site soutient ton produit. Si ton volume dépasse la limite, prends la bibliothèque JavaScript : elle tourne chez toi et n'a aucune limite.

  • Pourquoi certains noms de champs sont-ils en allemand ?

    Parce que le code est écrit en allemand de bout en bout, et renommer les champs uniquement à la frontière créerait deux vocabulaires pour la même chose. unbekannt signifie inconnu, zeichen caractères, einheiten unités, fehler erreur.

  • Existe-t-il un point d'accès pour l'audio ?

    Pas via l'API. Le décodage du son se fait dans le navigateur, dans un worker, sur le signal en direct. Envoyer des fichiers audio à un serveur serait plus lent, moins bon, et reviendrait à traiter des enregistrements qui ne nous regardent pas.