Synthèse vocale dans Google Sheets : chaque ligne en MP3
Une feuille de calcul est l’endroit naturel pour beaucoup de textes courts : noms de produits, vocabulaire, annonces, répliques pour un jeu ou un cours. Google Sheets ne sait pas les lire à voix haute, mais Apps Script, le langage de scripts intégré à chaque feuille Google, peut appeler une API de synthèse vocale et enregistrer l’audio dans Google Drive.
Ce guide montre comment faire avec l’API vocale de SuperClonica : un court script lit la ligne sélectionnée, enregistre un MP3 et écrit son lien à côté du texte.
Ce qu’il vous faut
Un compte Google et une clé API SuperClonica. Connectez-vous à SuperClonica avec Google ou GitHub et créez la clé dans la section API de votre espace de travail ; l’offre gratuite donne une minute d’audio par jour, assez pour tester quelques lignes.
- La colonne A contient les textes, le script écrit dans la colonne B les liens vers les fichiers audio.
- Dans la feuille, ouvrez Extensions → Apps Script.
- Dans Paramètres du projet → Propriétés du script, ajoutez SUPERCLONICA_KEY avec votre clé, pour qu’elle ne soit jamais dans le code.
Le script
Collez cette fonction dans l’éditeur Apps Script et enregistrez. Elle lit le texte de la ligne sélectionnée, l’envoie à l’API, enregistre le MP3 dans votre Drive et met le lien du fichier dans la colonne B :
function voiceRow() { const sheet = SpreadsheetApp.getActiveSheet(); const row = sheet.getActiveCell().getRow(); const text = sheet.getRange(row, 1).getValue(); const key = PropertiesService.getScriptProperties().getProperty("SUPERCLONICA_KEY"); const answer = UrlFetchApp.fetch("https://superclonica.com/api/v1/speech", { method: "post", contentType: "application/json", headers: { Authorization: "Bearer " + key, "Idempotency-Key": "row-" + row }, payload: JSON.stringify({ text: text, voice: "F1", language: "fr", format: "mp3" }), muteHttpExceptions: true }); if (answer.getResponseCode() !== 200) throw new Error(answer.getContentText()); const file = DriveApp.createFile(answer.getBlob().setName("row-" + row + ".mp3")); sheet.getRange(row, 2).setValue(file.getUrl()); }
Lancez-la une fois depuis l’éditeur pour autoriser l’accès à la feuille, à Drive et aux requêtes externes ; ensuite, sélectionnez une ligne et lancez voiceRow. L’Idempotency-Key fait qu’un nouveau lancement pour la même ligne attend le même audio au lieu de le produire deux fois.
Beaucoup de lignes à la fois
Pour lire toute une colonne, parcourez les lignes dans une boucle et sautez celles qui ont déjà un lien. Une exécution Apps Script a une limite de temps : lisez quelques dizaines de lignes par exécution, puis relancez pour le reste. Si l’API répond 429, la fenêtre de 10 minutes de votre offre est épuisée : l’en-tête Retry-After indique dans combien de secondes reprendre. Choisissez la voix dans le catalogue SuperClonica : avec une offre payante, toute voix du catalogue fonctionne par son ID, affiché sur la page de la voix sous « Par l’API ».
Coût et confidentialité
L’offre gratuite donne une minute d’audio par jour ; l’offre Débutant à 5 $ donne 3 minutes toutes les 10 minutes, jusqu’à 216 heures par mois utilisée sans interruption. Avec l’API, le texte part sur les serveurs de SuperClonica et l’audio dans votre Google Drive. Pour des textes qui doivent rester sur votre ordinateur, faites tourner le moteur gratuit de SuperClonica en local.