Le module Gravity Text-to-Speech V2 est une carte compacte de synthèse vocale de DFRobot qui permet aux développeurs de convertir facilement du texte en parole audible en anglais ou en chinois. Équipé d’un haut-parleur intégré et supportant les communications I2C et UART, ce module offre une solution plug-and-play pour les projets nécessitant une sortie vocale.
Dans ce tutoriel, nous allons vous guider à travers tout ce dont vous avez besoin pour commencer, du câblage à l’installation de la bibliothèque, en passant par un exemple de code.
Pièces requises
Pour ce tutoriel, vous aurez besoin du module Gravity Text-to-Speech. Vous pouvez l’obtenir chez DFRobot, par exemple. Assurez-vous toutefois de prendre la version V2.x.
De plus, vous aurez besoin d’un microcontrôleur. J’utilise un Arduino UNO, mais d’autres cartes Arduino ou ESP32 fonctionneront également très bien. La seule exigence est la prise en charge d’une interface I2C (ou UART).

Module Gravity Text-to-Speech

Arduino Uno

Câble USB pour Arduino UNO

Jeu de fils Dupont

Plaque d’essai (breadboard)
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
Matériel du module Gravity Text-to-Speech
Le module Gravity Text-to-Speech V2 est conçu pour fournir une synthèse vocale avec un minimum de matériel externe. Il supporte l’anglais et le chinois et peut mélanger les deux langues dans une même sortie. La carte intègre un haut-parleur, donc aucun amplificateur audio ou haut-parleur externe n’est nécessaire pour une sortie vocale basique.

La communication avec un contrôleur hôte (comme un Arduino, ESP32, Raspberry Pi ou d’autres plateformes populaires) peut se faire via I2C ou UART. L’interface I2C du module a une adresse fixe (0x40).
Le module accepte une tension d’alimentation de 3,3 V à 5 V, ce qui le rend compatible avec la plupart des cartes microcontrôleurs courantes. Le courant de fonctionnement typique est inférieur à 50 mA, ce qui maintient la consommation d’énergie raisonnable pour les projets sur batterie.
On the software side, the module supports “text control identifiers” embedded inside the text string sent for synthesis. These identifiers allow dynamic configuration of voice parameters such as volume, speed, tone (intonation), and voice-type (speaker voice), giving developers some control over speech characteristics. For example, one can send something like « [v3]Hello [v8]world » to adjust volume mid-sentence.
Spécifications techniques
Le tableau suivant résume les spécifications techniques du module Gravity Text-to-Speech V2.0 :
| Paramètre | Spécification |
|---|---|
| Nom du produit | Gravity : Text to Speech Module V2.0 (DFR0760) |
| Langues supportées | Anglais et chinois (supporte la synthèse multilingue) |
| Interfaces de communication | I2C (adresse 0x40), UART |
| Tension d’alimentation | 3,3 V à 5,0 V |
| Courant de fonctionnement typique | < 50 mA |
| Température de fonctionnement | –40 °C à +85 °C |
| Sortie audio | Haut-parleur intégré sur la carte |
| Configuration vocale | Vitesse, volume, tonalité et type de voix réglables via des identifiants de contrôle intégrés |
| Dimensions | Environ 42 mm × 32 mm |
| Type d’interface | Connecteur Gravity 4 broches (VCC, GND, SDA/RX, SCL/TX) |
| Améliorations de la version du module | Clarté vocale améliorée et réduction des erreurs de prononciation par rapport à la V1 |
Installer la bibliothèque DFRobot_SpeechSynthesis_V2
Avant de pouvoir utiliser le module Gravity Text-to-Speech, vous devez d’abord installer la bibliothèque DFRobot_SpeechSynthesis_V2 de DFRobot. Rendez-vous sur le github repo et cliquez sur le bouton vert « <> Code » puis sur « Download ZIP » :

Cela téléchargera la bibliothèque sous forme de fichier zip nommé « DFRobot_SpeechSynthesis_V2-main.zip » sur votre ordinateur.
Ensuite, ouvrez votre Arduino IDE et allez dans « Sketch -> Include Library -> Add .ZIP Library … » comme montré ci-dessous :

Enfin, sélectionnez le fichier « DFRobot_SpeechSynthesis_V2-main.zip » lorsqu’on vous le demande et installez la bibliothèque.
Connexion du module Gravity Text-to-Speech à l’Arduino
Connecter le module Gravity Text-to-Speech à un Arduino ou un ESP32 est simple. Commencez par relier la masse de l’Arduino à la broche GND du module vocal. Ensuite, connectez la broche VCC à la sortie 3,3 V ou 5 V de l’Arduino. Enfin, connectez SCL à C/R et SDA à D/T comme indiqué ci-dessous :

Notez que vous pouvez aussi connecter le module vocal via l’interface UART. Mais la communication I2C est plus rapide et libère l’interface série.
Exemple de code
L’exemple de code suivant permet au module de prononcer le texte « This is a test ». Il règle aussi des paramètres comme le volume, la vitesse et la tonalité de la sortie vocale. Jetez un œil rapide au code complet avant d’en détailler les parties.
#include "Wire.h"
#include "DFRobot_SpeechSynthesis_V2.h"
DFRobot_SpeechSynthesis_I2C ss;
void setup() {
ss.begin();
ss.setVolume(1);
ss.setSpeed(4);
ss.setTone(6);
ss.setEnglishPron(ss.eWord);
}
void loop() {
ss.speak("This is a test");
delay(10000);
}
Importations
En haut du programme, deux fichiers d’en-tête sont inclus pour accéder aux bibliothèques nécessaires. La bibliothèque Wire active la communication I2C sur les cartes compatibles Arduino, tandis que la bibliothèque DFRobot_SpeechSynthesis_V2 contient toutes les fonctions pour contrôler le module Gravity Text-to-Speech via I2C.
#include "Wire.h" #include "DFRobot_SpeechSynthesis_V2.h"
Inclure ces bibliothèques permet au sketch d’initialiser le module, d’envoyer des commandes et de configurer les paramètres de la synthèse vocale.
Objets
Le code crée un objet de synthèse vocale nommé ss, qui représente le module Text-to-Speech connecté via I2C. Cet objet fournit des méthodes telles que begin, setVolume, setSpeed, et speak.
DFRobot_SpeechSynthesis_I2C ss;
Instancier cet objet permet au sketch d’interagir avec le matériel via une API simple et de haut niveau.
Setup
La fonction setup s’exécute une fois au démarrage ou au reset de la carte. Elle configure le module vocal et le prépare à la sortie parlée. La séquence d’initialisation commence par l’appel de begin, qui établit la communication et réveille le module.
ss.begin();
Après l’initialisation, le programme configure plusieurs propriétés vocales. La fonction setVolume ajuste le volume de la voix synthétisée, où des valeurs plus basses produisent un son plus faible et des valeurs plus élevées un son plus fort.
ss.setVolume(1);
Ensuite, la fonction setSpeed modifie la vitesse de parole du module. Une valeur plus élevée accélère la parole, tandis qu’une valeur plus basse la ralentit.
ss.setSpeed(4);
Le code règle ensuite la tonalité, qui influence la hauteur et l’intonation de la voix. Ajuster la tonalité permet de modifier si la voix sonne plus aiguë ou plus grave. Des niveaux plus bas donnent aussi un effet plus robotique.
ss.setTone(6);
Enfin, le programme configure le mode de prononciation en anglais. La bibliothèque propose différentes stratégies de prononciation, et sélectionner ss.eWord indique au module d’utiliser des règles de prononciation au niveau des mots.
ss.setEnglishPron(ss.eWord);
Une fois ces réglages appliqués, le module est entièrement configuré et prêt à synthétiser la parole.
Boucle
La fonction loop s’exécute en continu et déclenche la sortie vocale à intervalles réguliers. À chaque passage dans la boucle, la fonction speak envoie une chaîne de texte au module, qui la convertit ensuite en parole audible.
ss.speak("This is a test");
Comme la lecture vocale ne doit pas être répétée en continu, le programme inclut un délai de dix secondes pour suspendre l’exécution. Cela garantit que le message est prononcé une seule fois par cycle.
delay(10000);
La boucle se répétera indéfiniment, faisant parler le module de la même phrase toutes les dix secondes jusqu’à ce que la carte soit réinitialisée ou éteinte.
Conclusions
Dans ce tutoriel, vous avez appris à connecter le module Gravity Text-to-Speech à un Arduino UNO. Contrairement aux services de synthèse vocale basés sur le cloud comme ElevenLabs, il effectue toute la synthèse localement sur l’appareil, ce qui signifie qu’il ne nécessite pas de connexion internet, évite les coûts d’API et offre des réponses immédiates avec une faible latence.
Le module supporte l’anglais et le chinois, peut mélanger les langues sans problème, et permet un réglage en temps réel du volume, de la vitesse, de la tonalité et de la prononciation via des codes de contrôle simples. Ses interfaces I2C et UART facilitent son intégration avec Arduino, ESP32 et autres microcontrôleurs similaires.
En revanche, la qualité de la voix et du son n’est pas aussi bonne que celle d’ElevenLabs par exemple. De plus, le nombre de voix est limité et la voix anglaise a un accent chinois marqué. Cependant, si vous avez besoin d’une solution hors ligne et que vous ne recherchez pas une parole naturelle, le module Gravity Text-to-Speech est une option.
Pour des solutions de reconnaissance vocale et de conversion parole-texte, consultez nos Getting started with Gravity Voice Recognition Module, le Using the Voice Recognition Module V3 with Arduino et les Voice control with XIAO-ESP32-S3-Sense and Edge Impulse tutoriels.
Bon bricolage ; )

