SMS Text-to-Voice
v1.0Transforme un SMS texte recu en SMS vocal (MMS audio) renvoye a l'expediteur. Conversion automatique via synthese vocale (TTS).
https://sms-text-to-voice.s33d.fr
🔊 Comment ça marche ?
- Un SMS texte arrive sur le numéro du service
- Le service convertit le texte en audio vocal (TTS) via synthèse vocale
- 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
/api/v1/convert
Déclenche manuellement une conversion texte → vocal et envoi MMS au destinataire.
Corps de la requête (JSON)
| Champ | Type | Description |
|---|---|---|
| recipient | string | Numéro du destinataire (format international) |
| text | string | Texte à 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"
}
/api/v1/message/{msg_id}
Récupère le statut d'un message.
Statuts possibles
| Statut | Description |
|---|---|
| pending | En attente de conversion TTS |
| tts_done | Audio généré, en attente d'envoi MMS |
| sent | MMS vocal envoyé à l'expéditeur |
| failed | Échec (erreur TTS ou envoi MMS) |
/api/v1/modems
Liste les modems GSM disponibles et leur état.
/api/v1/modems/detect
Re-scanne les ports série pour détecter de nouveaux modems.
/api/v1/jobs/status
État de la boucle de traitement et statistiques par statut.
/api/v1/jobs/toggle
Démarre ou arrête la boucle de traitement automatique.
/api/v1/messages/history
Historique des messages convertis.
Paramètres query
| Paramètre | Type | Description |
|---|---|---|
| limit | int | Nombre max de résultats (défaut: 50) |
| status | string | Filtrer par statut |
/health
Vérification de l'état du service (pas d'auth requise).
{
"status": "ok",
"service": "text-to-voice",
"modems": 2,
"loop_running": true
}