SMS Text-to-Voice

v1.0

Transforme un SMS texte recu en SMS vocal (MMS audio) renvoye a l'expediteur. Conversion automatique via synthese vocale (TTS).

Base URL : https://sms-text-to-voice.s33d.fr

🔊 Comment ça marche ?

  1. Un SMS texte arrive sur le numéro du service
  2. Le service convertit le texte en audio vocal (TTS) via synthèse vocale
  3. L'audio est renvoyé à l'expéditeur sous forme de MMS vocal

Le service fonctionne de manière autonome : il lit les SMS entrants, les convertit et répond automatiquement. L'API permet aussi de déclencher des conversions manuellement.

🔑 Authentification

Toutes les requêtes API nécessitent un header X-Admin-Key.

X-Admin-Key: votre-cle-admin
POST /api/v1/convert

Déclenche manuellement une conversion texte → vocal et envoi MMS au destinataire.

Corps de la requête (JSON)

Champ Type Description
recipientstringNuméro du destinataire (format international)
textstringTexte à convertir en audio vocal (1-5000 caractères)

Exemple

curl -X POST https://sms-text-to-voice.s33d.fr/api/v1/convert \
  -H "Content-Type: application/json" \
  -H "X-Admin-Key: votre-cle" \
  -d '{
    "recipient": "+33612345678",
    "text": "Bonjour, voici votre message vocal automatique."
  }'

Réponse

{
  "msg_id": "a1b2c3d4-...",
  "status": "pending",
  "recipient": "+33612345678"
}
GET /api/v1/message/{msg_id}

Récupère le statut d'un message.

Statuts possibles

Statut Description
pendingEn attente de conversion TTS
tts_doneAudio généré, en attente d'envoi MMS
sentMMS vocal envoyé à l'expéditeur
failedÉchec (erreur TTS ou envoi MMS)
GET /api/v1/modems

Liste les modems GSM disponibles et leur état.

POST /api/v1/modems/detect

Re-scanne les ports série pour détecter de nouveaux modems.

GET /api/v1/jobs/status

État de la boucle de traitement et statistiques par statut.

POST /api/v1/jobs/toggle

Démarre ou arrête la boucle de traitement automatique.

GET /api/v1/messages/history

Historique des messages convertis.

Paramètres query

Paramètre Type Description
limitintNombre max de résultats (défaut: 50)
statusstringFiltrer par statut
GET /health

Vérification de l'état du service (pas d'auth requise).

{
  "status": "ok",
  "service": "text-to-voice",
  "modems": 2,
  "loop_running": true
}